STA:脉冲宽度检查(min pulse width check)

发布时间:2025-12-10 11:24:08 浏览次数:4

min pulse width直译为“最小脉冲宽度”,脉冲宽度检查用来确保时序单元输入引脚的脉冲宽度满足最小要求。如果时钟引脚上的脉冲宽度小于指定的最小值,时钟可能没有正确的锁存数据。

1.约束方式

1)sdc 

set_min_pulse_width -low/-high 2.0 [get_clocks clk]

2)timing library

2.计算方法

脉冲宽度检查分为高电平和低电平脉冲宽度检查两部分。

1)高电平脉冲宽度检查

close edge clock latency - open edge clock latency - required pulse width(high) =

(时钟初始下降沿时间 + 下降沿到达clock pin的clock network latency + CPPR - uncertainty(hold) ) - (时钟初始上升沿时间 + 上升沿到达clock pin的clock network latency) - required pulse width(high) 

举例如下:

这里:

时钟源头起始下降时间=59 ns

时钟源头起始上升时间=0 ns

这里:

下降沿到达时序逻辑clock pin 的时间=1.77ns

上升沿到达时序逻辑clock pin 的时间=2.06ns

CPPR (clock reconvergence pessimism)=0.19ns

hold uncertainty=0.22ns

required pulse width(high)=0.12ns

所以高电平脉冲宽度检查的值为(59+1.77 +0.19 -0.22) - (0+2.06)-0.12=58.57

2)低电平脉冲宽度检查

open edge clock latency - close edge clock latency - required pulse width(low) =

(时钟周期 + 时钟初始上升沿时间 + 上升沿到达clock pin的clock network latency + CPPR - uncertainty(hold) ) - (时钟初始下降沿时间 + 下降沿到达clock pin的clock network latency) - required pulse width(low) 

举例如下:

这里时钟周期+初始上升沿时间,即为第二个周期上升沿时间,等于531ns。

下降沿到达时序逻辑clock pin 的时间=1.84ns

上升沿到达时序逻辑clock pin 的时间=1.74ns

CPPR (clock reconvergence pessimism)=0.18ns

hold uncertainty=0.22ns

required pulse width(high)=0.12ns

所以低电平脉冲宽度检查的值为(531+1.74+0.18 -0.22) - (295+1.84)-0.12=235.74

3.解决方法

针对clock path可以:

1)缩短clock path(换LVT,修transition,调整clock pin靠近clock root); 

2)换inverter长tree(成对的inverter上升时间与下降时间相互补偿)或者balance buffer(上升时间和下降时间几乎相等);

3)修crosstalk的Delta delay(主要的min pulse width问题来源就是crosstalk,Delta delay让一边latency更短,另一边更长)

4)用非对称cell 如normal buffer 来修只对high-pulse width或low-pulse witdh 一个方向的violation。

 

 

 

 

 

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477