【Basking Rootwalla】真正理解setup time/hold time(二)

本文深入探讨了FPGA设计中的关键概念:Setup和Hold时间。通过定义相关变量并提供解决Setup和Hold时间违规的具体策略,帮助读者理解和优化FPGA设计的时序性能。

算是转的原文 http://www.edaboard.com/thread139461.html#post604717

核心就是setup time和hold time

HOLD violations are dangerous than SETUP.

To keep it simple way, SETUP timing depends on the frequency of operation. But HOLD time is not.

先来定义几个后面会用到的变量

Tclk    = Frequency of operation (can be variable)
Tcq     = Flop clock to Flop q delay (fixed/constant)
Tcomb   = Delay on the combinational logic between the Flops (can be variable)
Tsetup  = Setup time of a Flop (fixed/constant)
Thold   = Hold time of a Flop (fixed/constant)
Tskew   = Delay between clock edges of two adjacent flops (delay offered by clock path) (can be variable)

 

一、首先来看setup time,其正常工作要满足的公式为

Tclk > Tcq + Tcomb + Tsetup - Tskew

如果出现了setup violation那么就意味着上面的公式变成了

Tclk < Tcq + Tcomb + Tsetup - Tskew

我们分两种case来考虑出现的setup violation,

1. 设计电路的过程中

在设计时,可以看到,上面的式子中,我们有3个变量可以来操作,Tclk, Tcomb, Tskew

  1)这里首先的想法是增大Tclk,就是降低系统的工作频率此时就可以令式子满足条件,但是往往这个是不科学的,一般都是最后才想到要降低系统时钟频率来来满足setup time

  2)减小Tcomb,具体就像什么pipeline或者是在不改变逻辑功能的前提下,改变成其他样式的组合逻辑,进行组合逻辑的优化,或者是改变扇出系数使得延时减小,或者是增大cell的尺寸来使得延时减小都是可以施行的措施。

  3)增大Tskew,就是在时钟路径上插入buffer来使得Tskew变大,当然是在不影响hold timing的情况下。

2. 芯片回来了

看上面的式子,在芯片回来时,我们能改变的就只有Tclk,相当于我们只能使得工作频率降低,来使得setup violation消除。

 

二、再看hold time,其正常工作的公式为

Thold < Tcq + Tcomb - Tskew

如果hold violation出现就意味着

Thold > Tcq + Tcomb - Tskew

此时电路的Thold不被满足,还是分两种case来讨论

1. 设计过程中

对于上面的式子,有两个变量可以操作,就是Tcomb和Tskew

  1)增大Tcomb,那么能做的就是在data path上面插入buffer来增加组合逻辑延时,但是相对的,当你插入buffer增大延时的时候,相应的setup time就会变差,相当于是一个tradeoff了。所以通常这不是一个最好的选择(So this may not be the perfect solution always)。

  2)减小Tskew,这个方法通常都依赖于PR工程师了,所以一般都是在PR的时候来修正hold time。

2. 流片归来

看看上面的式子,你手上还有牌可出么?没有,所以在流片回来时,如果hold violation出现,那么你就什么都做不了了(等死吧,孩子)。所以才说hold violation要比setup violation更可怕。但是另一方面,你也可以给芯片提供一个ss的条件(当然只是一个临时的权宜之策),比如给芯片一个低电压,高温来使得芯片的延时都变大,避过hold violation,没准可以测试一下基本功能。

转载于:https://www.cnblogs.com/poiu-elab/archive/2012/10/29/2744759.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值