第二章 工艺文件与PDK准备:PDK安装与配置、工艺文件解读、DRC文件准备

做射频IC设计,说白了就是跟工艺厂打交道。你画得再漂亮的版图,如果工艺文件没搞对,流片回来就是一堆废片。我刚开始带项目那会儿,就见过有人因为PDK路径配错,整个团队白干了两周——嗯,这种坑咱们得绕着走。

这一章咱们就聊聊PDK怎么装、工艺文件怎么看、DRC规则怎么准备。别小看这些准备工作,它们决定了你后续所有工作的基础。

2.1 PDK安装与配置

PDK(Process Design Kit)是工艺厂给你的“工具箱”。里面包含了器件模型、参数化单元(Pcell)、设计规则文件、DRC/LVS命令文件等等。没有它,你连个NMOS都画不出来。

2.1.1 安装前的检查清单

我个人习惯,装PDK之前先确认三件事:

  • 操作系统版本:大多数PDK支持Red Hat Enterprise Linux 6/7,CentOS 7也行。Ubuntu?嗯,我劝你别折腾。
  • Cadence版本:IC617、IC618、ICADV12.3……不同PDK对Cadence版本有要求。我记得有一次IC617死活装不上某厂的28nm PDK,后来发现人家只支持IC618以上。
  • 磁盘空间:一个完整的PDK,解压后少说5GB,带EM/IR和RF模型的能到20GB。别装到一半发现磁盘满了。
⚠️ 我曾经踩过的坑: 装PDK前没检查$HOME目录权限,结果安装脚本写不进.cdsinit和.cdslib,折腾了一下午才发现是权限问题。建议先跑一下 ls -la ~ 确认你有写权限。

2.1.2 安装步骤(以某28nm PDK为例)

不同工艺厂的安装方式大同小异,核心流程如下:

  1. 解压PDK压缩包:通常是.tar.gz或.zip格式,解压到指定目录,比如 /home/eda/pdk/TSMC28。
  2. 运行安装脚本:一般叫 install.pl 或 setup.sh。我建议用绝对路径运行,避免路径解析错误。
  3. 配置.cdsinit:在Cadence启动文件里加载PDK的初始化脚本。比如:
; 在.cdsinit文件中添加
load("/home/eda/pdk/TSMC28/cadence/tsmc28Init.il")
  1. 配置.cdslib:在库定义文件中添加PDK库路径。比如:
# 在.cdslib文件中添加
DEFINE tsmc28rf /home/eda/pdk/TSMC28/cadence/tsmc28rf.lib
  1. 验证安装:启动Cadence,在CIW窗口输入 pdkinfo(),如果能返回PDK版本信息,说明装好了。
💡 小技巧: 我习惯在.cdsinit里加一行 printf("PDK loaded: %L\n", pdkinfo()),这样每次启动都能看到PDK是否加载成功,心里踏实。

2.1.3 常见安装问题

问题现象 可能原因 解决办法
启动Cadence报"PDK not found" .cdsinit中路径写错 检查路径是否绝对路径,文件名大小写
Pcell调不出来 SKILL解释器版本不匹配 确认Cadence版本与PDK要求的SKILL版本一致
DRC跑不了 ASSURA/CALIBRE路径未配置 在.cdsinit中设置DRC工具路径
仿真模型找不到 模型库路径未添加到ADE环境 在ADE Setup中手动添加模型库路径

2.2 工艺文件解读

工艺文件,就是工艺厂给你的“技术说明书”。你想想看,一个芯片里几十层掩模,每层用什么材料、多厚、最小宽度多少、间距多少……全写在这些文件里。

我一般把工艺文件分成三类:

  • 设计规则文件(DRC Rule):告诉你什么能画,什么不能画。
  • 器件模型文件(Model File):告诉你管子怎么仿真。
  • 工艺参数文件(Process Parameter):告诉你每层工艺的具体参数。

2.2.1 设计规则文件怎么看

DRC文件通常以 .rul 或 .drc 结尾。打开一看,密密麻麻的规则定义。别慌,咱们抓住几个核心:

  • 最小宽度(Minimum Width):比如M1最小宽度0.1μm,你画0.09μm?DRC直接报错。
  • 最小间距(Minimum Spacing):同层金属之间的最小距离。我做过一个LNA,为了省面积把两个电感挨得太近,结果耦合太大,后仿真直接崩了。
  • 最小包围(Minimum Enclosure):比如过孔周围金属至少要包多少。
  • 最小延伸(Minimum Extension):比如多晶硅栅超出有源区多少。
📌 重点: 对于LNA设计,最关键的规则是金属层的最小宽度和间距,因为它们直接影响电感的Q值和自谐振频率。我一般会先把这几条规则摘出来,贴在显示器旁边。

2.2.2 器件模型文件

模型文件通常以 .scs(Spectre)或 .lib(HSPICE)结尾。里面定义了MOS管、电阻、电容、电感等器件的SPICE模型参数。

