核心问题:ChipBench 让先进模型的通过率从既有 benchmark 上的 95% 以上降到约 37%,这证明它更接近真实芯片设计,还是只证明它构造了一组更难的任务?

论文卡片

  • 原题: ChipBench: A Next-Step Benchmark for Evaluating LLM Performance in AI-Aided Chip Design
  • 作者: Zhongkai Yu、Chenyang Zhou、Yichen Lin、Hejia Zhang、Haotian Ye、Junxia Cui、Zaifeng Pan、Jishen Zhao、Yufei Ding。
  • 机构: 加州大学圣迭戈分校、哥伦比亚大学。
  • 版本: 2026-01-29 提交,2026-02-01 更新为 arXiv v2;cs.AI。
  • 定位: 面向 AI 辅助芯片设计的实证型 benchmark,覆盖 Verilog 生成、Verilog 调试和参考模型生成。
  • 阅读入口: alphaXiv · arXiv · HTML 全文 · PDF · 代码与数据

论文讲了什么

作者认为,VerilogEval 和 RTLLM 一类评测逐渐出现两个问题:任务多是短小、自包含模块,而且几乎只测从规格生成 RTL。高分因此可能反映模型熟悉小型代码题,却没有覆盖层次化模块、已有 RTL 的故障诊断,以及用于验证硬件行为的高层参考模型。

ChipBench 把评测分成三部分:

  1. Verilog 生成: 44 个模块,包括 29 个自包含模块、6 个需要调用子模块的顶层模块,以及 9 个来自开源 CPU IP 的功能模块。每题提供人工编写的描述、golden RTL 和测试文件。
  2. Verilog 调试: 在 golden RTL 中人工注入 89 个错误,分为算术、赋值、时序和状态机四类。zero-shot 只给描述与错误代码,one-shot 另外给出 VCD 波形。
  3. 参考模型生成: 以同一批 44 个模块为基础,要求生成 Python、SystemC 或 CXXRTL 模型,共形成 132 个语言—模块组合。论文的主实验表只报告 Python 结果。

生成结果先经过语法检查,再用 iVerilog 对人工 corner case 与超过 1,000 组约束随机输入进行仿真比较。参考模型由异构测试引擎与 Verilator 转换后的 golden RTL 比对;reset 阶段不比较输出,进入正常运行阶段后再判定一致性。

主要结果

在 Verilog 生成上,最佳单模型的宏平均 pass@1 为 30.74%;使用 DeepSeek-V3.2 的多 Agent 系统 MAGE 达到 37.41%。论文以 MAGE 在 VerilogEval 上超过 95% 的结果作对照,说明模型在 ChipBench 上出现明显下降。CPU IP 子集尤其困难,所有被测系统的 pass@1 都不超过 22.22%。

任务论文报告的代表性结果结果回答了什么
Verilog 生成MAGE pass@1:37.41%给定这些描述和仿真测试,首次完成代码的通过比例
Verilog 调试Claude 4.5 Opus pass@1:47.45%已知代码含错时,修复人工注入故障的比例
Python 参考模型生成最佳单模型 pass@1:15.93%高层模型通过随机与定向仿真比较的比例

调试整体好于从零生成。例如 Claude 4.5 Opus 的调试 pass@1 为 47.45%,生成则为 30.74%。但额外提供波形没有稳定改善结果:按作者统计,one-shot 在 8 组比较中优于 zero-shot,却在 13 组中更差。波形包含信息,不等于把原始 VCD 直接塞进上下文就能让模型利用这些信息。

参考模型结果揭示了另一种断裂。简单自包含模块的 Python 模型相对容易,但在 CPU IP 与非自包含模块上,绝大多数模型的 pass@1 为 0;即使 pass@10,复杂子集也不超过 11.11%。这说明通用 Python 生成能力不能直接替代硬件行为建模能力。

证据边界

ChipBench 确实比既有小模块评测更复杂:论文统计其模块平均 61.7 行、438.7 个 cell,而 VerilogEval V2 平均为 16.1 行、31.4 个 cell;它还把调试和参考模型纳入同一框架。这些证据支持“旧 benchmark 覆盖不足”和“模型成绩尚未饱和”。

