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