Verilog-Evolve: 反馈驱动与技能演进的Verilog生成

arXiv cs.CL 论文

摘要

Verilog-Evolve 是一个反馈驱动的框架,通过迭代优化大型语言模型生成的 Verilog 代码,利用功能仿真、综合和时序指标促进更优候选方案的选出,并跨任务演进可复用的修复技能。

arXiv:2605.26498v1 公告类型: 新提交 摘要:大型语言模型(LLM)在根据自然语言规范生成 Verilog 代码方面取得了进步,但大多数流水线仍将生成视为孤立的采样后接功能检查。这对于实际的 RTL 设计是不够的,因为实用的 Verilog 必须正确、可综合、关注时序,并且对下游硬件目标友好。我们提出了 Verilog-Evolve,一个反馈驱动的框架,用于版本化的 Verilog 优化和跨会话技能演进。对于每个任务,Verilog-Evolve 生成多样化的次要候选方案,通过功能仿真、Yosys 综合、ABC 时序代理以及可选的 GEMM 指标进行可执行反馈评估,然后在可配置评分下将最佳候选提升为主要版本。为了跨任务改进,系统维护模块化技能引导,根据任务和反馈上下文检索技能,并通过创建/改进/跳过决策和验证器报告从记录的历史中演进候选技能。在 VerilogEval 和混合精度 GEMM 任务上的实验表明,Verilog-Evolve 提高了最终功能成功率和提升稳定性,同时生成了在开源综合、时序代理和网表级 GEMM 目标下更下游友好的 RTL。验证门控的技能演进进一步提高了 GEMM 下游质量,并在评估的技能模式中取得了最佳下游分数和 GEMM 保留通过率。
查看原文
查看缓存全文

缓存时间: 2026/05/27 09:07

# Verilog-Evolve:反馈驱动与技能进化的Verilog生成
来源:https://arxiv.org/html/2605.26498  
Zehua Pei¹, Hui-Ling Zhen², Yu Zhang¹, Sinno Jialin Pan¹, Mingxuan Yuan², Bei Yu¹  
¹香港中文大学  
²华为技术有限公司

###### 摘要

大型语言模型(LLM)在从自然语言规约生成Verilog方面取得了进展,但大多数流程仍将生成视为孤立的采样加功能检查。这对于实际的RTL设计而言是不够的,因为有用的Verilog必须正确、可综合、关注时序,并且对下游硬件目标友好。我们提出 **Verilog-Evolve**,一个用于版本化Verilog精炼和跨会话技能进化的反馈驱动框架。对于每个任务,Verilog-Evolve 生成多样化的次要版本候选,利用来自功能仿真、Yosys综合、ABC时序代理和可选GEMM指标的可执行反馈进行评估,然后在可配置评分下将最佳候选提升为主版本。为跨任务改进,系统维护模块化技能指导,根据任务和反馈上下文检索技能,并通过创建/改进/跳过决策和验证器报告从记录的历史中进化候选技能。在 VerilogEval 和混合精度 GEMM 任务上的实验表明,Verilog-Evolve 在开放式综合、时序代理和网表级 GEMM 目标下,提高了最终功能成功率和晋升稳定性,同时生成了对下游更友好的 RTL。验证门控的技能进化进一步改善了 GEMM 下游质量,并在评估的技能模式中取得了最佳下游分数和 GEMM 保留测试通过率。

## 1. 引言

大型语言模型(LLM)在硬件描述语言(HDL)生成方面展现出强大潜力,包括从自然语言规约生成Verilog。然而,Verilog 并非普通软件:它是一种可执行的硬件蓝图,其可用性不仅取决于文本合理性,还取决于功能正确性、可综合性、时序行为以及下游硬件成本。随着LLM生成的RTL越来越接近电子设计自动化(EDA)工作流,一个仅仅看起来像Verilog、甚至通过有限功能测试的代码片段,对于实际硬件设计而言是不够的。

现有的基于LLM的Verilog生成方法主要优化一次性正确性或功能基准上的pass@k。这种设定隐藏了三个局限。第一,仅模型的生成和自我反思提供弱证据:LLM可能断言模块满足规约,但实现仍然无法通过编译或仿真。第二,仅功能正确性不能保证下游质量;两个功能等价的Verilog实现可能在综合后的单元数量、连线复杂度、时序代理以及适用于加速器内核方面存在显著差异。第三,大多数生成流程将每次尝试视为孤立的样本,缺乏版本化机制来记录工具结果、推广更好的候选者或跨任务积累可重用的修复知识。

