微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 修不掉max_fanout违例怎么办?

修不掉max_fanout违例怎么办?

时间:10-02 整理:3721RD 点击:
本人在做后端过程中,始终存在max_fanout违例怎么办?
DC约束如下:
set_max_fanout 20 [current_design]

布局布线后如下:
+----------------+-------------------------------+------------------+
||Real|Total|
|DRVs+------------------+------------+------------------|
||Nr nets(terms)| Worst Vio|Nr nets(terms)|
+----------------+------------------+------------+------------------+
|max_cap|0 (0)|0.000|0 (0)|
|max_tran|0 (0)|0.000|0 (0)|
|max_fanout|0 (0)|0|317 (317)|
+----------------+------------------+------------+------------------+

用pt读入spef文件后如下:
ConstraintCost
-----------------------------------------------------
max_delay/setup0.00(MET)
min_delay/hold0.00(MET)
sequential_clock_pulse_width0.00(MET)
min_period0.00(MET)
max_capacitance0.00(MET)
max_fanout11750.00(VIOLATED)

分析报告可知大概有百余条违例信息,最大的违例为-120;这些违例均出现在在时钟线上!
请问该如何把这些违例优化掉?encounter中优化了几次,十分顽固。不过所幸后仿正确。
多谢各位了

setOptMode -fixFanoutLoad true -fixDRC true
optDesign -drv

多谢小编,尝试了
optDesign -preCTS -drv
optDesign -postCTS -drv
optDesign -postRoute -drv
但是还是修不掉,请问是什么原因造成的啊?

在clock.ctstch中的每个时钟下加一条 : MaxFanout18然后在做CTS
这些是dont_touch属性的,工具优化时序的时候是不会优化它的

应该是CTS的过程中没有修掉这些在时钟路径上的max fanout
在ctstch文件中要加上maxfanout value。
如果还有drv为例,最好在pt中把这个violation报告的完整点,看看是什么原因。我记得pt可以报告出很详细的violation报告,可以看线网的cap等。看看有没有不合理的地方。

是否为clock net 或者 dont_touch net

如果都是clock上的,感觉像是CTS没做好,看看你的max density多少,当前design的density多少;还有就是在CTS时加上fanout的约束,再看看你的clock net的属性是否是dont touch。

多谢啊,我用了您的方法,很有效果,只不过还有117个违例修不掉,但是也就是-3或者-2的样子。

密度百分之九十三左右吧。

你查一下你的max_density设的多少,针对你的93%,可能你的max_density要设95%。如果设的太小,工具是不会给你好好做CTS的,就会导致很多max fanout问题


"你查一下你的max_density设的多少,针对你的93%,可能你的max_density要设95%。如果设的太小,工具是不会给你好好做CTS的,就会导致很多max fanout问题"
==>请教max_density怎样影响工具做CTS的?是您测试得出的结论还是有资料提到?谢谢指点,感激不尽!

请问您提到的max_density是指什么意思?还请指教!

max density就是说你所约束的最大的density是多少,如果设的值不恰当,比如说你现在的density为93%,你在CTS之前设置density为90%,这样工具是不会给你很好的做CTS的,就可能会导致很多的transition问题。我忘记encounter或者icc默认的值是多少了~

请问在ICC中使用什么命令可以约束max_density?
有相关DOC说明关于max_density的概念吗?孤陋寡闻,还请指教!

encounter里面有的,setPlaceMode-maxDensitysetOptMode -maxDensity

谢谢指点!

多谢指点啊!

set placer_max_cell_density_threshold 0.65

请教陈版,clock上的fanout一般不是都会比普通的signal设定的大一些么?这个是对还是不对呢,有什么原理在里面呢?

一般会大些,因为clk buf/inv的驱动比较大,wire有时是倍宽的



多谢小编指点!
刚刚看了一下ICC manual,自己理解是这个desity的设定值与utilization相关,Manual上是说假设你的utilization是
0.4,那么density设为0.4-1之间比较好。
对于这一点,我不太理解这个值的设定是如何影响整个design?Flow中哪些步骤受这个设定的影响?
这个值设定是使得ICC中place的cell不至于太紧也不至于太松吗?请指教,感激不尽!

这个值决定了place后的单元密度
所有调用corase place的命令都会被它影响,比如create_placement 和 place_opt

这个maxdensity 是个全局变量吧,尽管place设置的是93% 但实际上一般不会有那么高 一般是70%左右,在做CTS的时候还是设置max density 为93% 应该也不影响CTS的优化吧。

请问一下ICC中对应的修fanout violation的命令是什么啊?谢谢。

小编 ,对于clock和 dont touch 来说的话 有违反是应该修掉呢 还是放下可以不管?如果是要修掉的 clock上面的违反 手修 还是有别的方法去做希望小编能给解答,谢谢

小编 ,对于clock和 dont touch 来说的话 有违反是应该修掉呢 还是放下可以不管?如果是要修掉的 clock上面的违反 手修 还是有别的方法去做希望小编能给解答,谢谢

小编 ,对于clock和 dont touch 来说的话 有违反是应该修掉呢 还是放下可以不管?如果是要修掉的 clock上面的违反 手修 还是有别的方法去做希望小编能给解答,谢谢

clock net 出现 dont touch如何去掉?

这样是不是要分开设置,对clock 设置max fanout,对一般的signal设置另一个max fanout ?

xuexile

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

网站地图

Top