You are on page 1of 31

FAQ

SAN JOSE STATE UNIVERISTY


Electrical Engineering Department

Installationof the
NCSUDesignKit
IC DESIGN GROUP SAN JOSE STATE UNIVERSITY

A supplemental guide for using CDS tools


for IC design

David W. Parent
Assistant Professor
Electrical Engineering, SJSU
One Washington Square
San Jose, CA 95192-0084
Phone 408.924.3963 • Fax 408.924.2925
Table of Contents

INSTALLING THE NCSU DESIGN KIT (EASY METHOD):............................................................................................... 5


Getting the NCSU Design Kit: ............................................................................................................................................................ 5
Finding a “Home” for the Kit:............................................................................................................................................................. 5
Using the Kit: ...................................................................................................................................................................................... 6

INSTALLING THE NCSU DESIGN KIT FROM THE NCSU SITE:................................................................................... 12


1) Getting the NCSU Design Kit from the NCSU Site: ............................................................................................................. 12
NCSU CDK Installation Instructions ................................................................................................................................................ 19
Installation instructions ..................................................................................................................................................................... 20
Installing the kit................................................................................................................................................................................. 20
Verifying Installation................................................................................................................................................................. 21
.cshrc file used at SJSU ..................................................................................................................................................................... 23

2
LIST OF FIGURES:
Figure 1: NCSU Kit Down load Site. .......................................................................................................................................................................... 12
Figure 3: Download Page............................................................................................................................................................................................... 13
Figure 4: Web Form to Receive Kit............................................................................................................................................................................. 13
Figure 5: Temporary Page............................................................................................................................................................................................. 14
Figure 6: http://www.cadence.ncsu.edu/................................................................................................................................................................... 14
Figure 7: Download Page............................................................................................................................................................................................... 15
Figure 8: UNIX Command for Installing the Kit...................................................................................................................................................... 16
Figure 9: Untarred Data. ............................................................................................................................................................................................... 16
Figure 10: Starting Netscape......................................................................................................................................................................................... 17
Figure 12: Open Page.................................................................................................................................................................................................... 17
Figure 13: Choose File. ................................................................................................................................................................................................. 18
Figure 14: File Browser. ................................................................................................................................................................................................. 18
Figure 15: Open Page.................................................................................................................................................................................................... 18
Figure 16: Design Kit's Main Page............................................................................................................................................................................... 19

Acknowledgements:
This tutorial is based on the NCSU design kit. For more information, see
http://www.ece.ncsu.edu/cadence/CDK.html. Note: The Kit from NCSU is extremely helpful
in teaching IC design, this document just explains how to install it a little easier than NCSU’s
method.

3
4
Chapter

Installing the NCSU Design Kit (Easy


Method):

Getting the NCSU Design Kit:


Download the kit from here. This kit has been modified in from the original in the following
manner:

1) Specter spice decks have been added for the AMI16, TSMC30 and TSMC18 processes

2) The file layerDefinitions1.tf has been updated from NCSU. (Basically the kit as given
from NCSU does not work, and you have to get them to set you an update. If you
cannot compile a new tech library then you will have to do this yourself. Note: This has
already been done in the kit linked above. If you are going to sue the kit from their site
put layerDefinitions1.tf in $cdk_dir/techfile )

3) A reference to a cmosXXX library has been removed from cds.lib.

4) A PADFRAME directory for the AMI16 process has been added.

5) A Sample OPAMP in a library called ANALOG has been added.

Finding a “Home” for the Kit:


Place the tar file in the directory stream you want to use. We put it in /apps/cadence/ic446.

untar the file by typing: (Do not type the symbol %.)

% tar -xvf NCSU_CDK.tar

Change into the local/bin directory where the install perl script is kept.

%cd local/bin

5
Edit install.pl to reflect were the perl binary is located on your system.

Run the script:

% install.pl

Answer the questions that the script asks. It should work with out a hitch.

In your dfII directory type:

% chmod -R 555 local

This will set your permissions correctly.

Using the Kit:


Edit your .cshrc file to use the kit properly: These lines are were added to our standard .cshrc file.