举个例子,一个NMOS的BSIM4模型长这样:

// 28nm NMOS BSIM4模型片段
.model nch nmos (
+ version = 4.7
+ toxe = 1.4e-9
+ xj = 1.5e-8
+ nch = 2e18
+ vth0 = 0.35
+ u0 = 0.045
+ ... // 还有上百个参数
)

你不需要记住每个参数,但要知道几个关键的:

  • vth0:阈值电压,决定了管子开启电压。
  • u0:迁移率,影响跨导。
  • toxe:栅氧化层厚度,影响栅电容。

做LNA时,我特别关注噪声模型参数,比如 noi 和 flicker 相关参数,它们直接决定了LNA的噪声系数。

2.2.3 工艺参数文件

这个文件通常叫 process.params 或 techfile.tf。里面定义了每层工艺的物理参数:

参数 典型值(28nm) 说明
M1厚度 0.08μm 底层金属,最薄
顶层金属厚度 3.4μm 用于电感,厚金属降低电阻
ILD介电常数 3.9 层间介质,影响寄生电容
衬底电阻率 10 Ω·cm 影响衬底耦合和电感Q值

做LNA版图时,我习惯把顶层金属的厚度和电阻率记下来——它们直接决定了电感的串联电阻,进而影响Q值。

2.3 DRC文件准备

DRC(Design Rule Check)文件,就是工艺厂给你的一套“交通规则”。你的版图必须完全遵守这些规则,否则流片时可能短路、断路,甚至芯片直接报废。

2.3.1 DRC文件的结构

一个典型的DRC文件(以CALIBRE格式为例)包含:

  • 层定义(LAYER):定义每层版图的编号和名称。
  • 规则定义(RULE):具体的几何约束。
  • 派生层(DERIVED):通过逻辑运算生成的中间层。
  • 规则检查语句:比如 WIDTH M1 < 0.1 表示检查M1宽度是否小于0.1μm。

举个例子:

// DRC规则片段
LAYER M1 10
LAYER V1 11
LAYER M2 12

// 规则1:M1最小宽度0.1μm
WIDTH M1 < 0.1 { @ M1 minimum width violation }

// 规则2:M1与M1最小间距0.12μm
SPACING M1 < 0.12 { @ M1 minimum spacing violation }

// 规则3:V1被M1包围至少0.04μm
ENC M1 V1 < 0.04 { @ V1 enclosure by M1 violation }

2.3.2 如何准备DRC文件

我一般按以下步骤准备:

  1. 从PDK中获取原始DRC文件:通常在PDK的 calibre/ 或 assura/ 目录下。
  2. 确认DRC工具版本:CALIBRE 2019和2021的语法有细微差别。我遇到过因为版本不匹配,DRC跑出来全是假错的情况。
  3. 创建DRC运行脚本:一个简单的CALIBRE DRC运行脚本:
// drc_run.sh
calibre -drc -hier -turbo 4 drc_rule_file.drc \
  -layout layout.gds \
  -o drc_results.db
  1. 设置排除层(Optional):有些层在LNA设计中用不到,可以排除掉以加快DRC速度。比如某些数字标准单元层。
⚠️ 注意: 排除层要谨慎。我曾经为了省时间排除了“DUMMY”层,结果DRC过了,但流片回来发现dummy填充不够,导致CMP平坦度出问题。嗯,从那以后我再也不敢随便排除层了。

2.3.3 DRC常见错误及处理

错误类型 常见原因 处理方法
宽度错误 金属线画窄了 加宽金属线,或调整走线
间距错误 两条线靠太近 拉开间距,或换层走线
包围错误 过孔周围金属不够 加大过孔周围的金属面积
密度错误 某层金属密度不达标 添加dummy填充
天线效应 长金属线连接栅极 加天线二极管,或跳线

2.4 本章知识体系

下面这张图帮你理清本章的核心逻辑:

工艺文件与PDK准备知识体系 工艺文件与PDK准备知识体系 PDK安装与配置 工艺文件解读 DRC文件准备 安装前检查清单 安装步骤与验证 常见安装问题排查 设计规则文件(DRC) 器件模型文件(Model) 工艺参数文件(Techfile) DRC文件结构解析 DRC运行脚本准备 常见DRC错误处理 LNA版图设计基础环境就绪 💡 核心逻辑: PDK是工具基础 → 工艺文件是设计依据 → DRC是质量保障。三者缺一不可,顺序不可颠倒。
📌 本章要点回顾:
  • PDK安装前务必检查操作系统、Cadence版本和磁盘空间。
  • 工艺文件要重点看最小宽度、间距、包围规则,以及顶层金属参数。
  • DRC文件不要随意排除层,尤其是dummy填充层。
  • 准备一个标准化的DRC运行脚本,可以节省大量重复劳动。

好了,PDK和工艺文件这块儿就聊到这儿。这些东西看着琐碎,但都是实打实的经验活。你把这些基础打牢了,后面画版图、跑仿真的时候才能心里有底。