QiMeng-SALV: Signal-Aware Learning for Verilog Code Generation¶
会议: NeurIPS 2025
arXiv: 2510.19296
代码: 有
领域: 代码生成 / EDA
关键词: Verilog, code generation, signal-aware DPO, hardware design, EDA
一句话总结¶
从部分正确的Verilog模块中提取信号级正确实现用于信号感知DPO训练,使7B模型在RTLLM v1.1上达到671B DeepSeek-v3的水平(62.6% pass@1)。
研究背景与动机¶
LLM生成的Verilog代码常有部分信号正确、部分错误的情况。传统DPO将整个模块视为好/坏,浪费了部分正确信号的信息。本文在信号级别提取偏好对。
方法详解¶
整体框架¶
两阶段:(1) 信号级数据提取——用 AST 分析从 Verilog 模块中分离各信号实现,独立验证正确性;(2) 信号感知 DPO 训练——仅对功能正确的信号代码段做正样本偏好优化。
关键设计¶
- 信号提取与验证:
- 用 AST 将 Verilog 模块分解为独立信号实现
- 对每个信号独立运行仿真验证(而非整模块验证)
-
从部分错误的模块中"抢救"出正确的信号代码
-
信号感知 DPO:
- 正样本:功能正确的信号实现代码段
- 负样本:功能错误的信号实现代码段
-
训练仅在信号级别构建偏好对,避免模块级的全有全无判断
-
训练数据高效利用:相比模块级 DPO,信号级方法从同样的生成结果中提取更多有效的训练信号
实验关键数据¶
| 模型 | RTLLM v1.1 pass@1 | pass@5 |
|---|---|---|
| CodeV-7B | ~45% | ~62% |
| DeepSeek-V3 (671B) | ~62% | ~74% |
| QiMeng-SALV (7B) | 62.6% | 75.1% |
关键发现¶
- 7B 模型匹配 671B 性能——信号级优化比暴力扩参数更有效
- 信号级 DPO 比模块级 DPO 显著提升,验证了细粒度偏好学习的价值
- AST 分析使得信号提取自动化且精确
亮点与洞察¶
- 将硬件设计的领域知识(信号独立性)融入 LLM 训练范式——是 domain-specific DPO 的成功案例
- 部分正确的代码不再被浪费,而是被精细拆解利用
局限性 / 可改进方向¶
- 仅在 Verilog 验证,其他 HDL(VHDL/SystemVerilog)未测试
- 依赖精确 AST 解析和信号级仿真验证基础设施
- 改进方向:(1) 扩展到更复杂的 SoC 级设计;(2) 结合形式化验证替代仿真
评分¶
- 新颖性: ⭐⭐⭐⭐ 信号级DPO对EDA代码生成新颖
- 实验充分度: ⭐⭐⭐⭐ 7B匹敍671B的结果令人印象深刻
- 写作质量: ⭐⭐⭐⭐ 方法清晰
- 价值: ⭐⭐⭐⭐⭐ 对芯片设计自动化有重大实用价值