#######################################################
#######################
# #
# .environment - Sourced by the 'add' alias to perform locker-specific #
# setup. The ${dir} variable is set by 'add' to be the #
# name of the directory where the locker was attached. #
# #
#######################################################
########################
set base_dir = "/apps/cadence"
set info_dir = "${base_dir}/.info"
set locker_desc = "${info_dir}/Description"
set cat = "/bin/cat"
set uname = "/bin/uname"

6
#---- Cadence setup only done if .environment.@sys is present ----------

# Set tool locations (note that $CDS is needed by dfiiwrapper.pl)

setenv CDS /apps/cadence


setenv IC $CDS/ic446
setenv LDV $CDS/ldv31
setenv cdk_dir $CDS/ic446/tools/dfII/local

# the lib path setup looks at $CDS_SITE/cdssetup to find the "setup.loc"


# file (other things, like prependNCSUCDKInstallPath(), need $CDS_SITE
# as well)

setenv CDS_SITE $IC/tools/dfII/local


setenv USE_NCSU_CDK
setenv CDS_VHDL $LDV/tools/leapfrog

# set license file location


setenv CDS_LIC_FILE /apps/cadence/ic446/share/license/license.83098d4a
# no clue what this is for

setenv TERM $term


unsetenv cell

# use analog netlister for everything

setenv CDS_Netlisting_Mode Analog

7
# this sets things so we no longer use cdsd. this won't be a problem,
# since we're not running 442 anymore. plus it makes the tools run on
# solaris 2.6! yay!

setenv CLS_CDSD_COMPATIBILITY_LOCKING NO

# this next one sets a path to our wrapper script; the script
# removes this PATH component to unmask the real executable
#
# note that we have to do this explicitly, rather than using prepend,
# because the "add" that got us here already added $CDS/bin, and we want
# it at the front of PATH (prepend won't add it if it's already there)

set path=($path $CDS/bin )


set path=($path $CDS_VHDL )
set path=($path $IC/tools/bin)
set path=($path $IC/tools/dfII/bin )
set path=($path $IC/tools/concice/bin )
set path=($path $IC/tools/dracula/bin )
set path=($path $LDV/tools/bin )
set path=($path /opt/NSCPcom )

extend MANPATH $LDV/share/man

8
extend MANPATH $IC/share/man
extend MANPATH $IC/tools/man

prepend LD_LIBRARY_PATH $LDV/tools/lib


prepend LD_LIBRARY_PATH $IC/tools/lib

#---- Start clsbd -----------------------------------------------------


# clsbd should always be running when we start cadence tools
# note that "bar" is a simple suid root program that starts clsbd (the
# theory is that if it's running as root, a userland process is less
# likely to take it down, and it won't be killed when the user logs out.
# we want this cuz clsbd needs to be running on all workstations that
# run cadence tools so it can respond to queries about locks. see
# chapter 11 of "Cadence Application Infrastructure User Guide" for more
# info on cls.)

#if (( "`${uname} -sr`" == "SunOS 5.4") || ( "`${uname} -sr`" == "SunOS 5.5.1") || (


"`${uname} -sr`" == "SunOS 5.6")) then
# $CDS/bin/bar > /dev/null
#else
# $IC/tools/bin/clsbd > /dev/null
#endif

#---- This is needed on Solaris machines ------------------------------

9
# Let's set the DISPLAY variable
#
if ( ! $?DISPLAY ) then
set tty = `tty|sed "s,/dev/,,"`
set who = `who | /bin/grep $tty`
set where = `echo $who | awk '{print $6}'`
set loc = `echo $where | sed "s/[(,),:]//g"`
setenv DISPLAY ${loc}:0.0
unset tty who where loc
endif

if ( ("`${uname} -s`" == SunOS) && ($DISPLAY == ":0.0") ) then


set hostname = `/usr/ucb/hostname | /bin/awk -F. '{print $1}'`
/usr/X/bin/xhost + ${hostname}
unset hostname
endif

#---- Display the Cadence options after the xhost message -------------
if ( -f ${locker_desc} ) ${cat} ${locker_desc}

# startrpcbind fires up /usr/sbin/rpcbind (wich is needed by cadence


# tools, among other things) and creates /etc/rc.conf.d/rpc/enable,
# which then enables starting rpcbind at boot

if ( "`${uname} -sr`" == "SunOS 5.6" ) then

