论文

UCAgent:用于块级功能验证的端到端代理

UCAgent: An End-to-End Agent for Block-Level Functional Verification

摘要

功能验证仍然是现代 IC 开发周期的关键瓶颈,约占许多项目总开发时间的 70%。然而,传统方法,包括约束随机和形式验证,很难跟上现代半导体设计日益复杂的步伐。虽然 大语言模型 (LLM) 的最新进展在代码生成和任务自动化方面显示出了希望,但重大挑战阻碍了端到端功能验证自动化的实现。这些挑战包括(i)生成 Verilog/SystemVerilog 验证代码的准确性有限,(ii)执行复杂的多步骤验证工作流程时 LLM 的脆弱性,以及(iii)在整个工作流程中保持跨规范、覆盖模型和测试用例的验证一致性的难度。为了应对这些挑战,我们提出了 UCAgent,这是一种基于三个核心机制自动化硬件块级功能验证的端到端代理。首先,我们使用Picker和Toffee建立纯Python验证环境,以避免依赖LLM生成的SystemVerilog验证代码。其次,我们引入了一个可配置的 31 阶段细粒度验证工作流程来指导 LLM,其中每个阶段都由自动检查器进行验证。此外,我们提出了一种验证一致性标签机制(VCLM),为 LLM 生成的工件分配分层标签,从而提高验证的可靠性和可追溯性。实验结果表明,UCAgent可以对UART、FPU、整数分频器模块等多个模块完成端到端的自动化验证,实现高达98.5%的代码覆盖率和高达100%的功能覆盖率。 UCAgent 还发现了现实设计中以前未识别的设计缺陷,展示了其实际潜力。