Cadence Virtuoso setup: Difference between revisions

From ift
No edit summary
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= New single script install =
Edit the europractice_installer.sh and change INST_DIR=/eda to INST_DIR=/prog (ignore the warning of changing install paths){{-}}
Run "source europractice_installer.sh" and wait until done.{{-}}
Check in the /prog/cadence/20xx-xx/script folder if there is a IC, VIPCAT and ASSURA script in there, if not modify the release versions and add the following snippet in a file called cadence_missing.csh
<source lang="tcl">
setenv YEAR 2014-15
setenv $CDS_INST /prog/cadence/$YEAR/RHELx86
setenv CDS_VIPCAT $CDS_INST/VIPCAT_11.30.029_OVM
setenv PATH "${PATH}:${CDS_VIPCAT}/tools/bin"
if ( $?SPECMAN_PATH == 0) then
  setenv SPECMAN_PATH "${CDS_VIPCAT}/utils:${CDS_VIPCAT}/packages"
else
  setenv SPECMAN_PATH "${CDS_VIPCAT}/utils:${CDS_VIPCAT}/packages:${SPECMAN_PATH}"
endif
alias help_cds_vipcat  '$CDS_VIPCAT/tools/bin/cdnshelp &'
#
setenv CDS_VIPCAT $CDS_INST/VIPCAT_11.30.029_UVM
setenv PATH "${PATH}:${CDS_VIPCAT}/tools/bin"
if ( $?SPECMAN_PATH == 0) then
  setenv SPECMAN_PATH "${CDS_VIPCAT}/utils:${CDS_VIPCAT}/packages"
else
  setenv SPECMAN_PATH "${CDS_VIPCAT}/utils:${CDS_VIPCAT}/packages:${SPECMAN_PATH}"