10
if ( ! -f /etc/rc.conf.d/rpc/enable ) then
${base_dir}/bin/startrpcbind
endif
endif

endif #---- End of Cadence Setup --------------------------------------

unset base_dir info_dir locker_desc cat uname

11
Chapter

Installing the NCSU Design Kit From the


NCSU Site:

1) Getting the NCSU Design Kit from the NCSU Site:

Goto http://www.ece.ncsu.edu/cadence/CDK.html (Figure 1) and click on download the latest


version.

Figure 1: NCSU Kit Down load Site.

Click here in Figure 2 to register for the down load.

12
Figure 2: Download Page.

Fill out the web form in Figure 3.

Figure 3: Web Form to Receive Kit.

13
A temporary page is displayed as in Figure 4.

Figure 4: Temporary Page.

Your browser is then directed to http://www.cadence.ncsu.edu/ (Figure 5).

Figure 5: http://www.cadence.ncsu.edu/

You will receive an email message detailing how to down load the kit:
Hello David W. Parent,

You have recently registered to download one or more components of the NCSU CDK. This message simply verifies that the email
address you submitted is valid. Please follow the link below to continue with the download.

http://www.cadence.ncsu.edu/get_NCSU_CDK.php?id=364&name=David%20W.%20Parent&a=827133649

Thank you,
NCSU Cadence Download Manager

14
Follow the link specified in the email and a down load page will appear as in Figure 6.

Figure 6: Download Page.

Click on NCSU_CDK_1.2.tar in to down load the gzipped and tarred file.

After downloading, uncompressing and untarring, use your HTML browser to view
local/README.html, which has links to the documentation and installation instructions. Note
that the CDK wants to live in $CDS_ROOT/local but can be installed in any directory. In either
case, since files in the Cadence install directory need to be modified/added, you will probably
need some sort of sysadmin-type privileges to install it.

It is probably better not to install it in the ICC446 directory so that it will not get wiped out during
an upgrade.

Make sure you are in the correct directory with pwd (Figure 7).

Us ls to make sure the kit is there (Figure 7).

Use gzip –d to decompress the file (Figure 7). Note gzip is not a standard UNIX command you
will have to download a version that works on your UNIX station.

Use tar –xvf to untar the file (Figure 7).

15
Figure 7: UNIX Command for Installing the Kit.

When the tar command is finished, the output should look like Figure 8.

Figure 8: Untarred Data.

Use the ls command to make sure a directory called local has been created. Use the command
cd local to enter into this directory.

16
Use the pwd command to show where you have installed the local directory and then start
Netscape (Figure 9).

Figure 9: Starting Netscape.

When Netscape comes up, go to File ... Open page (Figure 10).

Figure 10: Open Page.

A pop up will appear (Figure 11). Click on Choose File...., and a file browser will appear (Figure
12).

17
Figure 11: Choose File.

Figure 12: File Browser.

Click on README.html and the click OK. The Open Page Dialog Box should then be filled out
(Figure 13). Click on Open in Navigator to view page.

Figure 13: Open Page.

18
The Kit’s main page will appear (Figure 14).

Figure 14: Design Kit's Main Page.

NCSU CDK Installation Instructions


This file describes the actions needed to install the N.C. State University Cadence Design
Kit (NCSU CDK).
$CDS_DIR == The top level of the Cadence installation tree.
$IC_DIR == The top level of the IC STREAM.
This document contains the following sections:
• Installation Instructions

• Install Script Operations

• Verifying Installation

• User .cshrc setup

19
Installation instructions
These instructions assume you already have the Cadence tool set (e.g. IC 4.4.5) installed
and operational. At NCSU we run Cadence (basically IC 4.4.5 and LDV 3.0) on Sun
workstations under Solaris 2.6. Our kit has not been tested on other platforms, but there
should not be any platform dependent operations in the kit.

You should now have a local/ sub-directory with the unpacked kit. We'll refer to this
directory as $cdk_dir from here on.

Installing the kit


Make sure your user .cshrc setup includes the all of the items listed at the bottom of the page
(see local/environment/environment in the CDK for the version we use at N.C. State). A
couple of things to note:

o The CDK uses the environment variable CDS_SITE to locate its


