本文主要是介绍Slack Calculation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Slack是等于path delay和clock period之间的margin。具有Small Delay Fault Model的Slack表示能够被检测到的最小延迟缺陷。
图1显示了slack的计算。假设有三条paths能够检测一个fault。paths分别有8.5ns, 7.5ns, 4.5ns延迟。时钟周期是10ns。被计算的paths的slacks是1.5ns,2.5ns,和0.5ns。最长的pathlaunches从leading edge和captures在下一个周期的leading edge,给出1.5ns的slack。因此通过该path能够被检测到最小延迟缺陷是1.5ns。最短的path在leading edge进行launches,在相同周期的falling edge进行captures。给出0.5ns的slack。为了在故障位检测small delay,应该生成test pattern以检测通过这条path的fault,因为它有最小slack。
Path Delay Calculation
的存在clock skew时,会影响arrivel time和propagation time。当计算path delay时,Tessent工具使用以下算法来保证考虑到clock skew:
- 为设计中的每个gate计算arrivel time:
时序元素的arrival time的初始值等于它的所有时钟端口的最大时钟延迟,这意味着任意gate上的arrival time是与时钟输入端口值的改变有关的,而与driving flop或flops的值改变无关。
- 计算propagation time:
-
立刻驱动(该gate的输出连接的是时序元素)时序元素的时钟端口的门,初始的progation delay被设为0。
-
立刻驱动时序元素的数据端口的门,初始的progation delay被设为其时钟延迟的负值(而不是0,数据到达的时间要早于时钟达到的时间)。
应用以下公式计算:
下图例子中,电路的周期为8:
使用前面的算法,计算的值如下:
从这些值中可以海鲜关键路径是dff2-g1-g3。
Slack Calculation When Timing Exceptions Are Present
False paths和multicycle path影响如何计算slack和path delay。
False Paths
static arrival time和 static propagation time应该从false paths上排除延迟,该计算在static flase analysis之后执行。
一个故障位f,工具计算两个static arrival times:
- Tr(f)——从任意launch点到f的静态最长延迟。
- Trx(f)——排除false path锥中的paths,从任意launch点到f的静态最长延迟。
相似,一个故障位f,工具计算两个static propagation times:
- Tp(f)——从f到任意capture点的静态最长延迟。
- Tpx(f)——排除false path锥中的paths。从f到任意capture点的静态最常延迟。
这篇关于Slack Calculation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!