工艺设计套件(PDK)入门:PDK的组成、规则文件与安装验证
各位同学,今天我们来聊聊PDK。说实话,PDK这东西,刚入行时我觉得它就是一堆文件,没什么了不起。直到我第一次流片失败,才发现——嗯,PDK里的每一条规则,都是用钱和汗水换来的。
PDK全称Process Design Kit,工艺设计套件。你可以把它理解为晶圆厂给设计师的一本「使用说明书」。没有它,你连一个晶体管都画不出来。
PDK的组成:不只是规则文件
一个完整的PDK,通常包含以下几大部分。我习惯把它们分成「画图用的」和「验证用的」两类。
| 组件 | 说明 | 我的经验 |
|---|---|---|
| 器件模型(SPICE模型) | MOS管、电阻、电容的电气特性模型 | 记得检查模型版本,不同批次可能不同 |
| 版图层次定义(LAYER MAP) | 定义每层掩模的编号、颜色、用途 | 这个文件错了,后面全白干 |
| 设计规则文件(DRC/LVS) | Calibre SVRF、Assura规则等 | 核心中的核心,后面细讲 |
| 参数化单元(PCELL) | 可调参数的器件版图 | 我建议自己写几个PCELL练手 |
| 标准单元库 | 数字标准单元的版图、时序、功耗数据 | 注意库的PVT corner |
| 工艺文件(Techfile) | EDA工具需要的工艺参数 | 安装时最容易出错的地方 |
核心观点:PDK不是一份文件,而是一整套工具链。缺了任何一个,你的设计流程都会卡住。
规则文件:Calibre SVRF与Assura
规则文件是PDK里最「值钱」的部分。为什么这么说?因为晶圆厂花了几十亿美金积累的工艺经验,都写在这些规则里。
Calibre SVRF规则
Calibre是Mentor(现Siemens EDA)的工具,SVRF是它的规则语言。我个人觉得SVRF的语法比较直观,适合做复杂的几何运算。
// 一个简单的DRC规则示例(SVRF格式)
// 检查金属1的最小宽度
M1_WIDTH {
@ 金属1宽度必须大于等于0.18um
WIDTH M1 < 0.18
}
你看,规则就是这样的。每条规则都有一个名字,一个描述,一个检查条件。我在项目中遇到过最头疼的事——规则文件里写了1000多条规则,结果有一条冲突了,查了三天才找到。
Assura规则
Assura是Cadence的工具,它的规则语法和SVRF不太一样。Assura更偏向于层次化检查,适合大型芯片。
// Assura规则示例
rule M1_MIN_WIDTH {
description: "金属1最小宽度0.18um"
check: width(M1) >= 0.18
}
我的建议:如果你刚开始学,先掌握Calibre SVRF。因为市面上大多数代工厂都用Calibre作为sign-off工具。Assura更多用于in-design检查。
PDK的安装与验证
安装PDK,听起来简单,但坑不少。我曾经因为路径里多了一个空格,折腾了一整天。
安装步骤
- 解压PDK包——注意文件权限,别用root解压
- 设置环境变量——PDK_HOME、TECH_LIB等
- 运行安装脚本——通常是install.pl或setup.sh
- 配置EDA工具——在Virtuoso或ICV中加载techfile
- 验证安装——跑一个简单的DRC看看
避坑指南:我曾经在安装PDK时,直接覆盖了旧版本。结果旧项目打不开了。记住:每个项目单独建一个PDK副本,不要共用。
验证方法
安装完成后,一定要做验证。我习惯三步走:
- 第一步:打开版图编辑器,看看PCELL能不能调出来
- 第二步:画一个最小尺寸的晶体管,跑DRC
- 第三步:跑LVS,看看版图和原理图能不能对上
这三步走完,基本可以确认PDK安装没问题。如果哪一步卡住了,别急着重装,先看日志文件。日志里通常有明确的错误信息。
知识体系结构图
下面这张图,是我自己总结的PDK知识框架。你想想看,PDK其实就是一个三层结构:底层是工艺数据,中间是规则文件,顶层是设计工具接口。
这张图你看懂了吗?说白了,PDK就是一座桥,连接晶圆厂的工艺能力和设计师的创意。底层工艺数据是地基,规则文件是承重墙,工具接口是门窗。缺了哪一层,这房子都盖不起来。
总结一下:PDK入门,关键是理解它的三层结构。安装时细心一点,验证时耐心一点。别像我当年那样,装完就跑DRC,结果报了几百个错——原来是techfile路径配错了。
好了,今天就聊到这里。记住:PDK不是万能的,但没有PDK是万万不能的。