比较经常使用或者常用来自定义的文件还有这三个。
1.bashrc
其实这个文件在Linux系统里应该是很常见的一个文件。
为了加载客户配置,bash 在每次启动时都会加载 .bashrc
文件。它用来存储并加载你的终端配置和环境变量。终端配置可以包含很多不同的东西。最常见的,.bashrc
文件包含用户想要用的别名。别名(英文 alias)允许用户通过更短的名字或替代的名字来指向命令,对于经常在终端下工作的人来说这可是一个省时利器。
这里是一个讲述该文件的文章
什么是 .bashrc,为什么要编辑 .bashrc? | Linux 中国 - 知乎
一般我们用这个也确实只是来弄一个相当于快捷键的东西。如果是IC工作者的话,如果打开virtuoso cadence软件,就需要在终端(Terminal)里面输入指令——virtuoso&(一般直接virtuoso也是),IC617或IC618系列版本就是这两个指令,如果使用的早期版本(比如IC5141)的话可能会看到icfb&这个指令,但是选择普及的一般都是617之后版本,所以演示也都是617或618版本。
使用的指令是alias,一般这个文件放在工程文件夹之外(一般都是自己的home文件夹下面就好),就是保证一个全局有效。
alias指令举例:
alisa v='virtuoso&'
上句话的意思就是快捷键v的指令就是virtuoso指令,这样以后打开cadence就可以快速一点了。
当然要注意的是,我们自己设置快捷键时,要和系统中自带的快捷键区分开,不要出现冲突,就比如linux系统中自带的top(该命令是任务管理器)等。
alias指令更高级一点的,就是多条指令逐个完成,比如:
alias CSDN='cd /home/IC/PROJECT_2024/HX_STONE;virtuoso&'
上条指令代表,先cd(change directory),切换目录到HX_STONE,然后再打开virtuoso仿真软件。
如图所示,
对于华宏的一些(或者全部)工艺库,库文件不会自动载入,一般会有一个pdk.csh文件,需要先载入该文件,再打开仿真软件,否则会出现问题(比如没库器件模型等)。一般的方法就是source /home/.../pdk.csh 后面的就是该pdk.csh文件的地址。目前手里没有华宏库就不演示了。
2.cdsenv
其实这个文件一看名字都知道是cds的环境设置文件。这也是初始文件,但是我确实没有去修改过这个。大家可以先看一下这个。如果以后用到,会对内容进行补充。
Virtuoso配置文件“.cdsenv”文件介绍和使用-CSDN博客
3.cdsinit
![](https://i-blog.csdnimg.cn/blog_migrate/6efc05486b2d8f6b93e9194c3b71e768.png)
1.显示配置
drLoadDrf(filePath)
我这里就是("/home/IC/Documents/display/dispaly_blue.drf")
在cdsinit文件里加这句代码,意思是初始化时,加载显示文件display_blue.drf;这就是自己保存的显示相关的配置。具体的操作在上一篇里有涉及。
对于有一些工艺库,可能他的显示配置优先级较高,所以需要先注释掉他自带的配置,再去加载我们自己的drf文件。
ddGetObj("工艺库名称");
drLoadDrf(filePath);
这样就会加载自己的配置。
2.波形图背景色与曲线粗细配置
envSetVal("viva.graphFrame" "background" 'string "white")
上面是设置背景色为白色的命令,很多回答里面是写的viva.rectGraph,可能是目前的版本更新不能使用了,上面的命令是最新的IC618亲测的
设置曲线的粗细除了.drf文件之外就是这个了
envSetVal("viva.trace" "lineThickness" 'string "thick")
除此之外还有以下命令:
摘自Helpful Hints for Modifying the .cdsinit
(这个网站也是刚找到的,宝藏啊)
; Set line thickness to thick
envSetVal("viva.trace" "lineThickness" 'string "thick")
; Add these scripts to the bottom of the .cdsinit file located in your CMOSedu directory
; Set Spectre as the default simulator
envSetVal("asimenv.startup" "simulator" 'string "spectre")
; Auto-hides options for all tools, such as copy, move, create instance, etc. Press F3 to show options.
; envSetVal("ui" "showOptionForms" 'boolean nil) ; Uncomment this to enable. I didn't want to suprise anyone with this feature.
; Auto select "Cellview" when saving/loading states. Default: nil
envSetVal("asimenv" "saveAsCellview" 'boolean t)
; Display pin names by default in layout
envSetVal("layout" "displayPinNames" 'boolean t)
; Set stop level to 32 to show everything in layout
envSetVal("layout" "stopLevel" 'int 32)
; Set default models for spectre
envSetVal("spectre.envOpts" "modelFiles" 'string "$HOME/ncsu-cdk-1.6.0.beta/models/spectre/standalone/ami06N.m $HOME/ncsu-cdk-1.6.0.beta/models/spectre/standalone/ami06P.m")
; Disable warning for a 4-way interesection wire aka solder dot crossover
envSetVal("schematic" "srcSolderOnCrossover" 'cyclic "ignored")
; Set the graph background to white
envSetVal("viva.rectGraph" "background" 'string "white")
; Set the graph foreground to black
envSetVal("viva.rectGraph" "foreground" 'string "black")
; Help changing the default style/color/thickness of a waveform or trace in ViVA (Cadence's waveform viewer) is found here.
; Set graph axis font and size
envSetVal("viva.axis" "font" 'string "Fixed [Misc],12,-1,5,50,0,0,0,0,0")
; Set graph marker font and size
envSetVal("viva.pointMarker" "font" 'string "Fixed [Misc],12,-1,5,50,0,0,0,0,0")
; In ViVA there is a vertical marker (bindkey v), a horizontal marker (bindkey h), and a difference marker for each direction (bindkey d). You can modify these markers' fonts and sizes with the following lines:
; Set vertical marker font and size (36 point font below)
envSetVal("viva.vertMarker" "font" 'string "Fixed [Misc],36,-1,5,50,0,0,0,0,0")
; Set horizontal marker font and size (36 point font below)
envSetVal("viva.horizMarker" "font" 'string "Fixed [Misc],36,-1,5,50,0,0,0,0,0")
; Set vertical and horizontal dx/dy markers' font and size (36 point font below)
envSetVal("viva.multiDeltaMarker" "font" 'string "Fixed [Misc],36,-1,5,50,0,0,0,0,0")
;------------------------------------------------------------------------------------
; The following work for plotting expressions with the calculator
; Set line thickness to thick
envSetVal("viva.trace" "lineThickness" 'string "thick")
; Set line type to solid
envSetVal("viva.trace" "lineStyle" 'string "solid")
再给这个网站打个广告,很多要用的脚本这里面都能找到
3.快捷键
快捷键,如果想要一直使用,也要写进cdsinit文件内。
我们先看一下快捷键怎么设置。首先找到bindkeys ,位置如下。
打开Bindkeys,
红色框里,是各个模块下的快捷键目录,绿色框就是实际的快捷键,以及对应的命令;蓝色框是加载,保存的选项,我们设置好保存后,可以下次打开进行加载。当然这对于我这样的懒人,属于是费老大劲。
下面我们看一下怎么找到我们想要的命令对应的代码。在下面这个图里,找到Log Filter ,然后勾选\a,然后我们选择的命令,会在CIW窗口出现相应的命令代码。
下面演示一下。我们有时候打开电路是可读不可编辑属性,我们想要进行修改时,会出现错误,我们需要将电路修改为可编辑。
这时候就可以继续编辑了,这里可以将该命令改为快捷键。
在CIW里看该命令的代码
我们在该界面,右下角,绿色的加号,是添加快捷键,注意,不要将原本内置已有的快捷键给删除或修改。一般我们自己添加的快捷键都是键盘数字键。比如这里我设置的3,代码直接复制刚才看到的代码,然后保存应用,以便于后续直接加载使用。
一般这里保存的时候文件类型我设置为.il文件,可以直接在cdsinit里加一句代码
load("../~/~/bindkey.il") 就ok。
在保存的路径下找到我们保存的.il文件并打开;可以看到我们添加进去的代码形式。这里和上面的代码,主要是多了 \ 符号,要注意,如果想要直接在文件里添加的话要修改正确。
只要指令里面,有双引号的,需要在其之前和双引号内的字母之前加 \
重新打开时,就会加载该文件。
3.1快捷键其二
其实我们可以不使用上面的il文件,直接在cdsinit文件中写命令,注意要和il中看到的对应,比如这个\斜线。appList就是bindkey Editor里面的各模块名称,我们这里只用在电路图上,就只有Schematics。
;bindkey
let((app appList)
;appList='("Schematics" "Layout")
appList='("Schematics")
foreach(app appList
hiSetBindKey(app "<Key>3" "_schHiChangeEditMode(\"a\")")
;Add more
)
)
这样不需要load il文件,初始化时也会将快捷键加进去。
我经常用的还有这个快捷键,飞线的打开关闭。
代码如下
;bindkey
let((app appList)
;appList='("Schematics" "other")
appList='("Schematics")
foreach(app appList
hiSetBindKey(app "<Key>1" "schViewMenu->NetHighlights->checked=t") ;open
hiSetBindKey(app "<Key>2" "schViewMenu->NetHighlights->checked=nil") ;close
hiSetBindKey(app "<Key>3" "_schHiChangeEditMode(\"a\")")
;Add more
)
)
4.有用的配置
(一)ddsOpenLibManager()
启动时自动打开 Library manager;因为ICer需要对着库去找东西,所以自动打开可以省事;
(二)窗口位置大小固定:
hiResizeWindow(window(1) list(0:0 800:600))
CIW窗口打开软件时位置在左下角,list后面的就是代表这个窗口的位置。
(三)字体大小调节
hiSetFont("ciw" ?size 14)
hiSetFont("label" ?name "Open Sans" ?size 14)
hiSetFont("text" ?name "Open Sans" ?size 14)
给大家看一下波形图,为了对比,把上次我们跑出来的图进行对比
这是没有修改之前的波形图,可以看到背景是黑色,曲线是细;注意,如果你在drf文件里改过线的粗细,这里的线宽肯定是有变化的,如果再加上envSetVal(...)的粗细,有可能会出现问题,那就是两种粗细都有可能出现,因为两个配置会打架,但是一般是默认drf里面的线粗细。
下面这张图,就是我们修改之后的,他的线变成粗线,背景白色,这样我们截图的时候是很好处理的。
OK,就这么多吧,如有错误,敬请指正。有疑问可以评论我。大家下次再见吧。