项目概述
芯片是 AI 时代的基石。但当你翻开 TPU 论文,面对 256×256 的脉动阵列、CISC 指令集、24MiB 统一缓冲区……你真的能从零写出一颗可用的 IP 核吗?
这个项目就是带你亲手把一颗 TPU 从论文变成代码。
MiniTPU 是一颗基于 Google TPU v1 架构的 4×4 脉动矩阵乘法 IP 核。它不是玩具——它完整复刻了 TPU 的核心数据通路:
Host 接口 → UB 统一缓冲区 → MXU 4×4 脉动阵列 → ACC 累加器 → AU ReLU → UB 回写
完整 TPU v1 数据通路,6 级流水,约 21 个时钟周期完成一次 4×4 矩阵乘法。
从 MAC 运算原理到对角波前传播,从行进式 CE 到 AXI4-Stream 接口,从状态机控制到 UVM 验证平台——你将亲手实现每一个模块,理解每一行 RTL 背后的架构决策。
你将获得什么?
- 数学原理:矩阵乘法、MAC 运算、INT8 有符号计算
- 脉动阵列:对角波前传播、行进式 CE 设计
- 10 大模块:PE、MXU、UB、WFIFO、ACC、AU、FSM 等
- 接口协议:AXI4-Stream 完整握手与背压处理
- UVM 验证:14 项测试用例、9 个功能覆盖点
- 完整文档:架构设计文档、教学 PPT V2.0
学习路径
-
数学基础与架构理解
矩阵乘法原理、MAC 运算、TPU v1 架构对照分析
-
PE 处理单元设计
MAC 乘累加、行进式 CE 传播、有符号运算、时序对齐
-
核心模块实现
MXU 阵列、UB 统一缓冲区、WFIFO 权重队列、ACC 累加器、AU 激活单元
-
输入输出控制
input_ctrl 行错位、weight_ctrl 列错位、output_ctrl 回写与输出
-
控制状态机与顶层接口
IDLE→SETUP→COMPUTE→OUTPUT 四状态 FSM、AXI4-Stream 完整时序
-
UVM 验证平台搭建(全流程专属)
Driver、Monitor、Scoreboard、参考模型、覆盖点,14 项测试用例零误差通过
与真实 TPU v1 的对照
这不是缩水版,而是等比例缩放的教学版。每个模块都能在 TPU v1 中找到对应:
| TPU v1 模块 |
TPU v1 规格 |
本项目 |
| 统一缓冲区 UB |
24 MiB SRAM |
64×8bit |
| 矩阵乘法单元 MXU |
256×256 阵列 |
4×4 阵列 (16 PE) |
| 累加器 ACC |
4 MiB INT32 |
4×32bit |
| 激活单元 AU |
ReLU/Sigmoid/TanH |
ReLU 组合逻辑 |
| 控制单元 |
CISC 12 条指令 |
FSM + 5 条指令 |
参考论文:Jouppi et al., "In-Datacenter Performance Analysis of a Tensor Processing Unit," ISCA 2017 — TPU v1 原始论文,本项目的设计基石。
参与方案与面向人群
无论你是想快速建立芯片设计思维,还是想走完从设计到验证的完整 IC 开发流程,都有适合你的方案。
方案 A:仅设计模块
聚焦 RTL 设计,从 PE 到顶层完整实现 MiniTPU IP 核,掌握脉动阵列架构设计能力。
- 数学原理与 TPU v1 架构分析
- PE 处理单元:MAC + 行进式 CE
- 4×4 脉动阵列 MXU 互联设计
- UB / WFIFO / ACC / AU 四大核心模块
input_ctrl 行错位 + weight_ctrl 列错位
ctrl_fsm 四状态控制机 + 5 条指令
- AXI4-Stream 顶层接口与时序
- 完整架构设计文档 + 教学 PPT
方案 B(推荐):设计 + 验证全流程
在设计模块基础上,增加完整 UVM 验证平台搭建,走完 IC 开发全流程。
- 包含方案 A 全部设计内容
- UVM 验证架构搭建(Agent、Driver、Monitor)
- SystemVerilog 参考模型:矩阵乘法 + ReLU
- Scoreboard 逐元素零误差比对
- 9 个功能覆盖点采样与收集
- 14 项测试用例设计与调试
- 边界值、溢出、连续运算、背压测试
- 验证覆盖率达标指导
在芯片行业,只会写 RTL 的工程师和能搭建验证平台的工程师,薪资差距可达 30%-50%。UVM 验证 能力是 IC 公司招聘的核心筛选条件之一。
适合谁?
- 在校生:电子、微电子、通信、计算机相关专业,想积累芯片项目实战经验,为秋招、春招简历加分
- 转行党:有 Verilog 基础,想系统学习 AI 芯片架构设计,切入 IC 行业
- 在职提升:IC 行业从业者,想深入理解 TPU 脉动阵列架构,拓展技术栈
- 考研/留学:需要在个人项目中展示芯片设计与验证能力,提升申请竞争力
前置要求
- 了解 Verilog/SystemVerilog 基本语法(if/else、always、assign、模块例化)
- 了解数字电路基础(寄存器、组合逻辑、时序逻辑)
- 有热情、有耐心——芯片设计需要细心的时序思考
1V1 直授会根据你的实际水平调整教学节奏。
学完还能往哪走?
MiniTPU 不是一个终点,而是一个起点。完成本项目后,你将具备向以下方向延伸的能力:
| 扩展方向 |
对应 TPU v1 |
难度 |
| 双缓冲累加器 |
4 MiB 双缓冲 ACC |
⭐ |
| 扩大阵列至 8×8 |
MXU Tiling 分块 |
⭐⭐ |
| Sigmoid / TanH 激活 |
Activate 单元扩展 |
⭐⭐ |
| Conv2D 卷积支持 |
im2col 变换 |
⭐⭐⭐ |
| FPGA 实板部署 |
完整芯片验证 |
⭐⭐ |
这些方向都可以在 1V1 指导中作为进阶内容继续深入。
项目背景与资源
MiniTPU 4×4 脉动矩阵乘法 IP 核 · 教学版本 V2.0
参考 Google TPU v1 架构 · 面向教学的入门实践项目
作为 云栈社区 的开发者朋友,本项目所有设计文档与教学资料已同步至社区 技术文档 板块,欢迎查阅。
|