Running VLSI design platforms


Keywords: UNIX environment, environment variable, search path, initialization script, Cadence, technology, vanilla environment

Before you can run any licensed VLSI tools you need to set necessary UNIX environment variables and add executables to the system search path. The runtime environment must be set every time you start a session work, but all the stuff is automatically done for you by an interactive initialization script provided by the VLSI system administrator, as described below.

The general setup script is named cdsterm and is located in the /usr/local/bin/ directory, which should already be included in your default search path. Please, check it out using the which command,

which cdsterm

The script is a tcsh script that interactively sets environment variables and adds search paths for different design platforms and technologies.

To launch the script, move into your working directory and simply type cdsterm at the command line

cd ~/scratch/<tech_dir>

or equivantely source the script with

source /usr/local/bin/cdsterm

At first you are prompted to choose the design suite you want to work with:

Select Cadence product : 
				[1a] IC  5.1.41HF137
				[1b] IC  6.1.3
				[1c] IC  6.1.4
				[1d] IC  6.1.5
				[2a] RC  8.10
				[2b] RC  9.10
				[2c] SOC 8.10
				[2d] EDI 9.12
				[3a] SPB 16.30
				[3b] SPB 16.50

Type in the tool identifier and press the Return key. Available Cadence platforms are IC (Virtuoso full-custom analog and mixed-mode IC design), RC (Verilog/VHDL logic synthesizer), SOC (SoC Encounter RTL-to-GDSII System, digital place-and-route tool), EDI (Encounter Digital Implementation System, next generation digital place-and-route tool) and SPB (Allegro PCB design suite).
The Incisive platform (Verilog/VHDL logic simulator) environment is included with both IC and RC setups. For more details about available tools see Licensed softwares.

Next you have to select the technology with the same procedure:

Available tecnologies are :

                        [1a] AMS   0.35um   CMOS

			[1a] AMS	0.35 um CMOS (c35b4)
			[1b] AMS	0.35 um SiGe (s35d4)
			[2a] IBM	0.13 um CMOS (cmrf8sf) - LM
			[2b] IBM	0.13 um CMOS (cmrf8sf) - DM
                        [2c] IBM   90 nm CMOS (cms9flp)
                        [3a] ...

All VLSI users can work with AMS and IBM technologies. The access (using cdsterm) to other cutting-edge technologies is restricted and it depends on the selected tool and on the user membership to a specific technology group defined by the system administrator. Technology permissions are verified by the cdsterm script and different lists of available technologies are shown in the menu. You can check yourself the technology you are allowed to use with the command

id -n -G

which prints username and groups. You can also inspect the /etc/group configuration file with

more /etc/group

Note that if the selected tool is Cadence SPB (Allegro) you are not asked to choose a technology.

The cdsterm script modifies your UNIX environment, setting path and environment variables. Furthermore, once the technology has been selected the script opens a new xterm terminal and the overall UNIX environment set in the parent shell is exported into the new one.

You can make a comparison between your parent shell environment and the xterm exported environment typing


in the two different shells.

Each design tool will be launched from the xterm command prompt by invoking its specific executable name with the general syntax

executable &   



Since environment variables and search paths have been exported in xterm, don't invoke a tool in the parent shell, you will get a Command not found issue otherwise.

Depending on the selected tool follow the instructions listed below.

If the first time that you try running a tool you face any problems with the Cadence license checking management, please contact the VLSI system administrator (, remove NOSPAM in the address).

Instructions for starting Cadence tools with a technology-independent environment are discussed in Start a vanilla environment.

Cadence design platforms are completely general and can support different fabrication technologies. When a particular technology is selected through the cdsterm initialization script, necessary UNIX environment variables (e.g. the PDK installation directory) are set and specific technology-related files (e.g. .cdsinit_tech file) are loaded at Cadence startup.
Cadence environment setups and technology setups are kept separate. Each platform has its own configuration script placed in the /usr/local/config/cds_config/ directory,

