Readme for Cadence IC61 examples downloaded from CMOSedu.com

Cadence Version: IC61

Spectre (Cadence’s name for their SPICE) Version: MMSIM61

Design kit: ncsu-cdk-1.6.0 beta

1. Download the NCSU Cadence Design Kit (CDK) version 1.6.0 beta from http://www.eda.ncsu.edu/wiki/NCSU_CDK

2. To install the NCSU CDK:

- Extract the contents of ncsu-cdk-1.6.0.beta.tar.gz into your home directory, $HOME
- In your home directory open the .bashrc file (ensure you can view hidden files and assuming that you are using the Bash shell) and add the following lines

export SPECTRE_DEFAULTS=-E

export CDS_Netlisting_Mode=Analog

export CDS_LOAD_ENV=CWDElseHome

export CDK_DIR=$HOME/ncsu-cdk-1.6.0.beta

§ Note that only one CDK_DIR directory can be exported (not to be confused with CDS_DIR)

§ When finished, in a terminal window in your home directory, type the command “. .bashrc” (period, space, period bashrc) to re-source the .bashrc file

- Make a working directory in your home account called CMOSedu
- Copy everything in the directory $HOME/ncsu-cdk-1.6.0.beta/cdssetup into $HOME/CMOSedu
- In the working directory CMOSedu, rename cdsinit, simrc, and cdsenv to .cdsinit, .simrc, and .cdsenv (add a period)
- Finally, open the file cds.lib and add the following lines to point to the built-in Cadence libraries

DEFINE analogLib /share/apps/cadence/IC615/tools.lnx86/dfII/etc/cdslib/artist/analogLib

DEFINE functional /share/apps/cadence/IC615/tools.lnx86/dfII/etc/cdslib/artist/functional

DEFINE sbaLib /share/apps/cadence/IC615/tools.lnx86/dfII/etc/cdslib/artist/sbaLib

§ Make sure that the above installation directories/names are consistent with your installation (verify that the path is correct, important!)

3. Unzip the Cadence_IC61_CMOSedu.zip examples into $HOME/CMOSedu and then add the "DEFINE..." statements in cds_lib_IC61.txt to the cds.lib file

§ The first 15 or so lines in this text file should already be present in your cds.lib

4. When finished open a terminal window, navigate to the working directory CMOSedu, and type "virtuoso &" to start Cadence.

Instructions for using Cadence examples from CMOSedu.com

- With Cadence running use the Library Manager to open the schematic view of a cell for simulation using Virtuoso Schematic Editor (SE)
- In the menu of the SE Window select Launch -> ADE L to open the Virtuoso Analog Design Environment (ADE) Window

- In the ADE Window’s menu select Setup -> Simulator/Directory/Host… and then set the Simulator menu item

§ For most simulations Spectre will be used, if UltraSim or some other simulator is used it will be noted on the schematic

§ To make Spectre the default simulator used by Analog Artist add envSetVal("asimenv.startup" "simulator" 'string "spectre") to the bottom of your .cdsinit file in CMOSedu

- Next, again in the Set the Load State Option to Cellview and press OK
- Finally, in the ADE Window’s menu select Simulation -> Netlist and Run (or just hit the green button) to simulate

If the examples are not placed in $HOME/CMOSedu then, to run a simulation in the ADE, the location of the models will need to be specified after the state is loaded.

- In the ADE window select Setup -> Model Libraries then browse to the model file location (/path/ChXX_IC61/name.txt) and press Add

Finally, if you are using Matlab Spectre’s Toolbox (for determining SNR from the KD1S in Ch. 9 of the mixed-signal book) ensure that something similar to the following is added to the .bashrc file.

#MATLAB

export PATH=$PATH:/usr/local/MATLAB/R2010b/bin

#MATLAB Spectre Toolbox

export LD_LIBRARY_PATH=`cds_root spectre`/tools/dfII/lib:`cds_root spectre`/tools/lib/64bit

export LD_LIBRARY_PATH=`cds_root spectre`/tools/spectre/matlab/64bit:${LD_LIBRARY_PATH}

export MATLABPATH=`cds_root spectre`/tools/spectre/matlab/64bit

See the links to Cadence Tutorials at CMOSedu.com for general help with using Cadence

Notes for converting from IC51 to IC61 when using the NCSU CDKs

1. Make a folder called oa_convert in your home directory
2. In this folder make a file called cds.lib and put the following in it
DEFINE basic $CDK_DIR/lib/basic
DEFINE NCSU_Analog_Parts $CDK_DIR/lib/NCSU_Analog_Parts
DEFINE NCSU_Digital_Parts $CDK_DIR/lib/NCSU_Digital_Parts
DEFINE NCSU_TechLib_ami06 $CDK_DIR/lib/NCSU_TechLib_ami06
DEFINE NCSU_TechLib_ami16 $CDK_DIR/lib/NCSU_TechLib_ami16
DEFINE NCSU_TechLib_hp06 $CDK_DIR/lib/NCSU_TechLib_hp06
DEFINE NCSU_TechLib_tsmc02 $CDK_DIR/lib/NCSU_TechLib_tsmc02
DEFINE NCSU_TechLib_tsmc02d $CDK_DIR/lib/NCSU_TechLib_tsmc02d
DEFINE NCSU_TechLib_tsmc03 $CDK_DIR/lib/NCSU_TechLib_tsmc03
DEFINE NCSU_TechLib_tsmc03d $CDK_DIR/lib/NCSU_TechLib_tsmc03d
DEFINE NCSU_TechLib_tsmc04_4M2P $CDK_DIR/lib/NCSU_TechLib_tsmc04_4M2P
3. In your home directory make a file called cds_convert.lib with the same contents as the cds.lib file above but, in addition, add the path with the library name you want to convert. For example,
DEFINE Ch23_IC51 $HOME/CMOSedu/Ch23_IC51

4. Ensure that you enter C6 above to set the CDK path and version (IC61) correctly. To convert the library from IC51 to IC61 enter, in the oa_convert directory and in a terminal window,

cdb2oa -cdslibpath ~/cds_convert.lib -lib Ch23_IC51

If this command doesn’t work ensure that you have the alias and CDK set for version IC61 (see number 2 at the top of the page). The converted library is placed in oa_convert and keeps the same name, in this example, Ch23_IC51.

Move the converted library to CMOSedu and rename it using IC61’s Library Manager.

To run the simulations you will have to change the models path from

$HOME/CMOSedu/Ch23_IC51/cmosedu_models.txt to $HOME/CMOSedu/Ch23_IC61/cmosedu_models.txt

The examples from CMOSedu.com are available in both IC51 and IC61 flavors so this information is simply for reference.