VLSI-Software Installation

Cadence VLSI Software installation under Ubuntu/Debian 64 bits

Guides information

We have develop the following guide in order to install Cadence software under (unsuported) Ubuntu/Debian systems.

Guide 1 (Cadence under a fresh 64 bits Ubuntu/Debian) Tested with

  • Ubuntu 15.04, 14.04 LTS, 13.10, 64 bits
  • Kernels 3.19.0-25-generic #26-Ubuntu SMP Fri Jul 24 21:17:31 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux to 3.11.0-15-generic #25-Ubuntu SMP Thu Jan 30 17:22:01 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
  • IC616.
  • MMSIM13.11.252.

Guide 2 (Cadence under a 64 bits Ubuntu/Debian with 32bits libs, with IC already installed) Tested with

  • Ubuntu 12.04, 64 bits
  • Kernel GNU/Linux 3.2.0-58-generic x86_64
  • IC5141.
  • MMSIM111.

Cadence Software Under Fresh 64bits Ubuntu/Debian System

Environment

Search and install packages in Ubuntu/Debian:
sudo apt-get search package sudo apt-get install package
  • Ubuntu 13.10 64bits fresh install.
  • List of packages needed/recommended
    • ksh
    • build-essential
    • openjdk-8-jre (or java-7-jre)
    • vim
    • aptitude
    • xfonts (100dpi, 75dpi), ttf-freefont
    • ssh-server
    • csh
    • lsb-core
    • libstdc++6
    • sysstat
  • You need to define some environment variables. You can put them in your
  • ~/.bashrc file
Therefore, you can install them by typing in a terminal:
sudo apt-get install ksh build-essential openjdk-8-jre vim aptitude csh ssh lsb-core libstdc++6 xfonts-100dpi xfonts-75dpi xfonts-100dpi-transcoded xfonts-75dpi-transcoded ttf-freefont sysstat
Restart the system. Now you are able to install Cadence Software

Cadence SW Installation

The following installation steps are extracted and customized from the guide EUROPRACTICE Cadence IC Package Licensing & Installation 2013/2014.

Previous considerations

It is possible that some downloaded files are compressed into '.Z' file format. You can uncompress them using
zcat file.t.Z | tar xvf -

Installing Cadence Software Using IScape

Now, execute iscape typing
sh iscape.sh

Posible Problems and Solutions

If during the installation process you get permission errors, execute iscape with privileges:
sudo sh iscape.sh
If installscape does not work showing a java error message, you need to link the java, java_vm y javaws binaries in /etc/alternatives maintaining the same names. You can also update the java references by executing:
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javws
Additionally, it is possible that iscape.sh is outdated for your system,
iscape.sh: 219: exec: /home/administrador/cadence_install_files/iscape.04.21-s003/runtime/LNX86/bin/java: not found
If you get the above error, you need to edit iscape.sh and change
....
if [ "X$java_vm" = "X" ]; then
java_vm=`FindJavaInPath`;
fi;
with
if [ "X$java_vm" = "X" ]; then
java_vm=`FindJavaInPath`;
fi;
java_vm=Path_to_your_java_bin_folder // in this case, /usr/lib/jvm/java-7-openjdk-amd64/bin/java

Step by Step

First of all, we need to install INCISIVE. Incisive is responsible for the compilation of different libraries. After this step, we would be able to install the other software tools, as IC, MMSIM etc.
The Incisive suite contains simulation & verification tools
for digital and mixed signal designs. It is also
required for the compilation of AMS Designer libraries during
the IC 6.1.x installation. For this reason,
Incisive should be installed before any other release.
Due to this requirement, the recommended installation order is the following:
  • INCISIVE
  • ALTOS
  • ASSURA
  • CONFORMAL
  • CTOS
  • EDI
  • ET
  • ETS
  • IC
  • MMSIM
  • PVE
  • RC
  • VITCAT