近期工作提供了超越孤立功能采样的两个互补视角。RTL优化方法使用LLM引导的重写、符号推理、长上下文设计上下文和工具反馈,在综合或时序目标下改进现有RTL设计。另一方面,SkillClaw表明,可以通过聚合、创建/改进/跳过决策、验证队列和工作端重放,从跨会话轨迹中进化代理技能。这些方向共同激励了一个闭环生成过程:与工具形成闭环、对候选工件进行版本化、并将成功的轨迹转化为可重用技能。因此,我们将Verilog生成表述为一个反馈驱动的精炼问题,而非单次翻译问题。关键思想是在LLM生成和可执行反馈之间形成闭环:每个候选者由具体工具评估,按可配置目标评分,然后由更好的候选者修复或取代。与纯RTL优化不同,Verilog-Evolve从自然语言规约和所需模块声明开始,而非固定的黄金RTL。与通用技能进化系统不同,其记忆基于HDL特定证据,包括仿真结果、综合统计数据、时序代理、下游GEMM指标以及可选的SEC/PPA报告。

为实现这一表述,我们引入 **Verilog-Evolve**,一个将版本化搜索与技能指导相结合的反馈驱动框架,如图1所示。对于每个设计任务,Verilog-Evolve使用诸如直接Verilog生成、C桥接生成和反馈条件修复等生成策略,启动多个*次要版本*候选者。当时序或综合反馈可用时,每个次要版本还可以利用路径或模块级提示来多样化候选生成。每个候选者由可插拔的评估器池评估:基于iverilog/vvp的功能评估器、Yosys综合评估器、基于ABC的时序代理、用于混合精度GEMM风格目标的下游评估器,以及用于工业PPA评估的可选DC/SEC风格EDA适配器。评估器输出转化为多目标分数,使系统能够选择最佳次要版本候选,并在其改进当前基线且通过配置门控时将其提升为下一个*主版本*。这种主/次版本协议使Verilog-Evolve能够跨版本精炼候选者。

图1:Verilog-Evolve 概览。给定自然语言规约和模块头部,框架执行任务级的主/次版本化搜索:生成多个技能调节的次要RTL候选者,通过可执行工具反馈评估,在可配置目标下评分,并提升为下一个主版本。跨会话历史进一步蒸馏为验证器和验证门控的技能更新,这些更新被检索用于指导未来的生成和修复。

除了任务级搜索,Verilog-Evolve 维护一个持久化的技能记忆。可重用的指导存储为模块化技能文件,并根据任务描述、时序路径、多样性计划和技能注册历史进行检索。在一批运行之后,结构化历史被吸收为会话,按引用的技能聚合,并转换为*创建*、*改进*或*跳过*决策。候选技能由基于证据的验证器检查,可以立即发布,或排队等待外部重放验证工作端,然后进入持久化技能注册表。这种设计使系统既能在任务内通过反馈驱动的候选提升进行改进,也能跨任务通过验证门控的技能进化进行改进。

本文的主要贡献如下:

- 我们将规约到RTL的生成问题表述为**反馈驱动的精炼**问题,使用主/次循环来评估、修复和提升候选者。
- 我们开发了一个可插拔的评估器和可配置的评分框架,支持功能仿真、Yosys综合指标、ABC时序代理、下游感知的GEMM目标,以及可选的工业DC/SEC反馈。
- 我们引入了时序计划引导的候选多样化以及跨会话、验证门控的技能进化用于Verilog生成。
- 在 VerilogEval 和混合精度 GEMM 任务上的实验结果表明,Verilog-Evolve 在保持功能正确性的同时,改善了综合、时序代理和任务特定的硬件指标。

## 2. 相关工作

### 2.1. 基于LLM的Verilog生成与优化

大型语言模型在Verilog和RTL生成方面被越来越多地探索。为解决数据稀缺问题,先前的工作从开源设计中构建或增强RTL语料库。BetterV通过判别性指导将通用代码知识迁移到Verilog,而MG-Verilog和CodeV通过总结和转换RTL设计构建高质量指令数据。近期面向推理的工作如CodeV-R1通过强化学习进一步改进了生成。VerilogEval和RTLLM提供了功能正确性基准,后来由VerilogEval-V2扩展。基于代理的方法进一步分解生成和调试:AutoVCoder使用系统化提示;VerilogCoder引入了规划和波形追踪工具;MAGE采用多代理引擎。RTLFixer和HDLDebugger使用编译器或仿真器输出来修复生成的RTL,但主要针对语法有效性或功能正确性。LLM辅助的RTL优化通常从现有RTL设计开始,使用重写、符号指导、长上下文分析和时序驱动反馈来改进它。

### 2.2. 自进化代理与记忆

越来越多的工作研究代理如何从执行轨迹中改进未来行为。通用多代理框架如AutoGen、AutoAgents和LAMBDA协调多个LLM代理完成复杂任务,而其他范式使用自我评估、反思或提示进化来随时间适应行为。SkillClaw提供了一个具体的技能记忆设计:它聚合跨会话轨迹,按引用的技能分组证据,决定是创建、改进还是跳过技能更新,并通过重放验证工作端可选地门控发布。Verilog-Evolve 将此机制适配到RTL生成,将技能更新基于HDL工具结果而非对话轨迹。

