← 最新论文
💻 computer science

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

本文提出了 UCAgent,一种基于纯 Python 验证环境、31 阶段细粒度工作流及验证一致性标注机制(VCLM)的端到端智能体,旨在解决传统方法瓶颈,实现了高达 98.5% 代码覆盖率和 100% 功能覆盖率的硬件块级功能自动化验证,并成功发现了真实设计中的缺陷。

原作者: Junyue Wang, Zhicheng Yao, Yan Pi, Xiaolong Li, Fangyuan Song, Jinru Wang, Yunlong Xie, Sa Wang, Yungang Bao

发布于 2026-03-30
📖 1 分钟阅读☕ 轻松阅读

原作者: Junyue Wang, Zhicheng Yao, Yan Pi, Xiaolong Li, Fangyuan Song, Jinru Wang, Yunlong Xie, Sa Wang, Yungang Bao

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文介绍了一个名为 UCAgent 的“超级智能助手”,它的任务是帮芯片工程师做一件最头疼、最耗时的工作:芯片功能验证

为了让你轻松理解,我们可以把芯片设计比作建造一座极其复杂的摩天大楼,而“功能验证”就是在楼盖好之前,进行的各种极限压力测试(比如:电梯会不会卡死?消防通道能不能通?承重墙够不够结实?)。

1. 为什么要造这个“超级助手”?(背景与痛点)

  • 现状: 以前,工程师们主要靠两种方法做测试:

    1. 随机乱撞法(Constrained-random): 像蒙着眼睛扔飞镖,看能不能扎中漏洞。
    2. 数学证明法(Formal verification): 用复杂的数学公式证明它绝对没问题。
    • 问题: 现在的芯片太复杂了(像摩天大楼变成了超级城市),这两种老方法要么太慢,要么根本跟不上节奏。据统计,芯片开发中 70% 的时间 都浪费在找 Bug 上,而且即使花这么多钱,还是经常有漏网之鱼,导致芯片造出来后发现是坏的(返工),损失巨大。
  • 新尝试的困境: 最近大家想用 AI(大语言模型) 来帮忙写测试代码。但是,AI 写“芯片语言”(Verilog/SystemVerilog)就像让一个只会写中文小说的人去写量子物理公式,它经常写错语法,或者逻辑混乱,导致测试本身就不靠谱。

2. UCAgent 是怎么工作的?(三大核心绝招)

UCAgent 就像是一个拥有超级大脑的“总包工头”,它不直接让 AI 去写那些难懂的芯片代码,而是用了三招“降维打击”:

第一招:换个“语言”干活(Python 验证环境)

  • 比喻: 以前让 AI 写测试,是让它用“芯片专用方言”(Verilog)写,AI 经常说胡话。UCAgent 说:“别用方言了,咱们用普通话(Python) 来写测试脚本吧!”
  • 做法: 它把芯片设计(DUT)包装成一个 Python 包。AI 只需要用它最擅长的 Python 语言来指挥芯片运行。这就好比让 AI 用中文写操作手册,而不是让它去学一门它不精通的外语。

第二招:把大任务拆成“小积木”(31 步精细工作流)

  • 比喻: 如果让 AI 一次性“盖好整栋楼并测试”,它肯定会晕头转向,产生幻觉(胡编乱造)。UCAgent 把整个验证过程拆成了 31 个微小的步骤,像搭积木一样,一步一个脚印。
  • 做法:
    1. 先分析需求(读懂图纸)。
    2. 再建测试环境(搭脚手架)。
    3. 然后写测试用例(制定检查清单)。
    4. 关键点: 每做完一步,都有一个自动检查员(Checker) 立刻验收。如果这一步没做好,AI 必须立刻修改,不能带着错误进入下一步。这就像盖楼,每砌一层砖都要检查垂直度,否则就推倒重来,绝不让错误累积。

第三招:给每个任务贴“身份证”(一致性标签机制 VCLM)

  • 比喻: 在大型工程中,最怕的是“张冠李戴”。比如图纸上叫“承重墙 A",测试报告里却叫“承重墙 B",或者图纸上没要求测“防火”,结果测试报告里却测了“防火”。
  • 做法: UCAgent 发明了一套标签系统(FG, FC, CK)
    • 在分析图纸时,给每个功能点贴个标签(比如 <标签 - 电梯安全>)。
    • 在写测试代码时,必须原封不动地引用这个标签。
    • 如果 AI 在测试代码里编造了一个图纸上没有的标签,或者漏掉了图纸上的标签,系统会立刻报警并拒绝通过。这确保了从设计图纸到最终测试报告,逻辑链条是严丝合缝的,没有断点。

3. 效果怎么样?(实验结果)

UCAgent 在几个真实的芯片模块(比如串口通信 UART、浮点运算单元 FPU)上进行了测试:

  • 覆盖率极高: 它自动生成的测试代码,覆盖了 98.5% 的代码路径,甚至达到了 100% 的功能覆盖(意味着所有设计功能都被测到了)。
  • 发现新 Bug: 它甚至在一个从未被验证过的模块中,自动发现了人类工程师之前没发现的隐藏 Bug
  • 效率提升: 它能在几十分钟到几小时内,独立完成原本需要人类工程师几天甚至几周才能完成的验证工作。

4. 总结:它意味着什么?

简单来说,UCAgent 就是把芯片验证从“手工作坊”升级成了“全自动流水线”。

  • 它不再依赖 AI 去硬啃难懂的芯片代码,而是用 AI 擅长的 Python 语言来指挥。
  • 它把复杂的任务拆解成 AI 能处理的小步骤,并加上严格的“质检员”。
  • 它用“标签”锁死了逻辑,防止 AI 胡编乱造。

未来的愿景: 虽然目前还需要人类专家来配置流程(就像给机器人设定初始指令),但 UCAgent 证明了 AI 完全可以胜任芯片验证中最核心、最繁琐的工作,让工程师从“找 Bug 的苦力”变成“设计架构的专家”,大大缩短芯片上市的时间。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →