Design hierarchy in Cadence IC (Virtuoso)

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:

bottom-up design approch, from the transistor level a blocks poi riutilizzati e cosi' via in un disegno gerarchico


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

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

Cosa fondamentale, dal punto di vista UNIX sono UNIX directories

http://www.ece.rice.edu/~cavallar/cadence/tutorial/library.html

File → New → Category …

Show categories

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.

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.

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

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

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!



Last update: Luca Pacher - Apr 23, 2013