第1章:PDK安装与环境配置

大家好,我是你们的PDK应用讲师。今天咱们聊聊SMIC PDK的安装与环境配置。说实话,这步看着简单,但我在项目里见过太多人在这栽跟头了。你想想看,PDK装不好,后面所有工作都是白搭。

1.1 SMIC PDK的安装步骤

SMIC的PDK,说白了就是工艺厂给咱们的一套“积木”。里面有器件模型、版图规则、参数化单元等等。安装它,我建议按这个顺序来:

  1. 获取PDK压缩包:从SMIC官网或FAE那里拿到。注意版本号,我遇到过有人拿错版本,结果流片时才发现参数对不上。
  2. 解压到指定目录:我个人习惯放在 /home/eda/PDK/SMIC/ 下。别放桌面或临时文件夹,万一误删就麻烦了。
  3. 运行安装脚本:一般有个 install.shsetup.pl。记得用 bashperl 执行,别双击。
  4. 检查安装日志:安装完看看有没有报错。我曾在日志里发现过“权限不足”的提示,结果折腾了半天。
⚠️ 注意:安装路径不要有中文或空格。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安装是基础,基础不牢,地动山摇。下一章咱们聊聊参数化单元的设计,那才是真正好玩的地方。