论坛账号至少一个月登录一次,否则会被自动冻结!论坛全站广告位出租300元一年,有需要联系QQ:154000559。下载资料E币不足?可以每日签到可获取E币,土豪则可以充值即可。
搜索
版图设计服务,首选奋芯电子 微信:13816911948
广告位出租:ML02 有需要联系QQ:2322712906。
欢迎大家来EDA1024硬件设计开发论坛学习交流!【eda1024.com】
广告位出租:ML04 有需要联系QQ:2322712906。
芯片版图外包,首选奋芯电子 微信:13816911948

[转帖] 配置Cadence符合自己的使用习惯——.cdsinit和.cdsenv文件的妙用

[复制链接]
查看: 183|回复: 0

19

主题

19

帖子

98

E币

助理工程师

Rank: 3Rank: 3

积分
19
发表于 2022-5-10 09:30:22 | 显示全部楼层 |阅读模式
关于Cadence环境配置的两个文件.cdsinit和.cdsenv, 在模拟集成电路设计流程(一)中大家已经熟悉了,只是关于这两个文件的使用一直没有详细地介绍。

这次内容关于这两个文件的使用,合理配置.cdsinit和.cdsenv文件内容可以使Cadence软件符合自己的使用习惯,避免频繁更改软件设置影响工作效率。

.cdsinit文件的使用
.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...上面的说明,实际上是为了防止软件对这个文件发生递归调用,导致系统死掉,这一点一定要留意,很多人因为这个原因导致软件启动不正常。

  1. ;################################################
  2. ;#                                          
  3. ;# LOAD USER CUSTOMIZATION FILE
  4. ;#
  5. ;################################################
  6. ;
  7. ;The site customization file is going to load the user
  8. ;customization file. In case you have copied this site
  9. ;customization file as your user customization file
  10. ;comment out or remove the next section to prevent
  11. ;recursive loading of ./.cdsinit
  12. ;
  13. ;if( isFile( "./.cdsinit" ) then
  14. ;    printf( "Loading ./.cdsinit init file from the site init file.\n" )
  15. ;    loadi( "./.cdsinit" )
  16. ;else
  17. ; if( isFile( "~/.cdsinit" ) then
  18. ;    printf( "Loading $HOME/.cdsinit init file from the site init file.\n" )
  19. ;    loadi( "~/.cdsinit" )
  20. ; )
  21. ;)
  22. ;
  23. ;END OF THE SITE CUSTOMIZATION FILE
复制代码

如上面截取的内容所示,按照第13~21例子修改复制的.cdsinit文件,或者直接将该部分内容删除。

使用.cdsinit文件加载其它软件:一般其它平台的软件都带有脚本供Cadence软件调用,为了在Cadence刚启动时就加载软件环境,可以将软件调用脚本放在.cdsinit文件中,比如,调用Calibre接口:

  1. load("<Calibre install_dir>/lib/calibre.OA.skl")
复制代码

调用HSPICE接口,实现ADE界面调用HSPICE仿真器:

  1. load("<HSPICE install_dir>/interface/HSPICE.ile")
复制代码

以上是比较常用的软件调用,相信其他相关软件也都可以采用相似的方法与Cadence平台集成。

使用.cdsinit文件加载自定义快捷键:Cadence软件启动时会按照.cdsinit文件中的设置加载系统默认的快捷键:

  1. let( (bindKeyFileList file path saveSkillPath)
  2.      bindKeyFileList = '(
  3.                     "leBindKeys.il"
  4.                     "schBindKeys.il"
  5.                     )

  6. ;   This is the path that is searched for the files
  7.     path = strcat(
  8. ;
  9. ;   If you want to add another path add it here as a string
  10. ;
  11.               ".  ~ /home/IC/Desktop/workspace/analog_ic/set_env "
  12.               prependInstallPath("local ")
  13.               prependInstallPath("samples/local")
  14.              )
  15.     saveSkillPath=getSkillPath()
  16.     setSkillPath(path)

  17.     foreach(file bindKeyFileList
  18.        if(isFile(file ) then
  19.           loadi(file)
  20.          )
  21.     )
  22.     setSkillPath(saveSkillPath)
  23. )