components at runtime. Therefore it is essential to set this variable to
the $cdk_dir directory before starting Cadence.
o The kit uses the analog netlister in concert with the CDF data on the
components to create all netlists, including netlists for LVS, so make
sure the environment variable CDS_Netlisting_Mode is set to Analog.
Note: At NCSU we use symbolic links under the top level of the Cadence tree for
each tool stream installed. For example, suppose the ic445 tools are installed at
/path/cadence/ic445. We have a symbolic link called ic that points to the
ic445 stream release. The command ls -l /path/cadence/ic would show:
/path/cadence/ic -> /path/cadence/ic445
This makes it easier to upgrade to a newer version of each tools stream. You
install the upgrade with a new stream name (e.g. ic446), and when it is tested just
point the ic link at the new tree. Users always go through /path/cadence/ic to
access the tools in this stream. It also solves the problem where some tools, like
Verilog (in the ldv stream), store information containing the absolute path. In the
case of Verilog this is the executable path/name. If the path changes, as it may if
you install a new release, users with old simulation runs will get errors until they
manually change the Verilog executable path. Always going through the same
link keeps the path consistent and avoids these errors. Use /path/cadence/ic if
you have one available in the install.pl script.

• Update the file in $cdk_dir/cdssetup/newusermesg. This message is optionally


displayed at Cadence startup by the script $cdk_dir/bin/xmesg (see around line
155 of $cdk_dir/cdssetup/cdsinit). (If wish is not installed in
/usr/local/bin, change the first line of the script to reflect the correct path.)

20
• Edit the plotter setup file, $cdk_dir/cdssetup/cdsplotinit to reflect your
installation.

• Check the library paths in $cdk_dir/cdssetup/cds.lib and all the entries


included there to make sure the libraries are accessible, especially the ones
included in the Cadence distribution.
• If necessary, change the permissions throughout the local directory so users have
the appropriate access. This will depend on your site installation. For example, we
use AFS and set access using the AFS file permissions mechanisms.

Verifying Installation

There's no formal way to verify everything's hooked in properly, but you can check pretty
quickly to see if things look ok:
1. Set any environment variables necessary (e.g., $CDS_SITE, $USE_NCSU_CDK)
and start Cadence.

2. Make sure you see the message Loading NCSU SKILL routines... in the CIW
during startup. If you're running DFII 4.4.2.100.22 or later, you should also see
the message Loading NCSU Library Manager customizations...done. in
the Library Manager.

3. Type NCSU_CDK_version in the CIW and hit RETURN; you should get back a
version string, e.g. ``NCSU_CDK 1.2''.
4. Select the ``File->New->Library...'' menu entry in the CIW. A form should appear
that looks like the picture below:

Click the ``Help'' button and make sure the appropriate OpenBook entry appears.
5. Create a library by choosing ``Compile tech file'' and selecting a MOSIS process
from the popup menu that appears. You should see the following messages in the
CIW:
6. Loading technology files...
7. Compiling class 'controls'....
8. Compiling class 'layerDefinitions'....
9. Compiling class 'devices'....
10.Compiling class 'layerRules'....
11.Compiling class 'physicalRules'....
12.Compiling class 'dleRules'....
13.Compiling class 'dlrRules'....
14.Storing symbolic cells...
15.Generating Pcell for 'm1_n layout'.
16.Generating Pcell for 'm1_p layout'.
17.Generating Pcell for 'm1_poly layout'.
18.Generating Pcell for 'm2_m1 layout'.
19.Generating Pcell for 'nmos layout'.

21
20.Generating Pcell for 'pmos layout'.
21.Generating Pcell for 'ntap layout'.
22.Generating Pcell for 'ptap layout'.
23.Generating Pcell for 'm1_elec layout'.
24.Creating links to Diva verification rules files...
25.Library creation successfully completed.
You might also see some lines like Loading XXX.cxt. Also, the exact Pcells
generated will depend on the process you chose.
26. Create and open a layout in the new library. In the LSW, nwell should be green
slash, metal 1 should be blue backslash, metal 2 should be magenta dots. The last
menu in the layout window's menu bar should be ``NCSU'' and have the
following entries:
o Hilite Object...

o Modify LVS Rules...

o Align Objects...

o Import JPEG picture...

o Import text...

27. Open Analog Artist (``Tools->Analog Environment->Simulation...'' in the CIW)