但难度提升并不自动等于工业代表性已经成立。论文开头以工业 RTL 常超过一万行为参照,实际纳入的模块平均仍只有约 62 行;44 个生成模块和 9 个 CPU IP 模块也不足以刻画不同架构、协议、编码规范与验证环境的总体分布。样本来自开源 IP 和在线题库,而非对真实组织中任务频率的抽样。因此,它更像是在旧 benchmark 与完整工业设计之间增加了一层更难的台阶。

调试任务的可控性来自人工注入错误,这有利于按错误类型比较模型,却未证明其错误分布与真实缺陷一致。每题似乎聚焦一个已知错误,模型也被明确告知代码有错;现实缺陷可能跨模块、由规格歧义引起,或需要先判断究竟是设计、测试还是规格出了问题。

通过标准仍是有限仿真,而不是全输入上的等价证明。超过 1,000 组随机刺激和人工 corner case 比只检查编译更强,但仍可能漏掉稀有时序与长状态轨迹。参考模型又以 golden RTL 为判据,所以测到的是“能否复现这份实现的可观察行为”,不必然是“能否独立表达正确规格”。

论文把三个语言都纳入参考模型 benchmark,但主结果只完整报告 Python;SystemC 与 CXXRTL 的相对难度尚没有实证表格支持。另一个口径问题是,表中的 Average 是三个难度子集的宏平均,并非按 44 个模块数量加权;它适合平衡子集,却不能直接解释成随机抽取一个 ChipBench 模块的总体通过概率。

重点读哪里

先读 §1 与表 1,看作者如何把“旧 benchmark 饱和”拆成模块复杂度、任务种类和参考模型三个缺口;再读 §2.2–2.4,核对 44 个模块、89 个注入错误、132 个参考模型任务及测试引擎。随后细读 表 2–4 与 §3.2–3.3,特别留意宏平均、pass@k 和波形输入的混合结果;最后读 §4,把作者提出的未来方向与实验真正支持的结论区分开。

思想启发

以下是由论文引出的理解角度,不是作者额外验证过的结论。

一个 benchmark 可以同时有三种不同价值:让现有模型不再满分、覆盖更多任务类型,以及近似目标场景的真实分布。ChipBench 对前两点给出了直接证据,对第三点主要依靠模块来源、规模统计和任务叙述来论证。把三者分开,才能避免把低分本身当作真实性证明。

论文还提示,验证基准的核心不只是被测对象,也包括 oracle。RTL 生成以 golden RTL 和 testbench 为 oracle;参考模型生成仍以同一 golden RTL 为 oracle;调试题则从 golden RTL 人工变异而来。统一 oracle 让三类任务可自动评分,也让同一份实现及其测试盲区同时影响多个结论。

三个思考问题

1. “更难”需要满足什么条件,才可以被解释为“更真实”?

如果 benchmark 通过增加代码长度、cell 数和层次关系让所有模型大幅降分,这足以支持工业代表性吗?

展开思考线索

难度只说明现有系统不容易通过;真实性还涉及任务频率、缺陷分布、上下文来源、协作边界和成功标准是否近似目标场景。一个极端困难但罕见的任务可以很好地区分模型,却未必能预测日常表现。ChipBench 提供了“比旧题更复杂”的证据,但缺少与真实项目任务分布的系统对照。

2. 同一份 golden RTL 同时充当多类任务的判据,会留下怎样的共同盲区?

当生成、调试和参考模型都围绕同一实现及其仿真测试评分时,三项成绩能否算作彼此独立的能力证据?

展开思考线索

统一判据提高了可重复性,也可能让错误相关:testbench 未覆盖的行为不会惩罚任何一种生成结果;golden RTL 对含糊规格作出的选择会被当成唯一答案;参考模型与 RTL 一致也不代表两者符合外部意图。三类任务扩大了覆盖面,却没有自动形成三个相互独立的 oracle。

3. 人工注入故障测到的是一般调试能力,还是受控变异识别能力?

模型在 89 个单类故障上的修复率高于从零生成率,这个差异能够外推到来源未知、可能跨模块的真实缺陷吗?

展开思考线索

人工注入让错误类型和正确答案明确,适合做可控比较;同时,它缩小了诊断空间:代码必然有错,错误由预设操作产生,并且存在可直接恢复的 golden 版本。真实调试还要面对错误是否存在、错误归属、规格歧义和多处耦合。较高修复率证明模型善于处理这类受控变异,外推到一般调试仍需要不同来源的缺陷证据。