ASIC-Agent 论文精读:AI 不只写 Verilog,还要自己验证、跑 OpenLane、生成 GDSII
- 1. 论文信息:来自哪里,应该怎么引用?
- 1.1 基本信息
- 1.2 BibTeX 引用
- 1.3 中文参考文献写法
- 1.4 IEEE 风格引用
- 2. 这篇论文到底在解决什么问题?
- 2.1 会写 Verilog,不等于会完成 ASIC 设计
- 2.2 旧基准也无法评价真正的硬件 Agent
- 2.3 论文提出了两个互相绑定的问题
- 3. 论文结构怎么组织?
- 4. 论文的核心贡献与创新点
- 创新一:把硬件 Agent 的任务边界从 RTL 生成推进到 GDSII 与芯片集成
- 创新二:把 EDA 工具变成 Agent 的结构化动作空间
- 创新三:将文档、错误知识和开源 IP 统一接入硬件 RAG
- 创新四:用“检查点 + 真实执行 + GDSII 检查”评价开放式 Agent
- 5. 方法详解:四类 Agent 如何协同?
- 5.1 Main RTL Agent:负责主任务、RTL 和全局状态
- 5.2 Verification Agent:用 cocotb 建立功能验证闭环
- 5.3 Hardening Agent:从功能 RTL 进入 OpenLane 物理实现
- 5.4 Caravel Integration Agent:处理 SoC Harness 集成
- 6. Agent Skills:工具为什么比“更长的 Prompt”更重要?
- 7. 外部知识库:RAG 在 ASIC Agent 中究竟检索什么?
- 7.1 错误模式与解决方案
- 7.2 OpenLane、Caravel 和 cocotb 文档
- 7.3 开源 IP 数据库
- 7.4 多跳检索
- 8. 方法如何支撑论文的创新主张?
- 9. ASIC-Agent-Bench:为什么它可能比系统本身更重要?
- 9.1 任务是开放式的
- 9.2 任务复杂度由四个因素决定
- 9.3 每个任务由三部分组成
- 原则一:产物必须可观察
- 原则二:检查必须原子化
- 原则三:检查点必须适合自动评价
- 9.4 最终得分不是单一 LLM Judge 决定
- 10. 实验设计:作者如何证明 ASIC-Agent 有效?
- 10.1 对比了哪些基础模型?
- 10.2 Benchmark 覆盖了哪些任务?
- 复杂 RTL 设计
- 调试与验证
- 基础数字逻辑
- Caravel 集成
- 11. 主结果:88% 到底说明了什么?
- 11.1 Claude 4 Sonnet:得分最高,但成本也最高
- 11.2 GPT-4.1:成本最低、步骤最少,但复杂任务明显掉分
- 11.3 Gemini 2.5 Pro:平均表现居中,但部分任务非常突出
- 12. 难度分析:任务越复杂,模型差距越明显
- 13. 定性结果:作者观察到了哪些 Agent 行为?
- 13.1 调试能力
- 13.2 物理设计迭代
- 13.3 Python 验证优势
- 13.4 不同模型处理 Lint 错误的能力差异明显
- 13.5 遇到陌生问题时会调用向量数据库
- 14. 实验如何论证方法有效?
- 15. 这篇论文有哪些局限?
- 15.1 缺少“同一模型,不使用 ASIC-Agent”的直接基线
- 15.2 缺少组件消融实验
- 15.3 LLM Judge 仍然可能带来评价偏差
- 15.4 缺少重复实验和统计不确定性
- 15.5 生成 GDSII 不等于完成工业级签核
- 15.6 多 Agent 协调与长期状态机制描述仍然偏粗
- 15.7 验证环境仍需进一步防止“自测自证”
- 16. 我们可以从中受到什么启发?
- 启发一:硬件 Agent 的核心不是代码生成,而是“证据驱动的执行闭环”
- 启发二:工具接口应该表达工程动作,而不是只暴露 Shell
- 启发三:多 Agent 的价值来自职责边界,不是角色数量
- 启发四:验证语言可以利用模型优势,但评测必须独立
- 启发五:RAG 最有价值的内容是“工具错误与工程经验”
- 启发六:Benchmark 必须评价过程产物,而不只评价最后一份代码
- 启发七:模型选型应该按任务难度和成本动态路由
- 17. 对 FPGA Agent 开发的直接借鉴
- 18. 最终评价:这篇论文最值得记住的是什么?
- 参考文献
先说结论:ASIC-Agent 最值得关注的,不是“用了四个 Agent”这个表面形式,而是它把RTL 生成、功能验证、物理实现、SoC 集成、工具执行、错误诊断和结果评测放进了同一个可执行系统中。
更重要的是,作者没有继续只用“生成的 Verilog 能不能通过一个固定 testbench”来评价系统,而是同步提出了ASIC-Agent-Bench:让 Agent 自己组织多文件工程、生成验证环境、调用 EDA 工具、迭代调试,并通过检查点、testbench 实际执行和 GDSII 检查共同打分。
论文中 Claude 4 Sonnet 驱动的 ASIC-Agent 取得了88% 的平均得分。但必须先说明:这里的 88% 是多阶段检查点的加权分数,不是单次 RTL 生成准确率,也不是“88% 的设计已经可以直接流片”。
上一篇论文阅读中,我们更关注“如何让模型在 RTL 调试循环中持续进化上下文”;而这篇 ASIC-Agent 把问题进一步推向了完整工作流:
自然语言需求 ↓ RTL 设计 ↓ 验证与调试 ↓ OpenLane 物理实现 ↓ Caravel 芯片集成 ↓ RTL / Testbench / 配置文件 / GDSII它真正想回答的问题是:
怎样把一个会写 Verilog 的大模型,变成一个能够调用工具、观察结果、持续调试,并交付 ASIC 设计产物的工程 Agent?
1. 论文信息:来自哪里,应该怎么引用?
1.1 基本信息
- 论文标题:ASIC-Agent: An Autonomous Multi-Agent System for ASIC Design with Benchmark Evaluation
- 作者:Ahmed Allam、Youssef Mansour、Mohamed Shalan
- 研究机构:The American University in Cairo(开罗美国大学)
- 论文来源:2025 IEEE International Conference on LLM-Aided Design(ICLAD 2025)
- 页码:23–29
- 出版机构:IEEE
- DOI:10.1109/ICLAD65226.2025.00033
- 论文关键词:LLM-Aided Hardware Design、ASIC Design Automation、Agent Systems、Benchmarking LLM Agents
- 开源仓库:https://github.com/AUCOHL/ASIC-Agent-Bench
- DOI 页面:https://doi.org/10.1109/ICLAD65226.2025.00033
因此,在介绍这篇论文时,可以准确写成:
“发表于 ICLAD 2025 的 ASIC-Agent 论文”
而不是把它写成普通 arXiv 预印本,也不要把论文中的开源 OpenLane 流程直接等同于商业 ASIC signoff 流程。
图表引用说明:本文建议使用论文第 3 页的系统架构图、第 5 页的评测流程图,以及第 6 页的模型对比结果。发布时应在图下注明“来源:ASIC-Agent 原论文,仅用于学术解读”。实验数据图最好重新绘制,并在图注中保留论文名称和 DOI。
1.2 BibTeX 引用
@inproceedings{allam2025asicagent, author = {Ahmed Allam and Youssef Mansour and Mohamed Shalan}, title = {ASIC-Agent: An Autonomous Multi-Agent System for ASIC Design with Benchmark Evaluation}, booktitle = {2025 IEEE International Conference on LLM-Aided Design (ICLAD)}, year = {2025}, pages = {23--29}, publisher = {IEEE}, doi = {10.1109/ICLAD65226.2025.00033} }1.3 中文参考文献写法
ALLAM A, MANSOUR Y, SHALAN M. ASIC-Agent: An Autonomous Multi-Agent System for ASIC Design with Benchmark Evaluation[C]//2025 IEEE International Conference on LLM-Aided Design (ICLAD). IEEE, 2025: 23-29. DOI:10.1109/ICLAD65226.2025.00033.1.4 IEEE 风格引用
A. Allam, Y. Mansour, and M. Shalan, “ASIC-Agent: An Autonomous Multi-Agent System for ASIC Design with Benchmark Evaluation,” in 2025 IEEE International Conference on LLM-Aided Design (ICLAD), 2025, pp. 23–29, doi: 10.1109/ICLAD65226.2025.00033.2. 这篇论文到底在解决什么问题?
2.1 会写 Verilog,不等于会完成 ASIC 设计
很多 LLM 硬件设计工作仍然把任务抽象成:
Specification → Verilog Module只要生成的单个模块能够通过固定 testbench,就认为任务完成。
但真实 ASIC 设计并不是一次文本生成。即便暂时不考虑工业级签核,一个基本的开源数字 ASIC 流程也至少包含:
需求理解 ↓ RTL 编写与多文件组织 ↓ Lint / 静态检查 ↓ Testbench 与功能仿真 ↓ 错误定位与 RTL 修复 ↓ 逻辑综合 ↓ 布局布线与 PPA 分析 ↓ DRC / 时序 / 天线等问题处理 ↓ SoC Harness 集成 ↓ 版图产物大模型单独工作时存在三个直接问题:
- 不能天然执行代码和 EDA 工具;
- 不能根据真实工具输出进行可靠调试;
- 缺少支撑长流程的工程状态和长期知识。
因此,论文并不满足于“让模型写出更像样的 RTL”,而是要让模型进入一个可以真实执行的 ASIC 环境。
2.2 旧基准也无法评价真正的硬件 Agent
VerilogEval、RTLLM 等基准非常适合评测模块级 RTL 生成,但它们通常具有以下特点:
- 文件名和顶层模块固定;
- testbench 预先给定;
- 任务边界相对封闭;
- 主要检查单个 RTL 模块的功能正确性;
- 不要求 Agent 自主规划、调用工具和维护多文件工程;
- 不覆盖从 RTL 到 GDSII 的物理实现与芯片集成。
这意味着,即使一个 Agent 很擅长组织工程、使用工具和处理长流程,它也未必能在传统 benchmark 中体现优势。
2.3 论文提出了两个互相绑定的问题
ASIC-Agent 实际上同时解决了两个问题。
系统问题:
如何让 LLM 自主完成 RTL 生成、验证、OpenLane hardening 和 Caravel 集成?
评测问题:
当任务不再限制文件名、代码结构和执行步骤时,如何公平评价一个开放式硬件 Agent?
这两个问题不能拆开看。没有可执行的系统,benchmark 只能评测文本;没有新的 benchmark,系统也只能通过几个演示案例证明自己。
3. 论文结构怎么组织?
这篇论文共 7 页,篇幅不长,结构非常直接。
| 章节 | 主要内容 | 在全文论证中的作用 |
|---|---|---|
| Introduction | ASIC 流程痛点、独立 LLM 的局限、传统 benchmark 的不足 | 提出“系统 + 评测”双重问题 |
| Related Work | 软件工程 Agent、RTL 专用模型、已有硬件 Agent | 说明现有方法尚未覆盖完整 ASIC 流程 |
| ASIC-Agent | 多 Agent 架构、运行环境、工具接口、外部知识库 | 给出系统方法 |
| Benchmark | 开放任务、复杂度分级、检查点和 LLM Judge | 给出评测方法 |
| Results | 三种基础模型的得分、步骤、成本和定性观察 | 说明系统在不同任务与模型上的表现 |
| Conclusion | 总结 ASIC-Agent 与 ASIC-Agent-Bench | 收束贡献 |
全文的论证链可以压缩成:
单独 LLM 不能执行和调试 ↓ 已有硬件 Agent 没有覆盖完整 ASIC 流程 ↓ 用主 Agent + 专用子 Agent 拆解工作流 ↓ 用 Docker、硬件工具接口和 RAG 提供执行能力 ↓ 用开放任务与检查点评测真实 Agent 行为 ↓ 比较不同基础模型的得分、步骤与成本4. 论文的核心贡献与创新点
论文作者在 Introduction 中明确总结了两项主要贡献:
- 提出面向数字 ASIC 设计的多 Agent 系统 ASIC-Agent;
- 提出面向硬件 Agent 的评测基准 ASIC-Agent-Bench。
如果从方法层面继续拆解,可以看到四个值得重点阅读的创新点。
创新一:把硬件 Agent 的任务边界从 RTL 生成推进到 GDSII 与芯片集成
ASIC-Agent 不只生成 Verilog,而是设置了四类角色:
- Main RTL Agent;
- Verification Agent;
- Hardening Agent;
- Caravel Integration Agent。
最终交付物也不再只有.v文件,而是包括:
- RTL Modules;
- Testbenches;
- OpenLane 配置文件;
- GDSII 文件。
这使论文的研究对象从“代码生成模型”变成了“ASIC 设计执行系统”。
创新二:把 EDA 工具变成 Agent 的结构化动作空间
论文没有只给 Agent 一个通用 Bash,然后让模型自己猜命令,而是定义了硬件专用的 Agent-Computer Interface,例如:
lint_verilog simulate_verilog parse_verilog run_openlane view_openlane_metrics query_opensource_ips query_docs这些工具把复杂的 EDA 操作压缩成更清晰的动作和反馈,使 Agent 能够围绕设计目标持续执行:
修改 → 检查 → 观察 → 诊断 → 再修改创新三:将文档、错误知识和开源 IP 统一接入硬件 RAG
ASIC-Agent 的外部知识库不是简单收录几份 PDF,而是包含三类高价值信息:
- OpenLane、Caravel、cocotb 等工具文档;
- 开源硅社区中的错误模式、原因和解决方案;
- 可复用的开源 IP 模块及其功能信息。
当 Agent 遇到 OpenLane 错误、Lint 问题或 Caravel 集成问题时,可以通过语义检索寻找相似案例和配置建议。
创新四:用“检查点 + 真实执行 + GDSII 检查”评价开放式 Agent
ASIC-Agent-Bench 不要求 Agent 严格按照固定模板写一个文件,而是允许它自主组织 workspace。
评价时同时看:
- 代码库是否满足预设检查点;
- testbench 是否真正执行成功;
- OpenLane 任务是否生成 GDSII;
- 不同阶段完成到什么程度。
这种评测方式比单纯判断最终答案是否匹配,更接近复杂工程任务的实际状态。
5. 方法详解:四类 Agent 如何协同?
图片来自原文
论文第 3 页的 Figure 1 给出了系统全貌。其核心不是四个孤立机器人,而是下面这条 action–observation 闭环:
用户需求 ↓ ASIC-Agent 规划并执行动作 ↓ Docker / Bash / IPython / EDA Tools ↓ 返回编译、仿真、日志、指标和文件 ↓ Agent 根据 Observation 决定下一步动作 ↓ 输出 RTL、Testbench、Config 和 GDSII5.1 Main RTL Agent:负责主任务、RTL 和全局状态
Main Agent 是系统的中心入口,主要职责包括:
- 根据自然语言规格生成 Verilog;
- 设计模块接口、信号和行为逻辑;
- 对修改后的 RTL 执行 Lint 和静态分析;
- 维护设计规格、约束和整体进度;
- 判断何时进入验证、hardening 和集成阶段。
这里有一个很重要的架构信号:虽然论文使用了多 Agent,但全局项目状态仍由 Main Agent 掌握。
也就是说,专用 Agent 是领域执行者,而不是四个彼此竞争的“总指挥”。
5.2 Verification Agent:用 cocotb 建立功能验证闭环
Verification Agent 负责:
- 生成测试环境;
- 构造激励和参考模型;
- 调用 Icarus Verilog 或 Verilator 仿真;
- 收集仿真结果和波形数据;
- 在失败时进行根因分析并提出修改建议。
论文特别强调 cocotb,而不是只使用 Verilog testbench。
作者给出的理由是:LLM 通常比 Verilog 更擅长 Python,而 cocotb 又提供了更高层的验证抽象,因此更容易实现:
- 复杂输入生成;
- 随机测试;
- 软件参考模型对比;
- 矩阵乘法、神经网络等高层运算验证。
这里的思路不是“Python 比 HDL 更专业”,而是:
把验证任务尽量放到模型能力更稳定、表达能力更强的语言中,再用仿真器连接真实 RTL。
5.3 Hardening Agent:从功能 RTL 进入 OpenLane 物理实现
Hardening Agent 负责把功能验证后的 RTL 送入 OpenLane 2 流程。
它需要完成:
- 生成和修改
config.json; - 选择与设计目标相匹配的流程参数;
- 执行 OpenLane;
- 监控各阶段输出;
- 读取 timing、power、area 等指标;
- 根据错误和指标迭代调整配置或 RTL。
论文还设计了一个专用 OpenLane 调试工具。该工具使用专门的 LLM 分析各步骤日志和输出文件,将复杂错误转成结构化结论,帮助 Hardening Agent 定位失败原因。
作者在定性结果中报告,系统能够通过反复调整 OpenLane 参数和 RTL,处理 timing、antenna、DRC 等问题,并对 PPA 进行迭代优化。
5.4 Caravel Integration Agent:处理 SoC Harness 集成
Caravel Integration Agent 面向 Efabless Caravel SoC Harness,主要任务包括:
- 生成 wrapper 和 interconnect;
- 对接 Caravel 预定义接口;
- 处理 pin assignment 和 memory map;
- 管理时钟域跨越与复位同步;
- 通过 Wishbone 总线实现控制与状态寄存器。
这一角色的意义在于:很多 RTL 模块单独仿真没有问题,但真正进入 SoC 时会遇到接口、地址映射、时钟、复位和封装约束。
ASIC-Agent 将这些问题也纳入了 Agent 的任务范围。
6. Agent Skills:工具为什么比“更长的 Prompt”更重要?
ASIC-Agent 构建在 OpenHands 和 CodeAct 的基础上,并在隔离的 Docker 环境中预装硬件工具。
论文列出的核心工具如下。
| 工具 | 作用 | 弥补的 LLM 缺陷 |
|---|---|---|
lint_verilog | 修改 Verilog 后自动执行静态检查 | 防止语法和基础规则错误长期累积 |
simulate_verilog | 配置并运行 testbench | 让功能正确性由执行结果而不是语言判断决定 |
parse_verilog | 使用 PyVerilog 生成 AST | 为结构化代码分析和调试提供基础 |
run_openlane | 执行 OpenLane 流程 | 让 Agent 能进入 RTL-to-GDSII 阶段 |
view_openlane_metrics | 提取并分析 OpenLane 指标 | 将 PPA 和流程状态反馈给 Agent |
query_opensource_ips | 查询和获取开源硬件 IP | 避免所有功能都从零生成 |
query_docs | 检索硬件工具与接口文档 | 降低配置、API 和流程知识错误 |
其中一个很实用的设计是:
lint_verilog会在每次 Verilog 文件修改后自动执行。
这相当于把最基础的质量检查嵌入编辑动作,而不是等 Agent 自己“想起来”再检查。
从工程角度看,这种自动触发机制往往比继续扩充 system prompt 更可靠。
7. 外部知识库:RAG 在 ASIC Agent 中究竟检索什么?
很多系统把 RAG 理解成“给模型搜索论文”。ASIC-Agent 的知识库更接近工程支持系统。
7.1 错误模式与解决方案
作者从开源硅设计社区的讨论中提取:
- 错误现象;
- 可能原因;
- 对应解决方案;
- 工具与配置上下文。
当当前日志与历史错误在语义上相似时,Agent 可以检索已有处理经验。
7.2 OpenLane、Caravel 和 cocotb 文档
这些文档被索引后,Agent 可以用自然语言查询:
- 某个 OpenLane 配置项如何设置;
- Caravel 某类接口如何连接;
- cocotb 某个 API 如何使用。
7.3 开源 IP 数据库
系统还索引了开源 IP,并通过 IPM/IP Marketplace 查询与当前任务匹配的模块。
这体现了一种重要思路:
ASIC Agent 不应该默认所有电路都由 LLM 从零生成,它也应该具备搜索、理解和复用已有 IP 的能力。
7.4 多跳检索
论文称其 RAG 支持 agentic multi-hop retrieval,可以从多份文档中连接工具、错误和设计模式。
不过,正文没有给出检索算法、索引规模、召回质量或独立对比实验,因此这一部分更多是系统机制描述,而不是被充分量化验证的单独贡献。
8. 方法如何支撑论文的创新主张?
把创新点、实现机制和预期作用放到一起看,论文的方法链条会更清楚。
| 创新主张 | 对应方法 | 为什么能够支撑该主张 |
|---|---|---|
| 从 RTL 生成走向 ASIC 工作流 | 四类 Agent + Docker + EDA 工具 | 系统可以生成、执行、验证并交付多阶段产物 |
| 建立持续调试闭环 | Action–Observation、自动 Lint、仿真、OpenLane 日志分析 | 每次失败都能转化为下一轮修改依据 |
| 覆盖物理实现与集成 | Hardening Agent、Caravel Agent、GDSII 输出 | 评价对象不再停留在单个 Verilog 文件 |
| 使用领域知识降低工具错误 | 文档库、错误知识库、开源 IP 库、多跳 RAG | Agent 能查询模型参数知识之外的 ASIC 信息 |
| 评价开放式硬件 Agent | Checkpoints + LLM Judge + testbench 执行 + GDSII 检查 | 不强制固定实现方式,同时保留可观察、可执行的评分依据 |
这套方法在逻辑上是闭合的:
角色分工决定“谁做什么” ↓ 工具接口决定“能够执行什么” ↓ 知识库决定“遇到陌生问题时查什么” ↓ 观察反馈决定“失败后如何继续” ↓ Benchmark 决定“完成到什么程度才算有效”但需要注意:论文没有通过消融实验分别去掉 Verification Agent、RAG、OpenLane 调试器或某个工具,因此实验能够证明的是完整系统具有一定端到端能力,还不能精确说明每个组件分别贡献了多少分。
9. ASIC-Agent-Bench:为什么它可能比系统本身更重要?
图片来自原文
9.1 任务是开放式的
传统 benchmark 往往要求:
必须写 module.v 顶层必须叫某个固定名字 只能提交一个模块 必须接入给定 testbenchASIC-Agent-Bench 则允许 Agent 自己决定:
- 工程包含哪些文件;
- 如何划分模块;
- 如何建立 testbench;
- 是否需要配置文件;
- 调用哪些工具;
- 失败后如何调试。
这使 benchmark 评价的是自主工程能力,而不只是遵循模板的能力。
9.2 任务复杂度由四个因素决定
论文根据以下因素划分难度:
- 是否包含时序逻辑和状态;
- 数据处理和控制机制是否复杂;
- 是否包含流水线、多级操作等架构深度;
- 是否需要集成 Caravel 或执行 OpenLane RTL-to-GDSII 流程。
因此,“难题”不只意味着 Verilog 行数更多,还意味着流程更长、状态更多、工具交互更复杂。
9.3 每个任务由三部分组成
Prompt + Checkpoints + Evaluation Methodology其中 Checkpoint 必须满足三个原则。
原则一:产物必须可观察
检查点应对应明确文件或执行结果,例如:
- 是否存在顶层模块;
- 是否生成 testbench;
- 仿真是否成功;
- 是否存在
config.json; - 是否生成 GDSII。
原则二:检查必须原子化
单个检查点尽量回答 Yes/No,例如:
testbench 是否覆盖计数器 wrap-around?
而不是模糊地评价:
这份 testbench 写得是否优雅?
原则三:检查点必须适合自动评价
标准应关注“是否包含某个必要元素”,而不是依赖审美判断。
例如:
代码是否包含溢出断言?比:
代码结构是否良好?更容易得到一致评分。
9.4 最终得分不是单一 LLM Judge 决定
Figure 2 显示,Agent 完成任务后,workspace 会进入三类评价路径:
Judge Agent 检查 Checkpoints + Testbenches 实际执行 + GDSII Inspection ↓ 按权重计算 Final Score论文固定使用 Gemini 2.5 Pro 作为 Judge,以保持不同实验之间的一致性;同时由人工审阅者反复检查和调整评价逻辑,使其更接近人工判断。
这种混合评测比只让另一个 LLM “看代码打分”更可靠,因为至少仿真和 GDSII 属于真实执行产物。
10. 实验设计:作者如何证明 ASIC-Agent 有效?
10.1 对比了哪些基础模型?
作者将同一个 ASIC-Agent 系统分别连接到三种基础 LLM:
- Claude 4 Sonnet;
- GPT-4.1;
- Gemini 2.5 Pro。
每个任务记录三项指标:
- Score:检查点加权得分;
- Steps:Agent 完成任务所用步骤数;
- Cost:模型调用成本。
这种设计主要回答:
当外部 Agent 框架相同时,基础模型能力会怎样影响硬件任务的完成度、步骤数和成本?
它并没有直接回答“ASIC-Agent 相比不使用 Agent 的同一个模型提升多少”,因为论文没有给出同模型、同任务的裸 LLM 基线。
10.2 Benchmark 覆盖了哪些任务?
Table I 共列出 20 个任务。按照任务内容,可以粗略分为四组。
复杂 RTL 设计
- Neural Network Accelerator;
- RISC-V Processor Core;
- AES Encryption Core;
- Matrix Multiplier Core;
- IEEE-754 Floating Point Unit;
- UART;
- Pipelined Multiplier。
调试与验证
- Wishbone Bridge Bug Fix;
- Memory Controller Debugging;
- Adder DPI Validation。
基础数字逻辑
- Finite State Machine;
- Karnaugh Map Solver;
- 8-bit Barrel Shifter;
- Carry-Lookahead Adder;
- D Flip-Flop;
- Counter;
- Edge Detector。
Caravel 集成
- UART Integration Caravel;
- IPM Management Caravel;
- GPIO Integration Caravel。
任务从基础组合逻辑一直覆盖到处理器、加速器、调试和 SoC 集成,确实比单一 Spec-to-RTL benchmark 更接近 Agent 工作负载。
11. 主结果:88% 到底说明了什么?
图片来自原文
三种基础模型的平均结果如下。
| 基础模型 | 平均得分 | 平均步骤 | 平均成本 |
|---|---|---|---|
| Claude 4 Sonnet | 88.00% | 37 | $4.91 |
| GPT-4.1 | 60.80% | 30 | $1.88 |
| Gemini 2.5 Pro | 71.45% | 35 | $3.64 |
11.1 Claude 4 Sonnet:得分最高,但成本也最高
Claude 4 Sonnet 的平均得分为 88%,比 GPT-4.1 高 27.2 个百分点,比 Gemini 2.5 Pro 高 16.55 个百分点。
它在复杂任务、调试任务和多阶段流程上整体更稳定,但平均成本达到每项任务 4.91 美元,是三种模型中最高的。
因此,这个结果不能简单概括成“Claude 全面碾压”,更准确的说法是:
在该 benchmark 和该 Agent 框架下,Claude 4 Sonnet 用更高调用成本换取了明显更高的任务完成度。
11.2 GPT-4.1:成本最低、步骤最少,但复杂任务明显掉分
GPT-4.1 平均只需 30 步,成本 1.88 美元,是最经济的配置。
但其平均得分只有 60.8%。尤其在复杂算术和控制任务上出现明显困难,例如:
- IEEE-754 Floating Point Unit:13%;
- Pipelined Multiplier:23%;
- Finite State Machine:25%;
- AES Encryption Core:27%。
这说明更少步骤不一定代表更高效率,也可能意味着 Agent 较早停止在一个不完整结果上。
11.3 Gemini 2.5 Pro:平均表现居中,但部分任务非常突出
Gemini 2.5 Pro 平均得分 71.45%,处于 Claude 和 GPT-4.1 之间。
但它在若干单项任务上反而超过 Claude:
- RISC-V Processor Core:87% 对 85%;
- UART:89% 对 56%;
- Pipelined Multiplier:94% 对 68%。
这说明一个很重要的问题:
模型平均分不能代替任务级能力画像。不同 LLM 可能擅长不同电路、接口和调试模式。
未来更合理的系统可能不是始终调用同一个最强模型,而是根据任务类型、难度和预算进行动态路由。
12. 难度分析:任务越复杂,模型差距越明显
图片来自原文
论文 Figure 3 按任务难度汇总了三种模型的得分。
| 难度 | Claude 4 Sonnet | GPT-4.1 | Gemini 2.5 Pro |
|---|---|---|---|
| Easy | 约 96% | 约 80% | 约 93% |
| Medium | 约 90% | 约 53% | 约 57% |
| Hard | 约 75% | 约 42% | 约 52% |
论文正文给出的更精确数字包括:
- Claude:Easy 96.67%,Hard 75.17%;
- Gemini:Easy 93.67%,Medium 57.80%,Hard 52.17%。
最值得关注的不是所有模型都会随难度下降,而是下降速度不同。
在 Easy 任务上,Claude 与 Gemini 的差距很小;进入 Medium 和 Hard 后,Claude 的优势明显扩大。
这表明基础模型对 Agent 的影响并不会被工具完全抹平。工具可以让模型执行和观察,但复杂任务仍然要求模型具备更强的:
- 长上下文理解;
- 多步规划;
- RTL 语义推理;
- 错误归因;
- 跨阶段状态维护。
换句话说:
Agent 框架能够扩展模型能力,但不能替代基础模型能力。
13. 定性结果:作者观察到了哪些 Agent 行为?
除了表格,论文还总结了五类行为。
13.1 调试能力
Agent 能够根据 testbench 失败、语法错误、环境配置和 Lint 结果反复修改设计。
作者认为,这类循环有望减少工程师在基础错误定位上的人工时间。
13.2 物理设计迭代
Hardening Agent 会调整 OpenLane 配置和 RTL,尝试改善 PPA,并处理 timing、antenna 和 DRC 违规。
这说明 Agent 并非只会“重新跑一遍”,而是能够根据流程指标改变下一轮动作。
13.3 Python 验证优势
作者观察到 cocotb 比纯 Verilog testbench 更容易支持复杂验证场景,并将其归因于模型对 Python 的熟练程度和 cocotb 的抽象能力。
13.4 不同模型处理 Lint 错误的能力差异明显
Claude 驱动的系统通常能根据错误继续修复;其他模型在部分中等难度任务上会重复同一种错误,陷入循环。
这一观察很重要,因为它揭示了 Agent 的一个常见失败模式:
执行工具 ↓ 看到错误 ↓ 做出相似修改 ↓ 再次得到相似错误 ↓ 没有停滞检测,继续循环13.5 遇到陌生问题时会调用向量数据库
系统在 OpenLane、Lint 和 Caravel 问题上会查询 RAG,寻找相似错误和建议。
不过,这些结论主要来自作者的定性观察,论文没有给出 RAG 调用次数、命中率或“使用/不使用 RAG”的量化对照。
14. 实验如何论证方法有效?
这篇论文的证据不是单一的“平均分更高”,而是由多层证据组成。
| 论文主张 | 实验证据 | 能够支持什么 | 仍不能证明什么 |
|---|---|---|---|
| 系统可处理多类 ASIC 任务 | 20 个任务覆盖 RTL、调试、验证和 Caravel 集成 | 说明系统具备一定任务广度 | 不能代表所有 ASIC 流程和工艺均可泛化 |
| 系统能进入物理实现 | Benchmark 检查配置文件和 GDSII | 比只检查 RTL 更接近真实流程 | 生成 GDSII 不等于完成工业 signoff 或可直接流片 |
| 基础模型显著影响 Agent 表现 | 三种模型的得分、步骤和成本差异 | 说明 Agent 不能脱离模型能力讨论 | 不能量化 Agent 相比裸模型的增益 |
| 强模型在困难任务上更稳定 | Easy/Medium/Hard 分组结果 | 支持复杂度越高越依赖推理能力 | 缺少多次重复实验和置信区间 |
| Agent 能调试、优化并使用 RAG | 作者对运行轨迹的定性总结 | 说明系统确实出现这些行为 | 无法隔离每个组件的独立贡献 |
| Benchmark 评价开放式任务 | Checkpoints、testbench 执行、GDSII 检查 | 比格式匹配更适合 Agent | LLM Judge 仍可能存在主观偏差 |
因此,更准确的结论是:
论文证明了一个集成多 Agent、硬件工具和 RAG 的系统,可以在一组开放式 ASIC 任务上产生可执行产物,并且基础模型越强,复杂任务的完成度通常越高。
但它还没有严格证明:
四 Agent 一定优于单 Agent、RAG 一定带来多少提升、cocotb 一定优于 HDL testbench,或该系统已经达到无人值守流片水平。
15. 这篇论文有哪些局限?
一篇真正的论文阅读不能只看 88%,还要看证据链中缺少什么。
15.1 缺少“同一模型,不使用 ASIC-Agent”的直接基线
论文比较的是:
ASIC-Agent + Claude ASIC-Agent + GPT-4.1 ASIC-Agent + Gemini但没有系统比较:
裸 Claude vs ASIC-Agent + Claude 裸 GPT-4.1 vs ASIC-Agent + GPT-4.1因此,实验清楚证明了“基础模型会影响 Agent”,却没有直接量化“ASIC-Agent 框架本身带来了多少提升”。
15.2 缺少组件消融实验
论文没有分别移除:
- Verification Agent;
- Hardening Agent 的专用日志调试器;
- 外部知识库;
- 自动 Lint;
- cocotb;
- 多 Agent 分工。
所以无法回答:
88% 中究竟有多少来自基础模型,有多少来自工具,有多少来自 RAG,又有多少来自角色拆分?
15.3 LLM Judge 仍然可能带来评价偏差
论文固定 Gemini 2.5 Pro 作为 Judge,并通过人工审阅反复改进评分逻辑,这比完全不校验要可靠。
但正文没有报告:
- Judge 与人工评分的一致率;
- 不同 Judge 之间的方差;
- Judge 对不同被评模型是否存在偏置;
- Checkpoint 权重变化对排名的影响。
因此,最终得分仍应理解为该评测框架下的结果,而不是绝对客观的“ASIC 能力百分比”。
15.4 缺少重复实验和统计不确定性
论文给出了每个任务的一组得分、步骤和成本,但没有报告多次独立运行、标准差或置信区间。
Agent 任务通常对初始生成、采样和错误轨迹较敏感,单次运行可能放大偶然性。
15.5 生成 GDSII 不等于完成工业级签核
论文覆盖 OpenLane、OpenROAD、Yosys、KLayout 和 Caravel,是非常有价值的开源流程验证。
但论文没有提供完整的工业级 signoff 证据,例如:
- 每个任务的最终 WNS/TNS;
- 面积、功耗和频率目标;
- DRC/LVS 详细结果;
- 工艺角与多模式多角分析;
- 形式验证;
- 实际流片和硅后验证。
因此,论文更准确地证明了:
Agent 可以走通并调试一个开源 RTL-to-GDSII 工作流。
而不是:
Agent 已经可以替代 ASIC 工程团队完成无人值守流片。
15.6 多 Agent 协调与长期状态机制描述仍然偏粗
论文详细说明了四类 Agent 的职责,但没有充分展开:
- Agent 之间如何传递上下文;
- 谁拥有唯一状态权威;
- 失败后如何回滚;
- 如何判断停滞;
- 最大迭代次数和停止条件;
- 多 Agent 冲突如何处理;
- 项目状态如何持久化和重放。
这些恰恰是把研究原型变成可靠工程系统时最关键的部分。
15.7 验证环境仍需进一步防止“自测自证”
Benchmark 会检查 testbench 内容并实际执行,但论文也允许 Agent 自主开发测试环境。
这带来一个天然风险:
Agent 生成的 RTL 和 Agent 生成的 testbench 可能共享同一个错误理解,从而出现“错误设计通过错误测试”。
检查点可以缓解这个问题,例如要求覆盖 wrap-around、随机输入或溢出断言,但更强的评测还需要:
- 独立只读 verifier;
- 隐藏测试;
- 参考模型;
- 形式性质;
- 对 testbench 的防篡改和完整性校验。
16. 我们可以从中受到什么启发?
启发一:硬件 Agent 的核心不是代码生成,而是“证据驱动的执行闭环”
真正的 Agent 不应该在输出代码后直接宣布完成,而应持续经历:
修改 ↓ 真实工具执行 ↓ 结构化观察 ↓ 错误归因 ↓ 再次修改 ↓ 完成门验收没有执行和证据,所谓 Agent 很容易退化成“会多轮聊天的代码生成器”。
启发二:工具接口应该表达工程动作,而不是只暴露 Shell
相比让模型随意拼接命令:
bash-lc"一长串参数和路径"更可靠的方式是提供领域工具:
run_simulation run_synthesis get_timing_summary get_utilization run_hls_csynth inspect_failures工具返回值也不应只是几万行原始日志,而应包含:
- 成功或失败状态;
- 错误阶段;
- 文件和行号;
- WNS/TNS;
- LUT/FF/BRAM/DSP;
- Latency/II;
- 未满足的约束;
- 可追溯的日志与产物路径。
启发三:多 Agent 的价值来自职责边界,不是角色数量
ASIC-Agent 的四个角色对应明确的工程阶段,这是合理拆分。
但论文同样提醒我们:Main Agent 仍然维护全局状态。对于实际系统,更重要的是保证:
一个权威目标 一个权威工程版本 一个权威验证状态 多个专用执行能力而不是让多个 Agent 各自维护一套“它认为正确”的工程状态。
启发四:验证语言可以利用模型优势,但评测必须独立
用 cocotb 和 Python 构建复杂验证是一条很实用的路线,因为 LLM 对 Python 的理解和生成通常更稳定。
但在 benchmark 或高可信任务中,还必须把:
设计者 验证者 最终裁判尽量分离,避免同一个模型既写 DUT、又写 testbench、最后还评价自己。
启发五:RAG 最有价值的内容是“工具错误与工程经验”
对于 EDA Agent,通用论文检索未必是最高优先级。
更应该优先建设:
- 常见错误及其根因;
- 工具版本与配置差异;
- 约束模板;
- 可复用 IP;
- 日志模式;
- 已验证修复案例;
- 设计规则和接口规范。
这种知识能直接改变 Agent 的下一步动作。
启发六:Benchmark 必须评价过程产物,而不只评价最后一份代码
ASIC-Agent-Bench 的检查点思路非常适合复杂硬件 Agent。
一个 FPGA/ASIC 任务可以拆成:
工程读取正确 ↓ 代码修改完成 ↓ Lint 通过 ↓ 功能仿真通过 ↓ 综合通过 ↓ 实现完成 ↓ 时序满足 ↓ 资源满足 ↓ 证据完整即使 Agent 没有完成全部任务,也可以通过原子检查点知道它停在了哪里,而不是简单记为 0 分。
启发七:模型选型应该按任务难度和成本动态路由
Table I 显示:
- 简单任务上,不同模型差距可能很小;
- 困难任务上,强模型优势明显;
- 某些具体任务中,Gemini 又会超过 Claude;
- GPT-4.1 的成本最低,但复杂任务得分较低。
因此,一个工程 Agent 可以采用分层策略:
简单检查与机械修改 → 低成本模型 复杂 RTL 与跨文件调试 → 强模型 OpenLane 长日志诊断 → 专用分析模型 连续失败或高风险任务 → 升级模型并触发人工复核这比全程固定使用最贵模型更有实际价值。
17. 对 FPGA Agent 开发的直接借鉴
以下内容属于从论文方法向 FPGA/Vivado/Vitis HLS 场景的工程外推,并非 ASIC-Agent 原论文直接实现。
如果把 ASIC-Agent 的思想迁移到 FPGA Agent,可以将 OpenLane 与 Caravel 替换为 Vivado 和 Vitis HLS Provider:
用户目标 / 现有工程 ↓ Main FPGA Agent ↓ RTL / HLS 编辑工具 ↓ Vivado Simulation / Vitis HLS C Simulation ↓ Vivado Synthesis / Implementation ↓ Vitis HLS C Synthesis / Co-simulation ↓ 时序、资源、Latency、II 结构化解析 ↓ 诊断与再次修改 ↓ Evidence Gate建议至少设置五级完成门:
功能门 ↓ Lint / 编译门 ↓ 仿真门 ↓ 综合门 ↓ 实现与时序门HLS 任务则应额外检查:
- C Simulation;
- C Synthesis;
- Co-simulation;
- Latency;
- Initiation Interval;
- LUT/FF/BRAM/DSP;
- 接口协议和数据一致性。
ASIC-Agent 最值得移植的不是“四个 Agent 的名字”,而是:
工具动作、结构化观察、工程状态、完成门和 benchmark 检查点之间必须闭合。
18. 最终评价:这篇论文最值得记住的是什么?
ASIC-Agent 的 88% 平均得分很吸引眼球,但这篇论文真正值得记住的,不是某个模型的排名,而是三个更重要的判断。
第一,硬件 Agent 的研究对象正在从“生成一段 RTL”转向“完成一段可执行工程流程”。
第二,Agent 的能力必须通过真实工具、可观察产物和完成证据来评价,而不能只看输出文本是否像代码。
第三,**Benchmark 本身就是系统研究的一部分。**当 Agent 可以自主拆文件、写测试、调用工具和选择步骤时,传统单文件 Pass@1 已经不足以描述它的能力。
从这个角度看,ASIC-Agent 并不是在证明“AI 已经可以自动流片”。它更像是在建立一条通往这个目标的研究路径:
LLM + 领域 Agent + EDA 工具 + 外部知识 + 可执行反馈 + 工程 Benchmark这篇论文的系统设计很有启发,Benchmark 方向也非常值得继续发展;但要走向真正可靠的 ASIC/FPGA 工程智能体,下一步仍需要补齐:
- 同模型裸 LLM 基线;
- 组件消融;
- 多次重复实验;
- 独立隐藏验证;
- 形式与时序证据;
- 更清晰的状态、回滚和停止机制;
- 实际工程与硬件验证。
对于正在研究 Verilog 代码生成、EDA Agent、ASIC 自动化、FPGA Agent 或硬件智能体 benchmark 的读者,这篇论文值得重点阅读。
参考文献
[1] Ahmed Allam, Youssef Mansour, Mohamed Shalan.ASIC-Agent: An Autonomous Multi-Agent System for ASIC Design with Benchmark Evaluation. 2025 IEEE International Conference on LLM-Aided Design (ICLAD), pp. 23–29, 2025. DOI: 10.1109/ICLAD65226.2025.00033.
#ASIC #EDA #LLM #AI Agent #Verilog #OpenLane #Caravel #数字芯片 #论文阅读 #人工智能