and verify the menu entry ``Setup->Model Corner...'' exists.
If all these are like they should be, you probably have everything installed correctly.

22
.cshrc file used at SJSU
#set verbose
set filec
set history=100
setenv EDITOR /home/dparent/nedit
stty erase ^H
# setenv PRINTER xxxxxxxx
limit coredumpsize 0

set path=(. /usr/sbin /usr/ccs/bin )


set path=($path /usr/openwin/bin /usr/bin /bin /etc /usr/lib)
set path=($path /usr/ucb )
set path=($path /apps/silvaco/bin )
set path=($path /apps/vnc )
set path=($path /usr/dt/bin/ /usr/local/bin)
set path=($path /usr/perl5/5.00503/bin)

setenv SFLM_SERVER cadence1

#if ($?prompt) exit

#setenv LM_LICENSE_FILE 26585@130.65.179.140


setenv MANPATH "/usr/share/man:"
setenv vncClasses "/apps/vnc/classes"

23
setenv SFLM_SERVER cadence1

setenv XKEYSYMDB /usr/openwin/lib/X11/XKeysymDB


setenv LD_LIBRARY_PATH /usr/openwin/lib:/usr/dt/lib
setenv MY_LIBRARY_PATH /usr/openwin/lib:/usr/dt/lib
alias h history
alias df 'df -k .'
alias dump 'find . -name core -print'
alias l 'ls -lFt'

# XTERM STUFF
alias xt "xterm -bg gold -fg black &"
alias con 'xterm -g 98x6+0+0 -fg lightgreen -bg black -title CONSOLE -sb -sl 15000 -C'
alias xt1 'xterm -g 80x43+0+200 -fg cyan -bg black -title TERMINAL1 -cr pink -sb -sl 30000 -
n TERMINAL1'
alias xt2 'xterm -g 80x43+0+119 -fg green -bg darkslategrey -title TERMINAL2 -cr wheat -sb -
sl 30000 -n TERMINAL2'
alias xt4 'xterm -g 80x43+0+119 -fg white -bg darkgreen -title TERMINAL3 -cr lightgreen -sb
-sl 30000 -n TERMINAL3'
alias xt5 'xterm -g 80x43+0+119 -fg green -bg darkgreen -title TERMINAL4 -cr lightgreen -sb
-sl 30000 -n TERMINAL4'
alias xt3 'xterm -g 80x43+0+100 -fg purple -bg wheat -title TERMINAL5 -cr wheat -sb -sl
50000 -n TERMINAL5'

alias psaux "/usr/ucb/ps -auxww | grep"


alias texteditor "/usr/dt/bin/dtpad &"
alias snapshot "/usr/openwin/bin/snapshot &"
alias prepend 'if (-d \!:2) if ("$\!:1" \!~ *"\!:2"*) setenv \!:1 "\!:2":${\!:1}'
alias extend 'if (-d \!:2) if ("$\!:1" \!~ *"\!:2"*) setenv \!:1 ${\!:1}:\!:2'

24
#************************************************

umask 002

#************************************************

setenv MYPATH $PATH


setenv SYNOPSYS /apps/synopsys
setenv SNPSLMD $SYNOPSYS/scl
setenv SNPSLMD_LICENSE_FILE $SNPSLMD/admin/license/key
setenv PRIMETIME_ROOT $SYNOPSYS/pt2000.11
setenv SYNOPSYS_SIM $SYNOPSYS/2000.12
setenv CLS_CSD_COMPATIBILITY_LOCKING NO
setenv SKIP_CDS_DIALOG

set path=($path $SNPSLMD/sparc64/bin )


set path=($path $SYNOPSYS )
set path=($path $SYNOPSYS/2000.11/sparcOS5/syn/bin )
set path=($path $PRIMETIME_ROOT/sparcOS5/syn/bin )
set path=($path /apps/Acrobat4/bin )
source $SYNOPSYS_SIM/admin/setup/environ.csh

#######################################################
#######################
# #
# .environment - Sourced by the 'add' alias to perform locker-specific #

25
# setup. The ${dir} variable is set by 'add' to be the #
# name of the directory where the locker was attached. #
# #
#######################################################
########################
set base_dir = "/apps/cadence"
set info_dir = "${base_dir}/.info"
set locker_desc = "${info_dir}/Description"
set cat = "/bin/cat"
set uname = "/bin/uname"

