3、PDK基础:什么是工艺设计套件(PDK)、PDK的核心组件(器件模型、版图、规则)、PDK的获取与安装

各位同学,咱们今天聊聊PDK。

PDK这玩意儿,说白了就是晶圆厂给设计师的一本「通关秘籍」。没有它,你连流片的门都摸不着。我刚开始接触硅光芯片那会儿,以为PDK就是个普通的库文件,结果第一次跑仿真就报错,折腾了两天才发现是PDK版本没选对。嗯,从那以后,我对PDK的态度就变得特别认真。

什么是工艺设计套件(PDK)

PDK的全称是Process Design Kit,工艺设计套件。你可以把它理解成晶圆厂和设计师之间的「翻译官」。晶圆厂把他们的工艺参数、器件特性、制造规则,全部打包成一个软件包,方便我们在EDA工具里调用。

我个人习惯把PDK比作「乐高积木说明书」。晶圆厂提供了各种积木块(器件),说明书告诉你每个积木块长什么样、能承受多大压力、怎么拼才不会散架。你照着说明书搭出来的结构,晶圆厂才能给你造出来。

硅光芯片的PDK和传统CMOS PDK不太一样。它除了标准的有源器件(比如调制器、探测器),还包含大量无源器件(比如波导、耦合器、分束器)。这些器件的模型往往需要电磁场仿真来验证,所以PDK里会附带很多S参数文件。

核心要点:PDK不是一套固定的文件,它是晶圆厂和设计师之间的契约。你按照PDK的规则设计,晶圆厂保证能制造出来。任何偏离PDK的行为,都可能导致流片失败。

PDK的核心组件

PDK里到底装了些什么?我拆开给你看。

1. 器件模型

器件模型是PDK的灵魂。它描述了每个光电器件的电学特性和光学特性。比如一个马赫-曾德尔调制器,它的调制效率、插入损耗、带宽,这些参数都封装在模型里。

常见的模型格式有:

  • Verilog-A / Verilog-AMS:用于电光混合仿真,我项目中90%的仿真都用这个
  • Compact Model:比如针对探测器的等效电路模型,包含暗电流、响应度等参数
  • S参数文件:无源器件的频域响应,通常以SNP格式提供

我曾经踩过一个坑:某个PDK的调制器模型在低频段拟合得很好,但到了25GHz以上,仿真结果和实测差了3dB。后来发现是模型里忽略了电极的寄生效应。所以,拿到PDK后,我建议你先跑几个简单的测试结构,验证一下模型在目标频段内的准确性。

个人经验:别完全信任PDK模型。晶圆厂给的模型通常是「典型值」,实际流片会有工艺角波动。我习惯在仿真时留20%的余量,尤其是对损耗和带宽这类敏感参数。

2. 版图(Layout)

版图是PDK里最直观的部分。它提供了每个器件的物理掩模层图形。你想想看,晶圆厂制造芯片时,就是按照这些图形一层一层往上堆的。

硅光芯片的版图有几个特殊之处:

  • 波导层:通常有多个层级,比如脊形波导、条形波导,不同层级对应不同的刻蚀深度
  • 耦合结构:比如光栅耦合器、端面耦合器,它们的版图对工艺偏差极其敏感
  • 金属层:用于电极和加热器,需要和光学结构保持一定距离,避免引入额外损耗

我记得有一次,一个同事在版图里直接复制了PDK提供的调制器单元,结果DRC报错。查了半天,发现是PDK版本更新后,调制器的包层结构变了,但同事用的是旧版PDK的版图。所以,每次更新PDK,我建议你把所有用到的器件单元重新调取一遍,别偷懒。

3. 规则文件

规则文件是PDK的「法律条文」。它规定了你能做什么、不能做什么。主要包括:

规则类型 说明 常见检查项
设计规则检查(DRC) 检查版图是否符合制造工艺的最小尺寸、间距等要求 波导最小宽度、波导间距、金属线宽
版图与原理图一致性检查(LVS) 确保版图连接关系与电路原理图一致 器件类型、端口连接、寄生参数
天线效应规则 防止等离子体刻蚀时电荷积累损坏器件 金属面积与栅极面积的比例

嗯,这里要注意:硅光芯片的DRC规则比传统CMOS更复杂。比如波导的弯曲半径,如果小于PDK规定的最小值,光损耗会急剧增加。我曾经见过一个设计,为了节省面积把弯曲半径做小了,结果流片回来损耗比仿真大了5倍,整个芯片直接废了。

避坑指南:我曾经在MPW流片时,因为忽略了PDK里的「密度规则」,导致芯片某些区域刻蚀不均匀。晶圆厂反馈说「金属密度不达标,需要加dummy结构」。从那以后,我每次跑完DRC,都会额外检查一遍密度规则。

PDK的获取与安装

PDK怎么拿到手?通常有几种途径:

  1. 晶圆厂官网下载:比如IMEC、AIM Photonics、Ligentec等,会提供注册下载链接。一般需要签署NDA(保密协议)。
  2. MPW组织方提供:如果你参加多项目晶圆流片,组织方会统一发放PDK。我记得第一次参加MPW时,等了三天才收到PDK,因为晶圆厂需要审核我的设计资质。
  3. EDA工具厂商集成:有些PDK会预装在EDA工具里,比如Luceda Photonics的IPKISS平台,可以直接调用。

安装PDK时,我建议你注意以下几点:

  • 版本匹配:PDK版本必须和EDA工具版本兼容。我见过有人用L-Edit 2020版加载2023版的PDK,结果报了一堆莫名其妙的错误。
  • 路径设置:PDK安装路径不要有中文和空格。这是老生常谈的问题,但每次都有同学在这上面翻车。
  • 环境变量:有些PDK需要设置环境变量,比如PDK_ROOTPDK_DIR。安装文档里一般会写,别跳过。

下面是一个典型的PDK安装流程(以Luceda的SiPhotonics PDK为例):

# 1. 解压PDK压缩包
tar -xzvf siphotonics_pdk_v3.2.tar.gz

# 2. 设置环境变量
export PDK_ROOT=/home/user/pdk/siphotonics_v3.2
export PDK_DIR=$PDK_ROOT

# 3. 运行安装脚本
cd $PDK_ROOT
./install.sh

# 4. 验证安装
# 在EDA工具中运行以下命令(以Python接口为例)
import siphotonics_pdk as pdk
print(pdk.version())
# 输出应为:3.2.0

安装完成后,我建议你跑一个简单的测试:调取一个标准波导单元,跑一遍DRC和仿真。如果一切顺利,说明PDK安装成功。如果报错,先检查环境变量和路径,90%的问题出在这里。

小技巧:我习惯在PDK安装目录下建一个test文件夹,里面放几个简单的测试结构。每次更新PDK后,先跑一遍这些测试,确保所有功能正常。这能帮你省下不少排查问题的时间。

好了,PDK的基础知识就聊到这里。记住,PDK是你和晶圆厂之间的桥梁,尊重它、理解它、用好它,你的流片之路会顺畅很多。


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