这里随手写些以前收集到的一些软件方面的内容。
icfb里可以用ocnPrint打印数据,和用计算器是一样的,但是计算器有时数据太多会报错(AWD)
icfb里控制电路图上显示数字位数用aelPushSignifDigits,或者cdsenv中asimenv digits int x和auCore.misc labelDigits int x。这几个应该是labeldigits优先(?)
spectre(5141)把sweep的结果和corner的结果可以同时放在一个目录下,但是它用主目录下的一个文件做索引,这个索引只能sweep或者corner选一个,因此数据结果都在那里,就是没法用awd去看。
icfb提取cdl时按照CDF里cdl的信息提取名字,提取仿真网表时按照CDF中spectre相关信息提取,两者名字可以没有丝毫对应关系。
calibre提取名字时按照rule中DEVICE语句和一些默认规则进行,因此又是另一套名字机制。
所以等到pex出网表时,如果做pdk的人,写rule的人想搞混乱,那可以想多混乱就多混乱。
spectre 的多线程是+mt,加速是turbo,更快是aps,想中间中断然后可以接着仿真,可以用savestate相应命令保存,recover恢复。
icfb的安装目录下有doc目录,里面是各种help。有空看一看作用很大。其他软件也一样。
cdl
的语法类似spice。spice对global信号的处理有两种优先机制,subckt里的一个net名字如果在global里也有,在port里也
有,谁优先是靠option控制。在calibre做lvs时也设计有lvs spice
overdrive/prefer的option来控制。我猜这是为了处理stand
cell,因为那里习惯把vdd之类都定义成global,在和纯模拟电路一起lvs时是个大麻烦。
calibre里xrc可以分步做,有时可以提高效率,避免重复。
calibre做xrc提取spectre网表时,端口顺序,大小写,一些特殊名字的处理都很麻烦,这个以前blog里提到过。唯一的好处是对网表的控制力很强。
linux里通常命令窗口关闭,对应打开的gui也关闭,更进一步,logout时各个程序也退出,所以用screen可以解决。其他的包括 setsid,(命令&)
从cdl导成电路图,不同版本差异很大。有一种是用devmap file控制如何解释cdl里的各个语句。
cdl导入电路,如果不加*.bipolar等,就不会管bjt等器件(印象中lvs也有这个问题)
cadence的symbol中可以用cdsParam [@....]等特殊写法,可惜对此不熟,也不知道哪个文档说明这个事情,用的好可以做些有趣的东西
skill是cadence里最神奇的东西,感觉就是九阴真经一样的东西。不过有时又觉得是屠龙之术,因为一年也用不了几回。
用
skill修改cdf属性,直接修改不会调用callback函数,换句话说是不会刷新,查到的一种做法是:cdfgForm=nil(内置变量,避免出
现对话框),callback=(getq cdfgData formInitProc) , (when
callback&&calback!="" (unless (errset (evalstring (strcat
callback "(cdfgData)" )) t )), parameters=(getq cdfgData parameters),
(foreach param parameters....)不是太明白为什么要这么做,但是it
works(这里给出的是个大概,具体的可以在个人空间里找我以前写的一个替换库的脚本)。
skill也可以直接产生电路,不过我做过的唯一一个玩具就是同一个电路参数不同,电路长的不一样。
icfb里的图形颜色不同位置受不同参数控制。线条等的颜色受工艺文件中的layer:propose控制,程序的背景受.Xdefaults控制(不过这个又受操作系统的X机制控制,很混乱很不可靠)
让terminal和xterm的标题显示不同内容,可以用setprompt命令,比如set prompt="%{\033]0; %~ \007%} `hostname` "
清除icfb下的lock文件,可以clsAdminTool -ale
spectre里有mdl,按说明是可以批处理一样边仿真边给出测量结果(类似spice的measure)看着很神奇,不过觉得平时用不上。
linux操作系统对安装包的管理有dpkg系列,apt系列,rpm系列(这个似乎不能算包管理),等于是各家给各家做的安装管理程序。
perl的语法可以让人苦笑不得,比如$str->{rule}[2]{shape}[4]=4,可以用@{${${$str{rule}[2]}{shape}},但是@$$$$str{rule}[2]{shape}是不对的。
阅读(2166) | 评论(0) | 转发(0) |