The different tools (including INCISIVE) can be installed using IScape:
  1. Click on “Install from a Local Directory/Media” in the InstallScape window.
  2. When asked for a location, choose ALLWAYS the "Hotfix" (Or "Update") CDROM1 directory. The InstallScape installer will ask you later (if needed) for the "Base" directory.
  3. Click “Next”. When asked what products to install. For example, if using the hotfix cdrom directory, once the installation gets to ~99% InstallScape will ask you for the Base ICxx directory. Simply point it to the CDROM1 folder in base folder (~/CADENCE_INSTALL/ICxx/Base/ICxx_lnx86.Base/CDROM1) from your installation sources.
  4. Once done, an installation Report will show you the results of your installation.
  5. The configuration process should now start. Select the desired license options, and path.
  6. When dealing with OpenAccess software, follow the instructions located in the Europractice pdf. For 2012/2013 software they recommend to use the open access binary (and therefore, the path) located inside each tool folder.
  7. Click “Close”. You will be prompted to configure the installed products. Click “Yes”
  8. An automated configuration script will now start.
  9. The desired software should now be installed.
Open Access Versions During the configuration of each release, you may be invited to specify a different OpenAccess installation. The recommended action is to use the OpenAccess Version installed with the tool, so in each case, answer no, as shown below.
Welcome to the OpenAccess 2.2 Configuration Utility.
Important: Before continuing, first close all applications that use OpenAccess
libraries. Then make sure that there are no oaDMTurboServer processes running
(kill these processes with the kill command on UNIX/Linux).
Press Enter to continue (q to quit):
-------------------------------------------------------------------------------
This utility lets you specify a different OpenAccess installation to use.
The current installation is
[/pack/cadence/2012_2013/IC_6.1.5HF132/oa_v22.41.025]
Do you want to use a different OpenAccess installation (y/n/q) ? [y] n

Licenses Daemons Installation

  • Install LCU utilities using iscape
  • Ensure that you have a valid hostname (/etc/hostname). Changes in this files require from a system reboot.
  • Update /etc/hosts
127.0.0.1 localhost
127.0.1.1 your-host-name
#lic-servers
xxx.xxx.xxx.xxx your-lic-server-0
xxx.xxx.xxx.xxx your-lic-server-1
xxx.xxx.xxx.xxx your-lic-server-2

Post Installation

There are several changes which must be taken to get the software correct behavior. Note that it is posible that the following commands require sudo privileges.

cds_root

  1. Backup $CDS_IC/tools/bin/cds_root
    sudo cp $CDS_IC/tools/bin/cds_root $CDS_IC/tools/bin/cds_root.32b.back
  2. Now, link cds_root to the 64bits edition
    sudo rm $CDS_IC/tools/bin/cds_root
    sudo ln -s $CDS_IC/tools/bin/64bit/cds_root $CDS_IC/tools/bin/cds_root

awk

sudo ln -s /usr/bin/awk /bin/awk

Dash link to bash

sudo ln -sf bash /bin/sh
To revert it:
sudo ln -sf dash /bin/sh

Compiler and libraries

In order to use
  • ahdlcmicompile support (BSources and other behavioral components)
  • ADEXL (uses vnclibs)
You need to properly configure your system.

LMUTILS

cd $CDS_IC/tools/bin mv lmgrd lmgrd.old ln -s 64bit/lmgrd lmgrd ln -s 64bit/lmutil lmutil

GCC compiler

Note that the path $CDS_MMSIM/tools.lnx86/cdsgcc/gcc/4.4/bin can be upgraded to any $CDS_MMSIM/tools.lnx86/cdsgcc/gcc/X.Y/bin Redirect cadence gcc to use system gcc instead:
cd $CDS_MMSIM/tools/cdsgcc/gcc/bin
mv gcc gcc_bak
mv g++ g++_bak
mv ld ld_bak
mv c++filt c++filt_back
ln -s `which gcc` gcc
ln -s `which gcc` g++
ln -s `which gcc` ld
ln -s `which gcc` c++filt
cd $CDS_MMSIM/tools/cdsgcc/gcc/4.4/bin
mv gcc gcc_bak
mv g++ g++_bak
mv ld ld_bak
mv c++filt c++filt_back
ln -s `which gcc` gcc
ln -s `which gcc` g++
ln -s `which gcc` ld
ln -s `which gcc` c++filt

