Cadence Environment and Setup Files (INFN Torino Wiki)
Cadence Environment and Setup Files (INFN Torino Wiki)
Cadence Environment and Setup Files (INFN Torino Wiki)
Contents
Introduction
Reference documentation
Sample files
.cadence directories
.cdsenv and .cdsinit initialization files
.cdsinit_tech
libInit.il
CDS.log
.simrc
.cdsplotinit
cds.lib library definition file
Simulation results and saved states directories
display.drf
Bindkeys
Some customization examples
Keywords:
Introduction
The key to succesfully run the different VLSI tools is to know the most important configuration files and how the system
administrator has planned them to be used. A basic knowledge about these files is fundamental in helping users to fix the most
common problems by themselves. Keep in mind that with a standard VLSI account you have write privileges only inside your
home directory and in the system temporary /tmp. Therefore each user should exploit as much as possible customizations which
can be made inside the local area. In general keep backups of various configuration files (e.g. cp filename filename.old) each
time before making changes.
and to Cadence's design tools All the examples will be referred to the Cadence IC 6.1.x (Virtuoso) platform. The full path for
the referenced $IC_DIR environment variable is /usr/cadence/IC_6.1.x, corresponding to the top Cadence IC 6.1.x installation
directory (the last software release is 6.1.5). Use the setenv command:
Reference documentation
For detailed information about the Cadence IC general configuration please refer to the Virtuoso Software Licensing and Configuration
User Guide. The relative pdf file is
/usr/cadence/IC_6.1.x/doc/dfIIconfig/dfIIconfig.pdf
Sample files
A well commented set of sample files comes with the Cadence IC installation itself. Sample home directory setup files (e.g.
.cshrc and .cdsinit) can be found in the $IC_DIR/tools/dfII/cdsuser directory, whereas working directory templates (e.g.
https://wiki.to.infn.it/doku.php?id=vlsi:workbook:analog:cdsenv 1/8
10/6/2019 Cadence environment and setup files [INFN Torino Wiki]
ls -l $IC_DIR/tools/dfII/cdsuser
ls -l $IC_DIR/tools/dfII/samples
These files can be copied to a your local area and then customized. We suggest to create in your ~/scratch directory a new
directory to contain the original templates, e.g.
cd ~/scratch
mkdir sample.files
.cadence directories
The first time you run a Cadence tools (e.g. virtuoso) a ./.cadence hidden directory is automatically created in your working
directory and a further ~/.cadence is created in the home directory. These are may be used to customize the Cadence
environment.
The main Cadence initialization files are named .cdsenv and .cdsinit. Depending on the system administrator setup, user
.cdsinit files may have a different name like .cdsinit_personal, .cdsinit_user or .cdsinit_local. Both .cdsenv and
.cdsinit are used to define the Cadence environment, but with some differences. .cdsenv files follow their own syntax and are
used to set tool options and user preferences. The .cdsinit files use SKILL syntax and typically are used just to load further
SKILL setup files into the system (e.g. bindkeys files). The .cdsenv files are loaded before the .cdsinit ones. Therefore settings
defined in the .cdsinit files may override settings placed in the .cdsenv. See also http://www.edaboard.co.uk/cdsenv-and-cdsinit-
t374951.html [http://www.edaboard.co.uk/cdsenv-and-cdsinit-t374951.html]
.cdsenv files are loaded from different paths. Each tool has its own default .cdsenv file, placed in
$IC_DIR/tools/dfII/etc/tools/<application>/ directories (e.g. $IC_DIR/tools/dfII/etc/tools/schematic/.cdsenv for
Virtuoso Schematic Editor). A site .cdsenv could be put by the system administrator in the $IC_DIR/tools/dfII/local/ directory,
which is the site customization directory. In general this is a modified copy of the sample
IC_DIR/tools/dfII/samples/.cdsenv file which comes with the Cadence IC installation. User customizations can be defined in a
local ~/.cdsenv in your home directory. When you start a Cadence session, if the CDS_LOAD_ENV environment variable is not set
the program loads all the above mentioned .cdsenv files in the following sequence:
$IC_DIR/tools/dfII/etc/tools/<application>/.cdsenv
Any value defined in the home ~/.cdsenv overrides those previously loaded. Please note that the default search mechanism for
the .cdsenv file does not look in the working directory. Hence a ./.cdsenv file placed in your working directory is not loaded
by default. If you want it to be loaded, you have to set the CDS_LOAD_ENV environment variable equal to addCWD in your .cshrc:
envLoadFile("./.cdsenv")
https://wiki.to.infn.it/doku.php?id=vlsi:workbook:analog:cdsenv 2/8
10/6/2019 Cadence environment and setup files [INFN Torino Wiki]
A working directory ./.cdsenv is useful to define customizations related to the specific technology you are working with (e.g.
model files, layout options etc). Make a local copy of the sample .cdsenv file and use this template for your ~/.cdsenv and
./.cdsenv:
cp $IC_DIR/tools/dfII/samples/.cdsenv ~/scratch/sample.files/cdsenv.sample
Before you start customizations read the entire file and the comments. Use more cdsenv.sample or less cdsenv.sample to see
the file content. User preferences can be also automatically saved to a .cdsenv file from Cadence itself, e.g. by using CIW ⇒
Options ⇒ Save defaults.
(screenshot!)
The loading procedure is slight different for the .cdsinit files. Only the first .cdsinit file found during Cadence startup is
loaded, then the search stops and no more .cdsinit files would be automatically loaded unless explicitely specified in the first
one. The first file encountered is the site .cdinit provided by the system administrator and placed in the
$IC_DIR/tools/dfII/local/ directory. This is a customized copy of the sample IC_DIR/tools/dfII/samples/local/cdsinit site
file which comes with the Cadence IC installation. Then it's up to the site .cdsinit to load user customization files, named
~/.cdsinit_personal in the home directory and ./.cdsinit_local or ./.cdsinit in the working directory. The site .cdsinit
also loads a technology-dependent initialization file named .cdsinit_tech provided by the manufacturer, which is usually
placed in the main PDK installation directory. Inspect the content of the site .cdsinit, e.g.
more $IC_DIR/tools/dfII/local/.cdsinit
and try to identify the various load statements for the above mentioned files. The overall loading sequence is the following:
Please note that a ~/.cdsinit would not be loaded at all, unless explicitely loaded by your ~/.cdsinit_personal. A user
.cdsinit sample file comes with the Cadence installation in the $IC_DIR/tools/dfII/cdsuser/ directory. You can copy it to
your local scratch area and then customize it, as suggested for the .cdsenv template:
cp $IC_DIR/tools/dfII/cdsuser/.cdsinit ~/scratch/sample.files/cdsinit.sample
Remember that settings placed in .cdsinit_personal and .cdsinit_local files may override the .cdsenv setup.
In general you can load in Cadence whatever initialization file you want, but you have to explicitely include a load() statement in
the user .cdsinit_personal or .cdsinit_local files, e.g.
when(isFile("/path/to/fileName") load("/path/to/fileName") )
load("/path/to/fileName")
Posso specificare di non caricare nessun cds.lib at virtuoso startup with the -nocdsinit option,
virtuoso -nocdsinit
.cdsinit_tech
.cdsinit_tech represents the main technology initialization file loaded during Cadence startup. The default template is
provided by the manufacturer and comes with the PDK installation. Further customizations can be done by the system
administrator reflecting the system configuration. As mentioned above the .cdsinit_tech is explicitely loaded by the site
.cdsinit file, in which you can find the following directives:
https://wiki.to.infn.it/doku.php?id=vlsi:workbook:analog:cdsenv 3/8
10/6/2019 Cadence environment and setup files [INFN Torino Wiki]
processdir = getShellEnvVar("ProcessPath")
...
loadi( strcat(processdir "/.cdsinit_tech") )
The hard path of the .cdsinit_tech file varies with the technology. If you want to know the exact location move to the main
PDK installation directory and use the find command, e.g.
cd /path/to/PDK/installatio/directory
find ./ -name .cdsinit_tech
Usually a .cdsinit_tech file sets some default user preferences and could load further technology-related SKILL scripts or
context files (SKILL code compiled into binary files). In general available context files have been encrypted by the manufacturer.
If your technology supports Mentor's Calibre verification tool for design rule checks (DRC), layout versus schematic (LVS) etc.
the .cdsinit_tech should also load the main calibre.skl SKILL interface which integrates Calibre menus in Cadence. Please
check if your .cdsinit_tech contains something like
mgc_home=getShellEnvVar("MGC_HOME")
...
load(strcat(mgc_home "/shared/pkgs/icv/tools/queryskl/calibre.skl"))
cd ~/scratch/<tech_dir>
ln -s /path/to/.cdsinit_tech .cdsinit_tech
libInit.il
Al di fuori di quello che interessa all'utente, solo per dire che esiste.
Puo' caricare anche la definizione di Cadence technology-specific custom menus which will be integrated in the Cadence
graphical front-ends. (typically in the form of context files, i.e. precompiled SKILL code)
The libInit.il file is a SKILL script which is executed the first time a library is opened.
Loads default technology model files and display resource file display.drf
cd /path/to/PDK/installation/directory
find ./ -name libInit.il
CDS.log
Log file
Le default directories in cui salvare i log sono definiti in the environment variable,
setenv ????
.simrc
This file is used for customizing simulation runs.
https://wiki.to.infn.it/doku.php?id=vlsi:workbook:analog:cdsenv 4/8
10/6/2019 Cadence environment and setup files [INFN Torino Wiki]
cp $IC_DIR/tools/dfII/cdsuser/.simrc ~/scratch/sample.files/simrc.sample
.cdsplotinit
cadence printing setup file, $IC_DIR/tools/plot/.plotinit
cp $IC_DIR/tools/plot/.plotinit ~/scratch/sample.files/plotinit.sample
cd ~/scratch/<tech_dir>
touch cds.lib
If you are working with a particular technology you have to include also the technology cds.lib usually located in the PDK
installation directory
# technology cds.lib
INCLUDE /path/to/technology/cds.lib
# users libraries
DEFINE libName ~/scratch/<tech_dir>/lib/lbName
DEFINE ...
DEFINE ...
The Cadence Library Definition file (cds.lib) is located under your Cadence installation directory. This is your library setup file A
default cds.lib file is located in
$IC_DIR/tools/dfII/samples/cds.lib
cds.lib example
# cds.lib skeleton
# technology libraries
INCLUDE /path/to/technology/specific/cds.lib
# custom libraries
DEFINE library_name /path/to/libary_name
DEFINE .... /.../.../...
To change these defaults, just use in your home ~/.cdsinit or ~/.cdsinit_personal files the following directives
You can type these statements at the CIW command prompt as well.
https://wiki.to.infn.it/doku.php?id=vlsi:workbook:analog:cdsenv 5/8
10/6/2019 Cadence environment and setup files [INFN Torino Wiki]
See also
http://www.cadence.com/Community/forums/p/17009/1179512.aspx
[http://www.cadence.com/Community/forums/p/17009/1179512.aspx]
display.drf
The display resource file defines necessary layout layers for a specific technology. A good place to store the display.drf is the
working directory
cd ~/scratch/<tech_dir>
cp /path/to/technology/display.drf .
cd ~/scratch/<tech_dir>
ln -s /path/to/technology/display.drf display.drf
For more details see the Technology File and Display Resource File User Guide located in
$IC_DIR/doc/techfileuser/techfileuser.pdf
Bindkeys
Bindkeys (hotkeys) in Cadence are keyboard shortcuts (both using single keys or sequences of keys) or mouse actions (alone
or in combination with one modifier keys on the keyboard, typically Shift, Tab, Alt and Ctrl) associated to some particular task
or functionality. Using bindkeys allow the designer to save time avoiding search-and-click procedures, in particular during the
shematic entry phase and for layouting. Cadence's tools offer predefined sets of bindkeys, whereas a technology could introduce
its own bindkeys (which may ovveride some Cadence's defaults). Of course each user is free to define custom bindkeys to fit his
needs.
Bindkeys are defined in SKILL (.il) files. Sample bindkeys for Virtuoso Schematic Editor and Virtuoso Layout Editor comes with the
IC installation and can be found in $IC_DIR/tools/dfII/samples/local/schBindKeys.il and
$IC_DIR/tools/dfII/samples/local/leBindKeys.il respectively. On the other hand default bindkeys are automatically loaded at
Cadence startup from the $IC_DIR/share/cdssetup/dfII/bindkeys/ directory (e.g. Schematics.il and Layout.il). Actually
sample files contain the same bindkeys definition as given in the loaded files. Once Cadence opens you can view currently set
bindkeys through CIW ⇒ Options ⇒ Bindkeys….
If you plan to modify default bindkeys start making a local copy in your ~/scratch area of the sample files provided with the
Cadence installation, e.g.
cd ~/scratch/
mkdir bindkeys
cd bindkeys
cp $IC_DIR/tools/dfII/samples/local/schBindKeys.il schBindKeys.il.default # for schematic bindkeys
cp $IC_DIR/tools/dfII/samples/local/leBindKeys.il leBindKeys.il.default # for layout bindkeys
If you want to start with a 'vanilla' Cadence environment you can ensure that default bindkeys are always loaded at Cadence
startup. Simply add in your home ~/.cdsinit_personal the following lines:
or equivalently
https://wiki.to.infn.it/doku.php?id=vlsi:workbook:analog:cdsenv 6/8
10/6/2019 Cadence environment and setup files [INFN Torino Wiki]
printf("Loading standard bindkeys. \n")
load(prependInstallPath "samples/local/schBindKey.il")
load(prependInstallPath "samples/local/leBindKeys.il")
Custom bindkeys for a particular technology should be placed in the working directory ./.cdsinit or ./.cdsinit_local. If you
would like to create your own bindkeys, you must first know the SKILL function of the command you are trying to bind. If you
don't know the SKILL function you can find it looking at output log messages registered in the CIW or in CDS.log file. Only
default bindkeys will be mentioned in the WorkBook.
http://cadence.wikispaces.com/Bindkeys [http://cadence.wikispaces.com/Bindkeys]
https://secure.engr.oregonstate.edu/wiki/ams/index.php/Cadence/TipsAndTricks
[https://secure.engr.oregonstate.edu/wiki/ams/index.php/Cadence/TipsAndTricks]
Customization examples
The general .cdsenv syntax is like
e.g.
<code>
layout gravityOn boolean nil
The same otion defined in a .cdsinit file requires the usage of a specific SKILL function,
leSetEnv("gravityOn" nil)
Simulation options
If you want to change the default directory '~/.artist_states' used to store simulation results
To set the default simulator, e.g. as Spectre, enter the following environment variable in your .cdsenv or .cdsinit file. Syntax to set
the default simulator in the .cdsenv
Layout options
Miscellaneous
You can edit your ./.cdsint or ./.cdsinit_local and set your preferred text editor as default as follows:
https://wiki.to.infn.it/doku.php?id=vlsi:workbook:analog:cdsenv 7/8
10/6/2019 Cadence environment and setup files [INFN Torino Wiki]
editor = "/usr/bin/nedit"
See also
http://eda.engineering.wustl.edu/wiki/index.php/Cadence_Environment
[http://eda.engineering.wustl.edu/wiki/index.php/Cadence_Environment]
https://secure.engr.oregonstate.edu/wiki/ams/index.php/Cadence/TipsAndTricks
[https://secure.engr.oregonstate.edu/wiki/ams/index.php/Cadence/TipsAndTricks]
See also
http://www.cadence.com/Community/forums/p/15176/26989.aspx
[http://www.cadence.com/Community/forums/p/15176/26989.aspx]
http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:ViewSolution;solutionNumber=11587412
[http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:ViewSolution;solutionNumber=11587412] (Cadence On-line support
login required)
https://wiki.to.infn.it/doku.php?id=vlsi:workbook:analog:cdsenv 8/8