Setting up ON's C5 PDK and Calibre in Cadence IC51 from
CMOSedu.com
It's assumed that C5_MSD_PDK.tar (circled below) was
downloaded from MOSIS or ON (formerly AMIS) to set Cadence up for the C5 process.
This page will discuss how to install the
PDK using the Bash shell.
If using the C shell see the
MSD_UserGuide.pdf downloaded, and seen, below.
The only file we'll use at this point is
the C5_MSD_PDK.tar file.
Extract (right click on the file) the
contents of the tar file to the Desktop (feel
free to use "Extract Here" and
then move the folder to the Desktop).
Rename this folder C5_PDK and move it to your home directory.
In your home directory open the .bashrc file (ensure that you can view hidden files) and add the following.
export SPECTRE_DEFAULTS=-E
export CDS_Netlisting_Mode=Analog
export CDS_LOAD_ENV=CWDElseHome
export AMIS=/home/bakerj/C5_PDK
export AMIS_DFII_DIR=/usr/cadence/IC5141
export CDS_SITE=$AMIS/tools/msd/current/site
export SIMRC=$AMIS/tools/msd/current/site/.simrc
export AMIS_MSD_PATH=$AMIS/tools/msd/current
The
highlighted portions should be changed to your home directory and the location
of your Cadence installation folder.
When finished, in a terminal window in your
home directory, type the command “. .bashrc” (period, space,
period bashrc)
to re-source the .bashrc file.
Using a text editor make a file called
cds.lib containing the following (the lines starting with "DEFINE"
seen below).
Since this PDK is mature the paths seen
below are likely correct. Take a moment to verify this assumption, that is,
verify
$AMIS/lib/amis500cx/physical/dfii/amis500cxatxx/Rev4.2 and the other paths are valid.
Save the cds.lib file in C5_PDK.
The cds.lib points to the Cadence and the
ON (aka AMIS) libraries.
DEFINE amisCommonLib
$AMIS/lib/tech_indep/physical/dfii/amisCommonLib/Rev1.5
DEFINE amisSheetLib
$AMIS/lib/tech_indep/physical/dfii/amisSheetLib/Rev4.0
DEFINE amis500cxakxx $AMIS/lib/amis500cx/physical/dfii/amis500cxakxx/Rev2.10
DEFINE amis500cxatxx $AMIS/lib/amis500cx/physical/dfii/amis500cxatxx/Rev4.2
DEFINE maskident $AMIS/lib/amis500cx/physical/dfii/maskident/Rev2.0
DEFINE analogLib $AMIS_DFII_DIR/tools.lnx86/dfII/etc/cdslib/artist/analogLib
DEFINE cdsSpice $AMIS_DFII_DIR/tools.lnx86/dfII/etc/cdslib/artist/cdsSpice
DEFINE functional $AMIS_DFII_DIR/tools.lnx86/dfII/etc/cdslib/artist/functional
DEFINE sbaLib $AMIS_DFII_DIR/tools.lnx86/dfII/etc/cdslib/artist/sbaLib
DEFINE basic $AMIS_DFII_DIR/tools.lnx86/dfII/etc/cdslib/basic
DEFINE sheets $AMIS_DFII_DIR/tools.lnx86/dfII/etc/cdslib/sheets/US_8ths
Next
save cdsinit to
C5_PDK (or save it to the desktop
and move it to this folder).
Rename
this file .cdsinit (add a period to the front of the
filename).
Again,
ensure that you can view hidden files
since adding the period will make this file a "hidden file."
Note that hidden files do not display on
your desktop.
They can, however, be viewed with the File
Browser via the Desktop icon (circled below).
We
won't run Cadence out of the C5_PDK library directory (important!)
Next
create a folder in your home directory called mydesign.
This
will be our design directory.
Copy
(DO NOT MOVE) the cds.lib and .cdsinit files in C5_PDK to mydesign as seen below.
We
copy cds.lib and .cdsinit so that if we want to
create another design directory at another point
in
time they will be available (unchanged), again, to copy from C5_PDK.
Open
a terminal and cd to mydesign.
Start
Cadence (in IC51 Cadence is started using "icfb").
Tutorials
covering the use of Cadence are found here.
Some
other random images that may be helpful.
Below
shows how we attach an existing technology when creating a library.
Below
shows how, in the ADE, we select Spectre for simulation, that is, Setup ->
Simulator/Directory/Host
And
below shows Setup -> Model Libraries for Spectre simulations (similar path
for other simulators).
Also
note that the model files end in *.scs.
The
sim will fail if you don't set the Section (e.g. typ, min, max). You'll get an error similar to the
following:
ERROR (SFE-675):
"/home/bakerj/C5_PDK/lib/amis500cx/tech/spectre/amis500cxakxx/Rev2.20/res-Default.scs"
6: Illegal library definition found in netlist
Help Printing/Plotting with Cadence is found here.
Configuring Calibre for DRCing and LVSing.
Copy the contents of calibre.txt to the bottom of the .cdsinit file in the design directory, e.g., mydesign.
Add the following line to the .bashrc file
export CALIBRE_METAL=TLM
where TLM indicates a "Triple Layer Metal" process.
When finished, in a terminal window in your
home directory, type the command “. .bashrc” (period, space,
period bashrc)
Create folders calibre_drc and calibre_lvs in your design directory.
Copy (DO NOT MOVE) drc.runset and drc.rf from ./C5_PDK/lib/amis500cx/tech/calibre/amis500cxakxx/Rev2.6 into ./mydesign/calibre_drc
Copy (DO NOT MOVE) lvs.runset and lvs.rf from ./C5_PDK/lib/amis500cx/tech/calibre/amis500cxakxx/Rev2.6 into ./mydesign/calibre_lvs
Using a text editor edit drc.runset (the one you just copied into calibre_drc) and replace
*drcRulesFile: ./drc.rf
with (replace highlighted portion with the path to your design directory)
*drcRulesFile: /home/bakerj/mydesign/calibre_drc/drc.rf
*drcRunDir: /home/bakerj/mydesign/calibre_drc
Also delete the following line from the drc.runset file
*cmnTemplate_RN: ../../layout/phyver/drc/%l
Again, using a text editor edit lvs.runset (the one you just copied into calibre_lvs) and replace
*cmnTemplate_RL: ./lvs.rf
*cmnTemplate_RN: ../../layout/phyver/lvs/%l
with (replace highlighted portion with the path to your design directory)
*cmnTemplate_RL: /home/bakerj/mydesign/calibre_lvs/lvs.rf
*cmnTemplate_RN: /home/bakerj/mydesign/calibre_lvs
Finally, again using a text editor open the lvs.rf file that you just copied to calibre_lvs.
Scroll to the bottom of this file until you see the following.
Change, as has already been done below, the word "current" to "Rev2.6" to ensure the correct path.
#IFDEF $PROJECT_BASE_DIR
INCLUDE "$PROJECT_BASE_DIR/lib/public/amis500cx/tech/calibre/amis500cxakxx/Rev2.6/Calibre_EXT_amis500cxakxx.rf"
#ELSE
#IFDEF $AMISPRJPATH
INCLUDE "$AMISPRJPATH/lib/public/amis500cx/tech/calibre/amis500cxakxx/Rev2.6/Calibre_EXT_amis500cxakxx.rf"
#ELSE
INCLUDE "$AMIS/lib/amis500cx/tech/calibre/amis500cxakxx/Rev2.6/Calibre_EXT_amis500cxakxx.rf"
#ENDIF
#ENDIF
Cadence should now be setup to run DRCs and LVSs using Calibre.
Let's verify this statement.
Open a terminal window and cd to mydesign. Start Cadence (icfb &).
Open a layout and verify that the Calibre menu item shows up as seen below.
Set the paths as seen below.
Next select inputs and then "Export from layout viewer" as seen below.
After hitting the "Run DRC" button the RVE window should pop up and report the DRC results.
Next "Run LVS" from the Calibre menu seen above.
Set the paths as seen below.
Next select "Inputs" and then "Export from layout viewer" as seen below.
After hitting the "Run LVS" button the RVE window should pop up and report the LVS results.