setup的裕量fix hold
加buffer不就好了,既然你setup margin大,
hold fix其实是个复杂问题,个人认为比setup更难修。尤其是到28nm以后。除了tools的capability,methodology更加重要
谢版大回复,设计中几个clock 特别的慢,setup met有10的裕量,所以hold比较难fix,有没有办法在icc中约束一下 ,不要这么好,如果met 1左右就ok了。
谢谢大神的回复设计中几个clock 特别的慢,setup met有10的裕量,所以hold比较难fix,有没有办法在icc中约束一下 ,不要这么好,如果met 1左右就ok了。
为啥不加buffer,既然你的setup margin这么大?
面积太紧了 占用率87% 比较难再插入buffer,我想让工具setup不需要opt那么好,留点空间重点fix hold
pt fix_eco_timing可以选method,你试试看让它多size,少insert。
在icc里面插buffer的话,delay最大的buffer尺寸应该是最小的,对area影响也最小
你可以写个proc先把大的hold vio用小buffer插一插
利用率很高的时候,hold fix是很累的,
要前面place就降下来, 或者用delay cell,holdmargin减小等,
再有:是real hold violation么?
谢版大,这倒是个办法,可以约束hold插入buffer的类型
谢版大,面积和形状压的很死,所有很痛苦。看了一下确实是同一个时钟域的,实在不行就用delay的cell fix hold看看
实验效果如下:用最小的buffer ,效果相对最好,不过跟工具自动opt 不设置 refer buffer ,效果差不多。单纯用最小的delay cel, 会引起更大的congestion,利用率会升高 很多
应该是我还没有掌握要领,无差别的插入buffer或者delay cell,怎么写这个proc让工具先fix 大的violation 。
哎, 老工艺的 低成本设计,往往让后端人员很痛苦,完全是area惹的祸,
哎 谁说不是呢
你用的是啥?icc?
对 我用的是icc
get_timing_path,你man一下这个命令,可以得到你想要的最坏的一些path,加以insert_buffer。
稍有复杂,你仔细看看man。
ok 谢谢
不知道你们有没有做swap vt, 如果setup margin大的话,可以用HVT 的cell
替换普通的cell
适当调整clock tree latency