目录

Babel v1.3

这是一个开源的AI原生Chiplet设计流程,基于开源EDA工具链和AI Coding Agent

同步更新

https://www.gitlink.org.cn/amoslee2011/Babel https://github.com/amoslee2026/Babel

学习教程

面向电子工程毕业生的完整学习教程(16 章),涵盖 AI 原生芯片设计全流程:

👉 tutorial/

Part 章节 主题
I. 范式与准备 01-04 AI 原生范式、前置知识、用 Claude Code 学习、人机协作模式
II. 规范驱动设计 05-07 PRD、架构设计、微架构规范 (MAS)
III. AI 实现流程 08-11 RTL 生成、验证闭环、逻辑综合、物理设计
IV-V. 工具与实战 12-16 EDA 工具链、NPU 实战走读、调试、术语表、延伸阅读

创新点与核心特性

1. AI 原生 Chiplet 设计范式

首个完整开源的”AI Coding Agent 驻动”芯片设计流程,从自然语言需求到 GDSII signoff 全流程由 Agent 自动化完成。打破传统 IC 设计依赖资深工程师手工迭代的方式,用专业化 Agent 代替人力完成设计、验证、综合、物理设计各阶段。

2. 5-Agent 流水线 + Issue Handoff 协议

5 个专业化 Agent 通过 labeled issue 触发 handoff 协作,每个 Agent 有独立迭代收敛限制和 escalate-user 机制,超限时自动暂停请求人类决策。下游发现问题可通过 *-needs-fix 回流到上游修正。

用户需求 → [architect] → guru-rtl → guru-verification → guru-synthesis → guru-pd → signoff
              ↑_________________________*-needs-fix 回流__________________________|

3. Spec-Code 双向追溯体系

三层追溯模型确保需求、代码、断言、约束始终一致:

  • Layer 1: RTL 文件头 @requirement / @spec_hash / @spec_ref
  • Layer 2: 内嵌 SVA 断言 @verifies / @constraint 标签
  • Layer 3: SDC 约束 @requirement / @spec_ref / @constraint

REQ_ID 编码规范跨 PRD → ARCH → MAS → RTL → TB → SDC 全链路传播,babel_traceability.py 生成多阶段追溯矩阵。

4. 变更传播 + Commit 质量门禁

Hook 自动检测上游 artifact 变更 → 标记下游 stale → 提醒重跑下游 Agent。git commit 前自动执行质量门禁:RTL lint、REQ_ID 唯一性、@spec_hash 一致性校验,防止上下文断裂。

5. 寄存器映射 Pipeline

每个模块的 regmap.md 一键生成三种产物:Markdown/SVD 文档、SystemVerilog 断言(reset/RO/W1C/reserved/addr)、SHA256 spec hash 注入,确保寄存器定义与实现一致。

6. LLM 驱动 EDA 工具链

35+ Skill 封装开源 EDA 工具(Yosys/OpenSTA/Magic/Netgen/QRouter/KLayout/Verilator/ABC)为 Agent 可调用的标准化接口。综合采用 5-Phase 并行策略,验证要求 100% 功能 + 100% code 覆盖率。


项目级 Agent / Skill 系统

Babel 采用 5-agent 流水线架构,每个 agent 专注于特定设计阶段,通过 issue handoff 协作。

Agent 流水线

用户需求 → [bba-architect] → bba-guru-rtl → bba-guru-verification → bba-guru-synthesis → bba-guru-pd → signoff
              ↑_________________________*-needs-fix 回流__________________________|
Agent 触发方式 职责
/bba-architect 新设计想法 / arch-needs-fix PRD → arch_spec → MAS,架构设计流程负责人
/bba-guru-rtl ready-for-rtl / rtl-needs-fix MAS → lint-clean SystemVerilog,RTL生成专家
/bba-guru-verification ready-for-verification 100% 覆盖率验证,验证专家
/bba-guru-synthesis ready-for-synth / synth-needs-fix SDC + CDC + 并行综合 → timing closure
/bba-guru-pd ready-for-pd / pd-rework Floorplan → Place → Route → DRC/LVS → GDSII

使用方法

启动新设计

# 在 Claude Code 中描述设计需求
/bba-architect
# 例如: "设计一个 AI 推理处理器 主频1Ghz,能运行主流大模型,使用 ASAP7 PDK"

继续现有设计

