ports, design, connected, specified
在DC 的ug中说“the tool ensures the total loads connected to the input ports is small enough to keep the fanout no more the maximu value;”
很多人不能理解为什么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的值是没有关系的;
在DC 的ug中说“the tool ensures the total loads connected to the input ports is small enough to keep the fanout no more the maximu value;”
很多人不能理解为什么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的值是没有关系的;