3. PDK概念与结构:芯片设计的“乐高说明书”

各位同学,今天我们来聊聊PDK。很多刚入行的朋友问我:“PDK到底是个啥?”

我打个比方你就明白了。你买了一套乐高,里面除了积木块,还有一本说明书。说明书告诉你每个零件长什么样、能拼在哪里、拼错了会有什么问题。PDK就是硅光芯片的“乐高说明书”。

没有PDK,你连光波导的宽度该画多少都不知道。更别提仿真和验证了。我刚开始做硅光设计那会儿,PDK还不像现在这么成熟。有一次我手动画了一个MZI(马赫-曾德尔干涉仪)的版图,结果流片回来发现波导损耗比仿真大了3倍。后来一查,原来是版图层次用错了,PDK里定义的“脊形波导层”和“条形波导层”我搞混了。嗯,从那以后我再也不敢不看PDK文档就动手了。

3.1 PDK的定义:工艺与设计的桥梁

PDK的全称是Process Design Kit,中文叫“工艺设计套件”。说白了,它就是晶圆厂(Foundry)提供给设计师的一套标准化文件包。

它的核心作用是什么?让设计师在不了解工艺细节的情况下,也能设计出能正常流片的芯片。

你想想看,晶圆厂有几十道工艺步骤,光刻、刻蚀、沉积、掺杂……每个步骤都有几十个参数。设计师不可能全懂。PDK把这些复杂的工艺参数,封装成了设计师能理解的“器件模型”和“版图规则”。

我个人习惯把PDK比作“翻译官”。它把工艺工程师的语言(比如“刻蚀深度200nm,侧壁角度85°”),翻译成设计师的语言(比如“波导宽度500nm,最小弯曲半径10μm”)。

核心要点:PDK不是一套软件,而是一套数据。它定义了“你能用什么器件”和“你该怎么画版图”。

3.2 PDK的核心组件:四个支柱

一个完整的PDK,通常包含四大核心组件。我按重要性排序给你讲。

3.2.1 器件模型(Device Models)

这是PDK的灵魂。器件模型告诉你:这个器件的电学/光学特性是什么?

比如一个硅光调制器,它的模型会包含:

  • 调制效率(Vπ·L)
  • 光学损耗(dB/cm)
  • 带宽(GHz)
  • 温度系数(pm/°C)

模型通常有两种形式:

  • 紧凑模型(Compact Model):用数学公式描述器件行为,仿真速度快。适合系统级仿真。
  • 电磁模型(EM Model):基于FDTD或FEM仿真结果,精度高但速度慢。适合关键器件优化。

我的经验:做系统仿真时用紧凑模型就够了。但如果你要优化一个特定结构的耦合器,建议用电磁模型。我曾经在一个2×2 MMi耦合器上,用紧凑模型仿真结果很好,流片回来发现分光比偏了5%。后来换成电磁模型重新仿真,才发现是波导侧壁角度的影响。嗯,细节决定成败。

3.2.2 版图层次(Layout Layers)

版图层次定义了你该用什么图层画什么结构。这是最容易出错的地方。

一个典型的硅光工艺,版图层次大概有20-30层。我列几个常见的:

层次名称 用途 颜色(常用)
WG_SI 硅波导层(220nm) 蓝色
WG_SI_SLAB 脊形波导的平板层(90nm) 浅蓝
GRATING 光栅耦合器区域 绿色
CONTACT 金属接触孔 红色
METAL1 第一层金属互连 黄色

为什么说容易出错?因为不同工艺厂的层次命名规则不一样。有的叫“WG”,有的叫“SI_WG”。我见过一个新手,把“WG_SI”和“WG_SI_SLAB”画反了,结果流片回来波导全部断掉。避坑指南:画版图前,先把PDK里的Layer Map打印出来贴在显示器上。

3.2.3 DRC/LVS规则(Design Rule Check / Layout vs. Schematic)

DRC是“设计规则检查”,LVS是“版图与原理图一致性检查”。这两个是流片前的“安检门”。

DRC检查什么?

  • 最小线宽(比如波导不能小于400nm)
  • 最小间距(比如两条波导之间不能小于2μm)
  • 最小包围(比如金属接触孔必须被金属层完全包围)
  • 密度规则(比如每平方毫米的硅面积不能低于30%)

LVS检查什么?

  • 你画的版图,和你仿真的原理图,是不是同一个东西?
  • 连接关系对不对?
  • 器件参数(比如波导长度)是否匹配?

