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

 

To use the Cadence IC61 examples from CMOSedu.com follow these steps.

 

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 that 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

alias C5='export CADENCE=IC5141; export PATH=`echo $PATH | sed s/IC610/IC5141/g`; export CDK_DIR=$HOME/ncsu-cdk-1.5.1'

alias C6='export CADENCE=IC610; export PATH=`echo $PATH | sed s/IC5141/IC610/g`; export CDK_DIR=$HOME/ncsu-cdk-1.6.0.beta'

      • make sure that the above installation directories/names are consistent with your setups (here is an example .bashrc file)
      • 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
      • the above aliases allow the user to switch back and forth between Cadence versions IC51 and IC61
      • if using IC610 (only) add:

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

export PATH=`echo $PATH | sed s/IC5141/IC610/g`

to the .bashrc (don’t add the aliases seen above)

  • 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 /usr/local/Cadence/$CADENCE/tools.lnx86/dfII/etc/cdslib/artist/analogLib

DEFINE functional /usr/local/Cadence/$CADENCE/tools.lnx86/dfII/etc/cdslib/artist/functional

DEFINE sbaLib /usr/local/Cadence/$CADENCE/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 noting $CADENCE=IC610)
      • if using IC610 (only) then $CADENCE in the above definitions should be replaced with IC610

 

3. Unzip the Cadence examples from CMOSedu.com into $HOME/CMOSedu and then define the path to these examples in the cds.lib file

  • For example, unzip Ch1_IC61.zip into $HOME/CMOSedu
  • Add the following line to the $HOME/CMOSedu/cds.lib file
    • DEFINE Ch1_IC61 $HOME/CMOSedu/Ch1_IC61
    • Note that if you also have IC51 examples in this directory, and defined in the cds.lib file, they will show up in the 6.1 Library Manager; however they can’t be used
    • This text file may prove useful if downloading all IC61 Cadence examples.

 

4. Repeat step 3 for every ChXX_IC61.zip or ChXX_MSD_IC61.zip downloaded from CMOSedu.

 

5. When finished open a terminal window, navigate to the working directory CMOSedu, enter “C6” and then enter "virtuoso &" to start Cadence

  • Entering “C5” in a terminal window will cause the command “icfb &” to run IC51 while entering “C6” will cause “icfb &” to run IC61
  • Note that icfb has been replaced with virtuoso in IC61; however, icfb will still start Cadence in the first release of IC61

 

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 ADE Window’s menu, select Session -> Load State
    • 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

 

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 3 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.