复制代码

用户可以根据自己的使用习惯添加快捷键设置,快捷键文件的书写方式只需要按照以上bindKeyFileList中列出的文件内容书写即可。

比如小目同学有自己的快捷键设置文件:bindKeys_ICSkillSharing.il,该文件保存在某个路径下,例如:/home /IC /Desktop /workspace /analog_ic /set_env, 那么可以在.cdsinit文件内上述位置添加相应内容:

  1. let( (bindKeyFileList file path saveSkillPath)
  2.     bindKeyFileList = '(
  3.                    "leBindKeys.il"
  4.                    "schBindKeys.il"
  5.                    "bindKeys_ICSkillSharing.il"
  6.                     )

  7. ;   This is the path that is searched for the files
  8.     path = strcat(
  9. ;
  10. ;   If you want to add another path add it here as a string
  11. ;
  12.               ".  ~ /home/IC/Desktop/workspace/analog_ic/set_env "
  13.               prependInstallPath("local ")
  14.               prependInstallPath("samples/local")
  15.              )
  16.     saveSkillPath=getSkillPath()
  17.     setSkillPath(path)

  18.     foreach(file bindKeyFileList
  19.        if(isFile(file ) then
  20.           loadi(file)
  21.          )
  22.     )
  23.     setSkillPath(saveSkillPath)
复制代码

添加用户自定义快捷键设置文件和路径时,注意在每个路径前后都加上多余的空格符号,否则路径设置不成功(具体与strcat()函数的使用有关)。

如果感觉上面的内容麻烦,可以直接在.cdsinit文件中,添加一行内容,加载自定义快捷键文件即可,效果与第一种方法相同:

  1. load("/home/IC/Desktop/workspace/analog_ic/set_env/bindKeys_ICSkillSharing.il")
复制代码

其他.cdsinit文件的应用:可以在.cdsinit文件中添加需要执行的命令,这样在软件启动的时候就会自动执行,比如在该文件末尾添加下面这句命令,设置每次启动Cadence软件时自动打开Library Manager界面:

  1. ddsOpenLibManager()
复制代码

设置使用gvim作为Cadence软件的文本编辑器:

  1. editor="gvim"
复制代码

上面是一些关于.cdsinit文件的功能,用户可以根据不同的需要设置不同的内容。相对而言,小目同学更喜欢在.cdsenv文件里做一些设置(相反不少人更倾向于使用.cdsinit文件进行设置),以配合自己的使用习惯。

.cdsenv文件的使用
.cdsenv文件内是Cadence环境的软件变量,通过对变量赋不同的值可以达到对软件进行不同设置的目的。

获取.cdsenv文件:该文件可以从以下路径:<Cadence install_dir> /tools /dfII /samples /.cdsenv, 拷贝到自己的工作目录,并保存为.cdsenv文件。其中,<Cadence install_dir>指的是:Cadence软件的绝对安装路径。

.cdsenv文件包含了Cadence 软件的变量设置,用户通过对变量赋值,改变软件设置,其实很容易理解,实际图形界面的操作过程也是对软件变量赋值的过程,只是现在这个过程提前在.cdsenv文件内完成,于是用户看到的是软件打开时已经是设置好的了。

打开复制的文件,可以看到.cdsenv文件内有很多内容,这意味着.cdsenv文件可以有很多设置

设置仿真结果显示有效位数:在.cdsenv文件中通过搜索找到以下变量设置行,根据自己的需要在后面输入一个有效位数(整数),并重启软件:

  1. auCore.misc    labelDigits int 6
复制代码

改变仿真结果保存路径:软件默认的仿真结果保存路径是在用户主目录下的simulation文件夹(~/simulation), 但是一般都是根据项目设置结果保存路径,为了避免每次仿真都手动更改路径,可以在.cdsenv文件中通过搜索找到以下变量设置行,根据自己的需要在后面输入路径,并重启软件:

  1. asimenv.startup  projectDir  string"  ./simulation"
