现在一个设计中需要用到clock gating,就是有一个module,在不需要用的时候将其clock disable。因为lib里面没有ICG cell,所以决定自己用DFF和AND来组合一个出来。所以准备在dc里面加一个约束set_clock_gaing_check,问题是setup跟hold的value到底如何取值?网上找到一个讨论这个问题的帖子(http://edabbs.com/viewthread.php?tid=123830&extra=page%3D31)。我仔细看了power compiler里面那一段(Page135~Page136),对于“2.From the value you estimate in step 1, add the worst-case (largest possible) clock low
time (typically half of the clock-cycle time).”非常不理解,为什么在latch-free的设计中要多加这半个clock cycle的值呢?如果我的gating cell里的DFF里面采用negetive edge,是不是就跟有latch的情况一样,只需要考虑一下CTS的buffer延时(1. Estimate the delay of the clock tree between the clock gate and the gated register)?
忘各位大神给小弟指点一二,多谢!