( ESNUG 326 Item 4 ) ---------------------------------------------- [8/25/99]

From: Robert Wiegand <rwiegand@ensoniq.com>
Subject: A Workaround For The Design Compiler / DesignWare Wireload Bug

Hi John,

I've found that Design Compiler generated hierarchy (i.e. DesignWare) gets
the wrong wireload model.  I've run into this using 1998.98-1, but I checked
the problem with 1998.02-2 and 1999.05 and got the same results.

When using enclosed wireload models, generated DesignWare hierarchy gets
the wrong wireload.  If there is a default_wire_load attribute in the
library, that wireload is used.  If there is no default_wire_load attribute 
set, NO wireload is used.  The same behavior occurs regardless of the 
auto_wire_load_selection value.  I generally ungroup DesignWare hierarchy
into the design after the compile is finished, but I would like the
DesignWare to have the same  wireload as the parent design during the
compile.  This can be accompilshed using "top" instead of "enclosed" mode,
but if there are subdesigns under this block with different wireloads,
they will be forced to use the parent block wireload instead.

Before arriving at a workaround, I tried forcing the generated hierarchy
to exist before the compile using replace_synthetic or compile -no_map so I
could set the wireload before compiling.  The compile, however, generated
"_1" versions of the DesignWare designs, gave them the incorrect wireload
as described above, and threw out the "_0" versions with the correct
wireloads.

The workaround:

 /* create a new variable, current_wireload */

 current_wireload = [appropriate wireload for design]
 set_wire_load -library wireload_library -mode wireload_mode current_wireload

 /* wireload_library is the name of the library containing the wireload
    info, wireload_mode is the mode, enclosed in this case. */

 /* set the library default wireload to be current_wireload */

 supress_errors = supress_errors + {UID-101}
 get_attribute wireload_library default_wire_load

 if (dc_shell_status) {
    set_attribute wireload_library default_wire_load current_wireload
 } else {
    set_attribute wireload_library default_wire_load current_wireload -type string
 }

 supress_errors = supress_errors - {UID-101}

Any compile generated hierarchy now takes on the default_wire_load that
matches the parent design.

    - Bob B. Wiegand
      Ensoniq Corp.                               Malvern,PA



 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)