📑 目录
-
1. 🎯 本质:受约束搜索 -
2. 🏛️ 四个角色与闭环 -
3. 🔒 约束层:锁死什么 -
4. 🪜 动作层:脚本优先,RTL 其次 -
5. ⚖️ 裁决层:可行性 + 评分 -
6. 🧪 案例:PicoRV32 @ sky130hd -
7. 🔭 案例之后:结论能迁移到先进工艺吗 -
8. 🧱 边界与护栏 -
9. 🎬 总结
1. 🎯 本质:受约束搜索
很多人一听到"AI 优化芯片后端",第一反应是 "让 LLM 直接改 RTL"。这是 方向性误解。
真正的本质是:
在锁死的物理约束下,搜索一组"工具脚本参数 + RTL 结构"的组合,使 PPA 评分最优且功能等价。
它更像 编译器自动调优,不是 Copilot 补代码:
-
• 🎲 搜索空间有限:脚本参数白名单 + 已知 RTL 变换模式,不是自由创作。 -
• 🧱 约束硬如铁:SDC、平台配置 只读,放松约束 = 作弊。 -
• 🛡️ 每步必验证:RTL 改动 必过 SEC,脚本改动 必可回滚。
EDA 工具只是裁判,不改 RTL。真正干活的是 "Agent 提建议 + 自动验证 + 人工拍板" 三段式。⚙️
本文以 OpenROAD 为例,因为 完全开源、脚本透明、复现成本最低;但框架、约束、评分、护栏的 逻辑换到 Innovus、ICC2 同样适用。
2. 🏛️ 四个角色与闭环
-
• 🧮 裁判:EDA 工具链。只跑流程、出报告,不参与决策,只接受只读输入。 -
• 🧠 决策者:LLM / RL / 贝叶斯优化。读报告、定位瓶颈、提候选,只输出 diff。 -
• ✍️ 执行者:调 git/脚本。把 diff 落地成实际改动,记录 diff + 哈希 以便回滚。 -
• 🛡️ 守门员:仿真 + SEC。验证功能等价,一票否决。
闭环顺序(按验证成本排):
-
1. 🔍 先看 baseline 能不能追 → 追不上就回架构层,别白跑。 -
2. 🟢 先试脚本层 → SEC 必过,迭代最快。 -
3. 🟡 脚本榨干再动 RTL → 成本高一个量级。 -
4. 🛑 硬门槛不过直接回滚 → 不做无效评估。
3. 🔒 约束层:锁死什么
没有约束锁死,Agent 会 放松 SDC 刷分,PPA 好看但芯片不能用。这一层必须 从机制上 保证:Agent 只能优化,不能作弊。
🚫 只读区(红线)
-
• ⏰ SDC:时钟、IO 延迟、例外路径。Agent 一改就 等于改考题。 -
• 📐 平台配置:利用率、布线层、PDK corner。一改就 绕过真实约束。 -
• 📊 报告解析器:必须独立,防 伪造报告 或 读 stale 报告。
机制:SHA256 哈希校验,每次评估前核对。私改 直接判无效。🔐
✅ 放开区(可审计)
-
• 🧱 综合脚本:abc 策略、retiming 开关。 -
• 📐 布局脚本:密度、 set_wire_rc、repair 阈值。 -
• 🌳 CTS 脚本:buffer list、sink clustering。 -
• 🧵 布线脚本:布线层、拥塞参数。 -
• ⚙️ Resizer 脚本:setup/hold 修复、margin。 -
• 🧩 填充脚本:filler、metal fill 密度。
商业链对应 DC/Genus compile 选项、Innovus/ICC2 place/CTS/route 参数,逻辑完全一样:不动逻辑、只调工具行为。
机制:版本化 + diff + 哈希 + 可回滚,存入 script_elite_pool。🏷️
🧑⚖️ 约束变更路径
Agent 只能 建议 放宽 SDC → 人工审批队列 → 批准后才更新只读 SDC 并重算哈希。Agent 不能自己拍板。🚦
4. 🪜 动作层:脚本优先,RTL 其次
-
• 🟢 脚本层(优先):只改 工具参数,不动逻辑。SEC 必过,可跳过仿真,迭代最快,一轮 20 分钟2 小时,1030 轮收敛。性价比最高。 -
• 🟡 RTL 层(主力):插流水、树平衡、MUX 重排。会改逻辑,必须过 仿真 + SEC,成本高一个量级。结构性改动必须人工 review。 -
• 🟠 微架构层(高阶):Booth、CSA、存储结构。影响 根本 trade-off,必须 人工深度 review,不能全自动。 -
• 🔴 工具层(研究级):改 EDA 源码启发式(AuDoPEDA 路线)。风险最高,仅限 小规模基准。
为什么脚本优先:
-
• 🚀 SEC 必过:不动逻辑,等价性自动成立。 -
• ⚡ 迭代最快:跳过仿真 + SEC,单轮 缩短一半以上。 -
• 🔁 回滚容易:diff + 哈希,随时 revert。 -
• 💰 成本最低:远低于 RTL 层。
先榨干脚本,再动 RTL。很多团队 一上来就改 RTL,反而错过脚本层 低成本高收益 的机会。💡
5. ⚖️ 裁决层:可行性 + 评分
裁决层回答两个 必须分开 的问题:能不能用(可行性)和 好不好(评分)。
5.1 🎯 目标量化
-
• ✅ WNS:硬门槛, -
• ✅ TNS:硬门槛, -
• 🧹 DRC:硬门槛, -
• 🚦 overflow:硬门槛, -
• ⚡ 功耗:硬门槛, -
• 📉 面积:软目标, -
• 🧵 线长:软目标,
硬门槛是生死线,软目标是优化方向。
5.2 🚧 可行性逐条展开
门槛 1:建立时间
最差路径的时序余量。 意味着 所有路径满足建立时间,否则 芯片跑不到目标频率。
门槛 2:总负 slack
所有违例路径 slack 之和。即使 WNS 刚好 0,TNS 仍可能为负,两条都要过。
门槛 3:DRC 清洁
版图不符合工艺规则,芯片无法制造。物理可制造性硬底线。
门槛 4:布线无溢出
布线资源不足,某些网络无法布通。物理可实现性硬底线。
门槛 5:功耗预算
超过预算 芯片过热或电池不够。系统级约束。
门槛 6:面积上限
超过上限 放不进封装或成本超标。成本约束。
综合判定:
六条 全部通过 才有资格评分。好处是失败原因可精确定位—— 不过就修 DRC, 不过就修时序,而不是笼统的"不可行"。🚧
5.3 📐 归一化与评分
表示 相对 baseline 的变化率。正数变差,负数变好。
-
• :时序权重,前端高后端低。 -
• :面积权重,成本敏感设计高。 -
• :功耗权重,移动/边缘设计高。 -
• :线长权重,拥塞敏感设计高。 -
• :面积涨幅超 10% 时加固定惩罚,防 无节制换面积。
权重由人设定,不能由 Agent 自己调。⚖️
5.4 🧮 决策规则
-
• ❌ 不可行(任一门槛不过)→ 直接回滚,不进精英池。 -
• ✅ 可行且分数更优 → 保留,更新基线,存入精英池。 -
• ⚠️ 可行但分数未优 → 回滚。
精英池 分 脚本池 和 RTL 池,下轮可从池里选起点,避免每次从零开始。🎯
6. 🧪 案例:PicoRV32 @ sky130hd
目标:PicoRV32 在 sky130hd 上 200 MHz 闭合,面积不增。
背景:PicoRV32 在 sky130 上有 硬时序边界——200 MHz 可闭合,222 MHz 全配置失败(最佳 WNS -0.88 ns)。这个边界 不是 Agent 能突破的,必须 预检拦住。
6.1 🔧 约束与目标
只读约束:
-
• ⏰ SDC: create_clock -period 5.0(200 MHz) -
• 🧱 布线层:met1–met5 -
• 📏 利用率: -
• 🧩 密度:0.60
PPA 目标:WNS/TNS/DRC/overflow/功耗为 硬门槛,面积/线长为 软目标。
6.2 ✅ 可行性预检
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
结论:200 MHz 可行,开跑;222 MHz 不可行,回架构层。
💡 价值在于 避免在不可达目标上白跑几十轮。🎯
6.3 🔍 定位瓶颈
报告显示违例集中在 寄存器堆 → ALU → 写回:
-
• 🎯 关键路径: regfile.rdata → alu_result -
• 📚 ALU 内部 加法/移位链 过长 -
• 🌿 alu_op译码 高扇出
Agent 把 关键路径级反馈 映射回 RTL 区域和脚本参数,而不是只看总 WNS。
6.4 ✏️ 四个候选(脚本优先)
-
• 🟢 T1(Tcl/Resizer):调 repair_design阈值,更激进 upsizing。SEC 必过。 -
• 🟢 T2(Tcl/CTS):增加 -sink_clustering_size,降时钟扇出。SEC 必过。 -
• 🟡 C1(RTL):ALU 加法链 插一级流水。 -
• 🟠 C2(RTL): alu_op译码 打拍。
执行顺序:先跑 T1、T2,满足硬门槛则不动 RTL;否则再跑 C1、C2。
6.5 🚦 守门员
-
• ✅ T1、T2:脚本改动,SEC 自动通过。 -
• ✅ C1:SEC 通过,仿真通过。 -
• ❌ C2:SEC 未通过,直接回滚。
SEC 不过的候选,PPA 再好也没意义。Dr.RTL 的 SEC 通过率约 86%,说明 相当比例 RTL 改写会被拦下。🛡️
6.6 ⚖️ 决策
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
| T2 | +0.03 | +0.00 |
|
保留 |
T2 已满足目标,第一轮即停止,不动 RTL。
💡 脚本优先的价值:2% 面积换 WNS 转正,SEC 必过,回滚容易。
7. 🔭 案例之后:结论能迁移到先进工艺吗
案例跑完,读者最自然的疑问是:"sky130 上的 A/B/C/D 对比,能指导 7nm 设计吗?"
答案是 有条件地可以。核心结论:
OpenROAD 基于一般工艺库的估算,价值在于判断"相对排序",而非"绝对数值";架构决策和相对结论可迁移,具体 PPA 数字不能直接套用。
7.1 📊 排序比绝对值重要
OpenROAD 在先进节点的核心定位是 早期 DSE 引擎,不是签核工具。一项对 100+ 工业用户的访谈指出,一个显著趋势是把它作为 无许可证、高度可并行 的引擎,用于 12nm 以下早期 DSE——在投入昂贵商业工具和 PDK 之前,云端并行数千次实验,筛选微架构方案。
核心逻辑:相对排序的相关性,强于绝对数值的相关性。OpenROAD 官方明确说明,用 7nm ASAP7 预测性 PDK 的结果,在排序上与商业流程高度相关,即使绝对 PPA 有差异。
这意味着:sky130 上 方案 C 优于方案 B,在先进节点上 优劣顺序大概率依然成立,尽管 具体差值会变。已有研究在 2nm GAAFET 上用 OpenROAD 做背面时钟网格 DSE,并通过 晶体管级 SPICE 验证了可靠性。覆盖 130nm 到 2nm,目的正是 让架构权衡在成本最低阶段可见。
7.2 🧱 RTL 本身可以迁移
要区分 "RTL 代码" 和 "基于 sky130 的估算结论"。
RTL 代码本身:可以,而且应当如此。 RTL 描述的是 逻辑功能和微架构,与工艺无关。用 sky130 验证功能正确性、检查时序逻辑合理性,完全有效,是后续任何工艺实现的基础。
7.3 📈 趋势可迁移,数值不可迁移
趋势可迁移:先进节点 互连延迟占比更高,sky130 上已暴露的 高扇出全局控制网络 问题,在先进节点 只会更严重。你发现的 "全局控制开销大" 这个 结构性事实,在先进节点 依然成立,甚至更关键。
数值不可迁移:sky130 的 "面积 +20%、功耗 +35%" 是 130nm 平面工艺产物。先进节点的 单元特性、RC、电压(ASAP7 0.7V vs sky130 1.8V)完全不同,缩放非线性。无法用 sky130 差值预测 7nm 差值。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.4 ⚠️ 两个前提
"排序可迁移" 不是无条件成立:
-
• 工艺库代表性:预测性 PDK 与目标商业 PDK 的 单元比例、RC 趋势 不能差太远。 -
• 设计类型:互连主导(全局控制、NoC)迁移性强;器件主导(模拟、定制单元)迁移性弱。
更严谨的表述:
互连主导问题上,sky130 排序是先进节点的保守"下限估计";器件主导问题上,排序也可能翻转。
7.5 💎 对 RTL 设计的三条指导
-
• 🎯 全局 mode解码是主要开销 → 避免高扇出全局组合控制。正确做法是 "顶层解码 + 寄存后本地分发",或 编译期固定。跨工艺通用。 -
• ⚡ ICG 的 Clock 功耗代价与占空比相关 → clock gating 收益 高度依赖空闲比例,并引入 固定时钟树开销。架构级权衡,先进节点同样需要评估,盈亏平衡点会变。 -
• 🧱 保守"下限"估计:sky130 已显现的问题(全局控制时序违例),在互连更贵的先进节点 只会更难。sky130 上看似"免费"的优化(如 C−B 的 MUX),先进节点 相对布线代价可能上升,但 逻辑代价很小 这一基本判断不变。
架构选择和设计原则 完全可作为先进工艺起点。DSE 帮你 以极低成本,提前排除物理上注定不可行的架构方向。🌟
8. 🧱 边界与护栏
四条硬护栏:
-
• 🔁 每次改动过 编译 → lint → 仿真 → SEC → PPA 回归。 -
• ⏪ revert-on-regression:没改善或硬门槛不过,立即回滚。 -
• 🧑⚖️ 结构性重构人工 review:插流水、改微架构、改 CTS buffer list。 -
• 🔒 SDC 锁死 + 哈希校验:私改 直接判无效。
脚本层优势:SEC 必过,可跳过仿真,迭代最快。但 CTS buffer list 变更、布线层调整 仍需 人工 review。
护栏比模型能力更重要。💪
9. 🎬 总结
AI Agent 优化芯片后端,不是"AI 写代码",是"在锁死约束下,搜索脚本参数 + RTL 结构的组合"。
正确顺序:约束先锁死 → 目标先量化 → 可行性先预检 → 脚本优先 → RTL 其次 → 每步验证 → 护栏兜底。
脚本参数是 Agent 最该先动的地方——不动逻辑、SEC 必过、回滚容易;RTL 是主力但昂贵的第二步。
跨工艺迁移的正确姿势:架构原则可迁移,排序大概率可迁移,绝对数字不可迁移;互连主导问题尤其可迁移。sky130 + OpenROAD 的价值,是 在成本最低的阶段,排除物理上注定不可行的架构方向。
OpenROAD 是最好的教学对象——完全开源、脚本透明、报告结构化、复现成本最低;但 约束、评分、护栏、迁移性的逻辑 换到 Innovus、ICC2、Fusion Compiler 同样适用。
别指望它像 Copilot 补代码那样随手改——这是带 物理后果、带 流片风险 的闭环,护栏比模型能力更重要。🔒📐🚦

