原创 时序分析基础与时钟约束实例(2)

2013-7-19 10:31 5433 20 26 分类: FPGA/CPLD 文集: 时序分析基础与时钟约束实例

时序分析基础与时钟约束实例(2

文中实例配套SF-CY3开发套件。更多内容请参考《SF-CY3 FPGA套件开发指南》。

对于FPGA内部而言,通常我们把它的时序路径分为三类基本的约束路径,即:

  输入信号  pin2reg 

  内部信号  reg2reg 

  输出信号  reg2pin

20130715070051388001.jpg

         我们逐个来看这三类基本路径分别约束的是那个部分的时序。

         reg2reg路径约束的对象是路径起始的源寄存器以及最终结束的目的寄存器都在FPGAn内部的路径。如图所示,红色部分是从一个FPGA内部的寄存器到FPGA内部的另一个寄存器的路径,他们共用一个时钟(当然也有不共用一个时钟的reg2reg路径,这种路径的分析会复杂一些,这里不做深入讨论)。对于reg2reg路径,我们只要告诉FPGA时序分析工具他们所使用时钟的频率(或时钟周期),那么FPGA内部通常就“心领神会”的让这条reg2reg的路径总延时不超过这个时钟频率。

20130715070056576002.jpg

         我们再来看pin2reg的路径模型,如图所示。虽然和FPGA连接的外部芯片内部寄存器的状态我们无从知晓(一般芯片也不会给出这么detail的内部信息),但是一般芯片都会给出针对于这个芯片管脚的一些时序信息,如TcoTsuTh等,我们其实也是用图示的这个模型来分析的。在这个模型中,红色的大圈所覆盖的路径代表了和FPGA内部reg2reg分析一样的模型,pin2reg原则上只是reg2reg分析的一部分。绿色圆圈则表示我们实际要告诉FPGApin2reg约束信息,或者应该这样说,我们希望进行路径延时控制的路径就是这段绿色圆圈覆盖的路径,但是我们需要通过整个reg2reg路径的情况,即根据绿色圆圈以外、红色圆圈以内这部分路径的延时情况去告诉FPGA内部pin2reg路径延时可以在什么样一个范围。

20130715070100175003.jpg

         最后,再看reg2pin的路径。如图所示。同样的,红色圆圈部分覆盖了FPGA内部的源寄存器开始,到FPGA外部芯片的目的寄存器为止的reg2reg的路径。外部芯片通常也不会给出detail的信息,也是通过相对他们的管脚给出一些时序的信息。而绿色圆圈所覆盖的路径则是我们需要去约束的reg2pin的延时。它的延时信息同样是需要通过红色大圈以内、绿色小圈以外路径的情况来推测得出。

20130715070109660004.jpg

         本节的重点是reg2reg的时钟约束。如图所示,一般的时序分析我们都可以来看看他们的数据路径(data path)和时钟路径(clock path)。所谓数据路径,就是数据在整个传输起点到传输终点所走过的路径;所谓时钟路径,则是指时钟时钟达到各个寄存器的路径。

20130715070114667005.png

         如图所示,为了便于后续的时序余量分析和计算,我们提出了data arrival pathdata required path的概念。Data arrival path是指数据在两个寄存器间传输的实际所需时间;data required path则是指为了确保稳定、可靠且有效的传输,数据在两个寄存器间传输的理论所需时间(也就是最低必须满足的传输时间要求,对于建立时间是最大值,对于保持时间则是最小值)。很明显,从图中,我们就可以看出data arrival path传输的起点是时钟源,达到源寄存器,然后是实际的数据从源寄存器到目的寄存器时间;而data required path的传输起点也是源时钟,但却是达到目的寄存器,然后再考虑目的寄存器的建立时间和保持时间要求(图中未示意)。

20130715070124292006.png

         如图所示,对于上面所提出的data arrival pathdata required path,我们做了一些喜欢,将实际的各个路径示意了出来。

  Tc2t表示时钟源到源寄存器reg1所经过的时钟网络延时;

  Tc2r表示时钟源到目的寄存器reg2所经过的时钟网络延时;

  Tco表示数据在被锁存后在寄存器内所经过的延时;

  Tr2r表示数据从上一级寄存器(源寄存器)的输出端到下一级寄存器(目的寄存器)的输入端所经过的延时;

  Tsu表示寄存器的建立时间;

  Th表示寄存器的保持时间。

20130715070131499007.jpg

         在开始这些路径关系公式的分析前,我们还需要了解Setup relationshipHold relationship及其与launch edgelatch edge之间的关系。如图所示,对于一个寄存器到寄存器的传输来说,正常情况下,各个寄存器都是在时钟的控制下,每个上升沿锁存一次数据,那么也就意味着,两个相邻的寄存器,后一级寄存器每次锁存的数据应该是前一级寄存器上一个时钟周期锁存过的数据。基于此,我们来讨论建立时间,即setup relationship时,源寄存器为lauch clock,目的寄存器为latch clock,而lauch edge从时间上看就要比latch edge早一个时钟周期,即他们之间通常是相差一个时钟周期的关系。反观保持时间则不然,即hold relationship实际上是同一个edge,也就是说后一级寄存器的保持时间很可能遭到上一级寄存器同一个时钟周期所传输数据的违犯。我们的hold relationship就是为了防备这种情况的,因此launch edgelatch edge实际上是同一个时钟沿,那么他们的关系通常只是Tc2t(源时钟传输到源寄存器的时间)和Tc2r(源时钟传输的目的寄存器的时间)的时间差。

20130715070135222008.jpg

         因此,如图所示,理想情况下,抛开什么时钟的抖动以及其他不确定时间,我们可以得到reg2reg传输的建立时间和保持时间余量(slack)计算公式:

         建立时间

Setup time slack = Data Required Time – Data Arrival Time

Data Arrival Time = Launch Edge + Tc2t + Tco + Tr2r

Data Required Time = Latch Edge + Tc2r - Tsu

         保持时间

Hold time slack = Data Arrival Time – Data Required Time

Data Arrival Time = Launch Edge + Tc2t + Tco + Tr2r

Data Required Time = Latch Edge + Tc2r + Th

20130715070143132009.jpg

 

 

文章评论6条评论)

登录后参与讨论

用户1748817 2016-4-20 17:17

老牛了!!!

用户377235 2015-8-24 18:38

pin2reg 改成 pin to reg reg2reg 改成 reg to reg reg2pin 改成 reg to pin

 

谢谢特权同学的分析,目前对时序约束只是大致了解,还没有深刻的体会,不过我会加油的

用户447325 2015-3-12 14:21

学习一下

用户1677779 2014-4-15 15:48

多谢特权老兄的这篇博文。解答了我心中对于setup relationship 和 hold relationship概念的理解。之前我当时消化了setup relationship 但是 对于后者一直消化不了。 现在看过仔细想过后,发现就是对于前后寄存器的一个时钟周期差理想延时的理解,非常棒 ,这个模型相当适用。 我也想了想,如果前后寄存器我们不按照需要一个周期延迟来,那么我们的时序分析如何进展开来呢? 当然,实际客观一前一后的寄存器肯定是有延时,的的确确是非常好的一个分析方法

用户374509 2014-3-4 21:24

Hi,是基督徒吗?

用户377235 2013-7-27 15:34

pin2reg 改成 pin to reg

reg2reg 改成 reg to reg

reg2pin 改成 reg to pin

这样好点吧

相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
我要评论
6
20
关闭 站长推荐上一条 /2 下一条