1. 芯片实现项目交付体系总览
芯片实现(Chip Implementation)是把 RTL 代码变成可流片 GDSII 的工程过程。它不是一个工具、一次运行,而是一条由多环节工具链、多类交付物、多个角色共同支撑的工程体系。Synopsys 的 Fusion Compiler、IC Compiler II、PrimeTime、StarRC、IC Validator、Formality、SpyGlass 等工具,分别承担综合、布局布线、时序签核、寄生提取、物理验证、形式验证与静态检查等职责。理解这套体系的第一步,是看清"工具链—交付物—阶段—角色"四者之间的对应关系。
一、Synopsys 全流程工具链的定位
工具链的定位可以按"设计阶段"和"签核属性"两个维度理解。设计阶段维度上,前端从 RTL 出发,经逻辑综合(Fusion Compiler / Design Compiler)得到门级网表;中端做布局规划、时钟树综合、布线(IC Compiler II / Fusion Compiler);后端完成寄生提取(StarRC)、时序签核(PrimeTime)、物理验证(IC Validator)与形式验证(Formality)。签核属性维度上,工具分为"实现类"和"签核类":实现类工具负责生成结果,签核类工具负责独立判定结果是否达标。例如 PrimeTime 的时序结论才是签核依据,而实现工具内部的时序估计只用于优化引导。这一区分决定了项目中的"谁说了算"。
需要特别注意的是,Synopsys 工具链并非孤立运行。它与工艺库(.db / .lib)、物理库(LEF)、寄生技术文件(ITF / QRC techfile)、约束文件(SDC)、UPF 电源意图文件共同构成输入集合。工具只是执行者,输入质量直接决定交付质量。
二、交付物的定义与层次
交付物(Deliverable)是项目阶段完成的客观证据。芯片实现项目的交付物可分为四层:
- 数据交付物:门级网表、SDC 约束、UPF、DEF、GDSII、SPEF、SDF 等,是后续环节的直接输入。
- 报告交付物:时序报告、DRC/LVS 报告、功耗报告、面积报告、形式验证报告,用于判定是否达标。
- 签核交付物:由签核工具产出的最终结论,如 PrimeTime 的时序签核报告、IC Validator 的 clean DRC/LVS 结果。
- 文档交付物:约束说明、时钟架构文档、签核清单(Sign-off Checklist)、版本记录。
交付物的关键属性是"可复现":给定同一版输入与脚本,应能重新生成同一结果。因此脚本、版本号、工具版本必须随交付物一并归档。
三、项目阶段划分
典型芯片实现项目可划分为六个阶段:RTL 准备与约束开发、逻辑综合、布局规划与电源规划、布局布线与时钟树综合、寄生提取与时序签核、物理验证与流片交付。每个阶段都有明确的入口条件、出口交付物和判定标准。阶段之间不是简单串行,时序、功耗、面积(PPA)的权衡往往需要回溯迭代。
四、角色职责
项目角色通常包括:RTL 设计工程师(提供 RTL 与功能意图)、实现工程师(综合、布局布线、优化)、时序签核工程师(PrimeTime 签核与约束审查)、物理验证工程师(DRC/LVS/ERC)、DFT 工程师(扫描链与测试逻辑)、项目负责人(进度、风险与交付物完整性)。角色之间通过约束文件、网表版本和签核报告进行交接,交接点的清晰程度直接决定项目返工率。
五、阶段入口与出口的判定示例
以逻辑综合阶段为例,其入口条件是:RTL 代码通过 SpyGlass 静态检查、SDC 约束完成时钟定义与 I/O 约束、工艺库版本确认。出口交付物包括:门级网表(.v)、综合后 SDC、面积/时序/功耗报告、Formality 形式验证通过记录。判定标准可量化为:WNS(最差负裕量)不低于 -0.05 ns(示例阈值,实际以项目签核标准为准)、TNS 在可接受范围、面积不超过预算的 105%。若未达标,需回到约束或 RTL 层面调整,而非直接进入布局阶段。
六、交付物完整性检查清单(示例)
| 阶段 | 关键交付物 | 判定依据 | 责任角色 |
|---|---|---|---|
| 逻辑综合 | 门级网表、综合SDC | Formality通过、WNS≥-0.05ns | 实现工程师 |
| 布局规划 | DEF、PG网表 | 电源网络IR drop初评通过 | 实现工程师 |
| 布线与CTS | 布线DEF、SPEF | DRC初检无短路、时钟偏差达标 | 实现工程师 |
| 时序签核 | PrimeTime报告、SDF | WNS/TNS满足签核标准 | 时序签核工程师 |
| 物理验证 | GDSII、DRC/LVS报告 | DRC/LVS clean | 物理验证工程师 |
这张清单的价值在于把"项目是否可推进"从主观判断变成可核对的事实。实际项目中,清单字段会随工艺节点、项目类型(SoC、IP、ASIC)和签核标准调整,但"交付物—判定依据—责任角色"三要素始终保留。
七、体系运行中的常见风险
第一,约束与实现脱节:SDC 中的时钟定义与实际时钟树结构不一致,导致签核阶段出现大量虚假违例。第二,交付物版本混乱:网表、SDC、SPEF 版本不匹配,签核结果不可复现。第三,角色交接模糊:综合工程师与签核工程师对"时序达标"的理解不同,返工成本高。第四,工具版本漂移:不同阶段使用不同版本的库或工具,结果不可比。这些风险的共同解法是:版本受控、脚本固化、签核标准前置定义、交接点书面确认。