网络课程《数字集成电路静态时序分析基础》的笔记
地址:https://www.iccollege.cn/portal/courseDetail/193.mooc
多周期半周期伪路径
多周期路径
通常对于普通路径来说,路径延迟是 T,但是某些情况下,中间延迟远远大于一个周期 T。
建立时间检查
多周期时序约束
一个简单的例子,对于多周期路径,建立时间检查边沿会推到第三个周期
多周期时序路径,launch path 和普通的没有区别
而 captured path 有些不一样,clock CLKM 的 incr 达到了 30,也就是三个周期。
保持时间检查
对于 hold 来说,如果按照默认的边沿,所需要保持的时间就会非常长,过于严格,通过下面的约束可以将保持时间检查边沿向前移动两个边沿。
保持时间报告
默认的话,clock CLKP 应该是 20(建立时间检查边沿前一个),由于设置了前面的约束,变成 0 了。
如果建立时间多周期约束了 N,而保持时间 N-1 没有设定,那么会发生什么?
时序路径就会变化,launch path 没有变化,主要是 capture path 变化了
clock CLKP 变成了 20,时序不满足。
半周期路径
普通路径的触发时钟边沿是一致的,对于一个是正边沿,一个时负边沿来说,就要使用到半周期路径约束
如果两个边沿不一样,中间组合逻辑的裕度实际上就会减少到半个周期。
建立时间检查
launch path 的 clock incr 会达到 6,而 capture path 的 clock incr 依然是整个时钟周期 12,于是中间裕度就只有半个周期了,6ns
保持时间检查
会看到 launch path 和 capture path 的起点不一样
半周期路径中保持时间很轻松就能满足。
伪路径
有些路径并不是真实的,或者说不可能发生的,那么就需要伪路径告诉工具不需要进行检查。
伪路径通常出现在异步时钟,跨时钟域中
伪路径可以让 STA 工具速度变快,将时间花在真实的路径中。但是如果过多的使用伪路径反而会减慢 STA 的速度。
伪路径约束的例子
伪路径定义应该尽可能定义得精确
第二个约束的数量过多,第一个直接指定时钟会更加快一些。
尽可能少使用 through,这也会增加计算量
必须确认是真的伪路径,例如多周期路径就不能被设定为伪路径。该分析的路径就应该施加准确的时序约束,只对真正的伪路径设定伪路径