Running VLSI design platforms
[ Home ] [ Design WorkBook ] [ Back to index ]
Contents
Keywords: UNIX environment, environment variable, search path, initialization script, Cadence, technology, vanilla environment
Introduction
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.
Main initialization script
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 /usr/local/bin/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> cdsterm
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.
Run Cadence executables
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
set
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 &
or
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 (mazza@NOSPAMto.infn.it, remove NOSPAM in the address).
Instructions for starting Cadence tools with a technology-independent environment are discussed in Start a vanilla environment.
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.
Manual configuration
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 ./setup.csh
A complete example of configuration for Cadence IC can be found at
https://intranet.ece.cornell.edu/computing/kb_articles/kba_detail.cfm?article_id=53
If you are confused indeed, please keep using the main cdsterm
setup script.