( ESNUG 343 Item 1 ) --------------------------------------------- [2/16/00]

Subject: ( ESNUG 342 #2 )  Bad "set_dont_touch_network", Clocks, & DC 99.10

> We found a bug in DC 99.10 where:
>
>    1) You clock on the negedge of the clock 
>    2) You have a constant as the data in to a flop
>    3) And your clock has set_dont_touch_network on it
>
> It would add buffers to the clock, even though you told DC to leave it
> alone.  The answer that came back from R&D at Synopsys was:
>
>      Get rid of the set_dont_touch_network on your clock.
>
> In DC 99.10 they started assuming an ideal clock; set_dont_touch_network
> was redundant.  They got rid of the set_dont_touch_network and the extra
> clock buffering went away.  We're still waiting to hear why we have
> dangling gates, but simplify_constants -boundary_optimization gets rid of
> them.
>
>     - Kayla Klingman
>       Tektronix, Inc.                                  Oregon


From: Gzim Derti <gderti@intrinsix.com>

John,

I want to thank Kayla for her observation on this issue.... I thought I was
going crazy!!!  I've been compiling some blocks for a customer for a few
months now and just recently I've noticed that since 99.10 that every once
in a while it would NOT correctly listen to my set_dont_touch_network on a
clock in a structural design....  The structural had 2 clocks, named CLK and
CLK32FC. The CLK32FC clock was correct while the CLK clock (redundant, I
know...) was BUFFERED!  BUT, when I compiled this structural manually, the
issue went away....  huh?

I've decided that using 99.10 is NOT worth the struggles that I'm having
with it...  In the past 3 months I've had 5 LOGID's opened with Support,
two of which reached STAR status...

Anyway, I just wanted to confirm that I've seen the same thing, John.

    - Gzim Derti
      Intrinsix Corp.                          Rochester, NY

         ----    ----    ----    ----    ----    ----   ----

From: [ A Little Bird ]

Hi John, anon please

We found this issue some months ago.  I filed a STAR for it and got a
workaround: compile_map_for_delay = true should avoid buffers in the clock
tree.  This happens only, if the data inputs of the FF's are connected to
logic 1 or logic 0.  Otherwise set_dont_touch_network is working.

    - [ A Little Bird ]



 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)