DC综合如何修复high fanout
DC综合时怎样才能修复除了clock、reset以外信号的high——fanout,或者fix high fanout?
我在综合的时候已经设置了max_fanout、max_capacitance、max_transition、set idea network【clk、 reset】等, 比如设置了max_fanout为20,但是report某个信号high_fanout 位500,出现这种情况该怎么处理?
我之前好像看到过在Dc中fix high_fanout的命令,现在网络,而且设计中出现了类似的问题
在encounter中可以使用optDesign -drv进行优化,但是 不一定能满足,所以需要在dc综合的时候就fix某些信号的fanout。
感觉: hig_fanout_threshold、high_fanout_net_pin_capacitance不是干这活的命令,另外论坛里发的high_fanout synthesis好像只是把clock、reset等信号set ideal,并没有fix high fanout?
First it's necessary to understand how a net is classified as a high fanout net.
When the fanout of a net exceeds the limit set by the high_fanout_net_threshold
variable, the net is marked as high fanout. Note that in this case, fanout
refers to the actual number of connections to the load pins of the net and not
the fanout load, which is classically used in the set_max_fanout constraint.
The number of connections of a net can be obtained from the report_net command.
High fanout nets are not ideal or dont_touch by default.
Classification of a net as high fanout affects only the way in which total
pin capacitance is computed on the net. The pin capacitance on a high fanout
net is calculated using the threshold value and the value of the
high_fanout_net_pin_capacitance variable. This pin capacitance value is
then used for other purposes, such as evaluating max_capacitance violations
and net loading.
By default, Design Compiler fixes violations of DRC constraints such as
max_capacitance, max_fanout, and max_transition even on high fanout nets.
Note that even if a net is classified as high fanout, it can still be free
of max_fanout violations; similarly, a net can have max_fanout violations and
not be a high fanout net. This is so because the max_fanout constraint is
concerned with the sum of the fanout load of the load pins and not the actual
connections.
After max_fanout and max_capacitance violations have been fixed through
buffering, a net might no longer be a high fanout net.
A constant net or a clock net might also be (and most likely will be) a high
fanout net, but such nets are also marked "dr," in which case no DRC fixing
will be performed on them. On nets that are not marked "dr," it is best to
apply both set_dont_touch and set_ideal_net commands so that no optimization
is performed, thus saving runtime.