第1章:PDK安装与环境配置
大家好,我是你们的PDK应用讲师。今天咱们聊聊SMIC PDK的安装与环境配置。说实话,这步看着简单,但我在项目里见过太多人在这栽跟头了。你想想看,PDK装不好,后面所有工作都是白搭。
1.1 SMIC PDK的安装步骤
SMIC的PDK,说白了就是工艺厂给咱们的一套“积木”。里面有器件模型、版图规则、参数化单元等等。安装它,我建议按这个顺序来:
- 获取PDK压缩包:从SMIC官网或FAE那里拿到。注意版本号,我遇到过有人拿错版本,结果流片时才发现参数对不上。
- 解压到指定目录:我个人习惯放在
/home/eda/PDK/SMIC/下。别放桌面或临时文件夹,万一误删就麻烦了。 - 运行安装脚本:一般有个
install.sh或setup.pl。记得用bash或perl执行,别双击。 - 检查安装日志:安装完看看有没有报错。我曾在日志里发现过“权限不足”的提示,结果折腾了半天。
⚠️ 注意:安装路径不要有中文或空格。Linux下这玩意儿特别敏感,我曾经因为路径里有个空格,导致Cadence死活认不到PDK。
1.2 Linux环境变量设置
装完PDK,下一步就是让系统知道它在哪。环境变量就是干这个的。嗯,这里要重点讲。
我一般把配置写在 .bashrc 或 .cshrc 里。举个例子,如果你用bash:
# SMIC PDK 环境变量
export PDK_HOME=/home/eda/PDK/SMIC/018
export PDK_DIR=$PDK_HOME
export CDS_Netlisting_Mode=Analog
export MGC_WD=$PDK_HOME
# 添加PDK的lib到Cadence路径
setenv CDS_LIB_DIR $PDK_HOME/lib
这里有几个关键变量:
PDK_HOME:PDK的根目录。我习惯用这个变量,方便以后切换工艺。CDS_Netlisting_Mode:设为Analog,否则数字模式会漏掉一些模拟参数。MGC_WD:这个是给Calibre用的,不设的话DRC/LVS会报错。
💡 小技巧:设置完记得
source ~/.bashrc 或重新登录。我曾经忘了这步,还以为是PDK坏了,查了半天。
1.3 Cadence与PDK的集成
环境变量设好了,接下来让Cadence认识PDK。说白了,就是告诉Cadence:“嘿,这里有套SMIC的工艺库,你加载一下。”
我通常用 cds.lib 文件来管理。在项目目录下创建一个 cds.lib,内容如下:
INCLUDE $PDK_HOME/cds.lib
DEFINE my_library ./my_library
这里 INCLUDE 是引用PDK自带的库定义。注意,有些PDK版本需要手动指定 display.drf 文件,不然版图颜色会乱套。
启动Cadence时,我建议用这个命令:
virtuoso -nograph -log ./sim.log &
加 -nograph 可以跳过图形界面启动,省时间。等CIW窗口出来后再开版图编辑器。
🔑 关键检查点:启动后,在CIW窗口输入 ddGetObj("工艺库名"),如果能返回对象,说明集成成功了。我每次装完新PDK都会跑一遍这个,心里才踏实。
1.4 常见问题与避坑指南
最后,分享几个我踩过的坑:
- 权限问题:PDK文件权限不够,Cadence读不了。我曾经用
chmod -R 755解决过。 - 版本冲突:Cadence版本太老或太新,跟PDK不兼容。我建议用IC617或IC618,比较稳。
- 路径硬编码:有些PDK脚本里写了绝对路径,换机器就得改。我习惯用环境变量替代,一劳永逸。
好了,这一章就到这。记住,PDK安装是基础,基础不牢,地动山摇。下一章咱们聊聊参数化单元的设计,那才是真正好玩的地方。