# 查看当前状态
/bb-list-issues

# 触发特定阶段
/bba-guru-rtl      # RTL 生成
/bba-guru-verification  # 验证
/bba-guru-synthesis     # 综合
/bba-guru-pd      # 物理设计

关键 Skill 分类

类别 Skill 用途
EDA 工具 /bb-invoke-yosys 并行综合 (LLM驱动5-Phase)
/bb-invoke-verilator 仿真 + 覆盖率收集
/bb-invoke-opensta 静态时序分析
/bb-invoke-magic Placement + DRC
/bb-invoke-netgen LVS 比对
/bb-invoke-qrouter 详细布线
/bb-invoke-klayout GDSII 导出/验证
/bb-invoke-abc 逻辑优化
质量检查 /bb-check-lint verible lint (含修复迭代)
/bb-check-cdc CDC + RDC 检查
/bb-spec-review MAS 对抗评审
/bb-code-review RTL 代码审查
流程生成 /bb-rtl-coder MAS → SV 代码生成
/bb-create-sdc MAS → SDC 约束
/bb-generate-tb 测试平台生成
/bb-create-verif-plan 验证计划
/bb-create-floorplan Floorplan TCL
质量门控 /bb-gate-rtl-quality RTL 交付检查
/bb-gate-test-quality 验证交付检查
/bb-gate-synth-quality 综合交付检查
/bb-gate-pd-quality PD 交付检查
辅助工具 /bb-find-module-deps 模块依赖拓扑排序
/bb-trace-signal-path 信号路径追踪
/bb-collect-coverage 覆盖率数据收集
/bb-search-protocol / /bb-search-cbb 协议/CBB 复用搜索
问题管理 /bb-create-issue / /bb-list-issues / /bb-close-issue Issue 协议

设计产物目录结构

designs/<name>/
├── idea/
│   └── parsed_idea.json      # 解析后的设计需求
├── PRD.md                    # 产品需求文档
├── arch_spec/
│   ├── arch_doc.md           # 架构文档
│   ├── data_flow.md          # 数据流
│   └── workflow.md           # 工作流
├── mas/
│   ├── mas.json              # 微架构规范 (schema-valid)
│   ├── fsm/                  # FSM 定义
│   ├── datapath/             # 数据通路
│   └── verif_plan_seed.md    # 验证计划种子
├── rtl/
│   ├── *.sv                  # SystemVerilog 源码
│   ├── file_list.f           # 拓扑排序文件列表
│   └── rtl_artifact.json     # RTL 交付产物
├── tb/
│   ├── *.sv / *.py           # 测试平台 / cocotb
├── verif/
│   ├── verification_plan.md  # 完整验证计划
│   └── test_cases.md         # 测试用例列表
├── sim_results/
│   ├── *.log / *.vcd         # 仿真结果
├── coverage.json             # 覆盖率数据
├── test_report.json          # 验证报告
├── constraints/
│   └ *.sdc                   # 时序约束
├── synth_parallel/
│   ├── synthesis_summary.json # 并行综合结果
│   └ <module>/netlist.v      # 网表
├── synth_report.json         # 综合报告
├── pd/
│   ├── floorplan.def         # Floorplan
│   ├── placed.def / routed.def
│   ├── drc_report.txt / lvs_report.txt
│   └── timing_signoff.json   # Post-PD STA
├── gdsii/
│   └ *.gds                   # 最终布局
├── pd_report.json            # PD 交付报告
├── .handoff/
│   ├── ready-for-*.md        # 各阶段 handoff
│   ├── fix_iter.json         # 修复迭代计数
│   └── global_fix_iter.json  # 全局计数
└── ADR/
    └ *.md                    # 架构决策记录

Spec-Code Traceability

Babel v1.2 引入完整的 spec ↔ code 双向追溯体系,确保需求、代码、断言、约束始终一致。

三层追溯模型

Layer 1: Spec Header    — RTL 文件头部 @requirement / @spec_ref / @spec_hash
Layer 2: Inline SVA     — 寄存器断言内嵌 @verifies / @constraint 标签
Layer 3: Cross-Ref Tags — SDC 约束内嵌 @requirement / @spec_ref / @constraint

寄存器映射 Pipeline

每个模块拥有独立的 spec/MAS/<module>/regmap.md,通过自动化脚本生成三种产物:

