2. t22ulp 工艺 PDK 安装
t22ulp 工艺 PDK(Process Design Kit)是 LVDS IP 版图设计的基石。PDK 包含了工艺参数、器件模型、物理验证规则以及标准单元库等关键数据。本章将系统讲解 PDK 的文件结构、安装步骤、环境变量配置以及安装验证方法,确保设计环境准确无误。
2.1 PDK 文件结构
t22ulp PDK 通常以压缩包形式分发,解压后形成以下标准目录结构。理解各目录的功能有助于后续配置和故障排查。
📁 PDK 根目录结构示例:
t22ulp_pdk/
├── doc/ # 技术文档、安装指南、版本说明
├── lib/ # 数字标准单元库(.lib, .db)
├── lef/ # LEF 文件(抽象版图视图)
├── gds/ # GDSII 版图数据(标准单元、IO、IP)
├── cdslib/ # Cadence 库定义文件(cds.lib)
├── OA/ # OpenAccess 数据库(用于 Virtuoso)
├── spectre/ # Spectre 模型文件(.scs, .lib)
├── hspice/ # HSPICE 模型文件(.lib, .inc)
├── calibre/ # Calibre DRC/LVS/PEX 规则文件
├── assura/ # Assura DRC/LVS 规则文件(可选)
├── pvslvs/ # PVS LVS 规则文件(可选)
├── skill/ # Skill 脚本(辅助工具、菜单定制)
└── pdkInstall.log # 安装日志文件
| 目录/文件 | 内容说明 | 设计阶段 |
|---|---|---|
doc/ |
PDK 版本说明、安装手册、器件参数表 | 环境搭建、设计参考 |
lib/ |
时序库文件(Liberty 格式),用于综合和 STA | 前仿真、综合 |
lef/ |
抽象版图视图,包含金属层、通孔、布线障碍 | 自动布局布线 |
gds/ |
完整版图数据,用于物理验证和掩模制作 | 版图设计、物理验证 |
calibre/ |
DRC/LVS/PEX 规则文件(.svrf, .rul) | 物理验证、寄生参数提取 |
spectre/ |
Spectre 仿真模型(BSIM4, RGC, MOM 电容等) | 后仿真、混合信号仿真 |
💡 提示: 在 LVDS IP 版图设计中,
calibre/ 和 spectre/ 目录最为关键。Calibre 规则用于检查 LVDS 差分对匹配、屏蔽层完整性;Spectre 模型用于提取寄生参数后的后仿真验证。
2.2 安装步骤
t22ulp PDK 安装分为以下 5 个步骤。请严格按照顺序执行,避免因路径或权限问题导致安装失败。
- 获取 PDK 压缩包:从代工厂或内部服务器获取
t22ulp_pdk_v1.0.tar.gz(版本号以实际为准)。 - 解压到安装目录:建议安装在共享服务器路径下,便于团队协作。
- 设置文件权限:确保所有用户对 PDK 目录具有读取和执行权限。
- 配置 Cadence 库定义:将 PDK 中的
cds.lib合并到用户的cds.lib中。 - 运行安装脚本(可选):部分 PDK 提供
pdkInstall.pl脚本,用于自动配置 OA 数据库和 Skill 菜单。
📋 安装命令示例:
# 步骤1:解压 PDK 到指定目录
tar -xzvf t22ulp_pdk_v1.0.tar.gz -C /home/eda/pdk/
# 步骤2:设置目录权限(共享环境)
chmod -R 755 /home/eda/pdk/t22ulp_pdk/
# 步骤3:合并 cds.lib(将 PDK 库定义追加到用户 cds.lib)
cat /home/eda/pdk/t22ulp_pdk/cdslib/cds.lib >> ~/cds.lib
# 步骤4:运行安装脚本(如果提供)
cd /home/eda/pdk/t22ulp_pdk/
./pdkInstall.pl -oa_home /opt/cadence/oa_v22.60.xxx
⚠️ 注意: 解压前确认磁盘空间充足(t22ulp PDK 约 2-5 GB)。安装路径中不要包含空格或中文字符,否则可能导致 OA 数据库加载失败。
2.3 环境变量设置
PDK 安装完成后,需要在 Shell 配置文件(如 .bashrc 或 .cshrc)中设置环境变量,使 EDA 工具能够正确找到 PDK 路径和模型文件。
| 环境变量 | 说明 | 示例值 |
|---|---|---|
PDK_DIR |
PDK 根目录路径 | /home/eda/pdk/t22ulp_pdk |
CDS_LIB_FILE |
Cadence 库定义文件路径 | $HOME/cds.lib |
CALIBRE_HOME |
Calibre 工具安装路径 | /opt/mentor/calibre/2023.4 |
MGC_CALIBRE_DRC_RULES |
Calibre DRC 规则文件路径 | $PDK_DIR/calibre/drc/t22ulp_drc.svrf |
MGC_CALIBRE_LVS_RULES |
Calibre LVS 规则文件路径 | $PDK_DIR/calibre/lvs/t22ulp_lvs.svrf |
SPECTRE_MODEL_PATH |
Spectre 模型文件搜索路径 | $PDK_DIR/spectre |
📝 .bashrc 配置示例:
# t22ulp PDK 环境变量
export PDK_DIR=/home/eda/pdk/t22ulp_pdk
export CDS_LIB_FILE=$HOME/cds.lib
# Calibre 工具与规则
export CALIBRE_HOME=/opt/mentor/calibre/2023.4
export MGC_CALIBRE_DRC_RULES=$PDK_DIR/calibre/drc/t22ulp_drc.svrf
export MGC_CALIBRE_LVS_RULES=$PDK_DIR/calibre/lvs/t22ulp_lvs.svrf
# Spectre 模型路径
export SPECTRE_MODEL_PATH=$PDK_DIR/spectre
# 将 PDK 的 Skill 脚本加入 Cadence 搜索路径
export CDS_LOAD_SKILL=$PDK_DIR/skill/pdkInit.il
💡 提示: 设置
CDS_LOAD_SKILL 环境变量后,Virtuoso 启动时会自动加载 PDK 的初始化 Skill 脚本,自动注册工艺库和菜单项,无需手动操作。
2.4 验证安装成功的方法
完成安装和环境变量配置后,需要通过以下 3 个步骤验证 PDK 是否正常工作。
方法一:检查 PDK 目录完整性
使用 ls 命令确认关键目录和文件是否存在。
ls -la $PDK_DIR/doc/ $PDK_DIR/calibre/drc/ $PDK_DIR/spectre/
方法二:启动 Virtuoso 并检查库列表
启动 Virtuoso,在 CIW(Command Interpreter Window)中执行 ddGetObj("t22ulp_lib"),如果返回对象信息而非错误,则库加载成功。
# 启动 Virtuoso
virtuoso &
# 在 CIW 中执行
ddGetObj("t22ulp_lib")
# 预期输出:t22ulp_lib 对象信息,而非 "nil" 或错误
方法三:运行 Calibre DRC 测试
使用 PDK 自带的测试 GDS 文件运行 DRC,验证规则文件是否可执行。
calibre -drc -hier $MGC_CALIBRE_DRC_RULES \
-gds $PDK_DIR/gds/test/test_inverter.gds \
-o drc_test_results
✅ 验证清单:
| 验证项 | 检查方法 | 通过标准 |
|---|---|---|
| PDK 目录结构 | ls $PDK_DIR |
包含 doc, lib, lef, gds, calibre, spectre 等目录 |
| 环境变量 | echo $PDK_DIR |
输出正确的 PDK 路径 |
| Virtuoso 库加载 | CIW 中 ddGetObj("t22ulp_lib") |
返回库对象,无错误 |
| Calibre DRC 运行 | 运行 DRC 测试命令 | 生成 drc_test_results 目录,无致命错误 |
| Spectre 模型加载 | 运行仿真测试网表 | 仿真正常启动,无模型缺失警告 |
⚠️ 常见问题: 如果 Virtuoso 启动后找不到 PDK 库,请检查
cds.lib 中是否包含 INCLUDE $PDK_DIR/cdslib/cds.lib 语句,以及 CDS_LIB_FILE 环境变量是否指向正确的 cds.lib 文件。