Dcug 5
Dcug 5
10
5
Working With Libraries
Specifying Libraries
Loading Libraries
Listing Libraries
Saving Libraries
HOME
CONTENTS
INDEX
5-1
v1999.10
Physical restrictions
Power restrictions
Packaging restrictions
Clock-tree implementation
Floorplanning
Back-annotation support
Available cores
Technology libraries
Symbol libraries
DesignWare libraries
HOME
CONTENTS
INDEX
5-2
v1999.10
Technology Libraries
Technology libraries contain information about the characteristics and
functions of each cell provided in a semiconductor vendors library.
Semiconductor vendors maintain and distribute the technology
libraries.
Cell characteristics include information such as cell names, pin
names, area, delay times, and pin loading. The technology library
also defines the conditions that must be met for a functional design
(for example, the maximum transition time for nets). These conditions
are called design rule constraints.
In addition to cell information and design rule constraints, technology
libraries specify the operating conditions and wire load models
specific to that technology.
Design Compiler requires the technology libraries to be in .db format.
In most cases, your semiconductor vendor provides you .db format
libraries. If you are provided only with library source code, see the
Library Compiler documentation for information about generating
technology libraries.
Design Compiler uses technology libraries to
HOME
CONTENTS
INDEX
5-3
v1999.10
Symbol Libraries
Symbol libraries contain definitions of the graphic symbols that
represent library cells in the design schematics. Semiconductor
vendors maintain and distribute the symbol libraries.
HOME
CONTENTS
INDEX
5-4
v1999.10
DesignWare Libraries
A DesignWare library is a collection of reusable circuit-design building
blocks (components) that are tightly integrated into the Synopsys
synthesis environment.
DesignWare components that implement many of the built-in HDL
operators are provided by Synopsys. These operators include +, -, *,
<, >, <=, >=, and the operations defined by if and case statements.
Additional DesignWare libraries can be developed by users at their
sites by using DesignWare Developer, or they can be licensed from
Synopsys or from third parties. To use licensed DesignWare
components, you need a license key.
HOME
CONTENTS
INDEX
5-5
v1999.10
Specifying Libraries
You use dc_shell variables to specify the libraries used by Design
Compiler. Table 5-1 lists the variables for each library type as well as
the typical file extension for the library.
Variable
Default Value
File
Extension
Target Library
target_library
{your_library.db}
.db
Link Library
link_library
{*, your_library.db}
.db
Symbol Library
symbol_library
{your_library.sdb}
.sdb
DesignWare Library
synthetic_library,
{}
.sldb
HOME
CONTENTS
INDEX
5-6
v1999.10
Design Compiler uses the my_lib.db file found in the lib directory,
because it encounters the lib directory first.
You can use the which command to see which library file Design
Compiler finds (in order).
dc_shell> which my_lib.db
{"/usr/lib/my_lib.db", "/usr/vhdl/my_lib.db"}
HOME
CONTENTS
INDEX
5-7
v1999.10
Loading Libraries
Design Compiler uses binary libraries (.db format for technology
libraries and .sdb format for symbol libraries), and automatically loads
these libraries when needed.
If your library is not in the appropriate binary format, use the
read_lib command to compile the library source. The read_lib
command requires a Library-Compiler license.
To manually load a binary library, use the read command.
dc_shell> read my_lib.db
dc_shell> read my_lib.sdb
HOME
CONTENTS
INDEX
5-8
v1999.10
Listing Libraries
Design Compiler refers to a library loaded in memory by its name.
The library statement in the library source defines the library name.
To list the names of the libraries loaded in memory, use the
list_libs command.
dc_shell> list_libs
my_lib
my_symbol_lib
1
To list the path and file name information along with the names, use
the list -libraries command (dcsh mode only).
dc_shell> list -libraries
Library
File
---------my_lib
my_lib.db
my_symbol_lib
my_lib.sdb
Path
---/synopsys/libraries
/synopsys/libraries
Library units
Operating conditions
HOME
CONTENTS
INDEX
5-9
v1999.10
file:
The file name of a technology library followed by a colon ( : ). If
you have multiple libraries loaded in memory with the same name,
you must specify the file name.
library/
The name of a library in memory, followed by a slash ( / ).
cell
The name of a library cell.
/pin
The name of a cells pin.
For example, to set the dont_use attribute on the AND4 cell in the
my_lib library, enter
dc_shell> set_dont_use my_lib/AND4
HOME
CONTENTS
INDEX
5-10
v1999.10
HOME
CONTENTS
INDEX
5-11
v1999.10
You do not normally need to set the preferred attribute as part of your
regular compile methodology because the library analysis step
determines a good starting cell automatically.
Because nonpreferred gates can be chosen to meet optimization
constraints, the effect of preferred attributes might not be noticeable
after optimization.
For example, to set a preference for the low-drive inverter INV_LD,
enter
dc_shell> set_prefer MY_LIB/INV_LD
Performing set_prefer on library cell MY_LIB/INV_LD.
1
HOME
CONTENTS
INDEX
5-12
v1999.10
Use the -min option if you want Design Compiler to prefer fewer (but
larger area) buffers or inverters when fixing hold-time violations.
Normally, Design Compiler gives preference to smaller cell area over
the number of cells used in a chain of buffers or inverters. You can
change this preference by using the -min option, which tells Design
Compiler to minimize the number of buffers or inverters by using larger
area cells.
For example, to set a hold_preferred attribute for the inverter IV,
enter
dc_shell> set_prefer -min class/IV
Performing set_prefer on library cell class/IV.
1
HOME
CONTENTS
INDEX
5-13
v1999.10
Saving Libraries
The write_lib command saves (writes to disk) a compiled library
in Synopsys database, EDIF, or VHDL format.
HOME
CONTENTS
INDEX
5-14