体系结构论文(九十):Automated Multi-Agent Workflows for RTL Design

Automated Multi-Agent Workflows for RTL Design

  • 解决什么问题

    现有 RTL 生成大致有两条路:

    • 一条是对 LLM 做 RTL/HDL 专项微调,但成本高,而且对邻近任务的泛化未必好;
    • 另一条是直接用强推理模型,但推理开销大。

    作者认为,通用的 agent workflow 自动搜索方法虽然在 QA、数学、通用 coding 上有效,但未必直接适用于 RTL 设计,因为 RTL 任务更依赖 EDA 流程、编译/综合约束和形式化检查。于是他们提出 VeriMaAS,把"EDA 工具反馈"接进 agent workflow 里面。

  • 核心方法是什么

    VeriMaAS 会针对一个 RTL 任务,自适应地从一组 reasoning operators 中选择工作流步骤。每一轮生成出的 Verilog 候选都会送去跑 YosysOpenSTA 。如果很多候选在编译、验证、面积、运行时、功耗分析上失败,系统就判断这个任务更难,需要升级到更复杂的 operator;否则就提前停止,返回当前结果。也就是说,它的 controller 不是靠纯语言模型自我反思,而是靠真实 EDA 反馈来驱动 workflow 选择。

  • 控制器怎么训练

    这篇文章没有做那种重型的 end-to-end 微调,而是只学习一个级联控制器的阈值

    它把任务按 stages 逐步升级:

    • I/O → CoT → ReAct → Self-Refine → Debate 【I/O 最简单,CoT 是显式分步思考,ReAct 是边想边做,Self-Refine 是自我修改,Debate 是多角色辩论。】

    作者从 VeriThoughts 训练集里随机采样 500 个样本,统计每个阶段 20 个候选中有多少个在 Yosys/OpenSTA 里失败,再根据失败比例的分位数来确定各阶段阈值。优化目标同时考虑:

    • 效用:pass@k
    • 成本:平均 token 数

    所以本质上它是在做一个低成本的 workflow controller tuning,而不是大模型再训练。文章强调,这只需要"几百条样本",比完整微调所需的上万条监督数据少一个数量级。

  • 效果怎么样

    VeriThoughtsVerilogEval 两个 benchmark 上,VeriMaAS 相比单一 prompting 和已有 fine-tuned RTL 模型都有提升:

    • 论文摘要里说,相对 fine-tuned baseline,pass@k 提升约 5--7%
    • 结果部分又指出,在开源模型上,pass@1 相对已有 fine-tuned baseline 可提升到 7--12%
  • 和单一 CoT / ReAct / Self-Refine 比有什么不同

    文章专门比较了 VeriMaAS 和单一 prompting 策略。结论是:

    • VeriMaAS 的提升通常比单一 CoT 更稳
    • token 开销虽然有增加,但通常低于 Self-Refine 这种迭代式方法
    • 对强闭源模型,收益变小,但仍然有稳定增益。
  • 额外亮点:PPA-aware 优化

    由于它不是把能力固化进模型权重里,所以 controller 可以很容易换目标。作者做了一个 proof-of-concept:把优化目标从 token cost 改成 Yosys 报告的 area,尝试让生成结果更偏向 PPA 优化。

    结果显示,在一些子集上:

    • 面积、延迟能明显下降;
    • 最大面积下降可到 28.79%
    • 但代价是有时 功耗略增 ,或者 pass@10 略降

一、INTRO

背景:Agentic AI 很有潜力,但 RTL 领域很特殊

文章开头先说,agentic AI workflow(智能体工作流) 最近在计算机系统设计和优化里很有前景。

但问题是,RTL/HDL 代码生成 这个领域和普通编程不一样:

  • 在线可用的 HDL 数据少;
  • 很多 EDA 资源和设计流程是专有的;
  • 因此很难像普通代码那样,靠海量数据把模型训得很好。

所以现有方法往往会陷入几种代价很高的路线:

  • 任务专项微调(fine-tuning)
  • 更强模型带来的高推理成本
  • 人工手工设计 agent orchestration(智能体编排流程)

文章提出了什么:VeriMaAS

作者提出了一个框架,叫 VeriMaAS

它是一个 multi-agent framework,目标是:

  • 自动组合适合 RTL code generation 的 agent workflow
  • 而不是靠人手工指定"先 CoT、再 self-refine、再 debate"这种固定流程