endif
alias help_cds_vipcat  '$CDS_VIPCAT/tools/bin/cdnshelp &'
#
setenv CDS_ASSURA $CDS_INST/ASSURA_04.14.111_IC616OA
setenv ASSURAHOME $CDS_ASSURA
#the following line might be completely redundant
setenv SUBSTRATESTORMHOME $ASSURAHOME # For Assura-RF
setenv LANG C
setenv PATH "${PATH}:${CDS_ASSURA}/tools/bin"
setenv PATH "${PATH}:${CDS_ASSURA}/tools/assura/bin"
setenv PATH "${PATH}:${SUBSTRATESTORMHOME}/bin"
setenv ASSURA_AUTO_64BIT ALL
alias help_cds_assura  '$CDS_ASSURA/tools/bin/cdnshelp &'
# assura
setenv CDS_IC  $CDS_INST/IC_6.1.6.080
# This line is required by the some design kits...
setenv CDSDIR $CDS_IC
# When using ADE set netlisting mode to analog ("dfIIconfig.pdf"), p16.
setenv CDS_Netlisting_Mode Analog
setenv MG_ENABLE_PTOT true
# Required for tutorial material and cadence libraries (eg analogLib)
setenv CDSHOME $CDS_IC
setenv CDS_USE_PALETTE
setenv PATH "${PATH}:${CDS_IC}/tools/bin"
setenv PATH "${PATH}:${CDS_IC}/tools/dfII/bin"
alias help_cds_ic  '$CDS_IC/tools/bin/cdnshelp &'
</source>
Run the following to generate the startup script
<source lang="tcl">
setenv YEAR 2014-15
# Fix path
sed -i 's/eda/prog/g' /prog/cadence/$YEAR/scripts/*.csh
# Fix non existent manpath
sed -i 's/setenv MANPATH/#setenv MANPATH/g' /prog/cadence/$YEAR/scripts/*.csh
chmod +x /prog/cadence/$YEAR/scripts/*.csh
# Add all scripts to one fil
ls /prog/cadence/$YEAR/scripts/*.csh > /prog/cadence/cadence_$YEAR\_init.csh
# Add source to each line
sed -i -e 's/^/source /' /prog/cadence/cadence_$YEAR\_init.csh
echo 'source /prog/cadence/eda_general_init.csh' >> /prog/cadence/cadence_$YEAR\_init.csh
chmod +x /prog/cadence/cadence_$YEAR\_init.csh
ln -s /prog/cadence/cadence_$YEAR\_init.csh /prog/cadence/cadence_init.csh
source /prog/cadence/cadence_init.csh
</source>
The content of eda_general_init.csh is
<source lang="tcl">
setenv CDS_LIC_FILE 5280@vlsi.ift.uib.no
setenv AMS_DIR /path/to/amslib
setenv TSMC_DIR /path/to/tsmc
setenv PATH "${PATH}:${AMS_DIR}/cds/bin"
setenv CDS_BIND_TMP_DD true
setenv IUSDIR $CDS_INCV
alias ams_cds_start 'setenv AMS;ams_cds -tech c35b4 -nologo'
alias tsmc_cds_start 'unsetenv AMS;virtuoso &'
</source>
Run checksys.sh script given at end of this page.
= Old install method=
== Update install manager ==
== Update install manager ==
Always update install manager if a newer exists or else installations may fail.
Always update install manager if a newer exists or else installations may fail.
Line 81: Line 171:
Include these lines at the bottom
Include these lines at the bottom
  setenv AMS_DIR /path/to/amslib
  setenv AMS_DIR /path/to/amslib
setenv TSMC_DIR /path/to/tsmc
  setenv PATH "${PATH}:${AMS_DIR}/cds/bin"
  setenv PATH "${PATH}:${AMS_DIR}/cds/bin"
  setenv CDS_BIND_TMP_DD true
  setenv CDS_BIND_TMP_DD true
  setenv IUSDIR $CDS_INCV
  setenv IUSDIR $CDS_INCV
  alias ams_cds_start 'ams_cds -64 -tech c35b4 -nologo'
  alias ams_cds_start 'setenv AMS;ams_cds -tech c35b4 -nologo'
 
alias tsmc_cds_start 'unsetenv AMS;virtuoso &'


Save file as cadence_ic_20xx_uib.csh
Save file as cadence_ic_20xx_uib.csh and add/update the symlink
  csh
  csh
  chmod +x /prog/cadence/cadence_ic_20xx_uib.csh
  chmod +x /prog/cadence/cadence_ic_20xx_uib.csh
  source /prog/cadence/cadence_ic_20xx_uib.csh
ln -s /prog/cadence/cadence_ic_20xx_uib.csh /prog/cadence/cadence_init.csh
  source /prog/cadence/cadence_init.csh
Run lmstat to check that it is possible to connect to the license server
Run lmstat to check that it is possible to connect to the license server
  lmstat -c 5280@<your licenceserver>
  lmstat -c 5280@<your licenceserver>
Line 130: Line 222:
</source>
</source>
Then check the version in the aforementioned folder and the text file inside it.
Then check the version in the aforementioned folder and the text file inside it.
Copy the .cdsinit script below to the folder /prog/cadence/IC_6.X.X.X/tools/dfII/local


== Scripts ==
== Scripts ==
Line 153: Line 247:
#$CDS_ET $CDS_ETS $CDS_MMSIM $incisiv_dir $CDS_VIPCAT $CTOS_ROOT )
#$CDS_ET $CDS_ETS $CDS_MMSIM $incisiv_dir $CDS_VIPCAT $CTOS_ROOT )
#2013
#2013
cds_paths=( $ALTOSHOME $CDS_ASSURA $CDS_IC $CDS_ICC $CDS_PVE $CDS_CONFORMAL $CDS_RC $CDS_EDI $CDS_ET $CDS_ETS $CDS_MMSIM $CDS_INCV $CDS_VIPCAT $CTOS_ROOT)
cds_paths=( $ALTOSHOME $CDS_ASSURA $CDS_IC $CDS_ICC $CDS_PVE $CDS_CONFORMAL $CDS_RC $CDS_EDI $CDS_ET  
$CDS_ETS $CDS_MMSIM $CDS_INCV $CDS_VIPCAT $CTOS_ROOT)
# CTOS_ROOT doesn't seem to have a checksysconf
# CTOS_ROOT doesn't seem to have a checksysconf
#2014
cds_paths=( $CDS_ASSURA $CDS_CONFORMAL $CTOS_ROOT $CDS_EDI $CDS_ET $CDS_EXT $CDS_IC $CDS_INCV $ALTOSHOME $CDS_MMSIM $CDS_MVS $CDS_PVS $CDS_RC $CDS_SSV $CDS_VIPCAT )
# CDS_ASSURA CDS_IC and CDS_VIPCAT needs manual script


if [ -e ./problems.txt ]
if [ -e ./problems.txt ]
Line 212: Line 310:
   cat ./problems.txt | grep FAIL
   cat ./problems.txt | grep FAIL
fi
fi
</source>
===.cdsinit===
<source lang="autohotkey">
; AMS runs a script before starting virtuoso which creates a local .cdsinit in the current folder
; load the local .cdsinit if the program was started with the variable AMS set else load TSMC settings
if(getShellEnvVar("AMS") then
  loadi("./.cdsinit")
else
;if( ddIsId( ddGetObj( "tsmc13rf" ) ) then
  printf("********************************************\n")
  printf("        Starting TSMC 130nm                \n")
  printf("********************************************\n")
  ddCreateLib( "tsmc13rf" strcat(getShellEnvVar("TSMC_DIR") "/tsmc13rf"))
  loadi(strcat(getShellEnvVar("TSMC_DIR") "/tsmc13rf/libInit.il"))
)
</source>
</source>


Line 220: Line 334:
*tk
*tk
*ksh
*ksh
*sysstat
[[Category:Mikroelektronikk]] [[Category:Integrated_Circuts]]

Latest revision as of 13:31, 15 September 2017

New single script install

Edit the europractice_installer.sh and change INST_DIR=/eda to INST_DIR=/prog (ignore the warning of changing install paths)
Run "source europractice_installer.sh" and wait until done.
Check in the /prog/cadence/20xx-xx/script folder if there is a IC, VIPCAT and ASSURA script in there, if not modify the release versions and add the following snippet in a file called cadence_missing.csh


setenv YEAR 2014-15
setenv $CDS_INST /prog/cadence/$YEAR/RHELx86
setenv CDS_VIPCAT $CDS_INST/VIPCAT_11.30.029_OVM 
setenv PATH "${PATH}:${CDS_VIPCAT}/tools/bin"
if ( $?SPECMAN_PATH == 0) then 
  setenv SPECMAN_PATH "${CDS_VIPCAT}/utils:${CDS_VIPCAT}/packages"
else 
  setenv SPECMAN_PATH "${CDS_VIPCAT}/utils:${CDS_VIPCAT}/packages:${SPECMAN_PATH}"
endif
alias help_cds_vipcat  '$CDS_VIPCAT/tools/bin/cdnshelp &'
#

setenv CDS_VIPCAT $CDS_INST/VIPCAT_11.30.029_UVM 
setenv PATH "${PATH}:${CDS_VIPCAT}/tools/bin"
if ( $?SPECMAN_PATH == 0) then 
  setenv SPECMAN_PATH "${CDS_VIPCAT}/utils:${CDS_VIPCAT}/packages"
else 
  setenv SPECMAN_PATH "${CDS_VIPCAT}/utils:${CDS_VIPCAT}/packages:${SPECMAN_PATH}"
endif
alias help_cds_vipcat  '$CDS_VIPCAT/tools/bin/cdnshelp &'
#

setenv CDS_ASSURA $CDS_INST/ASSURA_04.14.111_IC616OA 
setenv ASSURAHOME $CDS_ASSURA
#the following line might be completely redundant
setenv SUBSTRATESTORMHOME $ASSURAHOME		# For Assura-RF
setenv LANG C
setenv PATH "${PATH}:${CDS_ASSURA}/tools/bin"
setenv PATH "${PATH}:${CDS_ASSURA}/tools/assura/bin"
setenv PATH "${PATH}:${SUBSTRATESTORMHOME}/bin"
setenv ASSURA_AUTO_64BIT ALL
alias help_cds_assura  '$CDS_ASSURA/tools/bin/cdnshelp &'
# assura

setenv CDS_IC  $CDS_INST/IC_6.1.6.080 
# This line is required by the some design kits...
setenv CDSDIR $CDS_IC
# When using ADE set netlisting mode to analog ("dfIIconfig.pdf"), p16.
setenv CDS_Netlisting_Mode Analog
setenv MG_ENABLE_PTOT true
# Required for tutorial material and cadence libraries (eg analogLib)
setenv CDSHOME $CDS_IC
setenv CDS_USE_PALETTE
setenv PATH "${PATH}:${CDS_IC}/tools/bin"
setenv PATH "${PATH}:${CDS_IC}/tools/dfII/bin"
alias help_cds_ic  '$CDS_IC/tools/bin/cdnshelp &'

Run the following to generate the startup script

setenv YEAR 2014-15
# Fix path
sed -i 's/eda/prog/g' /prog/cadence/$YEAR/scripts/*.csh
# Fix non existent manpath
sed -i 's/setenv MANPATH/#setenv MANPATH/g' /prog/cadence/$YEAR/scripts/*.csh
chmod +x /prog/cadence/$YEAR/scripts/*.csh
# Add all scripts to one fil
ls /prog/cadence/$YEAR/scripts/*.csh > /prog/cadence/cadence_$YEAR\_init.csh
# Add source to each line
sed -i -e 's/^/source /' /prog/cadence/cadence_$YEAR\_init.csh
echo 'source /prog/cadence/eda_general_init.csh' >> /prog/cadence/cadence_$YEAR\_init.csh
chmod +x /prog/cadence/cadence_$YEAR\_init.csh
ln -s /prog/cadence/cadence_$YEAR\_init.csh /prog/cadence/cadence_init.csh
source /prog/cadence/cadence_init.csh

The content of eda_general_init.csh is

setenv CDS_LIC_FILE 5280@vlsi.ift.uib.no
setenv AMS_DIR /path/to/amslib
setenv TSMC_DIR /path/to/tsmc
setenv PATH "${PATH}:${AMS_DIR}/cds/bin"
setenv CDS_BIND_TMP_DD true
setenv IUSDIR $CDS_INCV
alias ams_cds_start 'setenv AMS;ams_cds -tech c35b4 -nologo'
alias tsmc_cds_start 'unsetenv AMS;virtuoso &'

Run checksys.sh script given at end of this page.


Old install method

Update install manager

Always update install manager if a newer exists or else installations may fail.

cd /prog/cadence/
mkdir iscape
tar zxvf /prog/download/download.msc.rl.ac.uk/Cadence/2012_2013/ISCAPE/lnx86/iscape_VERSION

Extract downloaded files

cd /prog/cadence/
mkdir download
cd download
find /prog/download/download.msc.rl.ac.uk/Cadence/ -name '*.tar' | xargs -l tar xvf

Run install manager

/prog/cadence/iscape/iscape/bin/iscape.sh&

configure install manager

preferences -> directories
Set default install directory to
/prog/cadence

install/update program with install manager

For new installs, follow the install instructions provided by europractice in addition to the tips from this guide. Correct directory naming reduces the amount of editing of the settings file later.

  • Press the icon which has the text "local directory/media install"
  • Select browse and navigate to the directory containing the install files and select the CDROM1 folder. *Check that there isn't a slash at the end of the path. The program doesn't search recursively.

fex: /prog/cadence/unpacked/ASSURA04.12.020-5141_lnx86.Hotfix/CDROM1

  • You don't need to install all updates recursively, select only the latest hotfix and the install will ask for the path to the base install when it is needed. If there are no hotfixes, install the base install.
  • Select the correct path to install to, keep the existing naming convention.
  • If a window opens with "Welcome to OpenAccess.....", just press enter and then 'n' and then enter again.
  • If a window opens which asks about configuring the license server, press n.
  • When the install is finished and you are back in the result list, you need to press the small underlined cancel text to change the path.
  • To make make less changes to the environment script later run this command and use the provided paths in the installation. The CDS_INST path will be changed later.
cat /prog/download/download.msc.rl.ac.uk/Cadence/2013_2014/cadence_ic_2013.csh | grep CDS_INST


Package specifics

INCISIVE

When doing a full install, INCISIVE needs to be installed first as it is required by IC. Press cancel when the ARM license file dialog shows.

ASSURA

There are two versions ASSURA*-615 and ASSURA*-5141. 5141 is for compability with IC5 (CDB). 61 is for use with IC6 (OA).

VIPCAT

Choose UVM as the packet to install for IP verification

Configuration

If a new install, then copy the template script called "cadence_ic_20xx.csh" from the download folder to the /prog/cadence folder.

Line references following will be based on the 2012 release of the file. Check that actual folder names are correct.

  • 24 - Set correct license server at line
  • 27 - Set CDS_INST to /prog/candence
  • 37 - Set ALTOS path to /ALTOS/altos_rel3.2p3
  • 57 - Set ASSURA path to /ASSURA_4.12_CDB if using IC5, /ASSURA_4.12_OA if using IC6
  • 72/74 - Comment/uncomment line according to IC version
  • 83 - Set to correct MVS folder (correct according to install instructions)
  • 110 - Set to correct IC6 folder (correct according to install instructions)
  • 151 - Set to correct ICC folder (correct according to install instructions)
  • 188 - Set PVE path to /PVE_11.12HF106
  • 213 - Set Conformal path to /CONFORMAL_11.10
  • 229 - Set to correct RCL folder (correct according to install instructions)
  • 243 - Set EDI path to /EDI_11.1
  • 258 - Set to correct ET folder (correct according to install instructions)
  • 274 - Set to correct ETS folder (correct according to install instructions)
  • 293 - Set MMSIM path to /MMSIM_11.10
  • 315 - Set INCISIVE path to /INCISIVE_12.1
  • 387 - Set VIPCAT path to /VIPCAT_11.3.014
  • 411 - Set CTOS path to /CTOS_12.1

If you correctly set the directories like specified above you can skip editing the paths to the specific programs and only change the one for CDS_INT.

Include these lines at the bottom

setenv AMS_DIR /path/to/amslib
setenv TSMC_DIR /path/to/tsmc
setenv PATH "${PATH}:${AMS_DIR}/cds/bin"
setenv CDS_BIND_TMP_DD true
setenv IUSDIR $CDS_INCV
alias ams_cds_start 'setenv AMS;ams_cds -tech c35b4 -nologo'
alias tsmc_cds_start 'unsetenv AMS;virtuoso &'

Save file as cadence_ic_20xx_uib.csh and add/update the symlink

csh
chmod +x /prog/cadence/cadence_ic_20xx_uib.csh
ln -s /prog/cadence/cadence_ic_20xx_uib.csh /prog/cadence/cadence_init.csh
source /prog/cadence/cadence_init.csh

Run lmstat to check that it is possible to connect to the license server

lmstat -c 5280@<your licenceserver>

Both cdslmd and altosda should be listed as up.

Run the checksys.sh script listed below to check for any missing dependencies and to set up any missing tools links. In case the scipt gives an error like

 

Configuration checks failed, status is: FAIL

checkSysConf cannot reliably parse your systems /etc/redhat-release file
It would appear that the file is non-standard and does not contain release
information in the standard readable format.

The contents of your /etc/redhat-release is listed below between
<RELEASE_FILE> tags.
A 'correct' release file should have only one line of content, containing
version information in a standard format.

<RELEASE_FILE>
Red Hat Enterprise Linux Server release 5.9 (Tikanga)
</RELEASE_FILE>

Please check/correct your /etc/redhat-release file and try again.
There is no OEM datafile for -r for the Linux platform.

Valid OEM images are :
foreach: No match.

then the OS is probably newer than checkSysConf used, copy a newer version from another program folder. If you then get

This operating system version '5.0WS' is not supported

If you believe you are running a supported OS then check that
the OS version directory exists in the data directory:
/<path to cadence>/ICC_11.2.41/share/patchData/Linux/x86_64

Then check the version in the aforementioned folder and the text file inside it.

Copy the .cdsinit script below to the folder /prog/cadence/IC_6.X.X.X/tools/dfII/local

Scripts

Checksys.sh

Usefull for setting up missing tools folders and checking that all dependencies are installed

#!/bin/bash
#
# Script for setting up tools folders and checking dependencies
# By Arild Velure 2014
#

if ( [ -z "$CDS_INST" ] && [ -z "$CDS_TOP" ] )
then
  echo "Please run environment script first"
  exit 1
fi

# Add new modules if needed
#2012
#cds_paths=( $CDS_ASSURA $CDS_MVS $CDS_IC $CDS_ICC $CDS_PVE $CDS_CONFORMAL $RC_PATH $CDS_SOCE
#$CDS_ET $CDS_ETS $CDS_MMSIM $incisiv_dir $CDS_VIPCAT $CTOS_ROOT )
#2013
cds_paths=( $ALTOSHOME $CDS_ASSURA $CDS_IC $CDS_ICC $CDS_PVE $CDS_CONFORMAL $CDS_RC $CDS_EDI $CDS_ET 
$CDS_ETS $CDS_MMSIM $CDS_INCV $CDS_VIPCAT $CTOS_ROOT)
# CTOS_ROOT doesn't seem to have a checksysconf
#2014
cds_paths=( $CDS_ASSURA $CDS_CONFORMAL $CTOS_ROOT $CDS_EDI $CDS_ET $CDS_EXT $CDS_IC $CDS_INCV $ALTOSHOME $CDS_MMSIM $CDS_MVS $CDS_PVS $CDS_RC $CDS_SSV $CDS_VIPCAT )
# CDS_ASSURA CDS_IC and CDS_VIPCAT needs manual script

if [ -e ./problems.txt ]
  then
  rm ./problems.txt
fi

# Some installers forget to link the tools folder to the tools.lnx86
# Creat links so we don't need to edit and check settings file
for i in "${cds_paths[@]}"
do
  if [ ! -e $i ]
    then
    echo "Can't find path $i is it installed?"
    continue
  fi
  if [ ! -e $i/tools ]
  then
    if [ -e $i/tools.lnx86 ]
    then
      ln -s tools.lnx86 $i/tools
    fi
  fi
  # Run checksys to check that system is properly installed
  echo "Checking $i"
  if [ ! -e $i/tools/bin/checkSysConf ]
  then
    echo "checkSysConf not found"
    continue
  fi
  # You need to specifically mention the name of the release to test for.
  # Next line parses the output and grabs all lines which starts with a space and contains
  # some characters, which should only be release names, and puts them in an array
  proglist=($($i/tools/bin/checkSysConf -r | egrep '^ +\w'))
  # If it returns empty it propably didn't find a supported OS version
  if [ ${#proglist[@]} = 0 ]
  then
    $i/tools/bin/checkSysConf -r >> problems.txt
    echo "FAIL, couldn't find releasename"
  fi
  for a in "${proglist[@]}"
  do
    echo "Prog version $a"
    result=$($i/tools/bin/checkSysConf $a -q)
    echo "$result"
    if [ "$result" = "FAIL" ]
    then
      #Something failed, run again with verbosity
      $i/tools/bin/checkSysConf $a >> problems.txt
    fi
  done
done

if [ -e ./problems.txt ]
  then
  echo "Missing modules:"
  cat ./problems.txt | grep FAIL
fi

.cdsinit

; AMS runs a script before starting virtuoso which creates a local .cdsinit in the current folder
; load the local .cdsinit if the program was started with the variable AMS set else load TSMC settings
if(getShellEnvVar("AMS") then
  loadi("./.cdsinit")
else
;if( ddIsId( ddGetObj( "tsmc13rf" ) ) then
  printf("********************************************\n")
  printf("         Starting TSMC 130nm                \n")
  printf("********************************************\n")
  ddCreateLib( "tsmc13rf" strcat(getShellEnvVar("TSMC_DIR") "/tsmc13rf"))
  loadi(strcat(getShellEnvVar("TSMC_DIR") "/tsmc13rf/libInit.il"))
)

Linux packages that might be required

  • openmotif22
  • libXp
  • compat-readline43
  • tk
  • ksh
  • sysstat