SMIC130nm工艺库的安装
将OA格式的PDK文件放在Windows的C盘的根目录下,例如:C:\PDK_13mmrf_1P6M_30k
文件路径长会导致将PDK复制到虚拟机的过程中出现无法复制的问题
将PDK文件中的cds.lib文件内容修改为如下:
将该文件与display文件复制到工作文件夹中
这里建议为smic13mmrf独立建立一个工艺库,若与其他工艺库公用一个文件夹,前仿真的过程中会随机出现仿真的模型文件错误的情况
最终SMIC13的内容如下所示
在cds.lib的首行添加如下命令以将系统自带的工艺库填入到当前的工作目录中
SOFTINCLUDE /opt/eda/cadence/IC618/share/cdssetup/cds.lib
在SMIC13中启动virtuoso
将现有的带有错误路径的工艺库删除
加入新的工艺库,保存并重启virtuoso
工艺库还需要进行修改,以防止无法进行寄生参数提取
打开工艺库中的下面这个文件
将文件中的下面的内容修改为正确的路径
将路径更改为
include "/home/centos/workplace/PDK/PDK_13mmrf_1P6M_30k/Calibre/XRC/calibrexrc_013G_1P6M_5Ic_1MTTc_ALPA_SMIM3.0fF_V2.6_0P/rulefiles/TYPICAL/rules.C"
include "/home/centos/workplace/PDK/PDK_13mmrf_1P6M_30k/Calibre/XRC/calibrexrc_013G_1P6M_5Ic_1MTTc_ALPA_SMIM3.0fF_V2.6_0P/rulefiles/TYPICAL/rules.R"
include "/home/centos/workplace/PDK/PDK_13mmrf_1P6M_30k/Calibre/XRC/calibrexrc_013G_1P6M_5Ic_1MTTc_ALPA_SMIM3.0fF_V2.6_0P/rulefiles/TYPICAL/rules.S"
Calibre的集成
Calibre是否集成到了Virtuoso中要看.cdsinit文件的内容,下面对其进行修改
按以下路径找到cdsinit文件
<Cadence install_dir> /tools /dfII /samples /local /cdsinit
将其复制到自己的工作目录下
在下面的路径中找到skillREADME文件,安装路径就是aoj开头的那个文件夹
<Calibre install_dir> /shared/pkgs/icv/tools/queryskl
阅读文件中的第2条关于安装部分的说明,并将下面的内容粘贴到复制到工作目录下的cdsinit中
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; check CALIBRE_HOME
;
cal_home=getShellEnvVar("CALIBRE_HOME")
if( cal_home==nil then
cal_home=getShellEnvVar("MGC_HOME")
if( cal_home!=nil then
printf("// CALIBRE_HOME environment variable not set; setting it to value of MGC_HOME\n");
)
)
if( cal_home!=nil && isDir(cal_home) && isReadable(cal_home) then
; Load calibre.skl or calibre.4.3.skl, not both!
if( getShellEnvVar("MGC_CALIBRE_REALTIME_VIRTUOSO_ENABLED") &&
getShellEnvVar("MGC_REALTIME_HOME") && dbGetDatabaseType()=="OpenAccess" then
load(strcat(getShellEnvVar("MGC_REALTIME_HOME") "/lib/calibre.skl"))
else
; Load calibre.skl for Cadence versions 4.4 and greater
load(strcat(cal_home "/lib/calibre.skl"))
)
;;;;Load calibre.4.3.skl for Cadence version 4.3
;;; load(strcat(cal_home "/lib/calibre.4.3.skl"))
else
; CALIBRE_HOME is not set correctly. Report the problem.
printf("// Calibre Error: Environment variable ")
if( cal_home==nil || cal_home=="" then
printf("CALIBRE_HOME is not set.");
else
if( !isDir(cal_home) then
printf("CALIBRE_HOME does not point to a directory.");
else
if( !isReadable(cal_home) then
printf("CALIBRE_HOME points to an unreadable directory.");
)
)
)
printf(" Calibre Skill Interface not loaded.\n")
; Display a dialog box message about load failure.
hiDisplayAppDBox(
?name 'MGCHOMEErrorDlg
?dboxBanner "Calibre Error"
?dboxText "Calibre Skill Interface not loaded."
?dialogType hicErrorDialog
?dialogStyle 'modal
?buttonLayout 'Close
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
粘贴完成后按照LOAD USER CUSTOMIZATION FILE部分的说明将该部分的剩余代码注释掉
还可以在文件的末尾加入以下代码,使软件打开完成后自动打开library manager
ddsOpenLibManager()
最后,将文件的内容更改为.cdsinit,就是在文件名前加个点