也就是说,它想做的是:让系统自己决定该用什么推理策略、何时升级工作流复杂度。

RTL 生成已经是一个重要方向

文中提到,近年来已经出现了很多 RTL generation / hardware design 相关方法和 benchmark,用于:

  • RTL 代码生成
  • EDA tool scripting
  • 加速器设计
  • HDL 调试
  • 后综合指标评估

现有两类主流方法各有缺点

第一类:fine-tuning 路线

就是把 LLM 在 RTL/HDL 数据上专门微调。

优点:

  • 任务适配性强
  • 性能通常不错

缺点:

  • 成本高,需要较多 GPU 预算
  • 对相邻 HDL 任务未必泛化好

也就是说,这类方法像是"为某类 RTL 题专门补课",

补完后做这类题很强,但换题型不一定稳。


第二类:纯推理模型路线

比如更强的 reasoning model,不去微调,而靠推理能力直接做 RTL。

优点:

  • 不需要额外训练

缺点:

  • 把成本从训练阶段转移到了推理阶段
  • 推理可能很长、很贵

这条路的问题不是"省了",而是"换地方花钱"。


作者为什么想到 multi-agent workflow

作者说,他们受到自动化 multi-agent workflow generation 的启发。

像一些已有工作已经证明:

  • 相比单一 prompting
  • 自动编排多个 agent/operator
  • 往往能更好平衡性能和成本

但这些方法主要用在:

  • QA
  • 数学题
  • 通用 coding

而 RTL 设计属于更强领域约束的任务,不能直接照搬。

为什么不能照搬?

因为在通用 QA 里,像 Debate 这种 prompting operator 可能就很好用;

但在 RTL 设计中,真正决定好坏的不只是"推理过程看起来合理",而是:

  • 代码能不能通过验证
  • 综合能不能成功
  • 最终电路指标好不好

所以文章想表达的是:

通用 multi-agent 方法有启发,但如果不接入 EDA/HDL 反馈,就不够懂 RTL。


key insight

什么叫"integrate HDL verification checks directly into workflow generation process"

就是把 HDL/EDA 工具的结果,直接用来控制工作流,而不是只在最后做个评测。

更具体地说,系统会把这些信息喂给 workflow 决策过程:

  • design logs
  • error messages
  • synthesis tool results

然后根据这些反馈来决定:

  • 当前生成结果够不够好
  • 要不要继续 refinement
  • 要不要升级到更复杂的 reasoning strategy
  • 应该朝哪个目标继续优化

所以它不是"先生成完,再离线测一下",而是边生成,边根据工具反馈调 agent workflow。


为什么这招有效

因为 RTL 的"对错"高度依赖工具链。

比如一段 Verilog:

  • 语言上看着没毛病
  • 注释也很合理
  • LLM 自己也觉得逻辑通顺

但实际上可能:

  • 综合报错
  • 有 latch
  • 时序不满足
  • 面积过大
  • verification fail

所以如果只靠自然语言层面的 self-reflection,模型可能会"自我感觉良好";

而接入 HDL verification feedback 后,系统拿到的是硬约束下的真实反馈

这相当于给 agent workflow 接上了"物理世界的裁判"。


它不只是为了功能正确,还能支持不同设计目标

文中提到,这样做后,agentic reasoning 可以面向不同目标展开,例如:

  • PPA-aware prompting
    • 功耗 power
    • 性能 performance
    • 面积 area

为什么说监督成本低

  • 性能可达到甚至超过已有方法
  • 最多提升到 7% pass@k
  • 但 controller tuning 只需要几百个样本

这说明它的主要优化对象不是大模型本身,而是工作流控制器

所以训练压力会比 full fine-tuning 小很多。

二、方法

图 1 想表达的是:

  • 简单任务:不需要复杂 agent,可能用 I/O 或 CoT 就够了;
  • 中等任务:可能要经过 1~2 轮 operator 升级;
  • 困难任务:需要更复杂的多步推理,比如 Self-Refine、ReAct 甚至更多 operator。

也就是说,不是所有 RTL 题都一上来就用最重的 workflow ,而是按难度逐步升级

第一行:简单任务

例子是 Design 4-input AND gate

这个任务很简单,所以:

  • 初始 operator 生成的一批候选,大多数都能通过;
  • controller 看日志后判断"已经够好了";
  • 很快就输出结果,不再升级 workflow。

这体现的是 easy task early stop

第二行:中等任务

