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