spec/MAS/<module>/regmap.md
    ├── generate_regmap_doc.py    → doc/regmap/<module>.md + .svd
    └── generate_regmap_assertions.py → rtl/<module>/src/*_regmap_assertions.sv
                                           └── compute_spec_hash.py --inject (SHA256 注入)
模块 寄存器数 SVA Properties Spec Hash
M00_SystolicArray 4 22 sha256:40d48df8c266
M01_DataflowController 10 52 sha256:91d2b1405f45
M02_SRAM 3 18 sha256:66d1bba70afc
M03_DRAMController 4 20 sha256:081931ff9be5
M04_SystemBus 7 36 sha256:0e08e60cc0ad
M05_PowerManager 3 20 sha256:b04a03e91656
M06_ClockManager 3 20 sha256:eefa1152b74a
M07_ResetManager 3 20 sha256:1fd07a37ec6a

SDC 约束追溯

所有 SDC 约束命令内嵌 @requirement + @spec_ref 标签,由 babel_traceability.py sdc 自动扫描并生成 traceability/requirements_matrix.sdc.csv

REQ_ID 编码规范

前缀 含义 示例
REQ-M##-R### 模块寄存器需求 REQ-M00-R001
REQ-M##-F### 模块功能需求 REQ-M12-F001
REQ-NFR-F## 非功能需求(时序等) REQ-NFR-F001
REQ-SYS-## 系统级需求 REQ-SYS-001

自动化脚本

脚本 用途
scripts/generate_regmap_doc.py regmap.md → Markdown + CMSIS-SVD 文档
scripts/generate_regmap_assertions.py regmap.md → SystemVerilog 断言 (reset/RO/W1C/reserved/addr)
scripts/compute_spec_hash.py 计算 spec SHA256 并注入 RTL 文件头
scripts/babel_traceability.py 多阶段追溯矩阵生成 (prd/arch/impl/src/test/sdc)
scripts/allocate_req_id.py REQ_ID 自动分配
scripts/check_req_uniqueness.py REQ_ID 唯一性校验

Issue Handoff 协议

Agent 间通过 labeled issue 协作:

Label 含义
ready-for-rtl MAS 完成,等待 RTL 生成
ready-for-verification RTL lint-clean,等待验证
ready-for-synth 100% 覆盖率通过,等待综合
ready-for-pd Timing closed,等待物理设计
signoff GDSII 完成,用户审核
arch-needs-fix MAS 问题,回流 architect
rtl-needs-fix RTL 问题,回流 rtl guru
synth-needs-fix 综合问题,回流 synthesis guru
escalate-user 超出迭代限制,需用户决策

收敛与迭代限制

Agent 单阶段迭代限制 全局限制
architect 10
rtl lint 3 次 10
verification coverage 8 次 10
synthesis timing 6 次 10
pd total 8 次 (DRC 3 / LVS 2 / STA 3) 10

超过限制时,agent 自动触发 escalate-user issue,停止并等待用户决策。

快速开始示例

# 1. 启动 Claude Code
claude-code

# 2. 描述设计需求
> 设计一个简化版 UART 控制器,支持 9600 baud,目标频率 50MHz,使用 ASAP7

# 3. 或显式触发 architect
> /bba-architect

# 4. architect 会依次生成 PRD → arch_spec → MAS
#    每阶段完成后暂停,等待用户确认

# 5. 确认后继续,直到 ready-for-rtl 开启

# 6. 触发 RTL 生成
> /bba-guru-rtl

# 7. 依次触发后续阶段...

环境设置

# 加载 EDA 环境
source ~/wrk/eda_opensources/eda_env.sh

技术栈

工具 版本 用途
Yosys 0.35 RTL 综合
ABC latest 逻辑优化
OpenSTA 2.2.0 静态时序分析
Magic 8.3.641 Layout/DRC/LVS
Netgen 1.5 LVS 网表比对
QRouter 1.4 详细布线
KLayout 0.30.8 GDSII 查看/DRC
Verilator latest Verilog 仿真
verible latest SV lint

PDK

ASAP7 (Arizona State University 7nm PDK) — 开源预测性 7nm 工艺设计套件。

位置:libs/asap7/

Library 描述
asap7sc6t_26 6-track 标准单元库
asap7sc7p5t_27 7.5-track 标准单元库 (r27)
asap7sc7p5t_28 7.5-track 标准单元库 (r28)
asap7_sram SRAM 模型
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号