例子是 Design 4-bit binary adder

这个任务比与门复杂:

  • 第一轮简单 operator 生成后,有一些失败;
  • controller 认为还不够,进入下一层 operator;
  • 再生成一批候选后,通过率上来了;
  • 然后输出结果。

这体现的是 适度升级 reasoning complexity

第三行:困难任务

例子是 PWM signal generator

这种任务更复杂,通常需要:

  • 第一轮失败很多;
  • 第二轮也不够;
  • controller 继续升级到更强 operator;
  • 经过多轮 refinement 才得到更高质量候选。

这体现的是 hard task needs deeper workflow


图中符号怎么理解

1)彩色圆点
  • 绿色:I/O
  • 棕色:CoT
  • 蓝色:Self-Refine
  • 紫色:ReAct
  • 还有其他

这些圆点表示:

当前阶段从某个 operator 生成了一批候选样本。


2)YosysHQ 标志

表示生成的候选会送到综合/验证流程中去检查。

文中后面说明具体会经过:

  • Yosys:综合、面积估计、基础检查
  • OpenSTA:时序、功耗分析

3)Controller

这是系统核心。

它根据上一轮候选的日志和失败情况,决定:

  • 当前结果是不是已经够好;
  • 是否进入下一层更复杂的 operator;
  • 还是直接终止并返回现有候选。

所以 Controller 本质上是个workflow 决策模块


Methodology

具体流程

对一个 RTL task,VeriMaAS 会做三件事:

第一步:根据任务和难度采样 reasoning operators

也就是先决定当前阶段用什么 agent/operator。

第二步:执行候选 Verilog

把生成结果放进综合和验证流程里跑:

  • Yosys
  • OpenSTA
第三步:用日志和错误信息做反馈

把这些反馈拿回来,告诉 controller:

  • 下一步该不该继续;
  • 要不要换更复杂的 reasoning strategy;
  • 还是现在就终止。

作者定义一个解空间 O,表示所有可用的 agentic operators:

  • Zero-shot I/O
  • Chain-of-Thought (CoT)
  • ReAct
  • Self-Refine
  • Debate

也就是说,系统可选的"动作库"就是这几种 operator。


多智能体解是什么

作者把一个多智能体解写成:

O={Oi∈O∣i=1,...,K}

它本质上就是说:一个 workflow 可以看成若干 operator 的组合序列。

例如:

1)只用 CoT

那就是单步 workflow:

O={OCoT}

2)先 CoT 再 Self-Refine

那就是两步 workflow:

O={OCoT,OSelfRefine}

所以作者是在把各种 prompting / agent 方法统一成一个"operator sequence"的框架。


它的目标是什么

给定用户 query,它的目标是找到一个 operator 组合,使得生成的 RTL 最好。

这个"最好"主要通过 pass@k 衡量。


pass@k 在这里是什么意思

  • 系统不是只生成 1 个 Verilog 候选,而是生成一组;
  • 看这组候选里有没有通过验证/综合的正确结果;
  • 如果前 k 个候选里至少有一个对,就算成功。

文中说通常设置:

  • E=20 samples
  • ∣O∣=K=20

也就是每个 query 会生成 20 个候选,再看通过情况。


Agentic Controller

输入
  • query q
  • 当前可选 operator 集合 O
  • 当前解生成出的答案集合 A_{O_{current}}
输出
  • 一个更新后的解 O_{new}

翻成白话就是:

controller 看当前已经试过的 operator 和生成结果,然后决定下一步 workflow 怎么改。

operator 按复杂度排成一个逐级升级的链条:


controller 如何决定要不要升级

它会在每一层计算一个分数 sc,表示:

当前阶段是否值得继续升级。

如果:

  • sc<τc:说明当前阶段已经够好,停止,返回当前解;
  • 否则:说明还不够,继续加入下一层 operator。

其中:

  • τc 是该阶段的阈值;
  • 整组阈值记为 T={τ1,τ2,...,τC}

所以这个控制器本质上就是:

用一组 stage-specific threshold 控制 workflow 深度。

作者的关键观察

formal verification 和 synthesis 的反馈,能够很好反映任务复杂度。

直觉上:

  • 如果最初简单 operator 生成的一批候选,大多都过不了;
  • 那么这个任务大概率更复杂;
  • 就应该用更高级的 reasoning operator。

所以这里的 "难度" 不是人工标注的,

而是通过 候选失败率 间接测出来的。