警告:DRC/LVS不是走过场。我曾经有一个项目,DRC报了100多个错误,我觉得都是“小问题”就忽略了。结果流片回来,芯片良率只有20%。后来一查,大部分失效芯片都是因为违反了最小间距规则,导致光刻时相邻波导连在了一起。从那以后,我要求团队DRC必须清零才能tape-out。

3.2.4 仿真模型(Simulation Models)

仿真模型是PDK里最“软”的部分。它通常以PDK库的形式集成在EDA工具中(比如Lumerical、Ansys Lumerical、Synopsys OptSim)。

仿真模型包含:

  • 光学模型:波导损耗、耦合效率、色散曲线
  • 电学模型:调制器的RC参数、探测器的响应度
  • 热学模型:热光系数、热导率

我个人习惯,拿到一个新PDK后,第一件事不是画版图,而是先跑一遍PDK自带的testbench。看看仿真结果和PDK文档里的典型值是否一致。如果偏差超过5%,我会立刻联系工艺厂。为什么?因为PDK本身也可能有bug。我曾经遇到过PDK里调制器模型的Vπ值标错了,导致整个链路预算全错。还好发现得早。

3.3 PDK的结构:文件目录长什么样?

一个典型的PDK压缩包,解压后目录结构大概是这样:

PDK_v1.0/
├── doc/                    # 文档
│   ├── PDK_User_Guide.pdf
│   ├── Layer_Map.pdf
│   └── DRC_Rules.pdf
├── lib/                    # 库文件
│   ├── optical_models/     # 光学模型
│   │   ├── waveguide.lsf
│   │   ├── modulator.lsf
│   │   └── detector.lsf
│   ├── electrical_models/  # 电学模型
│   │   ├── modulator.spice
│   │   └── driver.spice
│   └── pcell/              # 参数化单元
│       ├── mzi.pcell
│       ├── grating.pcell
│       └── mmi.pcell
├── drc/                    # DRC规则文件
│   ├── drc_optical.rul
│   └── drc_electrical.rul
├── lvs/                    # LVS规则文件
│   └── lvs_optical.rul
└── examples/               # 示例
    ├── ring_resonator/
    ├── mach_zehnder/
    └── photodetector/

你注意看,PDK里不仅有模型,还有示例。我建议你拿到PDK后,先把examples目录下的项目跑一遍。这就像学新编程语言时,先跑一遍“Hello World”。能帮你快速熟悉PDK的使用流程。

3.4 知识体系总览

下面这张图,是我自己总结的PDK知识体系。你可以把它当作学习路线图。

PDK知识体系总览 PDK(工艺设计套件) 器件模型 版图层次 DRC/LVS规则 仿真模型 紧凑模型 电磁模型 参数化单元 波导层 掺杂层 金属层 最小线宽/间距 密度规则 一致性检查 光学模型 电学模型 热学模型 PDK的核心价值 将复杂的工艺参数封装为设计师能理解的“积木块” 确保设计能一次流片成功,降低试错成本 标准化设计流程,支持多项目晶圆(MPW)

这张图你看懂了吗?PDK的四个核心组件是相互关联的。器件模型决定了仿真精度,版图层次决定了物理实现,DRC/LVS保证了制造可行性,仿真模型连接了设计与验证。缺一个,你的芯片就可能“翻车”。

3.5 实战建议:如何用好PDK?

最后,给你几条实战建议:

  1. 先读文档,再动手。 我见过太多人,拿到PDK就直接开画。结果画到一半发现图层用错了。PDK文档通常有100多页,但前20页你必须看完。
  2. 跑一遍PDK自带的testbench。 这是验证PDK是否安装正确的最快方法。如果testbench都跑不通,后面就别想了。
  3. DRC要清零。 不要心存侥幸。DRC报的每一个错误,都可能是流片失败的原因。
  4. 版本管理要做好。 PDK会更新。我习惯在项目目录里放一个PDK_VERSION.txt文件,记录当前使用的PDK版本。避免“昨天还能跑,今天跑不了”的尴尬。

一个小技巧:如果你用的是某个工艺厂的PDK,建议关注他们的技术论坛。有时候PDK的bug会在论坛里被讨论。我曾经在论坛上发现一个DRC规则的误报问题,省了我三天排查时间。

好了,PDK的概念和结构就讲到这里。记住,PDK是你和晶圆厂之间的“契约”。你遵守它的规则,它保证你的芯片能造出来。就这么简单。


公众号:蓝海资料掘金营,微信deep3321