原创 同步时序约束之INPUT_DELAY详解

2009-1-15 21:01 8178 8 20 分类: FPGA/CPLD

最近听AlteraFAE说:“以后Altera器件会慢慢转变为只支持TimeQuest时序分析工具”。虽然TimeQuest已经出来很久,但始终没有仔细研究过,不过现在有动力了。


时序约束主要是为了满足器件稳定工作在我们需要的工作频率,而是否满足工作频率又取决于Setup Slack是否大于零。在FPGA内部我们所需要设置时序约束就是Fmax大于Clock Frequency,但当FPGA连接外部ASSP时我们就需从板级去考虑时序。


假定我们现在有个系统从ASSP输出至FPGA的同步工作系统,那么整个板子是否正常工作又如何判断?如何去约束FPGA?在一个板子上,ASSP管脚至FPGA IO脚的长度已经确定,ASSP管脚的参数也已经确定,但是还有一处是会变化的,那就是FPGA IO口至内部寄存器的时间及时钟至内部寄存器的时间是可以变化,对应设置就是Assignment EditorInput Delay from Pin to Input Register设置。有人会说既然Assignment Editor可以完成约束,为什么我们还需要TimeQuest呢?从我个人观点上看,一是TimeQuest简单,只需要设置Input Delay参数;二是有助于我们从板级系统考虑时序,符合我们的思维模式。


先从下面两幅图看起:

点击开大图

1


Launch EdgeREG1数据发送边沿;


Latch EdgeREG2数据锁存边沿;

点击开大图



2



Tclk1:时钟clkASSP时钟脚的延迟;



Tclk2ext:时钟clkFPGA时钟IO的延迟;



Tdata_PCB:数据在PCB走线上的延迟;



CL:负载电容;



TcoASSP参数;



简单点说,如果要FPGA能正常接收数据,那就需要在Latch Edge到达Reg2之前,ASSP的输出就已经到达Reg2D数据口,并且至少已经稳定Tsu,这就是我们所说建立时间裕量,即Setup Slack。从图2可以知道,FPGA可以通过调整参数TdataintTclk2int来满足Tsu,前提是需要知道数据(从ASSP输出),及时钟到达FPGA的时间,这两个时间都是相对于OSC的时钟边沿决定,还有如我所说,这个两个参数在PCB上都为固定值,所以它们可以用一个INPUT DELAY参数表达,表达式如下:

点击开大图



3



也就是在Lanuch Edge发送出去后,数据经过Tdata_PCB + Tcl + Tclk1 +
Tco
到达FPGA IO,而Latch Edge发送出去经过Tclk2ext到达FPGA时钟IO



INPUT DELAY =
Tdata_PCB + Tcl + Tclk1 + Tco - Tclk2ext



ASSPOSCFPGA看成一个整体,则“Tclk2ext”可以认为是减少了Reg2Tsu,而“Tclk1”加大了Reg1Tco,该系统稳定工作的条件需要满足条件:



Tdata_PCB + Tcl
+ Tclk1 + Tco + Tdataint +
Tsu - Tclk2ext - Tclk2int<= Period_OSC



当我们设置完INPUT DELAY参数后,剩余工作就可以交由QuartusII工具完成,当然也可以自己在Chip Planner布局布线,后者都是在不得以情况下进行。





PARTNER CONTENT

文章评论12条评论)

登录后参与讨论

用户377235 2012-2-29 14:28

同步时序约束之OUTPUT_DELAY详解?能像同步时序约束之INPUT_DELAY详解那样给大家详细讲讲吗?

用户1366067 2009-10-31 21:40

PCB的延迟,好像跟板材也有关系吧,不同的板材,延迟也不一样的。

coyoo 2009-5-22 11:23

踩一脚!

用户1122702 2009-3-2 20:37

mil/ns表示电磁波在PCB上的传播速率。

用户134835 2009-2-26 14:15

5555mil/ns,单位为什么不是 ns/mil?

用户1122702 2009-2-12 23:12

呵呵,计算了一下,确实不对,是在10^3mil/ns这个数量级,谢谢ilove314!!!

ilove314_323192455 2009-2-11 18:20

今天刚请教了单位里做PCB的老同志,他们给我的答复是0.18ns/1英寸,也就是大约5555mil/ns的延时,楼主的600mil/ns是不是漏了一个0啊?况且600mil/ns也有点不太对劲

ilove314_323192455 2009-2-9 19:00

呵呵,谢谢LZ的解答

用户1122702 2009-2-8 11:34

具体我也没有研究这么详细。不过,我认为,PCB上对时序的影响因素很多,无法都考虑进去,只要我们都是基于同一个算法去参考这个时延,相对误差也在0.Xns这个级别,在FPGA没有步入GHz之前,尽量不去考虑这么复杂,会耗散太多精力!

ilove314_323192455 2009-2-5 18:46

那么我想知道这个经验值适用于任意的走线宽度吗(还是特定的走线宽度)?还是会随着走线宽度的不同而有差别? 谢谢
相关推荐阅读
用户1122702 2015-12-20 21:29
在Emacs中应用Ctags
适宜人群 具备Emacs使用经验的程序员 什么是Tag? Tag,即标记,记录了程序重要信息(如函数、变量、宏定义等)的位置和相应的文件,方便程序浏览器进行跳转。 ...
用户1122702 2015-12-13 22:23
可综合的SystemVerilog:命名空间
关键名词解释: 编译单元(compilation unit):SystemVerilog 源代码的集合 编译单元域(compilation-unit scope):即编...
用户1122702 2015-12-13 22:15
可综合的SystemVerilog:参数化函数/任务
在Verilog中,参数化模块被广泛应用。参数可重新定义保证模块的可配置性及可复用性。但是,函数及任务并无法像模块一样被参数化,减弱了Verilog的描述化能力。 SystemVer...
用户1122702 2010-10-28 11:34
基于SOPC下RapidIO调试方法
RapidIO的一个难点在于地址转换方法,即将远端的Memory映射到当前Avalon-MM总线,所以地址需要一个转换过程——Local Avalon-MM<->RapidIO Addr&...
用户1122702 2010-08-24 14:22
西行重庆
八月初时离开生活并工作四年的深圳,来到求学四年的重庆。已经过去三周时间,对自己的将来也随之变的不可琢磨。重庆的生活水平并不如想象的低,除了房价不像沿海城市高企,其他诸如公共交通,生活日常用品基本都是一...
用户1122702 2010-07-07 18:05
Tcl用后感
                    Tcl用后感 (by Wind330)    Tcl - Tool Command Language近期做了一个Tcl脚本用于Modelsim仿真,完成如下功能...
EE直播间
更多
我要评论
12
8
关闭 站长推荐上一条 /3 下一条