当前位置:   article > 正文

FPGA学习-setup time和hold time

fpga时序setup和hold

点击蓝字关注我们

  1. 关注、星标公众号,精彩内容每日送达
  2. 来源:网络素材

1. 静态时序分析与动态时序分析

静态时序分析:STA,主要目的是为提高系统工作主频以及增加系统的稳定性。我们用软件在综合和实现之后的timing analysis都是静态时序分析。

动态时序分析:DTA,主要目的是在验证器件在实际延时情况下的逻辑功能。通常就是我们所说的仿真。

比较:STA不需要输入向量就能穷尽所有的路径,运行速度快,占用内存小。不仅可以对芯片设计进行全面的时序功能检查,还可以利用时序分析的结果来优化设计。DTA的优点是结果精确,并且适用于更多的设计类型;缺点是速度慢,并且可能会遗漏一些关键路径。

2. 同步设计中的建立时间和保持时间

建立时间(Tsu)

建立时间指的是在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器

保持时间(Th)

保持时间是指在时钟沿到来之后数据稳定保持的时间

输出响应时间(Tco),Tclk->Q

触发器输出的响应时间,也就是触发器的输出在clk时钟上升沿到来之后多长的时间内发生变化,也即触发器的输出延时。

3. 时钟相关的概念

3.1. 时钟偏移(skew)

skew:时钟信号到达相邻两个时序单元的时间差就叫做时钟偏移,Tskew = Tc2 - Tc1 ,Tskew为正时,有利于setup满足条件。

3421f9a1ce2c6c35ff4a9457180b377b.png

如何减小时钟偏移

采用全铜工艺和树状结构,并且设计了专用的时钟缓冲和驱动网络,这么做的目的就是尽量使时钟到达不同时序单元的路径一样长,从而使时钟偏移非常小,可以忽略不计。总的来说,Skew 问题的解决方法就是:设计中的主要信号应该走全局时钟网络。

3.2. 时钟抖动(jitter)

周期抖动 period Jitter:实际时钟信号周期与理想时钟周期的差值的变化。这是最早最直接的一种衡量抖动的方式,这个指标说明了时钟信号每个周期的变化.

因为这个差值是个随机变量,并且满足高斯分布,所以可以用期望和方差来描述。一般随机选择很多个周期,然后计算平均周期、标准差、峰峰值。标准差称为 “RMS 抖动”,峰峰值称为 “Pk-Pk 周期抖动”。知道 Pk-Pk 周期抖动,对于恰当配置系统和保持时间很有用。

周期差抖动:cycle-to-cycle jitter 两个相邻时钟周期的差值的变化。根据定义可知,对周期抖动做一阶差分,就可以得到周期差抖动。

相位抖动:Phase Jitter 一个时钟沿相对于基准对齐之后,经过一段时间后,与理想位置的偏差。这个指标说明了周期抖动在各个时期的累计效应。

由于 周期抖动 和 周期差抖动 是单个周期或者相邻周期的偏差,所以表征为短期抖动行为。而相位抖动需要累积一段时间,所以表征为长期抖动行为。时钟抖动的原因就是噪声。相位抖动因为需要累积一段时间,所以这个误差又称为 时间间隔误差(TIE, Timer Interval Error)。

3.3 占空比(Duty Cycle Distortion)

占空比失真,即时钟不对称,有脉冲的时间和无脉冲的时间发生了变化。DCD 会吞噬大量的时序裕量,造成数字信号的失真,使过零区间偏离理想的位置。DCD通常是由信号的上升沿和下降沿之间时序不同而造成的。

4. 异步信号中的恢复时间和撤销时间

恢复时间 recovery time : 对于异步信号(比如异步复位/置位),信号变无效的边沿和下一个时钟沿之间必须满足一个最小的间隔。其意义在于,如果保证不了这个最小时间,也就是异步信号无效边离时钟边沿太近了,异步信号解除(无效)之后,没有给 DFF 足够的时间来恢复(recovery)到正常状态,那么就不能保证在时钟沿到来时 DFF 可以正常工作。

撤销时间 removal time : 对于异步信号(比如异步复位/置位),信号变有效的边沿和前一个时钟沿之间必须满足一个最小的间隔。其意义在于,如果保证不了这个最小时间,也就是异步信号的有效沿离时钟太近了,在时钟信号去除(无效)之前,异步信号提前有效了,可能会造成 DFF 处于不确定状态。

