这章节介绍了一些特别的STA分析:时间借用(time borrowing),时钟门控(clock gating),非时序检查(non-sequential timing checks)。此外,先进的STA概念如片上变化(on chip variation),统计时序(statistical timing),时序和功耗之间的折中平衡(trade off between timing and power)。
目录
寄生参数互连角(parasictic interconnect corners)
多模式多角分析(Multi Mode Multi Corner Analysis)
10.5 时钟门控检查
如果一个门控信号,可以控制逻辑单元时钟信号的路径,此时有时钟门控检查。如下图。逻辑单元中,连接到时钟的引脚称为时钟引脚(clock pin),门控信号连接到的引脚称为门控引脚(gating pin)。时钟门控发生的单元也称为门控单元。

条件:
1. 门控单元时钟的使用必须要作为下游时钟(downstream)。这一条件要求经过门控单元的时钟信号必须在后续电路中仍然作为时钟信号使用。如果该时钟信号在门控单元之后没有继续作为时钟,那么就没有必要进行时钟门控检查,因为没有时钟信号在后续电路中影响工作。因此,时钟门控检查只对那些在门控单元后继续驱动其他模块的时钟有效。下游的时钟使用方式可以是:
- 触发器时钟:时钟信号驱动触发器或寄存器;
- 扩展到输出端口:时钟信号通过门控单元传递并影响电路的输出;
- 生成时钟:门控单元的输出作为其他时钟生成模块的时钟源。
2. 时钟门控单元的门控信号引脚上的信号不应是时钟信号。如果该信号是时钟信号,那么该时钟信号不应在下游被再次用作时钟。
在通常情况下,时钟信号以及门控信号无需连接到一个单独的逻辑单元,比如说与门、或门,但是可以是任意逻辑块的输入。这情况下,检查的时钟引脚、门控引脚,必须扇出到共同的输出引脚(可能经过一些逻辑,比如都连到一个与门的输入,然后得到输出)。
有两种时钟门控检查:
- 高电平有效时钟门控检查:门控单元中有与门、与非门
- 低电平有效时钟门控检查:门控单元中有或门、或非门
"Active-high" 和 "Active-low" 指的是门控信号的逻辑状态,这些状态用于激活门控单元输出的时钟信号。如果门控单元是一个复杂的功能单元,且其门控关系不明显(例如多路复用器或异或门单元),那么STA的输出通常会提供一个警告,提示未推断出时钟门控检查。然而,可以通过显式地使用 set_clock_gating_check 命令为门控单元指定时钟门控关系来改变这一情况。在这种情况下,如果 set_clock_gating_check 指定的时钟门控关系与门控单元的功能不一致,STA通常会提供警告。我们将在本节后面展示此类命令的示例。
如前所述,时钟只能作为门控信号,前提是它在下游没有被用作时钟。考虑下图中的示例。由于 CLKA 衍生的时钟定义,CLKB 在下游没有被用作时钟 —— CLKB 的路径被衍生时钟的定义所阻塞。因此,对于与门单元,时钟 CLKA 会推断出时钟门控检查。

高电平有效的时钟门控检查
这项检查在与门、与非门处发生,如下图所示。门控单元的引脚B是时钟信号,引脚A是门控信号。假设AB时钟有着同样的波形。
create_clock -name CLKA -period 10 -waveform {0 5} \
[get_ports CLKA]
create_clock -name CLKB -period 10 -waveform {0 5} \
[get_ports CLKB]

由于是与门,UAND0门控引脚A的高电平打开了门控单元,允许时钟信号传播。时钟门控检查的目的是验证门控引脚的转换不会为输出时钟引起一个有效的边缘(如果引起了一个有效的边缘就会对后一级的触发器造成影响)。对于正边沿触发的逻辑,这意味着门控信号的上升沿应该发生在时钟的时钟低电平。类似地,对于负边沿触发的逻辑,门控信号的下降沿应该仅发生在时钟低电平时。如果时钟同时驱动正边沿和负边沿触发的触发器,那么门控信号的任何转换(无论是上升沿还是下降沿)必须只发生在时钟为低电平时。下图展示了一个门控信号在激活边缘期间的转换例子,这种转换需要被延迟以通过时钟门控检查。

下面是时序检查报告:


注意到Endpoint显示出他是一个时钟门控检查。此外,这条路径在clock_gating_default 路径组中。这个检查验证了门控信号在CLKB10ns处正边沿到来之前就已经发生了改变。
高电平有效时钟门控保持检查,要求在时钟信号的负边沿之后,门控信号才能发生改变。下面是保持时间报告。

保持时间门控检查违例。因为门控信号变的太快,在CLKB在5ns的下降沿到来之前就已经发生了变化,如果在 UDFF0/Q 和 UAND0/A1 引脚之间增加了 5ns 的延迟,那么时钟门控的建立和保持检查都将通过,这验证了门控信号只在指定的时间窗口内发生变化。
可以看出,保持时间要求相当大。这是由于门控信号的极性与被门控的触发器相同所导致的。这个问题可以通过使用不同类型的启动触发器来解决,比如使用负边沿触发的触发器来生成门控信号。此时由于与门A2的输入引脚为低电平,就算是A1得到了UFF0捕获的数据为1,也不会引起与门输出由0-1的变化,从而不会对UFF1这个正边沿触发的触发器造成影响。接下来将展示一个这样的例子。下图中,触发器 UFF0 由时钟 CLKA 的负边沿控制。安全的时钟门控意味着触发器 UFF0 的输出必须在门控时钟的非激活部分发生变化,即在 5ns 到 10ns 之间。

与描述相符的波形,如下图所示。

建立时间的时序报告如下:


下面是保持时间时序报告

最低0.47元/天 解锁文章
9040

被折叠的 条评论
为什么被折叠?



