背景
TSMC N5(5nm)是台积电的先进 FinFET 工艺节点,其 PDK 体积庞大、文件类型繁多,并且对 Cadence Virtuoso 的版本有明确要求。本文整理一份 N5 PDK 的标准安装与 Virtuoso 导入流程,覆盖从解压、运行 pdkInstall.pl、添加库到 Library Manager 验证的完整步骤,便于 EDA/IT 人员在新机房落地一套先进工艺环境时参照执行。
适用范围:TSMC 5/6/7/12/16/22nm 系列 FinFET PDK 在 Cadence Virtuoso 上的部署。Calibre 平台对应的 DRC/LVS/PEX 配置文件随 PDK 一同分发,本文只涉及在 Virtuoso 端的设计库导入。
1. PDK 文件清单与目录结构
以一个典型的 TSMC N5 iPDK 包为例(版本号示例:iPDK_CLN5_v1.2_2P2A_20211227,其中 CLN5 表示 CMOS Logic N5,2P2A 表示对应的 metal stack 选项),解压后的根目录下能看到如下文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@eda iPDK_CLN5_v1.2_2p2a_20211227_all]# ll
drwxr-xr-x 15 root tsmcadm 4096 Jun 4 2024 .
drwxr-xr-x 5 root tsmcadm 4096 Apr 13 2022 ..
drwxr-xr-x 5 root tsmcadm 4096 Dec 20 2021 Calibre
drwxr-xr-x 4 root tsmcadm 4096 Dec 20 2021 CCI
-rwxr-xr-x 1 root tsmcadm 223 Jan 10 2022 cds.lib
-rwxr-xr-x 1 root tsmcadm 285430 Jun 4 2024 display.drf
-rwxr-xr-x 1 root tsmcadm 122713924 Jan 9 2022 DOC_iPDK_CLN5_v1.2_2p2a_20211227.tar.gz
drwxr-xr-x 3 root tsmcadm 4096 Dec 20 2021 iDeck
-rwxr-xr-x 1 root tsmcadm 952415917 Dec 25 2021 iPDK_CLN5_v1.2_2p2a_20211227.tar.gz
drwxr-xr-x 12 root tsmcadm 4096 Apr 13 2022 iPDK_Patch_CLN5_v1.2_2p2a1_20220311
-rwxr-xr-x 1 root tsmcadm 137547456 Apr 13 2022 iPDK_Patch_CLN5_v1.2_2p2a1_20220311.tar.gz
drwxr-xr-x 10 root tsmcadm 4096 Dec 29 2022 iPDK_Patch_CLN5_v1.2_2p2a2_20221220
-rwxr-xr-x 1 root tsmcadm 96 Dec 20 2021 lib.defs
drwxr-xr-x 8 root tsmcadm 8192 Dec 29 2022 models
drwxr-xr-x 3 root tsmcadm 4096 Dec 23 2021 PDK_doc
-rwxr-xr-x 1 root tsmcadm 6188 Dec 25 2021 pdkInstall.cfg
-rwxr-xr-x 1 root tsmcadm 92150 Dec 24 2021 pdkInstall.pl
-rw-r--r-- 1 root tsmcadm 12 Dec 29 2022 prjname.rve
drwxr-xr-x 4 root tsmcadm 4096 Dec 20 2021 QCI
-rwxr-xr-x 1 root tsmcadm 21055 Dec 27 2021 readme
-rwxr-xr-x 1 root tsmcadm 1267 Dec 29 2022 Recommended_tool_version_number.txt
-rwxr-xr-x 1 root tsmcadm 94990 Dec 29 2022 ReleaseNote.txt
-rwxr-xr-x 1 root tsmcadm 17242 Dec 29 2022 REVISION
-rwxr-xr-x 1 root tsmcadm 2203 Dec 29 2022 setup.loc
drwxr-xr-x 5 root tsmcadm 4096 Dec 29 2022 skill
drwxr-xr-x 4 root tsmcadm 53248 Aug 30 2022 Tcl
-rwxr-xr-x 1 root root 1529037 Jun 4 2024 techfile
drwxr-xr-x 5 root tsmcadm 4096 Dec 20 2021 Techfile
drwxr-xr-x 1342 root tsmcadm 274432 Jun 4 2024 tsmcN5
主要内容解读
| 名称 | 类型 | 用途 |
|---|---|---|
pdkInstall.pl |
文件 | 顶层 Perl 安装脚本,用于按需展开各子模块 |
pdkInstall.cfg |
文件 | 安装脚本读取的组件清单/默认选项 |
cds.lib |
文件 | 安装后的样例 Cadence 库索引,可作为模板复制到工作目录 |
lib.defs |
文件 | OA 库的层级定义文件(与 cds.lib 配合) |
display.drf |
文件 | Virtuoso 显示资源文件(颜色、stipple 等) |
techfile |
文件 | 顶层 ASCII / 编译后的 techfile(与目录 Techfile/ 区分) |
Techfile/ |
目录 | 不同 metal stack / option 的 techfile 集合 |
tsmcN5/ |
目录 | 工艺主库(PCell、symbol、layout 等 OA cellview) |
library/ |
目录 | 其它附属设计库(IP、参考库) |
models/ |
目录 | Spectre / HSPICE 模型 (.scs、.lib、.inc) |
Calibre/ |
目录 | Calibre DRC / LVS / xRC 的 rule deck 与 runset |
CCI/ |
目录 | Cadence Custom Compiler Integration 相关文件 |
QCI/ |
目录 | Quantus / QRC Integration 相关文件(用于寄生提取) |
skill/ |
目录 | PDK 提供的 SKILL 扩展(菜单、工具栏、callback) |
Tcl/ |
文件 | Tcl 集成脚本(部分 PDK 以单文件形式分发) |
eDesigner/ |
目录 | Virtuoso eDesigner(约束/AMS 设计辅助)扩展 |
iDeck/ |
目录 | iPDK Deck,存放跨工具兼容性配置 |
pdkplus_dir/、pdkplus_init.ile、tsmcPDKPlusAPIInit.ile |
目录/文件 | TSMC PDK+ API 接口(增强 PCell、自动布线辅助等) |
PDK_doc/ |
目录 | Design Rule Manual、Process Spec、Application Note |
Recommended_tool_version_number.txt |
文件 | TSMC 官方推荐的 EDA 工具版本号清单 |
ReleaseNote.txt、REVISION、readme |
文件 | 版本说明、更新记录、快速指引 |
libManager.log |
文件 | 上一次 Library Manager 操作的日志(参考用,可删除) |
util/ |
目录 | 安装/检查辅助小工具 |
关键提示:根目录里同时存在
techfile(小写、文件)和Techfile(首字母大写、目录)两份。前者通常是顶层默认 techfile,后者按 metal stack 分目录存放具体的tech.tf/tech.db。在 Linux 大小写敏感的文件系统上互不冲突,但拷贝到 Windows / 不区分大小写的存储上会冲突——这是先进节点 PDK 在跨平台传输时的一个典型坑,建议始终在 Linux 文件系统上落地。
首要查看的两个文件:
Recommended_tool_version_number.txt—— 在动手安装前先读这一份,确认本地的 Virtuoso、Calibre、StarRC、HSPICE 是否落在 TSMC 推荐版本范围内。ReleaseNote.txt—— 列出当前版本相对前一版的差异、已知 issue 与 patch 列表。
2. 执行 pdkInstall.pl 安装
TSMC PDK 自带的 pdkInstall.pl 是一个交互式 Perl 脚本,封装了组件选择、目标路径设置与解压等动作。基本用法如下:
1
2
3
cd <PDK 解压根目录>
chmod +x pdkInstall.pl
./pdkInstall.pl
脚本启动后会依次询问:
- 目标安装路径(Target Install Directory)—— 推荐放在共享存储,例如
/eda/pdk/tsmc/N5/<version>,便于多用户访问。 - 模块选择(Component Selection)—— 包括 Front-End View、Back-End View、Calibre Decks、StarRC Mapping、SPICE Models 等。
- 工艺选项(Process Option)—— 不同的 metal stack 需要按设计目标勾选。
- 校验阶段—— 安装结束后脚本会比对文件数量与 checksum,并打印
Installation Completed Successfully之类的成功信息。
注意:先进节点 PDK 体积大(往往 50–200 GB 起步),建议在 NFS上部署,并保证至少 2× PDK 体积的额外可用空间用于解压和临时文件。
3. 安装完成后的目录验证
pdkInstall.pl 执行成功后,目标安装目录的整体形态应与第 1 节列出的”原始包”基本一致——iPDK 的特点就是大部分文件在分发时已经按工具维度组织好,安装脚本主要做:路径替换、cds.lib 中绝对路径的重写、按所选 metal stack 拷贝对应 Techfile/ 子目录、以及生成 tsmcN5/ 库的 OA 索引。
关键验收点:
- tsmcPdkInstall.log 日志文件会生成。
tsmcN5/下应包含cdsinfo.tag、data.dm与每个 cell 的子目录(<cell>/<view>/master.tag+ 二进制 cellview)。1199 个 entry 的目录大小是正常的(FinFET 节点 PCell + Symbol + Layout 数量本身就很多)。Techfile/下能找到与所选 metal stack 对应的tech.tf/tech.db,并在tsmcN5/库的cdsinfo.tag中被引用。Calibre/子目录下应能看到针对当前 metal stack 的 DRC/LVS/xRC rule deck。models/下应至少有一份顶层 Spectre.scs,其中通过include/section串联起 corner 文件;HSPICE 风格的.lib也按 corner 划分好。Recommended_tool_version_number.txt与ReleaseNote.txt是否随本次安装更新——iPDK 在补丁版(minor patch)中常常只更新部分目录,但这两个文件一定会刷新。
4. 启动 Virtuoso 并打开 Library Path Editor
版本兼容性提醒:TSMC 5/6/7/12/16/22nm 等先进 FinFET 工艺库只能在以下 Virtuoso 版本中正常工作:
- ICADVM 20.1(Advanced Node Multi-mode 版本)
- IC 23.1
- IC 25.1
标准的 IC 6.1.8(IC618)不支持 这些先进节点的 PDK,原因在于 5nm 引入的 Color/Multi-Patterning、FinFET 器件 PCell、以及 Layout XL 高级特性需要 ICADVM 内核才能解析。在 IC618 中尝试打开 N5 库会出现
unknown techfile constructs、PCell evaluation failed等错误。
启动 Virtuoso 之前先准备一个干净的工作目录(避免与旧 cds.lib 冲突):
1
2
3
mkdir -p ~/work/n5_demo && cd ~/work/n5_demo
module load cadence/ICADVM201 # 或 IC231 / IC251,按本地 module 命名调整
virtuoso &
Virtuoso 启动后,从 CIW(Command Interpreter Window)顶栏选择:
1
Tools → Library Path Editor...
即可打开 Library Path Editor,它的本质是一个对当前工作目录下 cds.lib 进行编辑的 GUI。
5. 通过 Library Path Editor 添加 TSMC N5 库
在 Library Path Editor 主界面中:
- 在已有的库列表区域空白处 右键 → 选择
Add Library...,弹出 Add Library 对话框。 - 在
Library字段填入要在 cdsLibMgr 中显示的库名(建议与 PDK 提供的库名保持一致,例如tsmcN5、tsmcN5_io、tsmcN5_sram等)。 Path字段通过Browse浏览到 PDK 安装目录下的tsmcN5/目录(或对应的 IO/SRAM/Standard Cell 库,例如library/下的子库)。- 勾选
Lib Path区段中需要写入的cds.lib(默认是当前工作目录下的./cds.lib)。
对应到底层 cds.lib 文件,Library Path Editor 实际是在添加这样的一行:
1
DEFINE tsmcN5 /eda/pdk/tsmc/N5/<version>/tsmcN5
6. 选择库所在路径并完成添加
每一个 PDK 子库(数字标准单元、IO、Memory Compiler 输出、模拟参考库)都需要重复一次第 5 步。常见的 N5 子库包含:
tsmcN5—— 工艺主库(PCell、Symbol、tech.db)
为减少手工点击,也可以直接编辑 cds.lib:
1
2
SOFTINCLUDE $CDS_INST_DIR/share/cdssetup/cds.lib
DEFINE tsmcN5 /eda/pdk/tsmc/N5/<version>/tsmcN5
7. 保存库列表
回到 Library Path Editor,选择菜单 File → Save(或 Save As...)将更改写入磁盘。如果工作目录下没有 cds.lib,系统会自动创建一个;如果已有,则会原地更新。
小技巧:保存前可以先
File → Save As...备份原有cds.lib,便于回滚。
保存完成后,可以在 CIW 看到类似下面的提示:
1
Saved cds.lib at /home/<user>/work/n5_demo/cds.lib
8. 在 Library Manager 中验证
执行 Tools → Library Manager...,进入 Library Manager 界面:
- 在左侧库列表里应能看到刚添加的
tsmcN5等库名。 - 选中
tsmcN5,右侧 Cell View 列表会列出该库提供的器件(如nch_mac、pch_mac、nch_lvt、pch_lvt、nmos_dum、pmos_dum等 PCell)。 - 右键任意 cell,选择
Open→symbol或layout验证是否能正常打开,没有Cannot read techfile/PCell evaluation failed等错误提示。 - 双击器件
layout视图后,应看到完整的 FinFET 版图、正确的层颜色(依赖display.drf)和 Color decoration(多重曝光着色)。
如果在 Library Manager 里某个库下面看不到任何 cell,多半是以下原因:
| 现象 | 可能原因 |
|---|---|
| 库可见但无 cell | cds.lib 路径不对 / 缺少 OpenAccess 索引 |
| 库可见,cell 可见但打开报 PCell 错 | 当前 Virtuoso 版本不支持(如误用 IC618) |
| 打开 layout 后颜色全错 | display.drf 未通过 tech.db 关联,或 .cdsenv 中 viewerColors 设置干扰 |
unknown technology library |
没有把 tsmcN5 设为 attached tech library |
9. 后续配置:Calibre DRC/LVS
PDK 在 Virtuoso 中可见仅是第一步,要完成 DRC/LVS 流程还需要:
- 在
~/.cdsinit中加载 PDK 提供的 Calibre 集成 SKILL(一般是calibre.skl、mgc_rve.il等)。 - 设置环境变量:
1 2 3
export CALIBRE_HOME=/eda/mentor/calibre/<version> export MGC_HOME=$CALIBRE_HOME export PATH=$CALIBRE_HOME/bin:$PATH
- 在 Calibre runset 中指向 PDK 自带的 rule deck(具体子目录以本地解压结果为准):
1 2
*drcRulesFile: /eda/pdk/tsmc/N5/<version>/Calibre/<rule_deck>.drc *lvsRulesFile: /eda/pdk/tsmc/N5/<version>/Calibre/<rule_deck>.lvs
- 在 Virtuoso 中通过
Calibre → Run nmDRC / Run nmLVS调起,确认能识别 PDK 的 svrf rule deck 而无unknown rule报错。
10. 经验总结
- 版本是先进节点 PDK 安装的第一道闸:在动手安装前先确认 Virtuoso 是 ICADVM201 / IC231 / IC251;IC618 在 N5/N7 等节点上几乎不可用。
pdkInstall.pl不是一次到位:先进节点 PDK 经常会发布 patch(hotfix、ECO PDK),后续也会通过pdkInstall.pl --update或单独的 patch 脚本叠加,建议把 PDK 主版本与 patch 版本合并到目录命名中(如N5/v1p0_p2),避免覆盖原版导致回归困难。- 库要分级别 attach:标准单元、IO、SRAM 各自有独立的 attached tech,而工艺主库
tsmcN5才是 tech.db 的根。建库时务必把这层关系理清楚。 - 校验落在 Library Manager:能在 Library Manager 里成功打开 layout 并显示正确颜色,是 PDK 安装“能用”的最低门槛;进一步要跑通 DRC/LVS/PEX 才算端到端可用。
参考资料
- TSMC Open Innovation Platform® Design Reference Flow & N5 PDK Release Note(需 TSMC Online 账号)
- Cadence Virtuoso ICADVM 20.1 / IC 23.1 / IC 25.1 Advanced Node Support Matrix
- Cadence Virtuoso Library Manager User Guide
- Mentor Calibre Verification User’s Manual