In the creation of ESNUG, I've received a lot of help from many individuals
   at Synopsys.  I guess this was something that not only the users have
   been wanting to see for a long time, but also the employees at Synopsys
   felt they should have created but didn't get around to doing.

   Nevertheless, Synopsys has set up (what I'm told) is an internal e-mail
   exploder that distributes ESNUG posts to the people inside the company
   including the very software designers who've written the code you're 
   using today!

   Also, they've said that they're going to send me the list of e-mail
   addresses of the engineers who went to this year's SNUG.  Right
   now we have a readership of over 500 people; this addition will
   make it even more! 
					-John Cooley

( Post 51 Item # 1 ) -------------------------------------------------------------

 [ Moderator's Note: This looks very similar to the bug in Post 48
   Item 1, but that didn't involve buses - this does. ]

From: Marco.Rubinstein@eua.ericsson.se (Marco.Rubinstein)

Hi!

I am working with ASICS at Ericsson Telecom and have encountered a problem
with verilog netlists from Synopsys 2.3. If the module port contains an
output bus which is reg declared further down in the code, the tool splits
up the output bus and renames the constituent bits. It then produces
assign statements to associate the output bus with the new bit names
e.g.

RTL code
=========

..........
output [7:0] ML_OUT;
..........

reg [7:0] ML_OUT;



Netlist
========

.........
output [7:0] ML_OUT;
.........

    assign ML_OUT[7] = ML_OUT_7;
    assign ML_OUT[6] = ML_OUT_6;
    assign ML_OUT[5] = ML_OUT_5;
    assign ML_OUT[4] = ML_OUT_4;
    assign ML_OUT[3] = ML_OUT_3;
    assign ML_OUT[2] = ML_OUT_2;
    assign ML_OUT[1] = ML_OUT_1;
    assign ML_OUT[0] = ML_OUT_0;
........



This does not happen if the output bus in not reg declared further down.
I think this is a bug since assign statements don't belong in netlists.
Does anyone know of a remedy?

I would hate to have to use dummy buses as an extra layer between the real
output bus and the internally produced constituent bits. It would quite
confuse some of the designers, and the rest of them would forget to do it.

/Marco

( Post 51 Item # 2 ) -----------------------------------------------------------

  CALL FOR DISCUSSION!   CALL FOR DISCUSSION!   CALL FOR DISCUSSION!

	A number of readers have been asking for the discussion
	of what others have done when compiling larger hierarchical
	designs.  Questions asked are:

	- What scripts have you found work well for large designs?

	- Are there ways to avoid getting into situations where you
	  find yourself in an endless loop of iterating through
	  recompiles, characterizings and such?

	- What gatecounts have you found that work best for submodule
	  size?  Where's the practical limit to when a design is too
	  big to not synopsize heirarchically?

	- How do you handle JTAP modules and scan architectures here?



 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)