Gnu MAKE

Redirect cadence make to use system make instead:
cd $CDS_MMSIM/tools/spectre/ahdlcmi/bin/
mv gnumake gnumake.back
ln -s /usr/bin/make gnumake

Compiling libraries

You can install gcc 32bits libraries (NOT RECOMMENDED)
sudo apt-get install gcc-multilib
Or you can properly configure your 64 bits native ones RECOMMENDED. The following environment variables should be configured as follows:
LIBRARY_PATH=/usr/lib/$(gcc -print-multiarch):/usr/lib/x86_64-linux-gnu:/usr/lib:/usr/bin/gcc:$CDS_IC/tools/bin:$CDS_IC/tools/
lib/64bit:$CDS_IC/tools/dfII/lib/64bit:$CDS_IC/tools/sev/lib/64bit
CPATH=/usr/include/$(gcc -print-multiarch)
export LIBRARY_PATH CPATH

libgcc_s

You need to find libgcc in your system (maybe it is placed in /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 or in /usr/lib/libgcc_s.so.1 Next, modify the different cadence software links:
cd $CDS_IC/tools/lib/vnclibs/
mv libgcc_s.so.1 libgcc_s.so.1.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1
mv libgcc_s.so libgcc_s.so.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so
cd $CDS_IC/tools/lib/
mv libgcc_s.so.1 libgcc_s.so.1.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1
mv libgcc_s.so libgcc_s.so.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so
cd $CDS_IC/tools/lib/64bit/
mv libgcc_s.so.1 libgcc_s.so.1.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1
mv libgcc_s.so libgcc_s.so.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so
cd $CDS_MMSIM/tools/lib/
mv libgcc_s.so.1 libgcc_s.so.1.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1
mv libgcc_s.so libgcc_s.so.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so
cd $CDS_MMSIM/tools/lib/64bit/
mv libgcc_s.so.1 libgcc_s.so.1.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1
mv libgcc_s.so libgcc_s.so.old
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so

libstd (c++ standard libraries)

You need to find libstd in your system (maybe it is placed in /usr/lib/x86_64-linux-gnu/libstdc++.so.6 or in /usr/lib/libstdc++.so.6 Next, modify the link of cadence software
cd $CDS_IC/tools/lib/
mv libstdc++.so.6 libstdc++.so.6.old
ln -s /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
mv libstdc++.so libstdc++.so.old
ln -s /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so
cd $CDS_IC/tools/lib/64bit/
mv libstdc++.so.6 libstdc++.so.6.old
ln -s /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
mv libstdc++.so libstdc++.so.old
ln -s /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so
cd $CDS_MMSIM/tools/lib/
mv libstdc++.so.6 libstdc++.so.6.old
ln -s /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
mv libstdc++.so libstdc++.so.old
ln -s /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so
cd $CDS_MMSIM/tools/lib/64bit/
mv libstdc++.so.6 libstdc++.so.6.old
ln -s /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
mv libstdc++.so libstdc++.so.old
ln -s /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so

fonts (needed by ADE XL)

mkdir /usr/X11R6
mkdir /usr/X11R6/lib/
mkdir /usr/X11R6/lib/X11/
mkdir /usr/X11R6/lib/X11/fonts/
ln -s /usr/share/fonts/X11/misc/ /usr/X11R6/lib/X11/fonts/misc
ln -s /usr/share/fonts/X11/Type1/ /usr/X11R6/lib/X11/fonts/Type1
ln -s /usr/share/fonts/X11/75dpi/ /usr/X11R6/lib/X11/fonts/75dpi
ln -s /usr/share/fonts/X11/100dpi/ /usr/X11R6/lib/X11/fonts/100dpi

Remove kernel uncompatible warnings

Edit both
$CDS_IC/tools.lnx86/bin/.preHostEnvCheck
and
$CDS_MMSIM/tools.lnx86/bin/.preHostEnvCheck
and comment the kernel check functions

BASH ENVIRONMENT VARIABLES

Called every time that the user logs in the system. The following file is an example: the paths depend on the installation folders.
##############################
### Bash.cadence
### for Ubuntu 13.10 64bits
##############################
####################
# GLOBAL
####################
export CDS_AUTO_64BIT=ALL
export CDS_AUTO_32BIT=NONE
export CDS_INST=/opt/cadence
export LANG=C
LIBRARY_PATH=/usr/lib/$(gcc -print-multiarch):/usr/lib/x86_64-linux-gnu:/usr/lib:/usr/bin/gcc:$CDS_IC/tools/bin:$CDS_IC/tools/lib/64bit:$CDS_IC/tools/dfII/lib/64bit:$CDS_IC/tools/sev/lib/64bit
CPATH=/usr/include/$(gcc -print-multiarch)
export LIBRARY_PATH CPATH
####################
# LICENSES
####################
export LM_LICENSE_FILE=5280@your_lic_servers
PATH=$PATH:/path_to_lmgrd
export PATH
####################
# INSTALL CADENCE
####################
PATH=$PATH:/path_to_iscape/bin
export PATH
####################
# INCISIVE
####################
#export CDS_INCISIVE=$PATH:$CDS_INST/INCISIV131
#export PATH=$PATH:$CDS_INCISIVE/bin:$CDS_INCISIVE/tools/bin
####################
# IC6
####################
export CDS_IC=$CDS_INST/IC616
export CDS_ROOT=$CDS_INST/IC616
export CDSDIR=$CDS_IC
export CDSHOME=$CDS_IC
export CSD_Netlisting_Mode="Analog"
export MG_ENABLE_PTOT="true"
export CDS_USE_PALETTE
export PATH=$PATH:$CDS_IC/bin
export PATH=$PATH:$CDS_IC/tools/bin
export PATH=$PATH:$CDS_IC/tools/dfII/bin
alias help_cds_ic='$CDS_IC/tools/bin/cdshelp &'
export OA_UNSUPPORTED_PLAT=`ls -1 $CDS_IC/share/oa/bin | grep linux_rhel.*_32 | sed 's/\(linux\_rhel.*\)\_32/\1/'`
export OA_HOME=$CDS_IC/oa_v22.43.019
####################
# SPECTRE
####################
export CDS_MMSIM=$CDS_INST/MMSIM121
export PATH=$PATH:$CDS_MMSIM/bin
export PATH=$PATH:$CDS_MMSIM/tools/bin
export PATH=$PATH:$CDS_MMSIM/tools/dfII/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CDS_MMSIM/tools/bin:$CDS_MMSIM/tools/lib/64bit

Cadence under a 64 bits Ubuntu/Debian with 32bits libs, with IC already installed

Previous considerations

If possible, we recommend to use this guide with a fresh install of the latest Ubuntu 64bits version instead of a 12.04 release. If you have an Ubuntu 12.04 64bits machine, with IC5 already installed and you experiment ahdlc compiling problems, follow this one.

Environment

The environment for this guide is an Ubuntu 12.04 64bits machine with IC5 and MMSIM11 already installed, as well as the following libraries/programs:
  • Ubuntu 13.10 64bits fresh install.
  • List of packages needed/recommended
    • ksh
    • build-essential
    • openjdk-7-jre
    • vim
    • aptitude
    • xfonts (100dpi, 75dpi), ttf-freefont
    • ssh-server
    • csh
    • lsb-core
    • libstdc++6 Both 64bits and 32bits
    • libelf1
    • libmotif3
    • gawk
    • policykit
    • ureadahed
    • libXP Both 64bits and 32bits
    • libExt Both 64bits and 32bits
    • libXtst Both 64bits and 32bits
    • libelf Both 64bits and 32bits
    • libz / libzip Both 64bits and 32bits
    • libc6-devBoth 64bits and 32bits
    • libstdcBoth 64bits and 32bits
    • glibc
    • glibc-devel
    • elfutils-libelf
    • mesa-libGL
    • mesa-libGLU
    • openmotif
    • libpng
    • libjpeg
  • You need to define some environment variables. You can put them in your
  • ~/.bashrc file

Installing ahdclc in a 64/32 bits Ubuntu 12.04

Please, notice that the following commands will use, contrary to the previous guide, 32 bits libraries when compiling behavioral components.
sudo aptitude install gcc-multilib

Post Installation

Move to your MMSIM folder
cd MMSIM
sudo mv gcc gcc.old

sudo mv g++ g++.old
sudo mv ld ld.old
sudo ln -s /usr/bin/gcc gcc
sudo ln -s /usr/bin/gcc g++
sudo ln -s /usr/bin/gcc ld

BASH ENVIRONMENT VARIABLES

Called every time that the user logs in the system. The following file is an example: the paths depend on the installation folders.
##############################
### Bash.cadence
### for Ubuntu 12.04 64bits
##############################
####################
# GLOBAL
####################
export CDS_LIC_FILE=$LM_LICENSE_FILE export CDS_TOP=/opt/ export OA_UNSUPPORTED_PLAT=linux_rhel40_gcc44x export CDS_AUTO_32BIT=ALL
export CDS_INST=$CDS_TOP/cadence
export LANG=C
LIBRARY_PATH=/usr/lib/$(gcc -print-multiarch):/usr/lib/x86_64-linux-gnu:/usr/lib:/usr/bin/gcc:$CDS_IC/tools/bin:$CDS_IC/tools/lib/64bit:$CDS_IC/tools/dfII/lib/64bit:$CDS_IC/tools/sev/lib/64bit
CPATH=/usr/include/$(gcc -print-multiarch)
export LIBRARY_PATH CPATH
################
### VIRTUOSO ###
################
export CDS_IC=$CDS_TOP/IC5141
export CDSDIR=$CDS_IC
export CDS_Netlisting_Mode=Analog
export MG_ENABLE_PTOT=true
export CDSHOME=$CDS_IC
#export CDS_USE_PALETTE
export PATH=${PATH}:${CDS_IC}/tools/bin
export PATH=${PATH}:${CDS_IC}/tools/dfII/bin
alias help_cds_ic='$CDS_IC/tools/bin/cdsdoc &'
alias to_launch_cds_ic='echo "icfb"'
export LANG=C
export EDITOR=emacs
export CDS_TEXT_EDITOR=$EDITOR
#######################
### SPECTRE / MMSIM ###
#######################
export CDS_MMSIM=$CDS_TOP/MMSIM111
export PATH=${CDS_MMSIM}/tools/bin:${PATH}
alias help_cds_mmsim='$CDS_MMSIM/tools/bin/cdnshelp &'
alias help_cds_mmsim_spectre_pdf='gnome-open $CDS_MMSIM/doc/spectreuser/spectreuser.pdf &'
alias help_cds_mmsim_ultrasim_pdf='gnome-open $CDS_MMSIM/doc/UltraSim_User/UltraSim_User.pdf &'
alias to_launch_cds_mmsim='echo "spectre \\ spectre -help #to display command options\\ ultrasim [-f} [options]\\
ultrasim -f #to display command options\\ aps options inputfile\\ aps -help #to display command options"'
##################
## AHDL COMPILING
######################
LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/usr/lib/:/usr/bin/gcc:$CDS_IC/tools/bin:$CDS_IC/tools/lib/:$CDS_IC/tools/dfII/lib/:$CDS_IC/tools/sev/lib/:$LIBRARY_PATH
#LD_LIBRARY_PATH=/usr/lib/:/usr/local/lib/:$CDSDIR/tools.lnx86/lib/:$CDSDIR/tools.lnx86/lib/SuSE/:$CDSDIR/tools/QT/lib/
CPATH=/usr/include/$(gcc -print-multiarch)
export LIBRARY_PATH CPATH
export C_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)
export CPLUS_INCLUDE_PATH=/usr/include/$(gcc -print-multiarch)