DEV-2828/LLM-Seeded-Reinforcement-Learning-for-Coverage-Guided-Hardware-Fuzzing-of-RISC-V-Processors
GitHub: DEV-2828/LLM-Seeded-Reinforcement-Learning-for-Coverage-Guided-Hardware-Fuzzing-of-RISC-V-Processors
该项目利用 LLM 生成结构化测试种子并结合强化学习引导的变异引擎,对 RISC-V 处理器进行覆盖率引导的差分模糊测试,以发现传统验证方法难以触及的多指令逻辑 bug。
Stars: 1 | Forks: 1
# 用于 RISC-V 处理器覆盖率引导硬件模糊测试的 LLM 种子强化学习
一个闭环自动化硬件测试系统,结合了大型语言模型(LLM)与强化学习(RL),用于发现 RISC-V 处理器 RTL 实现中难以察觉的 bug。
传统的硬件验证方法(定向测试、约束随机验证、形式化验证)难以覆盖现代处理器庞大的状态空间,留下了微妙的、多指令交互 bug 隐藏的“覆盖率盲区”。本项目通过使用自主智能验证智能体来弥合这一差距。
## 工作原理
该系统利用三个主要组件来发现传统方法遗漏的 bug:
1. **LLM 种子生成器**:预训练的代码语言模型(如 CodeLlama 或 StarCoder2)合成结构多样、多指令的 RISC-V 测试程序。它通过输入覆盖率盲区和流水线压力场景作为提示,生成针对未探索硬件逻辑的种子。
2. **RL 变异引擎**:深度 Q 网络(DQN)智能体获取 LLM 生成的种子,并学习哪些变异(位翻转、寄存器交换等)能将硬件仿真推向先前未到达的状态(通过 FSM 状态和多路复用器翻转覆盖率来衡量)。
3. **差分执行环境**:一对同步运行的模拟器:
- **Verilator**:被测设备(模拟 CVA6、Ibex 或 PicoRV32 等 RTL 设计)。
- **Spike**:黄金参考(官方 RISC-V ISA 模拟器)。
Verilator 和 Spike 之间的任何差异——无论是功能 bug、异常失败还是权限提升——都表明存在硬件 bug。
## 核心特性
- **多指令语义**:与典型的单指令变异模糊测试器不同,LLM 生成真实的流水线交互(冒险、停顿、特权转换)。
- **覆盖率条件提示**:LLM 接收关于哪些硬件状态*尚未*到达的主动反馈,从而驱动有针对性的种子生成。
- **硬件无关学习**:RL 智能体完全通过自生成的模拟经验进行在线学习;它不需要外部的标注数据集。
- **Ape-X 分布式架构**:在数百个并行 CPU worker 上扩展模拟,同时在中央 GPU 上批量处理 RL 训练和推理。
标签:DLL 劫持, RISC-V, 凭据扫描, 大语言模型, 差分验证, 强化学习, 硬件测试, 逆向工具