每一阶段具体怎么做

在 cascade 的每个 stage:

  • 生成 K=20个 Verilog candidates;
  • 跑 Yosys 做综合和面积估计;
  • 跑 OpenSTA 做时序和功耗分析;
  • 统计失败比例。

作者定义:

sc=Score(AOc)

它表示这一阶段候选中,因以下问题失败的设计所占比例:

  • verification error
  • synthesis(area) error
  • runtime error
  • power analysis error

也就是:

失败样本百分比 = 当前阶段难度/不足程度的指标。

  • sc越大:失败越多,说明当前 operator 不够用,要升级;
  • sc越小:通过越多,说明当前阶段已经足够,不需要更复杂 workflow。

所以它并不是"信心分数越高越好"那种常见设定,

这里更像是一个 failure-driven escalation score

Problem formulation

这一段是在把 controller tuning 写成优化问题。

它要学什么

它不是训练整个大模型,

而是学习那组阈值:

T={τ1,...,τC}

也就是说,真正待学习的是:

每一层 operator 在什么失败比例下应该继续升级。

优化目标是什么

公式本质上是在最大化:

效用−λ×成本

其中:

效用 U(⋅)

作者定义为 pass@k

成本 C(⋅)

定义为 平均 token 数

所以它追求的是:

在尽量少用 token 的前提下,让 pass@k 尽可能高。

λ 是权衡系数。

文中设为:

λ=1e−3

意思是:

  • 主要目标还是性能;
  • 但也不能完全不顾 token 成本。

训练数据

作者从 VeriThoughts training set 中随机采样:

  • 500 个 datapoints

对每个 datapoint 做什么

对于每个 query:

  • 生成 20 个 candidates;
  • 计算 pass@k 和 token cost;
  • 看有多少候选无法通过 Yosys / OpenSTA 检查。

也就是把每个样本都转换成:

  • 性能信息
  • 成本信息
  • 失败比例信息

阈值怎么定

作者把所有样本的 failure counts 聚合起来,然后取:

  • 20th percentile
  • 40th percentile
  • 60th percentile
  • 80th percentile

这些分位点对应五个 operator 阶段。

这个做法其实非常"轻量":

  • 不需要大规模梯度训练;
  • 更像是用统计分位数来设置 cascade threshold。

所以这篇文章的方法并不是复杂 RL controller 或神经控制器,

而是一个非常工程化、很实用的 threshold-based controller

三、实验

  • 两个 benchmark:VerilogEvalVeriThoughts
  • 指标:pass@1pass@10
  • 每题生成 20 个 samples
  • 工具链:Yosys 做验证与面积估计,OpenSTA 做时序和静态功耗分析
  • 综合环境:Skywater 130nm PDK

Main Results

  • VeriMaAS 在两个 benchmark 上都比强单 agent 方法更好
  • 也比已有的 fine-tuned RTL 模型更强
  • 对开源模型提升尤其明显
  • 不只是 pass@1 提高,pass@10 也经常提高

具体内容:

论文直接总结说:在开源 LLM 上,相比已有 fine-tuned baseline,pass@1 可以提升到 7--12% ;同时,VeriMaAS 还会提升 pass@10 ,说明它不只是把"最好那个答案"变好,还把整个候选池里有效设计的比例也提高了。这个点很重要,因为 RTL 生成通常不是只看单发命中,而是看能不能多生成一些可用候选。

Table 1

  • Instruct LLMs
  • Reasoning LRM/强推理模型
  • RTL fine-tuned models

几个你最该记住的数字

例 1:Qwen2.5-7B
  • VeriThoughts:44.90 → 56.62(pass@1,+11.72)
  • VerilogEval:22.92 → 29.10(pass@1,+6.18)

这说明:

对中等规模开源模型,VeriMaAS 的帮助非常明显,属于"比较硬的提升"。

例 2:Qwen3-14B
  • VeriThoughts:89.35 → 92.16(pass@1,+2.81)
  • VerilogEval:65.87 → 66.96(pass@1,+1.09)

这说明:

底座已经很强时,提升会变小,但依然稳定存在。

例 3:GPT-4o-mini
  • VeriThoughts:80.64 → 83.09
  • VerilogEval:50.26 → 52.05
  • pass@10 也分别提升到 92.8564.02

这说明:

