第三章 PDK与设计环境:从零搭建设计平台
说实话,PDK这东西,刚入行的时候我觉得它就是一堆文件。后来吃过亏才明白——PDK是连接设计与工艺的桥梁,没有它,你画出来的波导再漂亮,流片回来也是废片。
这一章,我带你捋清楚PDK到底是什么、主流厂商有哪些、以及EDA工具链怎么装怎么配。嗯,都是实打实的经验。
3.1 PDK到底是什么?
PDK,全称Process Design Kit,工艺设计套件。说白了,就是晶圆厂给你的一套“设计规则说明书+元件库+仿真模型”的打包文件。
我习惯把PDK比作乐高积木的说明书。晶圆厂告诉你:
- 你能用哪些积木块(比如MMI、光栅耦合器、调制器)
- 积木块怎么拼才不违规(最小线宽、最小间距)
- 拼出来的东西性能怎么样(插损、带宽、串扰)
一套完整的硅光PDK,通常包含这几部分:
| 组件 | 说明 |
|---|---|
| 设计规则文件(DRC) | 几何尺寸限制,比如波导最小宽度、刻蚀深度 |
| 元件库(Pcell) | 参数化单元,比如可调宽度的MMI、可调长度的移相器 |
| 紧凑模型(CML) | S参数或等效电路模型,用于系统级仿真 |
| 版图验证规则(LVS) | 检查版图与电路是否一致 |
| 工艺参数文件 | 层叠结构、材料折射率、掺杂浓度等 |
关键点:PDK不是通用的。每家晶圆厂、每个工艺节点都有自己的PDK。你拿A公司的PDK去B公司流片?那肯定不行。
3.2 主流硅光PDK厂商
目前市面上主流的硅光PDK供应商,我接触过的有这么几家:
3.2.1 晶圆厂自研PDK
- Tower Semiconductor(原TowerJazz):PH18硅光工艺,PDK成熟度很高。我在项目中用过他们的PDK,文档写得挺详细,就是学习曲线有点陡。
- GlobalFoundries:45CLO工艺,面向数据中心光互联。他们的PDK支持Lumerical和IPKISS,集成度不错。
- IMEC:iSiPP系列,BioPIX等。IMEC的PDK更新快,但授权费用不低。
- 国内厂商:中芯国际、华虹宏力、联合微电子(CUMEC)等。近几年国内硅光PDK进步很快,CUMEC的PDK我去年用过,基本功能都有了。
3.2.2 EDA厂商提供的PDK
- Lumerical(现Ansys旗下):提供FDTD、MODE、INTERCONNECT等工具,配合PDK做器件级和系统级仿真。我个人习惯用INTERCONNECT做链路仿真,配合PDK的紧凑模型,结果和实测偏差在1dB以内。
- IPKISS(由Luceda Photonics开发):基于Python的硅光设计框架。IPKISS的PDK管理做得很好,支持参数化设计和自动化版图生成。我建议新手从IPKISS入手,因为它的API设计得很直观。
- Synopsys:OptoDesigner、RSoft等。他们的PDK偏重电子-光子协同设计,适合做PIC+EIC的集成方案。
我的建议:选PDK之前,先想清楚你的应用场景。如果是做高速调制器,优先看GlobalFoundries或Tower的PDK;如果是做生物传感,IMEC的BioPIX系列更合适。别盲目追新,稳定才是王道。
3.3 EDA工具链安装与配置
工具链的安装,说实话,是很多人的噩梦。我曾经花了一周时间才把Lumerical和IPKISS的环境配通。这里我把关键步骤和坑点列出来。
3.3.1 Lumerical(Ansys Lumerical)安装
Lumerical现在归Ansys了,但安装流程变化不大。主要分三步:
- 获取License:要么买正版(贵,但省心),要么用学校的浮动License。我当年在实验室就是蹭学校的License服务器。
- 安装主程序:Windows和Linux都支持。我个人推荐Linux,因为跑FDTD仿真时Linux的并行效率更高。
- 配置环境变量:主要是设置
LM_LICENSE_FILE指向License服务器。
# Linux下配置Lumerical License
export LM_LICENSE_FILE=27000@license_server_ip
# 建议写入~/.bashrc,避免每次重启都要重新设置
echo 'export LM_LICENSE_FILE=27000@license_server_ip' >> ~/.bashrc
source ~/.bashrc
注意:Lumerical的FDTD求解器对内存要求很高。我跑一个2um×2um的器件,网格精度设到10nm,内存轻松吃掉32GB。建议至少64GB内存起步。
3.3.2 IPKISS安装
IPKISS是基于Python的,安装相对简单。但要注意版本兼容性。
# 使用pip安装IPKISS核心库
pip install ipkiss3
# 安装PDK支持包(以Tower PH18为例)
pip install ipkiss3-pdk-tower-ph18
# 验证安装
python -c "import ipkiss3; print(ipkiss3.__version__)"
我遇到过一个问题:IPKISS对Python版本有要求。3.8和3.9都支持,但3.10以上有些依赖包会报错。建议用Python 3.8.10,这个版本我验证过,最稳定。
3.3.3 工具链集成
实际项目中,Lumerical和IPKISS经常配合使用。我的工作流是这样的:
- 用IPKISS做版图设计和参数化扫描
- 把版图导出为GDSII文件
- 导入Lumerical FDTD做电磁场仿真
- 提取S参数,再导入INTERCONNECT做系统级仿真
这个流程我跑了不下50个项目,每次流片回来,仿真和实测的吻合度都在90%以上。嗯,前提是PDK参数没给错。
3.4 知识体系总览
下面这张图,是我自己总结的硅光设计环境全貌。你看一眼,心里就有数了。
这张图把PDK、EDA工具、设计流程串起来了。你照着这个框架去搭建环境,不会走偏。
3.5 避坑指南
最后,分享几个我踩过的坑:
- PDK版本一定要和EDA工具版本匹配。我曾经用Lumerical 2021 R2搭配Tower 2020的PDK,结果仿真结果全是NaN。后来发现是PDK的紧凑模型接口变了。
- License管理要提前规划。浮动License如果被占满,仿真会卡住。我习惯在跑大仿真前,先检查License余量。
- 备份你的PDK配置。有一次我重装系统,PDK的路径配置全丢了,重新配花了两天。现在我把所有配置写成脚本,一键恢复。
一句话总结:PDK是地基,EDA工具是脚手架。地基没打好,楼盖得再高也得塌。花时间把环境配好,后面能省十倍的时间。
好了,这一章就到这里。环境搭好了,下一章我们开始动手设计第一个硅光器件。
公众号:蓝海资料掘金营,微信deep3321