复制代码

按library名称设置仿真结果保存路径:上面的设置可以改变默认的仿真结果保存路径,有的同学会希望不同library的仿真结果保存到不同文件夹,这样可以在.cdsenv文件中通过搜索找到以下变量设置行,将该变量默认值由nil改为t,并重启软件,如下所示:

  1. asimenv.startup  appendLibNameToProjectDir  boolean  t
复制代码

设置lable字体:不管在原理图还是版图中很多用户都喜欢把lable字体改为roman, 这样看起来会更清晰一些,为了避免每次都需要改动,可以在.cdsenv文件中这样设置:

  1. schematic  createLabelFontStyle  cyclic  "roman"
  2. layout  labelFontStyle  cyclic  "roman"
复制代码

也可以设置为其它自己喜欢的字体,这个根据用户习惯而定,小目同学经常把字体都改为roman.

设置版图格点默认值:这个可能会根据不同的工艺要求设置不同,依实际情况而定。

  1. layout    xSnapSpacing       float        0.005
  2. layout    ySnapSpacing       float        0.005
复制代码

设置仿真波形与坐标轴显示:相信很多同学在使用specre波形做报告时都会遇到截图前需要首先动手修改波形和背景颜色以及字体大小等,这样报告中才能够看得清,我们可以通过.cdsenv文件修改波形显示的默认设置。

  1. viva.graph  titleFont  string  "Default,14,-1,5,75,0,0,0,0,0"
  2. viva.rectGraph    background  string  "white"
  3. viva.axis     font   string   "Default,14,-1,5,75,0,0,0,0,0"
  4. viva.horizMarker font    string   "Default,14,-1,5,75,0,0,0,0,0"
  5. viva.vertMarker     font    string   "Default,14,-1,5,75,0,0,0,0,0"
  6. viva.referenceLineMarker    font  string    "Default,14,-1,5,75,0,0,0,0,0"
  7. ...
  8. viva.trace  lineThickness  string  "Thick"
  9. viva.trace  lineStyle  string  "solid"
  10. wavescan.trace  lineThickness  string  "Thick"
  11. wavescan.trace  lineStyle  string  "solid"
复制代码

上面只是修改波形显示的一部分设置,建议大家可以将与字体、字号(与font)有关的内容都按照给出的示例替换。

  1. 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文件配置波形显示问题。

1.jpg

实现在Library Manager界面双击view以只读方式打开:这个可能是很多同学都希望实现的功能,在.cdsenv文件中按照以下方式即可实现:

  1. cdsLibManager.main  dblClickEditCellView  boolean  nil
复制代码

特别注意:可能有些同学按照上面的方法设置完.cdsenv文件之后,发现设置并未生效,这时候需要注意一个问题:Cadence每次启动时都会加载.cdsinit文件,然而对于.cdsenv文件并非如此,而且.cdsenv文件中的变量值会被覆盖,具体软件加载.cdsenv文件的顺序需要在用户的环境变量设置文件内定义。在用户主目录下有一个环境变量设置文件,一般叫做 .bashrc (使用export定义环境变量)或者.cshrc(使用setenv定义环境变量),也是一个隐藏文件,需要在该文件中加入环境变量声明:

export CDS_LOAD_ENV = CWD(setenv CDS_LOAD_ENV CWD):加载软件启动目录下的.cdsenv文件。
export CDS_LOAD_ENV = addCWD(setenv CDS_LOAD_ENV addCWD):首先加载用户主目录下的.cdsenv文件,然后加载软件启动目录下的.cdsenv文件。
关于这两个文件更多、更具体的设置方法应该根据实际情况具体问题具体解决,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入住EDA1024

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|EDA1024硬件论坛 ( 苏ICP备15024581号 )

GMT+8, 2022-7-1 04:42 , Processed in 0.067693 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表