关于set_max_fanout的准确理解和说明
很多人不能理解为什么set_max_fanout命令为什么是约束 input ports的而不是output,原因如下:
ug中关于该命令的更详细的说明如下:
... compile attempts to ensure that the sum of the fanout_load attributes for input pins on nets
driven by the specified ports or all nets in the specified design is less than the
given value.
也就是说set_max_fanout约束了 由 input port 驱动的net(以及design内部所有nets)上所有相连
的input pin的fanout_load值的总和,而该fanout_load值由lib库中的default_fanout_load定义,这个值一般都为“1”。
由此大家可以简单理解为set_max_fanout约束了某条net上驱动的所有cell的个数的总和,而这条net可以由input port驱动,
也可以使内部的任何一条net;
这也是为什么set_max_fanout命令不是用来约束output ports,因为一个输出端口可能会连有很多条net;
而DC是根据net单独进行分析的;
output port的约束使用set_fanout_load命令来约束的,现在一般用set_load命令代替;
注意这里set_fanout_load和lib库中default_fanout_load的值是没有关系的;
不知道这次解释清楚了没有,有兴趣的可以站内进行交流
这个是好贴。
向小编学习
学习了,太需要这样的技术贴了!
这个真的受教 谢谢 !
mark~
good ,学习了,现在就明白了,开始一直不明白为什么是针对input port的
学习了~谢谢LZ分享经验
doony, 感谢你精彩的讲解。
引导我思考DC为什么要这么做,一下是我的想法,但是暂时还不成形。希望与大家讨论。
某条路径的驱动能力与路径起点及路径中途输入点的负载相关(参见Neil),而chip_level或block_level设计包含很多path,因此有很多路径起点负载却不存在路径中途输入点负载,因而窃以为set_max_fanout就是用于约束总的路径起点负载(也许也考虑到了路径中途输入点负载),这与ug基本相符:“the sum of the fanout_load attributes for input pinson
nets
driven by the specified ports
or all nets in the specified design is less thanthe
given value.”。其中的“the sum of the fanout_load attributes for input pinson
nets
driven by the specified ports”即路径起点负载,但是“or all nets in the specified design”又是指什么呢?是不是因为某条路径的驱动能力与路径中途输入点负载相关,因而DC通过某种算法将这部分负载等效为“all nets in the specified design”?
但是Advanced Asic Chip Synthesis Second Edition的Chapter 6.1.1 Page 107却这样写的:
dc_shell-t > set_max_fanout 3.0 [all_outputs]
他写错了吗?
不知道可不可以理解成set_max_fanout是前级的最大扇出对本级的影响哦,这样,就说明设置最大扇出是对input影响
首先,DC中的input port不仅指输入端口,而且包括所有的寄存器输出端;也就是任意一条timing path的起点。
output port也不仅指输出端,而且包括寄存器输入端,也就是一条timing path的末端。
fanout的概念是一个输出电容(包括所有负载电容)与输入电容之比。
当fanout值太大时,信号的翻转延时将变得很大,可能导致timing不满足。
我认为是,因为fanout的值越大,那么后面线越长,线上负载电容越大。这样transition time 过大。
工艺库里好像有根据fanout的值,估算后面连线的长度。
顶啊……………………
Good article
形象!了解了
讲得还行吧,还算是讲明白了。
一般都是fanout和load分开设置的
good 也明白一下啦,哈哈
dingdingdingdng
學習了~非常感謝
学习了 谢谢小编~
嗯,受教了
how mucj so do I,
强帖呀,
goood
向小编学习
一直有这样的疑问
you dian che
非常好的帖子
请问set_max_fanout 设置的值 的单位是什么?
好像不是个数的意思吧?
