Basic CustomIC tool setup
June 2023
Sample cshrc file setup for Virtuoso, Spectre, Pegasus/PVS and Quantus
setenv CDS_LIC_FILE 5280@yourLicenseServer
setenv CDS_LIC_ONLY
setenv LM_LICENSE_FILE $CDS_LIC_FILE
setenv CDS /your-software-directory
setenv CDSHOME $CDS/IC20.1-ISR32
setenv CDS_ENABLE_EXP_PCELL true
setenv CDS_EXP_PCELL_DIR ./.expressPcells
setenv CDS_Netlisting_Mode Analog
setenv CDS_LOG_PATH .
setenv CDS_LOAD_ENV addCWD
setenv CDS_AUTO_64BIT ALL
set cicPath=($CDSHOME/tools/bin $CDSHOME/tools/dfII/bin)
setenv SPECTREHOME $CDS/SPECTRE21-10-612
setenv MMSIMHOME $SPECTREHOME
set spectrePath=($SPECTREHOME/tools/bin)
setenv XCELIUMHOME $CDS/XCELIUMMAIN22-03-005
set xceliumPath=($XCELIUMHOME/tools/bin)
setenv PEGASUSHOME $CDS/PEGASUS22-20-000
setenv PVSHOME $CDS/PVS22-20-000 set pegasusPath=($PEGASUSHOME/tools/bin)
set pvsPath=($PVSHOME/tools/bin) ...
set path=($spectrePath $xceliumPath $cicPath $pegasusPath $quantusPath $systemPath)
setenv QRC_HOME $CDS/QUANTUS22-10-000
set quantusPath=($QRC_HOME/tools/bin)
set systemPath=(/bin /sbin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin .)
set path=($spectrePath $xceliumPath $cicPath $pvsPath $quantusPath $systemPath)
2 © 2020 Cadence Design Systems, Inc. All rights reserved.
Virtuoso : Sample .cdsinit file setup
Save the following cmds in a file named ".cdsinit" in the working or home
directory. This is a SKILL file that is loaded after Virtuoso has started up. It allows
users to conveniently customize Virtuoso environment
hiResizeWindow(window(1) list(1000:50 1750:500))
envSetVal("layout" "pteFindModeOn" 'boolean t)
envSetVal("layout" "enableCopyAndPaste" 'boolean t)
load(prependInstallPath("samples/local/leBindKeys.il"))
envSetVal("graphic" "displayInstanceOrientation" 'boolean t)
load(prependInstallPath("samples/local/schBindKeys.il"))
hiSetBindKey("Schematics" "Shift<Key>z" "hiZoomRelativeScale(hiGetCurrentWindow() 0.5)")
xstSetField("summaryFile" "strmOut.sum")
hiSetBindKey("Schematics" "Ctrl<Key>z" "hiZoomRelativeScale(hiGetCurrentWindow() 2.0)")
xstInSetField("summaryFile" "strmIn.sum")
hiSetBindKey("Layout" "<Key>w" "leHiCreateWire()")
xstSetField("virtualMemory" "true")
hiSetBindKey("Palette" "<Key>e" "dreInvokeDre(\"Virtuoso\")")
hiSetBindKey("Layout" "<Key>." "leApplyLastCopyTransform()")
hiSetBindKey("Layout" "<Key>p" "leHiCreatePath()")
hiSetBindKey("Layout" "Shift<Key>s" "geSelectPreviousAutoStoreSet()")
hiSetBindKey("Layout" "Ctrl<Key>s" "geSelectNextAutoStoreSet()")
fprintf(poport "************************************************\n")
printf( "Done with initialization.\n" )
fprintf(poport "Welcome %s\n" getShellEnvVar("USER"))
ddsOpenLibManager()
hiSetFilterOptions(t t t t t t t)
;envSetVal("layoutXL" "autoArrange" 'boolean nil)
envSetVal("layout" "stopLevel" 'int 10)
envSetVal("layout" "showAlignmentMarkers" 'boolean t)
envSetVal("layout" "bannerFields" 'string "X Y dX dY Dist SelI SelO SelN Mode CAE Cmd")
;envSetVal("layout" "labelAttach" 'boolean nil)
envSetVal("graphic" "packetDialogBoxes" 'boolean nil)
envSetVal("ui" "sideDockTabs" 'cyclic "Side")
envSetVal("ui" "webBrowser" 'string "firefox")
envSetVal("ui" "ciwCmdInputLines" 'int 8)
envSetVal("asimenv.plotting" "artistPlottingMode" 'string "Append")
envSetVal("asimenv.startup" "projectDir" 'string "./simulation")
envSetVal("asimenv" "saveDir" 'string "./.artist_states")
envSetVal("adexl.simulation" "saveLastNHistoryEntries" 'int 3)
envSetVal("ddserv" "refreshTechfile" 'boolean t)
3 © 2020 Cadence Design Systems, Inc. All rights reserved.
Virtuoso : Sample .cdsenv file setup
Save the following cmds in a file named ".cdsenv" in the working or home directory. This is a 4-column settings file that is loaded before Virtuoso
is started up. It allows users to conveniently customize Virtuoso environment using a non-SKILL format.
license VLSL_UseNextLicense string "always"
license VLSXL_UseNextLicense string "always"
license VSEL_UseNextLicense string "always"
cdsLibManager.customize showDFIIWarning boolean nil
; Must be in .cdsenv and not .cdsinit
schematic statusBannerXY boolean t
With the exception of a minority set of env vars (environment variables) which must be used in .cdsenv, most .cdsenv settings can also be moved
to .cdsinit file using envSetVal cmd
E.g.
layout stopLevel int 10
becomes
envSetVal("layout" "stopLevel" 'int 10)
4 © 2020 Cadence Design Systems, Inc. All rights reserved.
PVS, Pegasus and Quantus technology setup
techRuleSets and pvtech.lib files allow the selection of different technologies and rule sets in Pegasus DRC/LVS/ERC and Quantus input
forms. It should be noted that only relative and not absolute paths should be used
Save the following cmds in a file named "techRuleSets" in the directory which contains Pegasus rule decks, Quantus techfiles, etc.
pegasusRuleSet( "Default" Sample technology setup for Pegasus
(DrcRules "./pegasus/pvlDRC.rul" )
(LvsRules "./pegasus/pvlLVS.rul" )
(ErcRules "./pegasus/pvlLVS.rul" )
)
pegasusRuleSet( "Metal_Fill"
(DrcRules "./pegasus/pvlFILL.rul" )
)
pegasusRuleSet( "Antenna"
(DrcRules "./pegasus/pvlAnt.rul" )
)
Sample technology setup for Quantus
ruleSet( "typ"
(RcxSetupDir "./quantus/typical" )
)
ruleSet( "best"
(RcxSetupDir "./quantus/best" )
)
Assuming that the path for "techRuleSets" file is /my-directory/PDK/techRuleSets, create a file named "pvtech.lib" in the working
directory and add the following line:
define myProcessName /my-directory/PDK
For PVS, please change the keyword in techRuleSets file from "pegasusRuleSet" to "pvsRuleSet"
5 © 2020 Cadence Design Systems, Inc. All rights reserved.
Useful built-in Virtuoso libraries
The following libraries can be included as part of standard cds.lib setup:
DEFINE analogLib $CDSHOME/tools/dfII/etc/cdslib/artist/analogLib
DEFINE sample $CDSHOME/tools/dfII/samples/cdslib/sample
DEFINE functional $CDSHOME/tools/dfII/etc/cdslib/artist/functional
DEFINE ahdlLib $CDSHOME/tools/dfII/samples/artist/ahdlLib
DEFINE bmslib $CDSHOME/tools/dfII/samples/artist/bmslib
DEFINE sbaLib $CDSHOME/tools/dfII/etc/cdslib/artist/sbaLib
DEFINE basic $CDSHOME/tools/dfII/etc/cdslib/basic
DEFINE cdsDefTechLib $CDSHOME/tools/dfII/etc/cdsDefTechLib
DEFINE cdsSymbolicDevice $CDSHOME/tools/dfII/etc/cdslib/cdsSymbolicDevice)
6 © 2020 Cadence Design Systems, Inc. All rights reserved.
System check
After installing of Virtuoso and other packages, always perform a system check using checkSysConf script to ensure that there are no missing
system patches.
> $CDSHOME/tools/bin/checkSysConf -r
The above cmd returns the keywords that can be used for the check. E.g. the actual required cmd might be:
> $CDSHOME/tools/bin/checkSysConf ICADVM20.1
The same check should be repeated for all packages. E.g.
> $SPECTREHOME/tools/bin/checkSysConf SPECTRE21.1
7 © 2020 Cadence Design Systems, Inc. All rights reserved.
License check
License server can be set up as follows:
a. Create a user (e.g. cadadmin) for licensing and CAD administrative purposes only. For security reasons, root user should not be used to start
the license server. This is to prevent root access from being illegally obtained if the security of the license server is compromised
b. Create a directory named "license" in the home directory of cadadmin user
c. Save the license file as "license.txt" in the "license" directory and execute the following 2 cmds:
> cp $CDSHOME/tools/bin/lmgrd ~/license
> cp $CDSHOME/tools/bin/cdslmd ~/license
d. Locate the following 2 lines in the license file. Replace "yourLicenseServer" with the actual name of the license server
SERVER yourLicenseServer 123456789XYZ0 5280
DAEMON cdslmd ./cdslmd port=5281
e. The following should be checked before starting the license server:
- Output of "date" cmd on server and clients are synchronized
- Ports 5280 and 5281 are not blocked by system firewall
e. Start the license server using:
> ./lmgrd -c ./license.txt | tee lmgrd.log &
f. Check the status of the license server using:
> $CDSHOME/tools/bin/lmstat -a -c 5280@yourLicenseServer
g. Test license check out on client machine using ckout_test cmd. E.g. the following cmd checks out license 111
> $CDSHOME/tools/bin/ckout_test -f 111
8 © 2020 Cadence Design Systems, Inc. All rights reserved.
© 2020 Cadence Design Systems, Inc. All rights reserved worldwide. Cadence, the Cadence logo, and the other Cadence marks found at https://www.cadence.com/go/trademarks are trademarks or registered trademarks of Cadence
Design Systems, Inc. Accellera and SystemC are trademarks of Accellera Systems Initiative Inc. All Arm products are registered trademarks or trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere. All MIPI
specifications are registered trademarks or service marks owned by MIPI Alliance. All PCI-SIG specifications are registered trademarks or trademarks of PCI-SIG. All other trademarks are the property of their respective owners.