原创 同步时序约束——Input Delay

2011-8-10 23:20 2522 3 3 分类: FPGA/CPLD

同步时序约束——Input Delay  

        今天看了很多有关Input Delay的资料,特别是在看了网友wind330的博文同步时序约束之INPUT_DELAY详解之后想通了很多问题。现在将自己所思所想的知识整理出来与大家分享,希望大家能提出一些看法,让我们在不断地交流中共同进步。

       在图1的这种情况下,我们必须保证 Latch edge到达Reg2之前,ASSP输出的数据已经到达Reg2的数据口,并已经至少稳定Tsu

 

20110810231149001.jpg

1 同步时序系统

       在继续分析Input Delay之前,我们必须先清晰两个概念,它们分别是Launch EdgeLatch Edge. 我们可以将图1所示的系统简化为图2所示的电路模型。

20110810231150002.jpg

2 Launch EdgehLatch Edge

系统只有一个clk,对于reg1reg2来说它们并不知道clk的哪个上升沿是Launch Edge,哪个上升沿又是Latch Edge。真正的解释应该是如表格1

表格1 Launch EdgehLatch Edge

时间

clk状态

reg1

reg2

0ns

上升沿

发送Data_(n)

锁存Data_(n-1)

5ns

上升沿

发送Data_(n+1)

锁存Data_(n)

我相信当大家看到这个表格时,就会明白在同步时序系统Launch EdgehLatch Edge相差一个时钟周期。【理解这一点,有利于我们理解后面的Input delayPeriod_OSC的关系】

我们就按这个图2所示的波形图继续分析下去。当0ns时,从晶振中输出的clk的上升沿,这个上升沿对于reg1来说就是Launch Edge,那个这个Launch Edge所发射的数据Data_n需要多长时间才能到达图1所示的reg2D数据口呢?我们对图1上的几个时间进行简单的相加就可以得到答案:

20110810231151003.jpg                           公式1

而在此时此刻(即0ns),从晶振输出的clk的上升沿对于reg2来说就是Latch Edge,但这个Latch Edge并不是Data_n的锁存信号,而是Data_(n-1),即Data_n之前的那个数据。Data_n的锁存信号需要等到下一个Latch Edge

那么从第0ns算起,什么时刻属于Data_n的锁存信号才会到达reg2呢?计算公式如下:

20110810231152004.jpg

20110810231152005.jpg要。

我们将公式1和公式2所用到的时间段画在一张波形图上,如图3所示。

20110810231153006.jpg

3 同步系统的各传输时间段

20110810231153007.jpg  那么,我们通常所定义的Input Delay的作用是什么呢?带着疑问,我又反复阅读了特权老师的所写的《深入浅出玩转FPGA》中有关Input Delay的章节,最终分析清了Input Delay的作用。

20110810231154008.jpg当我们具体应用时,我们一般会将FPGA看成一个整体,即建立时间不是内部寄20110810231154009.jpg器的建立时间,而每个寄存器由于在FPGA中的location不同,其setup time也会不同,而我们是无法设置setup time的】那么,二者的区别在于当我们以reg2为最终的对象时,数据传输的终点是reg2D数据口,时钟的终点是reg2clk端,此时的20110810231154010.jpg的终点是FPGA的数据输入端口,时钟的重点是FPGA的时钟输入管脚。所以当我们以FPGA整体为研究对象时,需要将公式4改变一下,将其中的20110810231155011.jpg

 

       当我们看到公式7时,我们就会想到Input Minimum Delay该满足什么关系式呢?我们将Input time不断地缩小,就会发现数据Data_(n)达到时间很可能会20110810231155012.jpg

       到此,我们可以从公式7、公式8中看到,我们可以通过设置Input Delay使时序满足公式7、公式8中的关系式,进而实现时序收敛。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /3 下一条