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, 凭据扫描, 大语言模型, 差分验证, 强化学习, 硬件测试, 逆向工具