1. 数字实现自动化与交付工程导论

数字芯片从 RTL 到可制造的 GDSII,中间要经过综合、布局、时钟树综合、布线、时序与物理验证等一长串步骤。当工艺进入 28nm 以下,一次完整的实现迭代往往需要数十小时机时、上百个工具调用和上千个约束文件。如果仍靠工程师手工敲命令、手工改脚本、手工比对报告,项目就会陷入"改一处、跑一天、错一片"的循环。Synopsys 数字实现工具链与围绕它构建的自动化、交付工程体系,正是为解决这一规模问题而存在的。

一、Synopsys 数字实现工具链概览

Synopsys 的数字实现主干通常被称为 Fusion Compiler(FC)流程,它把过去分散在 Design Compiler、IC Compiler、PrimeTime、StarRC 等工具中的能力整合到统一的数据模型与引擎之上。理解这条链,关键是理解"数据在什么阶段以什么形态存在"。

前端阶段以 RTL 和 SDC 为输入,Design Compiler 或 Fusion Compiler 的 synthesis 步骤完成逻辑映射,输出门级网表与初步时序结果。进入物理实现后,工具依次完成 floorplan(宏单元摆放、电源规划、IO 布局)、placement(标准单元布局)、CTS(时钟树综合)、routing(全局与详细布线)。每一步都会产生新的数据库形态:从 .ddc 到 Milkyway/NDM 库,再到 DEF、SPEF、网表与最终 GDSII。时序签核由 PrimeTime 完成,物理验证交给 IC Validator,寄生参数提取由 StarRC 承担。这些工具并非孤立,而是通过统一的库(.db/.ndm)、统一的约束(SDC)和统一的报告格式(.rpt/.log)串联成一条可追溯的链。

对自动化工程师而言,这条链最重要的特征是:每个阶段都有明确的输入、输出和可判定的成功条件。综合看是否映射成功、有无未约束路径;布局看拥塞与合法化;CTS 看 skew 与 insertion delay;布线看 DRC 与天线违例。只要这些条件能被脚本读取和判断,整条链就可以被自动化驱动。

Synopsys 数字实现主干与自动化控制点 RTL + SDC 设计输入 Synthesis DC / FC Floorplan 宏单元/电源 Place + CTS 布局/时钟树 Route 全局/详细布线 PrimeTime 时序签核 setup / hold / SI StarRC 寄生提取 SPEF / 耦合电容 IC Validator 物理验证 DRC / LVS / ANT 自动化与交付工程控制层 Make / Tcl 驱动 参数化流程编排 版本与依赖管理 约束与库管理 SDC 模板化 .db/.ndm 版本锁定 报告解析与判定 QoR 指标提取 PASS/FAIL 门禁 回归与签核 多配置并行 结果归档与追溯 交付物 GDSII 网表/SPEF

二、自动化与交付工程的定义

数字实现自动化,指的是把实现流程中重复、可判定、有明确输入输出的环节,用脚本、Makefile、Tcl 或流程框架固化下来,使一次迭代可以由一条命令或一个任务触发,而不依赖工程师的记忆和手工操作。它的核心不是"写脚本",而是把工程知识编码成可重复执行的规则。

交付工程则更进一步,关注的是"交付什么、以什么质量交付、如何证明交付是可信的"。它包含交付物清单的定义、签核标准的量化、版本与配置的管理、结果的可追溯性,以及从 RTL 冻结到 GDSII 释放的完整证据链。自动化解决"跑得动、跑得快",交付工程解决"跑得对、可复现、可审计"。

两者结合,形成数字实现工程师的核心能力:既能写出稳定运行的流程脚本,又能定义并守住质量门禁。例如,一个典型的自动化交付流程会规定:综合后必须检查 unconstrained path 数量为 0;CTS 后 skew 必须小于时钟周期的 5%;布线后 DRC 违例必须为 0 且 WNS 不低于 -50ps。这些数字不是拍脑袋,而是从项目签核标准反推出来的门禁条件。

关键区分:自动化是手段,交付工程是目标。只做自动化不做交付工程,会得到"跑得很快但没人敢签核"的流程;只做交付工程不做自动化,会得到"标准很严但每次都要手工执行"的流程。二者必须同时建设。

三、课程目标与学习路径

本课程的目标是让读者具备独立搭建并维护一条 Synopsys 数字实现自动化交付流程的能力。具体包括:读懂 Fusion Compiler 各阶段的关键报告与指标;用 Tcl 和 Makefile 组织参数化流程;建立约束、库、脚本的版本管理机制;设计 QoR 门禁与回归策略;最终能够把一条从 RTL 到 GDSII 的流程交付给团队使用。

学习路径按"工具认知 → 脚本能力 → 流程编排 → 质量门禁 → 交付体系"逐层推进。前几章先建立对工具链和数据形态的整体认识,随后进入 Tcl 脚本与报告解析的实操,再逐步过渡到多配置回归、签核标准量化和交付物管理。每一章都会围绕真实工程对象展开,例如一个具体的 SDC 约束文件、一份 CTS 后的时序报告、一次 DRC 违例的分类统计。

阶段核心问题典型产出
工具认知数据在哪个阶段以什么形态存在流程阶段图、报告清单
脚本能力如何读取报告并做出判断Tcl 解析脚本、QoR 提取器
流程编排如何用一条命令驱动全流程Makefile、参数化配置
质量门禁什么条件下允许进入下一阶段门禁规则表、回归报告
交付体系如何证明交付可信且可复现交付物清单、版本记录
学习建议:不要等到"学完所有工具"再动手。从第一章开始,就尝试把身边一条手工命令改写成带参数检查的 Tcl 脚本,并记录它的输入、输出和失败条件。自动化和交付工程的能力,是在一次次把手工操作变成可重复规则的过程中积累起来的。