Design hierarchy in Cadence IC (Virtuoso)
[ Home ] [ Design WorkBook ] [ Back to index ]
Contents
- Introduction
- Libraries
- The
cds.lib
file - Cells
- Cell views
- Using the Library Manager
- Creating a new library
- Creating a new cell
- Opening an existing cell
- Copying and deleting
- Managing libraries with the Library Path Editor
- Cadence default libraries
Keywords:
Introduction
bottom-up design approch, from the transistor level a blocks poi riutilizzati e cosi' via in un disegno gerarchico
Libraries
Standard Cadence libraries
tra cui la analogLib which contains ideal components such as
ideal R, L, C, both independent and controlled voltage/current sources
Technology libraries
provided by the process design kit (PDK)
Tipicamente ce ne sono diverse! la standard library con transistors, diodes,
capacitors, resistors etc. ma poi ci sono anche one ore more digital libraries
cosi' come chip-level structures such as input/output pads, power/ground pads
or electrostatic discharge (ESD) protections, guard rings etc.
User libraries
Tutte le altre custom libraries created by the user, che contengono instances
of both Cadence and PDk libraries
Cosa fondamentale, dal punto di vista UNIX sono UNIX directories
The cds.lib file
IMPORTANTE! Sarebbe cosa buona e giusta avere due cds.lib
distinti,
uno nella home con le librerie cadence e uno nella working directory
che include gli altri
# standard Cadence libraries INCLUDE $ID_DIR/../cds.lib # PDK libraries INCLUDE /path/to/technology/cds.lib # user libraries DEFINE libName /path/to/libName DEFINE ... ...
per convenzione le user libraries vanno in una lib
or libs
directory
in the working directory,
cd ~/scratch/<tech_dir> mkdir lib
Nel caso del tutorial una ~/scratch/tutorials
cosi' nel cds.lib sara' del tipo
DEFINE libName /export/eltxxxx/disk0/users/<username>/scratch/<tech_dir>/lib/libName
Cells
Cosa fondamentale, dal punto di vista UNIX sono UNIX directories
Organizing libraries with categories
http://www.ece.rice.edu/~cavallar/cadence/tutorial/library.html
File → New → Category …
Show categories
Cell views
schematic
symbol
layout
behavioral
extracted
si tratta della extracted netlist
Assura produce una cell view named av_extracted,
Calibre una cell view named calibre
abstract
Fondamentale se si lavora con standars cells released by a manufacturer as
analog or digital intelletual property (IP) blocks,
in pratica non vedo dentro come e' fatto il layout
ma solo i pin di collegamenti
adexl
advanced simulations such as corner analysis and Monte Carlo simulations
in Virtuoso ADE XL e gli stati sono salvati in a particular cell view of the type adexl
text
posso includere file plain text per la documentazione direttamente nella cella!
File ⇒ New ⇒ Cell View e poi scelgo come Type text
dal punto di vista UNIX sono UNIX directories anche queste messe in ./lib/libName/cellName/viewType
e.g. ./lib/libName/cellName/schematic
or ./lib/libName/cellName/layout
poi dentro questa directory ci sono specific Cadence files.
Using the Library Manager
Creating a new library
libraryName/cellName/cellviewName
Library Manager (LM)
types of libraries: Cadence libraries, technology libraries and user libraries
tools e' un link simbolico alla directory tools.lnx86
CIW ⇒ Tools ⇒ Library Manager…
LM ⇒ File ⇒ New ⇒ Library…
New File window
Technology File for New Libarary window
Do not need process information
Se invece si runna il tutorial attaccandosi alla 130 nm scegliere Attach to an existing technology library e poi selezionare cmrf8sf
Important! attach vs. referencing !!!
attach = static technology database
reference = incremental technology database (ITDB)
For example, if you have to add a custom via or routing constraint you must modify this main PDK which may cause problems for other users. An ITDB is more flexible because updates can be made directly to the ITDB without effecting the base PDK. You can also define multiple ITDBs which reference the same base PDK.
Creating a new cell
Opening an existing cell
Attenzione anche alle permissions! Io una cell la posso anche aprire da un collega ma solo in read-only mode ! (as a matter of fact a cell view is a UNIX file and follows standard UNIX files rules). Solo se e' nella mia local area la posso aprire in edit mode, pero' posso sempre fare una copia locale della cella
Copying and deleting
Per poter editare libraries and cells placed outside your local area (e.g. you want to use a building block implemented by a collegue) you have to make local copies of them perche' non si hanno UNIX write permissions quindi un
cp -r /path/to/libName ~/scratch/<tech_dir>/lib/libName
or
cp -r /path/to/cellName ~/scratch/<tech_dir>/lib/libName/cellName
Oppure uso il Library Manager, pero' la libreria che voglio copiare
deve essere nel cds.lib
perche' sia visibile
Managing libraries with the Library Path Editor
Solo per dire che il cds.lib
file lo posso editare anche via GUI
Cadence IC default libraries
Defined in the default cds.lib
file
$IC_DIR/tools/dfII/local/cds.lib
DEFINE analogLib $IC_DIR/tools/dfII/etc/cdslib/artist/analogLib DEFINE functional $IC_DIR/tools/dfII/etc/cdslib/artist/functional DEFINE sbaLib $IC_DIR/tools/dfII/etc/cdslib/artist/sbaLib DEFINE basic $IC_DIR/tools/dfII/etc/cdslib/basic DEFINE US_8ths $IC_DIR/tools/dfII/etc/cdslib/sheets/US_8ths -- DEFINE aExamples $IC_DIR/tools/dfII/samples/artist/aExamples DEFINE ahdlLib $IC_DIR/tools/dfII/samples/artist/ahdlLib DEFINE bmslib $IC_DIR/tools/dfII/samples/artist/bmslib DEFINE passiveLib $IC_DIR/tools/dfII/samples/artist/passiveLib DEFINE pllLib $IC_DIR/tools/dfII/samples/artist/pllLib DEFINE pllMMLib $IC_DIR/tools/dfII/samples/artist/pllMMLib DEFINE rfExamples $IC_DIR/tools/dfII/samples/artist/rfExamples DEFINE rfLib $IC_DIR/tools/dfII/samples/artist/rfLib DEFINE solutions $IC_DIR/tools/dfII/samples/artist/solutions DEFINE training $IC_DIR/tools/dfII/samples/artist/training -- DEFINE ieLib $IC_DIR/tools/dfII/samples/artist/mixSig/ieModels/ieLib DEFINE ieTest $IC_DIR/tools/dfII/samples/artist/mixSig/ieTest/ieTestLib -- DEFINE sample $IC_DIR/tools/dfII/samples/cdslib/sample DEFINE ISO_2_5mm $IC_DIR/tools/dfII/samples/cdslib/sheets/ISO_2_5mm DEFINE ISO_2mm $IC_DIR/tools/dfII/samples/cdslib/sheets/ISO_2mm DEFINE US_10ths $IC_DIR/tools/dfII/samples/cdslib/sheets/US_10ths DEFINE US_16ths $IC_DIR/tools/dfII/samples/cdslib/sheets/US_16ths DEFINE substrateLib $IC_DIR/share/sna/etc/cdslib/substrateLib DEFINE connectLib $INCISIVE_DIR/tools/affirma_ams/etc/connect_lib/connectLib -- -- DEFINE std $IC_DIR/tools/leapfrog/files/STD -- DEFINE ieee $IC_DIR/tools/leapfrog/files/IEEE -- DEFINE synergy $IC_DIR/tools/leapfrog/files/SYNERGY -- DEFINE xl $IC_DIR/tools/leapfrog/files/XL -- DEFINE valid $IC_DIR/tools/leapfrog/files/VALID -- DEFINE sim $IC_DIR/tools/leapfrog/files/SIM
Don't clutter your Library Manager with unused libraries!!! Include only necessary libraries indeed!