2. 签核数据准备与版本管理

流片签核不是把仿真跑通就结束,而是要把“用哪一版数据、在什么环境下、得到什么结论”固定下来。签核数据准备的核心目标,是让版图、原理图、符号、CDF、技术库与设计库在某个明确时间点形成一份只读快照,并让这份快照可追溯、可复现、可审计。若缺少这一步,后续 DRC/LVS/ERC、寄生提取、时序与功耗签核都可能因为库版本漂移而失去意义。

签核数据包含哪些对象

在 Virtuoso 环境中,签核数据通常横跨多个库与视图,不能只备份一个 schematic 目录。典型对象包括:

  • 设计库(Design Library):存放原理图、版图、符号、仿真测试平台等,是签核的主体。
  • 技术库(Technology Library):定义层号、显示属性、规则文件关联,影响 DRC/LVS 与版图解释。
  • CDF(Component Description Format):描述器件参数、回调、仿真模型映射,决定网表生成与参数传递是否正确。
  • 符号(Symbol):与原理图、版图端口对应,影响层次化连接与 LVS 端口识别。
  • PDK 与模型库:器件模型、工艺角、规则文件,通常由代工厂提供,需记录版本号。

这些对象之间存在依赖关系:原理图引用符号,符号引用 CDF,CDF 引用技术库与模型库,版图引用技术库与规则文件。任何一层版本变化,都可能改变签核结果。因此,签核数据准备的第一步不是“复制文件”,而是识别依赖并锁定版本。

签核数据依赖关系与只读快照 设计库 Design Lib • 原理图 schematic • 版图 layout • 符号 symbol • 仿真测试平台 CDF 与符号 • 器件参数定义 • 回调函数 • 模型映射 • 端口与层次连接 技术库与 PDK • 层号与显示属性 • DRC/LVS 规则文件 • 器件模型库 • 工艺角 corner 只读签核快照 Signoff Snapshot 锁定版本号 + 校验和 + 环境记录 + 签核结论 tag: signoff_v1.0_2025-06-15 | checksum: a3f9…c21e | PDK: 1.8.3 Design Management / 版本控制 提交记录 · 差异比较 · 回滚 · 审计追踪 禁止修改 只读权限 冻结状态

建立只读签核快照的实际做法

在 Virtuoso 中,建立快照通常有两种路径:一是使用 Design Management(如 Cadence Design Management 或与 Git/SVN 集成的版本控制),二是通过库复制与权限控制形成物理只读副本。无论哪种方式,关键动作都是“冻结”而非“另存为”。

以库复制为例,常见操作是使用 cdsLibCopy 或 Virtuoso 的 Library Manager 导出功能,将设计库复制到签核目录,并记录以下信息:

# 示例:签核快照目录结构(合理假设)
signoff/
  design_lib_v1.0/          # 只读设计库副本
  tech_lib_v1.8.3/          # 技术库副本
  cdf_backup/               # CDF 参数导出
  manifest.txt              # 版本清单
  checksum.md5              # 校验和
  env_record.txt            # 环境与工具版本

其中 manifest.txt 应至少包含:库名、视图名、版本号、最后修改时间、负责人、对应 PDK 版本、规则文件路径。校验和用于确认快照未被意外修改。环境记录应包含 Virtuoso 版本、仿真器版本、操作系统、工艺角设置。这些字段看似琐碎,但在流片审计或问题回溯时,往往是判断“当时到底跑了什么”的唯一依据。

提示:只读快照建立后,应立刻将目录权限设为只读,并在版本控制系统中打上 tag。后续任何修改都应在新的分支或新快照中进行,而不是直接改签核目录。

版本管理如何保证可追溯

版本控制的核心不是“保存历史”,而是让每一次签核结论都能对应到唯一的数据版本。在 Virtuoso 流程中,推荐采用“库级版本 + 文件级校验”的双层策略:库级版本用于标识整体快照,文件级校验用于发现局部漂移。

实际操作中,可以将设计库纳入 Git 管理,但需要注意 Virtuoso 的二进制文件(如 .oa 格式)不适合直接 diff。更实用的做法是:

  1. 将 CDF、符号、原理图等文本化视图导出为可读格式,纳入版本控制。
  2. 对版图与二进制库使用校验和或归档工具(如 tar + md5)记录整体状态。
  3. 每次签核前,从版本控制拉取指定 tag,重新生成网表并比对关键指标。
  4. 签核完成后,将结果文件(DRC/LVS 报告、时序报告、功耗报告)与快照 tag 关联存档。

例如,某次签核使用 tag signoff_v1.0_2025-06-15,对应 PDK 1.8.3、Virtuoso ICADV 12.3、工艺角 TT/SS/FF。若后续发现 LVS 报告中的器件数量与原理图不一致,可以回退到该 tag,重新生成网表并比对,快速判断是数据问题还是规则文件问题。

签核数据检查清单

在冻结快照之前,建议逐项确认以下内容。该清单可直接作为签核前的检查表使用:

检查项 确认内容 判断依据
原理图与符号 端口一致、层次无悬空、符号引脚与版图对应 ERC 通过、LVS 端口匹配
CDF 参数 器件参数、模型映射、回调无报错 网表生成无警告、参数与预期一致
技术库 层号、规则文件路径、显示属性正确 DRC/LVS 能正常启动并识别层
PDK 版本 与代工厂签核要求一致 版本号记录在 manifest 中
只读权限 快照目录不可写、tag 已打 尝试修改被拒绝、版本记录可查
校验和 快照文件未被篡改 md5 与记录一致
注意:不要用“最新版”作为签核依据。签核必须指向一个明确的、不可变的版本标识。若使用 Git,应使用 commit hash 或 tag,而不是分支名。

常见问题与处理

签核数据准备阶段最常见的问题是“库版本漂移”。例如,原理图引用了技术库中的某个器件,但技术库在签核后被更新,导致重新生成网表时器件参数变化。处理方式是:在快照中同时冻结设计库与技术库,并在 Virtuoso 的 cds.lib 中显式指向快照路径,而不是指向共享的 PDK 安装目录。

另一个问题是 CDF 回调依赖外部文件。若回调中引用了模型文件或参数表,这些文件也必须纳入快照。否则,即使库本身冻结,回调仍可能读取到变化的外部数据。建议在签核前运行一次完整的网表生成与 LVS,确认所有依赖均可解析。

最后,版本管理需要与团队协作流程结合。签核快照应由专人负责冻结,冻结后通知所有相关工程师切换至只读模式。任何后续修改都应创建新分支或新快照,并在版本记录中说明修改原因。这样,流片数据才真正具备可追溯性,签核结论也才具备工程可信度。