跳转至

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 训练——仅对功能正确的信号代码段做正样本偏好优化。

关键设计

  1. 信号提取与验证
  2. 用 AST 将 Verilog 模块分解为独立信号实现
  3. 对每个信号独立运行仿真验证(而非整模块验证)
  4. 从部分错误的模块中"抢救"出正确的信号代码

  5. 信号感知 DPO

  6. 正样本:功能正确的信号实现代码段
  7. 负样本:功能错误的信号实现代码段
  8. 训练仅在信号级别构建偏好对,避免模块级的全有全无判断

  9. 训练数据高效利用:相比模块级 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的结果令人印象深刻
  • 写作质量: ⭐⭐⭐⭐ 方法清晰
  • 价值: ⭐⭐⭐⭐⭐ 对芯片设计自动化有重大实用价值