2. 签核数据准备与版本管理
流片签核不是把仿真跑通就结束,而是要把“用哪一版数据、在什么环境下、得到什么结论”固定下来。签核数据准备的核心目标,是让版图、原理图、符号、CDF、技术库与设计库在某个明确时间点形成一份只读快照,并让这份快照可追溯、可复现、可审计。若缺少这一步,后续 DRC/LVS/ERC、寄生提取、时序与功耗签核都可能因为库版本漂移而失去意义。
签核数据包含哪些对象
在 Virtuoso 环境中,签核数据通常横跨多个库与视图,不能只备份一个 schematic 目录。典型对象包括:
- 设计库(Design Library):存放原理图、版图、符号、仿真测试平台等,是签核的主体。
- 技术库(Technology Library):定义层号、显示属性、规则文件关联,影响 DRC/LVS 与版图解释。
- CDF(Component Description Format):描述器件参数、回调、仿真模型映射,决定网表生成与参数传递是否正确。
- 符号(Symbol):与原理图、版图端口对应,影响层次化连接与 LVS 端口识别。
- PDK 与模型库:器件模型、工艺角、规则文件,通常由代工厂提供,需记录版本号。
这些对象之间存在依赖关系:原理图引用符号,符号引用 CDF,CDF 引用技术库与模型库,版图引用技术库与规则文件。任何一层版本变化,都可能改变签核结果。因此,签核数据准备的第一步不是“复制文件”,而是识别依赖并锁定版本。
建立只读签核快照的实际做法
在 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 版本、仿真器版本、操作系统、工艺角设置。这些字段看似琐碎,但在流片审计或问题回溯时,往往是判断“当时到底跑了什么”的唯一依据。
版本管理如何保证可追溯
版本控制的核心不是“保存历史”,而是让每一次签核结论都能对应到唯一的数据版本。在 Virtuoso 流程中,推荐采用“库级版本 + 文件级校验”的双层策略:库级版本用于标识整体快照,文件级校验用于发现局部漂移。
实际操作中,可以将设计库纳入 Git 管理,但需要注意 Virtuoso 的二进制文件(如 .oa 格式)不适合直接 diff。更实用的做法是:
- 将 CDF、符号、原理图等文本化视图导出为可读格式,纳入版本控制。
- 对版图与二进制库使用校验和或归档工具(如 tar + md5)记录整体状态。
- 每次签核前,从版本控制拉取指定 tag,重新生成网表并比对关键指标。
- 签核完成后,将结果文件(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 与记录一致 |
常见问题与处理
签核数据准备阶段最常见的问题是“库版本漂移”。例如,原理图引用了技术库中的某个器件,但技术库在签核后被更新,导致重新生成网表时器件参数变化。处理方式是:在快照中同时冻结设计库与技术库,并在 Virtuoso 的 cds.lib 中显式指向快照路径,而不是指向共享的 PDK 安装目录。
另一个问题是 CDF 回调依赖外部文件。若回调中引用了模型文件或参数表,这些文件也必须纳入快照。否则,即使库本身冻结,回调仍可能读取到变化的外部数据。建议在签核前运行一次完整的网表生成与 LVS,确认所有依赖均可解析。
最后,版本管理需要与团队协作流程结合。签核快照应由专人负责冻结,冻结后通知所有相关工程师切换至只读模式。任何后续修改都应创建新分支或新快照,并在版本记录中说明修改原因。这样,流片数据才真正具备可追溯性,签核结论也才具备工程可信度。