码迷,mamicode.com
首页 > 其他好文 > 详细

时钟约束

时间:2015-06-29 20:32:29      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:fpga   时钟   时序   约束   

设计一个计数程序,使用时钟clk,在这个clk的上升沿计数。

技术分享

硬件上该时钟由50MHz晶振提供,因此设计时钟就要约束为50MHz,20ns时钟周期。

编译工程后打开quartus II TimeQuest:

技术分享

技术分享

点击Netlist -> Create Timing Netlist:

技术分享

点击OK,点击菜单栏Constraints -> Create Clock:

技术分享

设置period为20ns,设置Targets为clk,点击Run完成约束设置。

依次点击task栏里的Update Timing Netlist 和 Write SDC File

技术分享

点击OK,工程目录中的ti_me.out.sdc文件里便出现了所添加的约束:

技术分享

重新编译工程,重新进入TimeQuest,点击Report All Core Timings:

技术分享

在report窗口出现Report Timing (Core),可以看到Setup路径和Hold路径:

技术分享

技术分享

点击Report Timing,选择Setup:

技术分享

技术分享

Setup详细路径分析:

Data Arrival Time       =   Launch Edge + Tc2t + Tco + Tc2r   =   0 + 2.541 + 0.199 + (2.655-0.199)
Data Required Time     =   Latch Edge + Tc2r – Tsu  =   20 + 2.476 – (-0.015)
Setup time slack        =   Data Required Time – Data Arrival Time = 22.491 – 5.196 = 17.295ns

点击Report Timing,选择Hold:

技术分享

技术分享

Hold详细路径分析:

Data Arrival Time       =   Launch Edge + Tc2t + Tco + Tc2r   =   0 + 2.453 + 0.199 + (0.580-0.199)
Data Required Time     =   Latch Edge + Tc2r + Th  =   0 + 2.518 + 0.157
Setup time slack        =    Data Arrival Time – Data Required Time= 3.033– 2.675= 0.358ns

其中:

Tco表示数据在被锁存后在寄存器内所经过的延时;
Tc2t表示时钟源到源寄存器reg1所经过的时钟网络延时;
Tc2r表示时钟源到目的寄存器reg2所经过的时钟网络延时;
Tr2r表示数据从源寄存器的输出端到目的寄存器的输入端所经过的延时;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时钟约束

标签:fpga   时钟   时序   约束   

原文地址:http://blog.csdn.net/wu20093346/article/details/46683227

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!