后端流程,到底什么时候使用useful skew呢?
最后出来的时序结果,会好很多。
可是主管不让我们用,说到时钟树的时候再用。
我有一点就不明白了。
如果是为了在布局后,得到比较好的时序,为什么不让我利用useful skew呢?
利用后,会对时钟树造成什么影响呢?
或者,到底应该在哪个步骤用useful skew呢?
请有经验的朋友,指点我一下,谢谢。
useful skew 的副作用很大, 通常经典的时序分析优化方法 都是在 data path上修的,
useful skew是调整各个sync point的 clock tree latency 值, 这个 有一定的风险,
因为很多点既是 worst startpoint ,又是 worst endpoint,
如果slack掌握的不好,容易造成顾此失彼的结果,而且对clock gating很不利,
因此 useful skew 通常是最后一招用的,
学习了,谢谢楼上的分享!
多谢2楼的朋友。
受教了。
我目前遇到的情况是这样的。
我目前的布局,未使用useful skew,最大slack是-0.052
使用useful skew后,就能达到正值。
我是应该,现在用了useful skew 然后继续做power和时钟树。
还是先往下做,做到时钟树的时候,再设置useful skew的选项呢?
useful skew 就是在cts的时候用, 你是Astro么,
在cts的时候设置useful skew就行了吧,icc 有另外的设置,
比如设置某些pin 为float pin, clock tree delay值不一样而已
总体来说,只要最后的timing 没有问题,useful skew就可以使用的,
学习了赫赫
谢谢ICFB,我明白了。
我用的是ENCOUNTER。
现在还在布局阶段,布局后。
进行预布线和时序分析,也可以使用useful skew。
现在关键路径上线延迟比例很低了,BUFFER也只插了1级。
纯逻辑就有23级。
SRAM也拆成小的了。
主管坚持让我想办法,把最后-50Ps,在布局阶段消灭掉。
ICFB前辈,您能否建议下,我还能从什么地方下手呢?
在place的时候加margin啊, 比如set_clock_uncertainty 0.2[all_clocks ]
就是让place做得悲观些, 这样后面的日子就好过,
或者调整floorplan,group_path XXXX ,
23级不算多, 你什么工艺的,
你的data path上只有一个buffer,那么可以这样说,在Floorplan阶段你已经最大程度上解决了floorplan的问题。
从你提到的信息来说,你那个主管不想让你们去做ECO。
现在的解决方法如下:
1. 让前端换不公的综合工具去综合,如果是用DC 那么就改用RTL Compiler来试试。
2. 试试在综合阶段+MARGIN去综合。
3. 在Placement阶段用ICC来做Placement, Encounter做Placement比较烂。
4. 换不同的工具来做CTS,建议你用ICC来试试。
5.用ICC来试试Cts之后,跟Routing之后的Optimization。
6. 只要WNS在100ps以下,通过ECO的方式都应该很好Close Timing。
7. 分析一下OCV的影响大不大,如果大的话,考虑能否将Clock Treee做短,或者说共同的部分做长。
8. 老板让不让用LVT的cell,如果让用,那么就用LVT。
9. 你那个主管是个SB。
谢谢,8楼和9楼的前辈。
你们的建议对偶非常有用。
我回去再尝试一下。
我做的是服务器用CPU的Core设计,工艺是45nm的。
1.margin的方法我尝试过,也是加的0.2。想把工具的潜力逼出来。
所以到目前的结果。
2.那个group path的方法,我向身边的前辈请教后,
我按着建议设置了一下,好像效果不大。
可能是我没理解group path的精髓。
如果哪位前辈,对设置group path的原理比较熟悉,或者有相关资料,请指点我一下哦。
3.工具这块,我们这里没买ICC,不过MAGAM的TALUS倒是有。
不知道哪位前辈知道,这个工具的FP的效果如何?
4.ECO的方法,我还没用过,我回去用心研究一下。好像应该是很重要的方法。
其它的,我先尝试去咯,都是我没想到过的方法:)
小弟再次感谢各位前辈的指点。
talus 系列对timing 收敛还是比较强的,
-50ps的violation 不算大了, 很轻微, 最后size_cell ,或者换lvt,
group_path 是把最差的timing group(你要自己分析) 做成group, 在icc里面用的多
不知道magma有否,
用magma的工具,而后端已经到45nm的,猜测一下,你可能是MTK的。
Nvidia的话,他们不缺少工具。
第9点是亮点,哈哈。
我明白了,谢谢楼上的朋友。
我回去就再用GROUP path 再试试。
encounter 也支持的。
学习了。
西西志华
考虑一下布局是否合理 不能什么都交给工具做 添你麻痹验证码啊
skew 一般地说是对设计有害的,useful skew就是skew对设计有利的部分。如果两级DFF之间组合逻辑延时太大导致违例0.5ns时,可以利用时钟路径上的延迟,使得到达后级DFF的CK端比前级的晚0.5ns,这样就可以满足时序要求了。具体的你可以查看做完CTS后的时序报告你就明白了。
所以,useful skew能使时序情况变好,可是这很危险,要在最后采用,至少要在CTS之后。
西西!你是要闹哪样啊!
学习学习
50ps有什么好搞的, 留到ECO做就行了, userful skew 尽管能够fix violation, 一是要考虑前后级的margin, 二也容易造成其他mode下的新的violation, 不到万不得已还是少用
好贴好贴
学习了
310114198704250036
useful skew 用float pin到底怎么设啊?为什么我设了没反应?求指教!谢谢!
问一下,我也是用的Encounter,但都是GUI,界面化的;如何在palce的时候添加 uncertainty呢,在哪里写呢?
多谢啦
Encounter的不了解,ICC的是设在clock uncertainty上
哦 难道Encounter要在时钟树文件.ctssh 中加?
写在SDC里吧
那 SDC 不是综合时候用到的吗 布局/Place的时候 还要用到 SDC 文件吗? 不用了吧就