即使是闭源强模型,agent workflow 也不是没用,而是还能继续挖出一点增益。

  • 开源模型收益大
  • 闭源强模型收益小但稳定
  • VeriMaAS 往往不输专门 RTL 微调模型

Table 2

这张表回答的是:VeriMaAS 的提升,究竟来自"多智能体编排"本身,还是随便换个 CoT / ReAct 就行?

对比对象

  • +CoT
  • +ReAct
  • +SelfRefine
  • +VeriMaAS

具体内容:

也就是在同一个 base model 上,把不同 prompting/operator 单独拿出来比较,看谁精度更高、token 成本更低。

对 o4-mini 的结果

  • VeriThoughts 上,+SelfRefine 的 pass@1 最好(94.31)
  • +VeriMaAS 的 pass@10 最好(98.17)
  • VerilogEval 上,+VeriMaAS 的 pass@1 / pass@10 都最好(76.15 / 84.50)

对 GPT-4o-mini 的结果

  • VeriThoughts:+VeriMaAS 的 pass@1 达到 83.09
  • VerilogEval:+VeriMaAS 的 pass@1 达到 52.05
  • 但 +ReAct 在部分指标上也很强,比如 VeriThoughts pass@10 达到 93.10

对 Qwen2.5-14B 的结果

  • VeriThoughts:+VeriMaAS 的 pass@10 = 95.78
  • VerilogEval:+SelfRefine 的 pass@10 = 63.55,略高于 VeriMaAS 的 62.48
  • 但 VeriMaAS 的 pass@1 = 41.47,明显高于 CoT / ReAct,也接近或优于其他方法

具体内容:

这说明 VeriMaAS 不是"所有格子都最优",但总体趋势是:
在 pass@1 和 pass@10 上都有稳定竞争力,而且更适合作为通用 workflow。

Token 成本

  • VeriMaAS 有额外 token 开销
  • 但开销是"中等"的
  • 通常接近 CoT,低于 Self-Refine 这种重迭代方法

比如:

  • o4-mini 上,VeriThoughts token 大约 1.21k
  • 而 SelfRefine 是 2.24k
  • CoT 只有 1.10k

Table 3

  • 不再把 cost 定义成 token cost
  • 而是改成 Yosys 报告的 area
  • 然后重新优化 controller
  • 看最终面积、功耗、延迟会不会更好

具体内容:

也就是说,VeriMaAS 的 controller 不是只能为"更高 pass@k"服务,它还可以换目标函数,去朝 PPA 优化。

作者也承认,不是所有 benchmark 题都有明显的 PPA 优化空间。

例如 NAND gate 这种很简单的题,RTL 怎么改都很难让下游 PPA 差很多。

所以他们用 o4 先挑出那些"RTL 改动更可能影响 PPA"的 top 20 design 子集,称为 PPA-Tiny

  • 面积最大下降 28.79%
  • 延迟很多情况下也下降
  • 功耗多数下降,但也有少数上升
  • pass@10 有时会轻微下降

具体内容:

比如在 VerilogEval-PPA-Tiny 上:

  • Qwen2.5-7B 的 ΔArea = 28.79%↓
  • ΔDelay 也达到 24.58%↓
  • 但 ΔPower 是 4.07%↑
相关推荐
一念春风2 小时前
DDColor (AI)
人工智能
Coovally AI模型快速验证2 小时前
YOLO训练可以偷懒?Anti-Forgetting Sampling跳过已学会的图片加速收敛
人工智能·yolo·视觉检测·异常检测·工业质检
图欧学习资源库2 小时前
人工智能领域、图欧科技、IMYAI智能助手2026年1月更新月报
人工智能·科技
掘金者阿豪2 小时前
2026年Java开发者生存指南:早晚被淘汰的“码农”,如何借AI逆风翻盘,薪资暴涨50%
人工智能·后端
羽翼安全2 小时前
2026年终端防拍屏软件Top 5深度评测:AI视觉感知技术构筑企业屏幕安全最后防线
人工智能
Henry-SAP2 小时前
SAP计划策略对SAP MRP运算影响业务解析
人工智能·sap·erp
nimadan122 小时前
豆包写小说软件2025推荐,专业写作助力灵感迸发
大数据·人工智能·python
CoderJia程序员甲2 小时前
GitHub 热榜项目 - 日榜(2026-04-06)
人工智能·ai·大模型·github·ai教程
财经三剑客2 小时前
吉利汽车3月销量233031辆,环比增长13%
大数据·人工智能·汽车