( ESNUG 371 Item 13 ) ------------------------------------------- [05/23/01]
Subject: ( ESNUG 368 #5 ) Bitten By The New high_fanout_net_threshold
> We encountered a poorly documented new variable in DC 2000.11 which is
> poised to cause you some pain. It's called high_fanout_net_threshold and
> is a new, potentially useful feature whereby nets over a certain fanout
> limit are considered to be clock trees which will be taken care of via
> clock tree synthesis. This provides a second strategy for the classic
> set_drive 0 approach to clock trees during synthesis. No attempt will be
> made to buffer these nets. It looks like this was thrown in last minute
> without the usual Synopsys QA process. Here are the problems:
>
> 1) No attempt to buffer the nets will be made, but timing arc involving
> these nets still are in the timing driven synthesis path groups, so
> DC will try for days to optimize nets which can't be buffered.
>
> 2) Variable does not exist in the distributed .synopsys_dc.setup file,
> therefore it is un-initialized.
>
> 3) Printvar thinks this variable does not exist.
>
> 4) Setting this variable to 0 causes the old operation, but it is not
> initialized and you can't check what its value is due to #3.
>
> 5) pipeline_design no longer tries to buffer stall signals even when this
> variable is set to zero. This may be a tangential issue, but is
> probably related to the implementation of this new feature.
>
> We now set high_fanout_net_threshold to 0. Personally, I think this
> variable was the wrong idea altogether.
>
> - Thomas Ayers
> Believe, Inc.
From: Scott Evans <scott@sonicsinc.com>
John,
I don't have much experience with this yet, but what I saw is that it is
actually initialized by dc_shell to be 1000 if you don't specify otherwise.
When I dug into which nets it was referring to, it turned out to be my
power and ground nets. I asked for an enhancement request to have the
program ignore such nets.
- Scott Evans
Sonics, Inc. Mountain View, CA
---- ---- ---- ---- ---- ---- ----
From: Tom Ayers <tomayers@believe.com>
Yes, Scott, it does have a non-zero value, but I do not think I found it
initialized in the global .synopsys_dc.setup file which is where it should
be found. It should also be defaulted to zero to exhibit the "old"
behaviour.
- Thomas Ayers
Believe, Inc.
---- ---- ---- ---- ---- ---- ----
From: Scott Evans <scott@sonicsinc.com>
I don't disagree with you, Tom. I believe there are a number of variables
which don't get initialized in the global .setup file but instead have
program defaults which are used instead. Definitely inconsistent.
- Scott Evans
Sonics, Inc. Mountain View, CA
---- ---- ---- ---- ---- ---- ----
From: Tom Ayers <tomayers@believe.com>
John,
In response to my post, Synopsys has been very supportive with this problem
and has confirmed the pipeline_design issue. STAR 119193 has been generated
to address that problem.
- Thomas Ayers
Believe, Inc.
|
|