5. Timing path

起点有两种:

时序器件的时钟输入端

电路的 输入端口

终点也有两种:

时序器件的 数据输入端

电路的 输出端口

输入和输出排列组合一共就有 4 种 path:

电路输入端口 -> 触发器的数据D端 (Pad-to-Setup)

触发器的clk端 -> 触发器的数据D端 (Clock-to-Setup)

触发器的clk端 -> 电路输出端口 (Clock-to-Pad)

电路输入端口 -> 电路输出端口 (Pad-to-Pad)

1f231c0432baa91018c8df27031dcf0a.png

关键路径(critical path)

关键路径:从输入到输出,延时最大的那条路径称为 critical path。关键路径是系统中延时最大的路径,它决定了系统所能达到的最大时钟频率。

6. 到达时间和需求时间

到达时间:arrival time 信号到达某个特定位置所消耗的时间。一般将时钟信号到达的时刻作为参考的 0 时刻,为了计算到达时间,需要对路径中的所有组件的延时都进行计算。

需求时间:required time 所能容忍的路径最大延时,也就是信号到达的最晚的时间。如果路径上的延时再大一些,则必须降低时钟频率,否则会产生 setup/hold time violation。

时间裕量:slack 。slack = required time - arrival time。如果计算出某条路径的 slack 是正数,说明这条路径的时延是满足要求的;如果计算出某条路径的 slack 是负数,则表示路径上的延时太大了,必须做出修改(修改设计 or 修改约束 or 换芯片),否则包含它的电路不能以预期的频率工作。

7. launch和capture edge

Launch edge是指时钟通过触发器来发射数据的时钟沿edge

Capture edge是指时钟通过触发器捕获数据的沿edge

3fafe24bf52be50fc0226c629fc4d56d.png

[Tlaunch + Tck2q + Tdp] <= [Tskew + TCLK – Tsetup]

其中Tck2q也就是Tco, Tdq也就是Tcomb.

[Tlaunch + Tck2q + Tdp] >= [Tskew + Thold]

其中skew = Tclk2-Tclk1;当skew为正时,有利于减小Tclk,提高电路频率

8.setup time和hold time时序图

b4203e6956afee50749f1f41902c52c3.png

时序图如下:

11b9ecdd7c805da582e3e0fc82266356.png

数字系统设计常见的电路图,这里需要保证数据能够正确的在这两个触发器上进行传输,由此确定中间组合逻辑电路的传输延时的范围。

e57b742340d252559b2c08443eb392d5.png

Tcomb: 组合逻辑电路的传输延时

2、第二个触发器要满足建立时间的约束条件

509b48255205e581618d7f4499c3587c.png

在第一个时钟上升沿,前边的触发器采集D1信号,将高电平打入触发器,经过Tco的触发器输出延时到达组合逻辑电路。又经过组合逻辑电路的延时Tcomb(我们假定组合逻辑电路此时没有改变信号的高低,可以把它假定为一个缓冲器)送到了D2接口上。在第二个时钟上升沿到来之前,D2数据线上的信号要满足稳定时间>触发器的建立时间Tsu。

3、第二个触发器要满足保持时间的约束条件

8ba6b033513ef2cb34b2ab0b36d9c455.png

时序解释:

接着之前的时序图继续,在第二个时钟上升沿前边触发器采集到D1上的低电平,经过Tco的延时在Q1上得到表达。这个低电平在经过组合电路延时Tcomb到达D2。现在的问题是经过这么Tco+Tcomb的延时,D2上原本的高电平在第二个时钟上升沿到来之后的稳定时间 > 第二个触发器的保持时间。满足了这个条件,后边的触发器才能稳定的接收到最初由D1传过来的高电平。

2b583591505f7428961d16e368383802.png

4、问题的答案

我们得到中间组合逻辑电路的输出延时范围为:

(Tclk - Tco-max - Tsu) > Tcomb > (Th - Tco-min)

9. 另一种表达方式

f55c4eeebcdc4ee0af577bbed1998797.png bc7f300e854082d737748cae2778141a.png a46da0d9d5f4a596ed2162aeb04b3b77.png f612579463ca5939b4eab3cf7aab0930.jpeg

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/1002180
推荐阅读
相关标签
  

闽ICP备14008679号