与先前工作相比,Verilog-Evolve 将多个思想统一到一个从规约到RTL的框架中。与一次性生成器不同,它组织搜索为带自进化技能的版本化主/次精炼。与仅修复语法或功能错误的工具反馈系统不同,它在可配置目标下评分和选择候选者,使用多保真度评估器栈,包括功能仿真、Yosys综合、ABC时序代理和下游GEMM指标。与从黄金设计开始的现有RTL优化器不同,它从自然语言规约开始,其技能记忆基于HDL特定证据。

## 3. 方法

Verilog-Evolve 将Verilog生成视为由可执行反馈驱动的迭代候选精炼。给定任务描述 d 和所需模块声明 h,系统重复生成候选实现,用可执行工具评估它们,在可配置目标下评分,推广最佳候选者,并从历史中进化可重用技能。本节涵盖技能检索、多样化的次要尝试、评估器流水线、评分、晋升以及跨会话技能进化。

算法1 Verilog-Evolve
输入:任务 d,模块头部 h,技能 S,评估器 E
输出:最佳 RTL V* 和更新后的技能
1: 初始化基线 V₀ 和反馈上下文 C₀;
2: for i = 0 to R-1 do
3:     for k = 1 to K do
4:         采样策略 g_{i,k} 和多样性计划 p_{i,k};
5:         检索技能 S_{i,k} ← Retrieve(S, d, C_i, p_{i,k});
6:         生成/修复 v_{i,k} ← LLM(g_{i,k}, d, h, S_{i,k}, C_i);
7:         评估 r_{i,k} ← {E_j(v_{i,k})}_{j=1}^m 并记录轨迹;
8:         if 开启早停模式 且 Pass(r_{i,k}) then
9:             跳出次要循环;
10:        end if
11:    end for
12:    A_i ← {k: Pass(r_{i,k})};
13:    if A_i ≠ ∅ then
14:         k* ← arg min_{k∈A_i} (Score(r_{i,k}), Tie(r_{i,k}));
15:    end if
16:    if A_i ≠ ∅ 且 Improve(i, k*) 且 Gate(r_{i,k*}, v_{i,k*}) then
17:         V_{i+1} ← v_{i,k*};更新 C_{i+1};
18:    else
19:         V_{i+1} ← V_i;传递 C_{i+1} ← C_i;
20:    end if
21: end for
22: 通过创建/改进/跳过和验证器门控,从记录的会话中进化技能;
23: 立即发布或将技能放入验证队列,等待重放工作端;

### 3.1. 技能检索与提示条件调节

Verilog-Evolve 使用持久化的技能记忆来指导生成和修复。每个技能存储为轻量级技能文件,包含触发条件和可重用的领域指导。当前技能库涵盖功能性Verilog生成、仿真器反馈修复、综合感知重写、时序感知重写、RTL优化模式以及用于量化GEMM风格内核的下游协同设计。对于每次次要尝试,系统根据三种上下文来源检索相关技能:自然语言任务、当前时序或综合反馈、以及采样的多样性计划。检索器还咨询技能注册表,因此具有已验证版本历史的技能获得更高的检索分数。每个候选记录存储其提示是否使用了静态或检索的技能,以便后续技能归因。

形式上,设 S_{i,k} 表示主轮次 i 中次要尝试 k 的检索技能子集,p_{i,k} 表示其多样性计划。生成上下文为 x_{i,k} = (d, h, S_{i,k}, p_{i,k})。生成器通过在该上下文上调节来生成候选Verilog实现:

\(1\) v_{i,k} = LLM_gen(d, h, S_{i,k}, p_{i,k})。

当先前候选失败时,修复提示额外接收结构化工具反馈 f:

\(2\) v'_{i,k} = LLM_repair(d, h, v, f, S_{i,k}, p_{i,k})。

技能指导不取代工具评估;它提供可重用的先验知识,帮助模型产生更可综合的

相似文章

AlgoEvolve: LLM驱动的算法交易程序元进化

arXiv cs.AI

介绍了AlgoEvolve,一个LLM驱动的进化框架,用于生成并迭代改进算法交易策略。该框架包含一个元进化外层循环,用于进化提示词以指导内层循环的合成。

EvoMap/evolver

GitHub Trending (daily)

Evolver 是一个由 GEP 驱动的 AI 代理自演化引擎,可自动化提示词优化并创建可审计、可复用的演化资产。该项目正从完全开源过渡到源代码可用,同时保持与现有 MIT 和 GPL-3.0 版本的向后兼容性。