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 个步骤。请严格按照顺序执行,避免因路径或权限问题导致安装失败。

  1. 获取 PDK 压缩包:从代工厂或内部服务器获取 t22ulp_pdk_v1.0.tar.gz(版本号以实际为准)。
  2. 解压到安装目录:建议安装在共享服务器路径下,便于团队协作。
  3. 设置文件权限:确保所有用户对 PDK 目录具有读取和执行权限。
  4. 配置 Cadence 库定义:将 PDK 中的 cds.lib 合并到用户的 cds.lib 中。
  5. 运行安装脚本(可选):部分 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 文件。
t22ulp PDK 安装验证流程 获取 PDK 压缩包 解压到安装目录 设置环境变量 验证目录完整性 Virtuoso 库加载验证 Calibre DRC 运行验证 Spectre 模型加载验证 ✅ 验证通过 所有验证项通过后 PDK 安装完成