需要在virtuoso启动时自动sos更新.cds_project.lib文件(不更新整个项目)。就是每次打开virtuoso,这个文件都是最新的,并且自动加载里面的库。其实看上去挺简单的一个问题,但是在网上搜了半天,没有相关的解决方案。刚开始思路也不正确,想在sos里ci时触发脚本执行soscmd update命令完成。但是后来才发现ci只能执行本机的脚本,无法实现跨服务器的执行。几经周折,想到virtuoso加载时执行csd.lib文件,load一个skill脚本。对Skill语言完全不熟悉,还是花了点时间的。
一、新建cds_update.il, 路径为$CLIOSOFT_DIR/scripts/, 内容如下,; Use Skill GUI for IC 5.x but GDM Only for IC 4.4.x
; libId = SosGetObj(lib)
; libPath = ddGetObjWritePath(libId)
ipcBeginProcess(
sprintf(nil "$CLIOSOFT_DIR/bin/soscmd updatesel cds_project.lib")
) ; end of ipcBeginProcess
二、新建.cdsinit,virtuoso启动时调用cds_update.illet( (clioDir custFile)
clioDir = getShellEnvVar("CLIOSOFT_DIR")
load((strcat clioDir "/scripts/cds_update.il"))
)
我特意去看了cadence安装路径下自带的cdsini文件,从文件中可以看出先执行./.cdsinit(Cadence启动路径下),如果./下没有再执行~/.cdsinit(home目录下);所以最后.cdsinit的执行顺序应该是:<install_dir>/tools/dfII/local/.cdsinit(因为cadence启动时只有先load该cdsinit文件后才load其他设置)配置自己用的.cdsinit文件,最好在./.cdsinit文件中配置,这样既不会影响项目组中其他成员的配置,也不会影响自己home目录下其他项目。而且.cdsinit文件在./目录下找到并load后,不会再load ~/.cdsinit。未完,待续。发现一个BUG,如果cds.lib文件不在项目根目录下面,就有问题。还在修改,改完更新。
写在最后:EDA相关的资料网上真的很少,想找到相关的资源确实比较难,再加上种种原因行业内IT交流比较少,大都是闭门造车,导致国内半导体行业IT的水平相对落后。希望大家能多交流,多沟通,共同进步!