clock tree global skew太大
可选cell中实现0.2的skew应该是没有问题的,什么原因会导致工具不再优化,
有什么办法能实现更好的结果吗?
不是一般看local skew吗 global skew对timing没影响。你可以报出来最大的skew的那两条net,看什么原因,是clock exception 没设置好,还是你的fp没做好,你可以把每个clk doman 每一个level分别在layout里显示出来看一下。还有cts柱状图 clock schematic都分析一下。
可以尝试Debug下CTS tree
sinks 的位置越集中越好,max_transition max_cap的设置也会影响skew,还有尽量选择clk inv去做tree,不要用buf,如果能用lvt的inv最好,另外就是一些exclude pin和float pin的设置,这就depends on case了,而且如果实际的skew大于target_skew ,那target_skew 设置就没有意义了
local skew也很大,检查几条clock tree的report,都没发现问题,
很奇怪,为什么工具不优化,而且比较长的clock tree上很多CTO放入的cell
我已经把debug mode打开了,但是打印的信息太大了,不知道从哪下手
出问题的时钟比较大,芯片很大一部分用的都是这个clock,exception现在还没加,还没有分析timing,想先把clock做好再调timing
现在skew太大,修hold时芯片利用率变化很大,clock tree不做好分析timing意义也不大
你好
是不是因为 clock latency 约束得太紧了?
看看local skew 为什么做的大了,是setup有问题,还是约束太紧,或者有ocv等等~
时钟树skew太大,根据你的描述应该是多时钟域design,那么原因总的来说有两个方面:
1. fp的原因:比如某些sinks被block住,中间很长一段无法加buffer;
2. 如果排除fp的原因,那么很大可能是时钟之间的相互干扰,举例有两个master clk1, clk2,clk1有一个generated clock,那么分频器对于clk1来说是non-stop pin,如果这个分频器同时也在clk2时钟树下面,它将作为clk2的stop pin,这种矛盾工具是无法处理好的,经常导致很大的skew。
实验是否这种原因导致的方法:可以单做clk1的时钟树,看skew是否好很多,如果是,则大概可以判断是时钟间的相互干扰了。
解决办法:把default exception写出来,找出non-stop pin的点,apply到所有的时钟树上。
赞同,建议很好!
感觉只要把design的clock tree structure理清了,一般这些问题都好解决了。顺带也要和前端确认哪些clock是否异步,是否需要inter balance
工具优化不下去很可能是时钟结构的问题,检查下你的时钟树细节, 另外看下一些contraint下的是否合适