( 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.



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)