====== Running VLSI design platforms ======
[ __[[vlsi:home|Home]]__ ]
[ __[[vlsi:workbook|Design WorkBook]]__ ]
[ __[[vlsi:workbook:computing#contents|Back to index]]__ ]
== Contents ==
* [[vlsi:workbook:computing:cdsterm#introduction|Introduction]]
* [[vlsi:workbook:computing:cdsterm#main_initialization_script|Main initialization script]]
* [[vlsi:workbook:computing:cdsterm#run_cadence_executables|Run Cadence executables]]
* [[vlsi:workbook:computing:cdsterm#start_a_vanilla_environment|Start a vanilla environment]]
* [[vlsi:workbook:computing:cdsterm#manual_configuration|Manual configuration]]
**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/
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 __[[vlsi:workbook:computing:tools|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.
{{:vlsi:parent_shell_and_xterm.png?750}}
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.
* [[vlsi:workbook:computing:cdsterm:ic|Cadence IC (Virtuoso)]] FIXME
* [[vlsi:workbook:computing:cdsterm:ius|Cadence Incisive]] FIXME
* [[vlsi:workbook:computing:cdsterm:rc|Cadence RC]] FIXME
* [[vlsi:workbook:computing:cdsterm:soc|Cadence SOC]] FIXME
* [[vlsi:workbook:computing:cdsterm:edi|Cadence EDI (Encounter)]] FIXME
* [[vlsi:workbook:computing:cdsterm:spb|Cadence SPB (Allegro)]] FIXME
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 __[[vlsi:workbook:computing:cdsterm#start_a_vanilla_environment|
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//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:private:home|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.
====== ======
\\
----
Last update: [[pacher@NOSPAMto.infn.it|Luca Pacher ]] - Sep 14, 2013
~~NOTOC~~