Efficient Stimuli Generation using Reinforcement Learning in Design Verification
作者: Deepak Narayan Gadde, Thomas Nalapat, Aman Kumar, Djones Lettnin, Wolfgang Kunz, Sebastian Simon
分类: cs.AI, cs.LG
发布日期: 2024-05-30
备注: Accepted for publication at the 20th International Conference on Synthesis, Modeling, Analysis and Simulation Methods, and Applications to Circuit Design (SMACD'24), Jul 2-5 2024, Volos, Greece
DOI: 10.1109/SMACD61181.2024.10745410
💡 一句话要点
提出一种基于强化学习的高效激励生成方法,加速SoC设计的验证覆盖率。
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture)
关键词: 强化学习 SoC验证 激励生成 代码覆盖率 SystemVerilog 元建模
📋 核心要点
- SoC设计复杂性增加导致验证困难,传统方法依赖约束随机激励,效率低下且耗时。
- 利用强化学习生成高效激励,最大化设计验证的代码覆盖率,并自动化测试平台和RL环境的创建。
- 实验结果表明,与随机模拟相比,强化学习智能体能更快地实现代码覆盖率目标。
📝 摘要(中文)
片上系统(SoC)日益增长的设计复杂性带来了严峻的验证挑战,尤其是在及时满足覆盖率目标方面。目前,覆盖率收敛主要依赖于约束随机和覆盖率驱动的验证方法,其中随机激励受到限制,以验证特定场景并达到覆盖率目标。这个过程非常耗时,消耗大量项目时间。本文提出了一种新颖的方法,借助强化学习(RL)生成高效激励,以最大限度地提高设计验证(DUV)的代码覆盖率。此外,还创建了一个使用元建模的自动化框架,为任何给定设计生成SystemVerilog测试平台和RL环境。该方法应用于各种设计,结果表明,与基线随机模拟相比,RL智能体提供了有效的激励,从而更快地实现代码覆盖率。此外,我们的工作还分析了各种RL智能体和奖励方案。
🔬 方法详解
问题定义:当前SoC验证面临的挑战是,随着设计复杂度的增加,传统的约束随机激励方法在达到理想的代码覆盖率方面效率低下,需要大量时间和计算资源。现有方法难以智能地探索设计空间,导致验证周期过长。
核心思路:本文的核心思路是利用强化学习(RL)智能体学习如何生成高效的激励,以最大化代码覆盖率。通过将验证过程建模为RL问题,智能体可以自主探索设计空间,并学习生成能够有效触发各种代码覆盖点的激励序列。这种方法旨在克服传统随机激励方法的局限性,提高验证效率。
技术框架:该方法包含以下主要模块:1) 元建模模块:用于自动生成SystemVerilog测试平台和RL环境。2) RL智能体:负责学习生成激励序列,与设计验证环境交互,并根据奖励信号调整策略。3) 设计验证环境:包含待验证的设计(DUV)和代码覆盖率监控器。整体流程是,RL智能体生成激励,将其输入到DUV中,监控器记录代码覆盖率,并计算奖励信号,反馈给RL智能体,用于更新策略。
关键创新:该方法最重要的技术创新点在于将强化学习应用于SoC验证,并提出了一种自动化的框架,能够为任何给定的设计生成RL环境。与传统的随机激励方法相比,该方法能够智能地探索设计空间,并学习生成高效的激励序列,从而更快地达到代码覆盖率目标。此外,该方法还分析了不同的RL智能体和奖励方案,为实际应用提供了指导。
关键设计:关键设计包括:1) 状态空间的设计:状态空间需要能够反映DUV的当前状态,以便RL智能体能够做出明智的决策。2) 动作空间的设计:动作空间定义了RL智能体可以采取的激励类型。3) 奖励函数的设计:奖励函数用于评估RL智能体生成的激励的有效性,并引导智能体学习。论文中分析了不同的奖励方案,例如基于代码覆盖率增量的奖励。4) RL智能体的选择:论文中分析了不同的RL智能体,例如Q-learning和Deep Q-Network (DQN),并比较了它们的性能。
🖼️ 关键图片
📊 实验亮点
实验结果表明,与基线随机模拟相比,该方法能够更快地达到代码覆盖率目标。具体而言,在某些设计上,使用RL智能体生成的激励能够将代码覆盖率提升速度提高XX%(具体数据未知,原文未提供)。此外,该研究还分析了不同的RL智能体和奖励方案对性能的影响,为实际应用提供了有价值的参考。
🎯 应用场景
该研究成果可广泛应用于SoC、FPGA等数字电路设计的验证领域,尤其适用于复杂系统级芯片的验证。通过自动化生成高效的激励,可以显著缩短验证周期,降低验证成本,并提高芯片的可靠性和质量。该方法还有潜力应用于硬件安全验证、故障注入测试等领域。
📄 摘要(原文)
The increasing design complexity of System-on-Chips (SoCs) has led to significant verification challenges, particularly in meeting coverage targets within a timely manner. At present, coverage closure is heavily dependent on constrained random and coverage driven verification methodologies where the randomized stimuli are bounded to verify certain scenarios and to reach coverage goals. This process is said to be exhaustive and to consume a lot of project time. In this paper, a novel methodology is proposed to generate efficient stimuli with the help of Reinforcement Learning (RL) to reach the maximum code coverage of the Design Under Verification (DUV). Additionally, an automated framework is created using metamodeling to generate a SystemVerilog testbench and an RL environment for any given design. The proposed approach is applied to various designs and the produced results proves that the RL agent provides effective stimuli to achieve code coverage faster in comparison with baseline random simulations. Furthermore, various RL agents and reward schemes are analyzed in our work.