微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > clock gating 中的 latch 是否应该视为 clock tree leaf?

clock gating 中的 latch 是否应该视为 clock tree leaf?

时间:10-02 整理:3721RD 点击:

【对于 LATCH 和 AND 组成的 clock gating】
用于 clock gating 的 latch 是否应该视为 clock tree leaf?个人觉得既然挂在 clock 上的负载,自然要作为 leaf 考虑。不过最近看到有文章中提到说不把这些 latch 视为 leaf,为何呢?
而且,如果 latch 作为 leaf,and 不是 leaf,那么昨晚 CTS 之后,clock 信号到达 and 的时间就一定早于其到达 latch 的时间。latch 和 and 之间亦不会存在 skew 问题,也就不会有 glitch 从 and 输出。允许 CTS 穿越 Latch 就反而要注意 Latch 和 and 之间 clock skew 问题了。那么,究竟为何文档提到要穿越 Latch 呢?

不应该,不然时钟门控的路径会经常出现接收时钟比发射时钟还早到达的不可修的时序违例。最好将其设为throughpin或设个macromodel,来防止这种违例,再做时钟树平衡

Hi,songhao
能否详细解释一下:
”接收时钟比发射时钟还早到达的不可修的时序违例“

Hi,songhao
能否详细解释一下:
”接收时钟比发射时钟还早到达的不可修的时序违例“
这种时序违例又如何用 PT 检查?

对于离散icg (latch+ and)这种和真正icg一样的,不属于clock tree leaf pin,
属于through pin,可以直接穿过的,即clock tree中间的一段,
clock可以穿过继续走,直到flop的ckpin 或者其他stop pin,
clock tree的时候只会穿过 该latch 去balance后面的stop pin,
离散icg容易造成毛刺信号,

Hi, icfb
请问 PT 中怎么来检查这个问题?

一样的啊 ,
离散icg cell的latch没有is_clock_gating_cell 这个属性 ,因此 pt不会自动检查clock gating check
要人为的设一下: set_clock_gating_check[get_cells***latch ]-setup 0.2 -hold 0.1
然后就能检查了

icfb 小编说的有理,我没有这个检查
从 Timing report 中看到,Clock 到达 Latch 的 EN 端时间为 1.0ns,Clock 到达 AND 的 A2 端时间为 0.9ns,也就是有 0.1ns 的 skew
用 set_clock_gating_check [get_cells*/*/*/latch* ]-setup 0.4 -hold 0.15 对 LATCH 的 EN 端 setup 和 hold 检查均满足要求。
那么这个 0.1ns 的 skew 会不会带来 Glitch?请 icfb 再分析一步。

上面的 0.1ns skew 就是把 latch 作为 clock tree 的 stop pin 带来的。
可是在满足了 set_clock_gating_check 检查之后,还会不会导致 Glitch 呢?或者是没有 Glitch,但导致其他问题呢?有点晕

学习了!

我没在线刚才,小编说得相当详细,我也学习了

从 PT 的报告看,clock gating check 根据设置的值把 AND 作为时序器件,检查 AND 的 setup 和 hold,以防止 Glitch 产生。而 LATCH 作为时序器件,其 setup 和 hold 会自动检查。不知道我的理解对不对?

学习了

根据 set_clock_gating_check 设置的值检查 LATCH 的 Q 端到 AND 的 setup 和 hold。report timing -trace_latch_borrow 可以看到 Latch 前后两条路径的报告。

牛啊, -trace_latch_borrow 还从没用过

问下小编,对于throughpin是工具制动的吗?还是需要在cts spec中具体设置?谢谢!

如果是 ICG,工具根据 lib 设置自动穿越;如果是 LATCH + AND,CTS 时要设置穿越。

正有此困惑,学习了

为什么是LATCH上做gate check呢?应该在其后的AND上才做gate check的!

a good question

对于离散型clock gate, AND相当于是“Gate”,应该被thru

非integrated ICG时序检查是在AND的两个输入端,检查的是clk和latch后EN信号之间setup和hold检查。
其实就是检查AND门上的clk能不能和EN做与运算的时候没有glicth。
如果你用的latch是低电平transparent,那么一般容易满足hold slack为正(setup在离散ICG里面较容易满足)。
cts的时候为何要将clk穿过latch,我没太理解啊,小编。

学习了

学习了

mark 一下

谢谢分享 学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top