#---- Cadence setup only done if .environment.@sys is present ----------

# Set tool locations (note that $CDS is needed by dfiiwrapper.pl)

setenv CDS /apps/cadence


setenv IC $CDS/ic446
setenv LDV $CDS/ldv31
setenv cdk_dir $CDS/ic446/tools/dfII/local

# the lib path setup looks at $CDS_SITE/cdssetup to find the "setup.loc"


# file (other things, like prependNCSUCDKInstallPath(), need $CDS_SITE
# as well)

setenv CDS_SITE $IC/tools/dfII/local


setenv USE_NCSU_CDK

26
setenv CDS_VHDL $LDV/tools/leapfrog

# set license file location


setenv CDS_LIC_FILE /apps/cadence/ic446/share/license/license.83098d4a
# no clue what this is for

setenv TERM $term


unsetenv cell

# use analog netlister for everything

setenv CDS_Netlisting_Mode Analog

# this sets things so we no longer use cdsd. this won't be a problem,


# since we're not running 442 anymore. plus it makes the tools run on
# solaris 2.6! yay!

setenv CLS_CDSD_COMPATIBILITY_LOCKING NO

# this next one sets a path to our wrapper script; the script
# removes this PATH component to unmask the real executable
#
# note that we have to do this explicitly, rather than using prepend,
# because the "add" that got us here already added $CDS/bin, and we want
# it at the front of PATH (prepend won't add it if it's already there)

27
set path=($path $CDS/bin )
set path=($path $CDS_VHDL )
set path=($path $IC/tools/bin)
set path=($path $IC/tools/dfII/bin )
set path=($path $IC/tools/concice/bin )
set path=($path $IC/tools/dracula/bin )
set path=($path $LDV/tools/bin )
set path=($path /opt/NSCPcom )

extend MANPATH $LDV/share/man


extend MANPATH $IC/share/man
extend MANPATH $IC/tools/man

prepend LD_LIBRARY_PATH $LDV/tools/lib


prepend LD_LIBRARY_PATH $IC/tools/lib

#---- Start clsbd -----------------------------------------------------


# clsbd should always be running when we start cadence tools
# note that "bar" is a simple suid root program that starts clsbd (the
# theory is that if it's running as root, a userland process is less
# likely to take it down, and it won't be killed when the user logs out.
# we want this cuz clsbd needs to be running on all workstations that
# run cadence tools so it can respond to queries about locks. see

28
# chapter 11 of "Cadence Application Infrastructure User Guide" for more
# info on cls.)

#if (( "`${uname} -sr`" == "SunOS 5.4") || ( "`${uname} -sr`" == "SunOS 5.5.1") || (


"`${uname} -sr`" == "SunOS 5.6")) then
# $CDS/bin/bar > /dev/null
#else
# $IC/tools/bin/clsbd > /dev/null
#endif

#---- This is needed on Solaris machines ------------------------------

#
# Let's set the DISPLAY variable
#
if ( ! $?DISPLAY ) then
set tty = `tty|sed "s,/dev/,,"`
set who = `who | /bin/grep $tty`
set where = `echo $who | awk '{print $6}'`
set loc = `echo $where | sed "s/[(,),:]//g"`
setenv DISPLAY ${loc}:0.0
unset tty who where loc
endif

if ( ("`${uname} -s`" == SunOS) && ($DISPLAY == ":0.0") ) then


set hostname = `/usr/ucb/hostname | /bin/awk -F. '{print $1}'`
/usr/X/bin/xhost + ${hostname}
unset hostname

29
endif

#---- Display the Cadence options after the xhost message -------------
if ( -f ${locker_desc} ) ${cat} ${locker_desc}

# startrpcbind fires up /usr/sbin/rpcbind (wich is needed by cadence


# tools, among other things) and creates /etc/rc.conf.d/rpc/enable,
# which then enables starting rpcbind at boot

if ( "`${uname} -sr`" == "SunOS 5.6" ) then


if ( ! -f /etc/rc.conf.d/rpc/enable ) then
${base_dir}/bin/startrpcbind
endif
endif

endif #---- End of Cadence Setup --------------------------------------

unset base_dir info_dir locker_desc cat uname

30

You might also like