关于Cadence环境配置的两个文件.cdsinit和.cdsenv,合理配置.cdsinit和.cdsenv文件内容可以使Cadence软件符合自己的使用习惯,避免频繁更改软件设置影响工作效率。
.cdsinit文件负责Cadence软件的初始化配置,包括加载快捷方式、嵌入Calibre软件接口等。其实在功能上.cdsinit文件和.cdsenv文件有重叠,.cdsinit文件是一个skill脚本文件,其中内容需要符合skill语言语法,在.cdsinit文件内可以写入软件启动时的附加指令。
获取.cdsinit文件:该文件可以从以下路径:<Cadence install_dir> /tools /dfII /samples /local /cdsinit, 拷贝到自己的工作目录,并保存为.cdsinit文件。其中,<Cadence install_dir>指的是:Cadence软件的绝对安装路径。
有一个地方需要特别注意,按照上面的方法把cdsinit文件拷贝到自己的工作目录并正确命名之后,有一步很关键的操作:打开文件并定位到文件中:LOAD USER CUSTOMIZATION 之后的内容(行首没有分号的if...else...语句)在每一行行首添加一个";", 代表注释掉这部分内容,具体原因可以阅读if...else...上面的说明,实际上是为了防止软件对这个文件发生递归调用,导致系统死掉,这一点一定要留意,很多人因为这个原因导致软件启动不正常。
;################################################
;#
;# LOAD USER CUSTOMIZATION FILE
;#
;################################################
;
;The site customization file is going to load the user
;customization file. In case you have copied this site
;customization file as your user customization file
;comment out or remove the next section to prevent
;recursive loading of ./.cdsinit
;
;if( isFile( "./.cdsinit" ) then
; printf( "Loading ./.cdsinit init file from the site init file.\n" )
; loadi( "./.cdsinit" )
;else
; if( isFile( "~/.cdsinit" ) then
; printf( "Loading $HOME/.cdsinit init file from the site init file.\n" )
; loadi( "~/.cdsinit" )
; )
;)
;
;END OF THE SITE CUSTOMIZATION FILE
如上面截取的内容所示,按照第13~21例子修改复制的.cdsinit文件,或者直接将该部分内容删除。
使用.cdsinit文件加载其它软件:一般其它平台的软件都带有脚本供Cadence软件调用,为了在Cadence刚启动时就加载软件环境,可以将软件调用脚本放在.cdsinit文件中,比如,调用Calibre接口:
load("<Calibre install_dir>/lib/calibre.OA.skl")
调用HSPICE接口,实现ADE界面调用HSPICE仿真器:
load("<HSPICE install_dir>/interface/HSPICE.ile")
以上是比较常用的软件调用,相信其他相关软件也都可以采用相似的方法与Cadence平台集成。
使用.cdsinit文件加载自定义快捷键:Cadence软件启动时会按照.cdsinit文件中的设置加载系统默认的快捷键:
let( (bindKeyFileList file path saveSkillPath)
bindKeyFileList = '(
"leBindKeys.il"
"schBindKeys.il"
)
; This is the path that is searched for the files
path = strcat(
;
; If you want to add another path add it here as a string
;
". ~ /home/IC/Desktop/workspace/analog_ic/set_env "
prependInstallPath("local ")
prependInstallPath("samples/local")
)
saveSkillPath=getSkillPath()
setSkillPath(path)
foreach(file bindKeyFileList
if(isFile(file ) then
loadi(file)
)
)
setSkillPath(saveSkillPath)
)
用户可以根据自己的使用习惯添加快捷键设置,快捷键文件的书写方式只需要按照以上bindKeyFileList中列出的文件内容书写即可。
比如小目同学有自己的快捷键设置文件:bindKeys_ICSkillSharing.il,该文件保存在某个路径下,例如:/home /IC /Desktop /workspace /analog_ic /set_env, 那么可以在.cdsinit文件内上述位置添加相应内容:
let( (bindKeyFileList file path saveSkillPath)
bindKeyFileList = '(
"leBindKeys.il"
"schBindKeys.il"
"bindKeys_ICSkillSharing.il"
)
; This is the path that is searched for the files
path = strcat(
;
; If you want to add another path add it here as a string
;
". ~ /home/IC/Desktop/workspace/analog_ic/set_env "
prependInstallPath("local ")
prependInstallPath("samples/local")
)
saveSkillPath=getSkillPath()
setSkillPath(path)
foreach(file bindKeyFileList
if(isFile(file ) then
loadi(file)
)
)
setSkillPath(saveSkillPath)
添加用户自定义快捷键设置文件和路径时,注意在每个路径前后都加上多余的空格符号,否则路径设置不成功(具体与strcat()函数的使用有关)。
如果感觉上面的内容麻烦,可以直接在.cdsinit文件中,添加一行内容,加载自定义快捷键文件即可,效果与第一种方法相同:
load("/home/IC/Desktop/workspace/analog_ic/set_env/bindKeys_ICSkillSharing.il")
其他.cdsinit文件的应用:可以在.cdsinit文件中添加需要执行的命令,这样在软件启动的时候就会自动执行,比如在该文件末尾添加下面这句命令,设置每次启动Cadence软件时自动打开Library Manager界面:
ddsOpenLibManager()
设置使用gvim作为Cadence软件的文本编辑器:
editor="gvim"
上面是一些关于.cdsinit文件的功能,用户可以根据不同的需要设置不同的内容。相对而言,小目同学更喜欢在.cdsenv文件里做一些设置(相反不少人更倾向于使用.cdsinit文件进行设置),以配合自己的使用习惯。
.cdsenv文件内是Cadence环境的软件变量,通过对变量赋不同的值可以达到对软件进行不同设置的目的。
获取.cdsenv文件:该文件可以从以下路径:<Cadence install_dir> /tools /dfII /samples /.cdsenv, 拷贝到自己的工作目录,并保存为.cdsenv文件。其中,<Cadence install_dir>指的是:Cadence软件的绝对安装路径。
.cdsenv文件包含了Cadence 软件的变量设置,用户通过对变量赋值,改变软件设置,其实很容易理解,实际图形界面的操作过程也是对软件变量赋值的过程,只是现在这个过程提前在.cdsenv文件内完成,于是用户看到的是软件打开时已经是设置好的了。
打开复制的文件,可以看到.cdsenv文件内有很多内容,这意味着.cdsenv文件可以有很多设置,下面小目同学会根据自己的使用感受分享一些设置,各位同学也可以自行尝试设置,欢迎大家【在评论处分享】软件设置内容。
设置仿真结果显示有效位数:在.cdsenv文件中通过搜索找到以下变量设置行,根据自己的需要在后面输入一个有效位数(整数),并重启软件:
auCore.misc labelDigits int 6
改变仿真结果保存路径:软件默认的仿真结果保存路径是在用户主目录下的simulation文件夹(~/simulation), 但是一般都是根据项目设置结果保存路径,为了避免每次仿真都手动更改路径,可以在.cdsenv文件中通过搜索找到以下变量设置行,根据自己的需要在后面输入路径,并重启软件:
asimenv.startup projectDir string" ./simulation"
按library名称设置仿真结果保存路径:上面的设置可以改变默认的仿真结果保存路径,有的同学会希望不同library的仿真结果保存到不同文件夹,这样可以在.cdsenv文件中通过搜索找到以下变量设置行,将该变量默认值由nil改为t,并重启软件,如下所示:
asimenv.startup appendLibNameToProjectDir boolean t
设置lable字体:不管在原理图还是版图中很多用户都喜欢把lable字体改为roman, 这样看起来会更清晰一些,为了避免每次都需要改动,可以在.cdsenv文件中这样设置:
schematic createLabelFontStyle cyclic "roman"
layout labelFontStyle cyclic "roman"
也可以设置为其它自己喜欢的字体,这个根据用户习惯而定,小目同学经常把字体都改为roman.
设置版图格点默认值:这个可能会根据不同的工艺要求设置不同,依实际情况而定。
layout xSnapSpacing float 0.005
layout ySnapSpacing float 0.005
设置仿真波形与坐标轴显示:相信很多同学在使用specre波形做报告时都会遇到截图前需要首先动手修改波形和背景颜色以及字体大小等,这样报告中才能够看得清,我们可以通过.cdsenv文件修改波形显示的默认设置。
viva.graph titleFont string "Default,14,-1,5,75,0,0,0,0,0"
viva.rectGraph background string "white"
viva.axis font string "Default,14,-1,5,75,0,0,0,0,0"
viva.horizMarker font string "Default,14,-1,5,75,0,0,0,0,0"
viva.vertMarker font string "Default,14,-1,5,75,0,0,0,0,0"
viva.referenceLineMarker font string "Default,14,-1,5,75,0,0,0,0,0"
...
viva.trace lineThickness string "Thick"
viva.trace lineStyle string "solid"
wavescan.trace lineThickness string "Thick"
wavescan.trace lineStyle string "solid"
上面只是修改波形显示的一部分设置,建议大家可以将与字体、字号(与font)有关的内容都按照给出的示例替换。
viva.axis font string "Default,14,-1,5,75,0,0,0,0,0"
其中14为字号,根据需要更改;75为颜色深度,可以理解为是否加粗,取值在0-99之间,根据自己习惯更改;其它项保持默认即可。
其它项目:基本上Cadence图形界面的设置都对应有相应的环境变量,用户只需要在相关界面点击Help按钮,然后找到手册中的变量名修改对应的值即可。
注意:仿真波形显示方法会与PDK中环境变量设置和display.dry 文件中的设置有关,如果按照上面的方法设置完毕不能够达到实际效果,首先考虑是否是PDK自带脚本加载了其它软件变量或者使用的display.dry文件中做了相应的修改,如果发现有问题可以修改PDK中环境变量或者display.dry文件的相应设置,满足自己的使用习惯。
即使display.drf文件或者其它设置没有问题,实际中也会出现显示与设置不匹配的问题,暂时没有发现有效的解决措施,如果.cdsenv文件对波形显示的修改无法满足需要,可以考虑使用display.drf文件配置波形显示问题。
实现在Library Manager界面双击view以只读方式打开:这个可能是很多同学都希望实现的功能,在.cdsenv文件中按照以下方式即可实现:
cdsLibManager.main dblClickEditCellView boolean nil
特别注意:可能有些同学按照上面的方法设置完.cdsenv文件之后,发现设置并未生效,这时候需要注意一个问题:Cadence每次启动时都会加载.cdsinit文件,然而对于.cdsenv文件并非如此,而且.cdsenv文件中的变量值会被覆盖,具体软件加载.cdsenv文件的顺序需要在用户的环境变量设置文件内定义。在用户主目录下有一个环境变量设置文件,一般叫做 .bashrc (使用export定义环境变量)或者.cshrc(使用setenv定义环境变量),也是一个隐藏文件,需要在该文件中加入环境变量声明:
在分布式计算的情况下,使用virtuoso gui 仿真,防止登录机异常,导致仿真中断:
(手动退出不生效,只有异常退出才继续,help文件说手动关闭virtuoso也可以,实测不行)
修改配置文件:
In .cdsenv:
adexl.distribute continueICRPRunOnAbruptGUIExit boolean t
In .cdsinit or the CIW:
envSetVal("adexl.distribute" "continueICRPRunOnAbruptGUIExit" 'boolean t)
Valid Values:
t
If the ADE XL GUI exits abruptly, keeps the in-process simulations active. After completion of these simulations, saves their results in the results database.
nil
Stops the in-process simulations immediately after the ADE XL GUI exits.
Default Value:
nil