( ESNUG 240 Item 7 ) ---------------------------------------------- [5/9/96]

From: Eric Ryherd <eric@vautomation.com>
Subject:  Sheep Dip! -- Synchronous Reset Thru An ALU Still Gives Xes!

Hi John,

I've run across another "FEATURE" of Synopsys that has landed me into a large
heap of Sheep DIP!  I have a design that has a number of registers that are
all fed by a simple ALU.  Rather than have all of the registers use an
asynchronous reset (at a cost of 1-2 gates per D FF), I simply have the ALU
perform the following operation:

                             0 "AND" X

And then load the resulting 0 in all of the registers by simply enabling all
of their clock enables.  Now, 0 "AND" X normally would produce 0 on any
output of the ALU.  After all, 0 "AND" *anything* should be 0, right?
-- well, *not* according to Synopsys!  I still get Xes out of my ALU!
Naturally when I try to run my gate-level simulation I never even get out of
reset!

From reading various SOLVIT, app notes and online docs, I see where I could
add the attribute sync_set_reset if there were some registers to attach it
to.  But since the block in question is purely combinitorial, what can I do?

(BTW: The code is in VHDL and I'm using V3.4a and targeting the CCL .6 um
CMOS library.)

  - Eric Ryherd
    VAutomation 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)