Cadence 通用 PDK 文件解析:cds_ff_mpt 与 gpdk045
对 Cadence 提供的两个通用 PDK——18nm FinFET 的 cds_ff_mpt(ADVGPDK)与 45nm CMOS 的 gpdk045——进行目录结构与文件用途的详细解析。
|
wanlinwang
|
12 min read
Cadence 在提供了若干通用工艺设计套件(Generic PDK,GPDK),供工程师学习 EDA 工具流程、验证方法学,以及搭建内部培训环境时使用。它们不对应真实代工厂工艺,但结构与真实 PDK 完全一致。本文对其中两个常用的 PDK 进行逐文件解析,以便初学者能快速掌握。
一、cds_ff_mpt —— 18nm FinFET 多重图形 PDK(ADVGPDK)
背景
全称 Advanced Node GPDK,工艺节点 18nm,FinFET 器件 + 多重图形(Multi-Patterning)工艺,支持 0.8V / 1.8V 双电源,8 层金属。提供 Virtuoso 技术库、pCell、Spectre 模型、PEGASUS/PVS DRC/LVS 规则、QRC 及 EM 数据,并附带一套基础标准单元库可配合 Innovus 做布局布线。支持工具版本为 IC23.1。
器件单元
每个 Cell 目录下通常包含以下视图(view):layout、spectre、symbol、auCdl、auLvs、ivpcell。
顶层分类由 cds_ff_mpt.TopCat 定义,分为以下类别:
FinFET 晶体管(finfets.Cat)
| Cell |
含义 |
n1svt |
NMOS FinFET,标准阈值(Standard Vt) |
n1lvt |
NMOS FinFET,低阈值(Low Vt,速度快但漏电较大) |
n1hvt |
NMOS FinFET,高阈值(High Vt,低功耗) |
n2svt |
NMOS FinFET,双倍宽度(2-fin),标准阈值 |
p1svt / p1lvt / p1hvt / p2svt |
对应 PMOS 版本 |
p1svtcp |
PMOS 标准阈值,交叉耦合(cross-pole)变体 |
堆叠 FinFET(stackedFinfets.Cat)
后缀 _s 表示 stacked,即多个 FinFET 纵向串联,用于低功耗或高密度电路设计。
| Cell |
含义 |
n1svt_s / n1lvt_s / n1hvt_s / n2svt_s |
NMOS 堆叠 FinFET |
p1svt_s 等 |
对应 PMOS 堆叠版本 |
二极管(diodes.Cat)
| Cell |
含义 |
nd1svt / nd1lvt / nd1hvt / nd2svt |
N 型二极管(不同阈值变体) |
pd1svt 等 |
P 型二极管 |
二极管主要用于 ESD 防护和基准电压产生。
双极型器件(bipolar.Cat)
| Cell |
含义 |
npn |
NPN 双极型晶体管(FinFET 工艺下的寄生 BJT,辅助器件) |
电容(capacitor.Cat)
| Cell |
含义 |
cmim |
MIM 电容(Metal-Insulator-Metal),高精度、高 Q 值,适合模拟/RF 电路 |
电阻(resistors.Cat)
| Cell |
含义 |
resm1 ~ resm7 |
金属层电阻(M1~M7),方块电阻低,适合大阻值精密电阻 |
resmt |
顶层金属电阻 |
rnsnd / rnsnp |
非 Salicided N 型扩散 / N 型多晶电阻(高方阻) |
rnspd / rnspp |
非 Salicided P 型扩散 / P 型多晶电阻 |
rsnd / rsnp / rspd / rspp |
对应 Salicided 版本(低方阻,温度系数小) |
rnwo |
N-well 氧化物电阻 |
rnws |
N-well STI 电阻 |
原语(primitives.Cat)
| Cell |
含义 |
primRes2 |
基础参数化电阻原语,其他电阻 Cell 以此为基础派生 |
连接与隔离结构(不属于任何分类)
| Cell |
含义 |
diffConn |
扩散区连接(跨鳍互联结构) |
polyConn |
多晶连接 |
nwellTap |
N-well 偏置接触(为 PMOS well 提供电位) |
subTap |
P 型衬底接触(为 NMOS 提供衬底电位) |
NGR |
N 型保护环(N-type Guard Ring) |
PGR |
P 型保护环(P-type Guard Ring) |
技术与工艺文件
| 文件 |
用途 |
techfile.tf |
ASCII 工艺技术文件,定义所有层名、工艺参数、设计约束 |
tech.db |
编译后的技术数据库(二进制),Virtuoso 实际加载的版本 |
display.drf |
显示资源文件(Display Resource File),定义各层的颜色、填充图案、透明度 |
cds_ff_mpt.layermap |
GDS 导入/导出时的层名 ↔ 层号映射表 |
cds_ff_mpt.objectmap |
对象类型映射(目的层映射) |
cds_ff_mpt.TopCat |
顶层分类目录,列出所有 .Cat 分类文件 |
bipolar.Cat / capacitor.Cat 等 |
各类别的器件目录索引 |
cdsinfo.tag |
标记该目录为 Cadence 库根目录,声明命名空间(LibraryUnix) |
.oalib |
标记该目录为 OpenAccess 格式库 |
data.dm |
数据管理系统配置文件 |
pdk.dat |
PDK 元数据(二进制) |
SKILL 脚本文件
| 文件 |
用途 |
libInit.il |
库初始化主脚本,Virtuoso 打开库时自动执行,依次加载 context 和子脚本 |
libInitCktPro.il |
ADE Circuit Probe 模式下的专用初始化脚本 |
libInitCustomExit.il |
库关闭时执行的自定义退出脚本 |
loadCxt.ile |
加载 PDK context(.cxt)的 SKILL 脚本入口 |
cds_ff_mptFgrUtil.il |
FinFET 手指分组工具(finger grouping utility),辅助布局摆放 |
cds_ff_mptFgrRing.il |
FinFET 环形排列工具脚本 |
cds_ff_mpt_customFilter.il |
自定义筛选器(CIW / ADE 中对器件参数进行过滤) |
cds_ff_mpt_ModelMgmt.il |
模型管理脚本,在 ADE 中自动设置 Spectre 模型文件路径 |
编译好的 Context 文件
| 文件 |
用途 |
cds_ff_mpt64bit.cxt |
PDK 主 context(64-bit),包含 pCell / 约束的编译结果 |
pdkUtils.cxt / pdkUtils64bit.cxt |
PDK 工具函数 context(32/64-bit) |
二、gpdk045_v_3_5 —— 45nm CMOS 通用 PDK
背景
全称 GPDK045,工艺节点 45nm CMOS,11 层金属 + 2 层多晶(11M/2P),平面器件(非 FinFET),同时包含完善的 RF 器件(电感)。提供 Virtuoso 技术库、pCell、Spectre 模型、DRC/LVS 规则、QRC 数据,支持 IC6.1 和 IC23.1。本地版本为 v3.5,当前最新版本为 v6.0。
顶层目录结构
1
2
3
4
5
6
| gpdk045_v_3_5/
├── gpdk045/ ← Cadence 器件库(含所有 Cell 与技术文件)
├── models/spectre/ ← Spectre 仿真模型文件
├── cds.lib ← 库路径定义(老格式,二进制)
├── lib.defs ← 库路径定义(ASCII,指向 analogLib / gpdk045 等)
└── .abstractrc ← Virtuoso Abstract 抽取器配置
|
lib.defs 示例内容:
1
2
| DEFINE analogLib $CDSHOME/tools/dfII/etc/cdslib/artist/analogLib
DEFINE gpdk045 ./gpdk045
|
.abstractrc 中指定生成 LEF 时使用的 ConstraintGroup:
1
| absSetOption("UseConstraintGroup" "LEFDefaultRouteSpec_gpdk045")
|
器件单元(gpdk045/ 内)
顶层分类由 gpdk045.TopCat 定义,分为:bipolar、cap、diode、ind、mos、moscap、primitives、resistors。
MOSFET(mos.Cat)
| Cell |
含义 |
nmos1v |
1V 核心 NMOS,标准阈值 |
nmos1v_hvt / nmos1v_lvt |
1V NMOS 高/低阈值变体 |
nmos1v_nat |
1V 零阈值 NMOS(Native,用于低压开关) |
nmos2v |
2V I/O NMOS(厚栅氧化层,耐高压) |
nmos2v_nat |
2V 零阈值 NMOS |
nmos*_3 |
三倍宽度(3-finger)变体,提高驱动电流 |
qnmos1v / qpmos1v |
仿真专用简化模型(用于大规模仿真提速) |
| PMOS 系列 |
对应 PMOS 版本(pmos1v / pmos2v 等) |
电容(cap.Cat / moscap.Cat)
| Cell |
含义 |
mimcap |
MIM 电容,高 Q、低寄生,适合 RF 匹配网络 |
nmoscap1v / nmoscap2v |
NMOS 栅电容(1V/2V 版本),面积效率高 |
pmoscap1v / pmoscap2v |
PMOS 栅电容 |
二极管(diode.Cat)
| Cell |
含义 |
ndio / pdio |
标准 N/P 型二极管 |
ndio_2v / pdio_2v |
2V 耐压版本 |
ndio_hvt / ndio_lvt / ndio_nvt |
高/低/零阈值变体(影响正向压降特性) |
双极型器件(bipolar.Cat)
| Cell |
含义 |
npn2 / npn5 / npn10 |
水平 NPN BJT(发射极面积 2 / 5 / 10 μm²) |
vpnp2 / vpnp5 / vpnp10 |
垂直 PNP BJT |
电感(ind.Cat,RF 专用)
| Cell |
含义 |
ind_a |
非对称电感(Asymmetric),适合单端 RF 电路 |
ind_s |
对称电感(Symmetric),适合差分 RF 电路 |
ind_s_w1_cross ~ ind_s_w5_cross |
对称电感 + 正向交叉线,w1~w5 对应不同线宽(感量/Q 值不同) |
ind_s_w1_rcross ~ ind_s_w5_rcross |
对称电感 + 反向交叉线(rcross = reverse cross) |
电阻(resistors.Cat)
| Cell |
含义 |
resm1 ~ resm11 |
金属层电阻(M1~M11) |
resnsndiff / resnsnpoly |
非 Salicided N 型扩散 / 多晶电阻(高方阻) |
resnspdiff / resnsppoly |
非 Salicided P 型扩散 / 多晶电阻 |
ressndiff / ressnpoly |
Salicided N 型扩散 / 多晶电阻(低方阻) |
resnwoxide / resnwsti |
N-well 氧化物 / STI 电阻(极高阻值) |
*_2 后缀 |
对应 2-terminal(两端子)变体 |
保护环
| Cell |
含义 |
nring |
N 型保护环(隔离 N-well 衬底噪声) |
pring |
P 型保护环(隔离 P 型衬底噪声) |
原语(primitives.Cat)
| Cell |
含义 |
primRes2 / primRes3 |
参数化电阻原语 |
primRes3_inh_n / primRes3_inh_p |
N/P 型隔离(inhibit)变体 |
Spectre 模型文件(models/spectre/)
| 文件 |
用途 |
gpdk045.scs |
顶层模型入口,通过 include 引用以下所有文件;在 ADE 中通常只需 include 这一个文件 |
gpdk045_mos.scs |
MOSFET 模型(BSIM4 / PSP 格式) |
gpdk045_bipolar.scs |
BJT 模型(VBIC / HICUM 格式) |
gpdk045_diode.scs |
二极管模型 |
gpdk045_resistor.scs |
电阻模型(poly、diffusion 等) |
gpdk045_inductor.scs |
电感模型 |
gpdk045_mimcap.scs |
MIM 电容模型 |
gpdk045_moscap.scs |
MOS 电容模型 |
gpdk045_age.scs |
器件老化/可靠性模型(HCI、NBTI 效应) |
cap045.scs / mos045.scs / res045.scs |
补充模型或旧版兼容模型 |
技术与库文件(gpdk045/ 内)
| 文件 |
用途 |
tech_gpdk045.tf |
45nm 工艺技术文件(ASCII) |
tech.db |
编译后技术数据库(二进制) |
display.drf |
层颜色/图案显示配置 |
gpdk045.layermap |
GDS 层映射文件(层名 ↔ 层号) |
divaEXT.rul |
Diva DRC 扩展规则(旧版物理验证工具 Diva,现多用 PVS/PEGASUS) |
divaLVS.rul |
Diva LVS 规则 |
gpdk045_PDKRegistrations.il |
PDK 注册脚本,向 Virtuoso 注册工具栏、菜单项 |
gpdk045_ModelMgmt.il |
ADE 模型路径自动设置脚本 |
gpdk045_customFilter.il |
器件参数自定义过滤器 |
gpdk045.cxt / gpdk04564bit.cxt |
编译好的 PDK Context(32/64-bit) |
libInit.il / libInitCktPro.il / libInitCustomExit.il |
库初始化及退出脚本(同 cds_ff_mpt) |
loadCxt.ile |
Context 加载入口脚本 |
三、两个 PDK 的文件类型对照
| 文件类型 |
扩展名 |
说明 |
| 工艺技术文件(ASCII) |
.tf |
人工可读,定义层、规则、参数 |
| 工艺技术数据库(二进制) |
.db |
Virtuoso 加载的编译版本 |
| 显示资源文件 |
.drf |
层颜色与图案,影响 layout 显示效果 |
| 层映射文件 |
.layermap |
GDS 导入/导出时用 |
| 目录索引文件 |
.TopCat / .Cat |
定义器件分类层级结构 |
| SKILL 初始化脚本 |
.il / .ile |
库打开/关闭时自动执行的 SKILL 代码 |
| 编译好的 Context |
.cxt |
pCell / 工具函数的二进制编译结果,加载比源码快 |
| Spectre 模型文件 |
.scs |
仿真用 SPICE/Spectre 格式模型 |
| 库路径定义 |
lib.defs / cds.lib |
告诉 Virtuoso 各库的磁盘路径 |
| 库标记文件 |
cdsinfo.tag |
标记 Cadence 库根目录 |
| OpenAccess 标记 |
.oalib |
标记 OpenAccess 格式库 |
| PDK 元数据 |
pdk.dat |
PDK 版本等元数据(二进制) |
参考
Support the Creator
If you found this article helpful, consider supporting.