ls -l /usr/local/config/cds_config

which is then sourced in the cdsterm according to the selected design platform.

For getting started training purposes you are not required to run Cadence platforms attached to a process design kit. You can always start a vanilla (technology-independent) Cadence environment, all you need is to source by hand the right platform configuration script. As a matter of fact, schematic level simulations (pre-layout simulations) in Cadence IC (Virtuoso) can be always performed using simple SPICE device models that can be found on the Web as well as in many microelectronics textbooks. On the other hand, Verilog/VHDL logic simulations (pre-synthesis simulations) with Cadence Incisive only require the hardware description language source code. Furthermore, the above-mentioned Cadence SPB (Allegro) used in designing PCBs is technology-independent. A specific technology is required indeed if you want to do full-custom analog layout with Cadence IC or if you deal with digital synthesis and place-and-route with Cadence RC and Cadence SOC/EDI respectively.
According to this, the most part of WorkBook tutorials can be carried out with a simple Cadence IC 6.1.x vanilla environment (the latest software release is 6.1.5).

To set up a Cadence IC 6.1.5 vanilla environment, move into your working directory (~/scratch/tutorials in the WorkBook tutorials) and source by hand the /usr/local/config/cds_config/CdsIC_615.rc script:

cd ~/scratch/tutorials
setenv IC_DIR /usr/cadence/IC_6.1.5
source /usr/local/config/cds_config/CdsIC_615.rc

You should launch a new xterm instance in order to export the UNIX environment into a separate terminal, as usually performed by cdsterm:

xterm &

The CdsIC_615.rc script defines the proper UNIX environment for both Cadence IC 6.1.5 and Incisive 10.20 platforms, hence you will be able to work through either analog or digital tutorials.

:!: Note
The procedure doesn't work out of the box because a MANPATH environment variable is required in /usr/local/config/cds_config/CdsIC_615.rc. You should retrive a MANPATH: Undefined variable error in fact,

source /usr/local/config/cds_config/CdsIC_615.rc
MANPATH: Undefined variable

To solve the problem, just set by hand an empty MANPATH environment variable (this is normally done by cdsterm itself if MANPATH does not exist) before sourcing the script,

setenv MANPATH ""
source /usr/local/config/cds_config/CdsIC_615.rc

or define your own MANPATH environment variable in the home .cshrc (don't forget to source the file to make changes effective).

After the script has been sourced, start Cadence Virtuoso with the command:

virtuoso -nocdsinit &

The -nocdsinit flag is used to prevent Virtuoso to automatically load any tools or technology customizations, resulting in a really basic and minimal Cadence session.

If you are more confident with shell scripting you can write your own initialization script (e.g. ~/scratch/<tech_dir>/setup.csh) and set up the proper UNIX environment to run a particular Cadence tool attached to the specific technology you are working with.
More knowledge of the required UNIX environment will help you to fix yourself the most common problems related to missing environment variables, wrong paths etc.

Create local copies of cdsterm and /usr/local/config/cds_config/ configuration files provided by the VLSI system administrator, e.g.

cd ~/scratch
mkdir setup
cd setup
cp /usr/local/bin/cdsterm cdsterm.local
cp /usr/local/config/cds_config/CdsIC_615.rc CdsIC_615.rc.local

Then use your preferred text editor to inspect the syntax and the content of the different files. Pay attention to the license management and learn which technology-dependent environment variables are set in the cdsterm for the specific technolgy you are working with. For more details about any technology setup refer to the documentation contained in the VLSI protected area.

Put in your file necessary UNIX environment variables and paths. Once the script is ready you can either source

source setup.csh 

or run it (don't forget to make the file executable with the chmod command before)

chmod +x setup.csh

A complete example of configuration for Cadence IC can be found at

If you are confused indeed, please keep using the main cdsterm setup script.

Last update: Luca Pacher - Sep 14, 2013