🧠 NPU·RTL 实战
📘 30章 从入门到项目 · 数字芯片加速
🎯 Verilog / VHDL
⚙️ 微架构
🚀 YOLOv5s
01
NPU与AI芯片概述
从CPU到NPU的演进 · AI芯片分类与架构 · 边缘计算与数据中心
02
RTL设计基础回顾
Verilog/VHDL核心语法 · 组合逻辑与时序逻辑 · 同步设计亚稳态
03
NPU微架构概览
整体数据流 · 计算单元MAC阵列 · 控制单元与存储系统
04
MAC阵列设计(一)
乘累加单元RTL实现 · 流水线设计 · 输入重定时
05
MAC阵列设计(二)
脉动阵列架构 · 数据复用与广播机制
06
MAC阵列设计(三)
Winograd卷积加速 · RTL实现与资源权衡
07
激活函数单元设计
ReLU/Sigmoid/Tanh · LUT实现与分段线性近似
08
池化单元设计
最大池化与平均池化RTL · 并行化处理
09
数据加载单元 (Load Unit)
DMA控制器 · AXI总线接口 · 数据对齐与填充
10
权重存储与分发
SRAM/Register File建模 · 权重广播与多播
11
特征图存储与行缓冲
Line Buffer设计 · 滑动窗口生成 · 数据重用
12
累加器与偏置单元
累加器树 · 偏置加法 · 量化参数融合
13
控制通路设计(一)
FSM指令译码 · 微码控制器设计
14
控制通路设计(二)
指令集定义 · 多发射与乱序执行支持
15
量化与反量化单元
INT8/INT4量化 · 对称/非对称 · Scale/Zero Point
16
Batch Normalization融合
BN层计算原理 · RTL实现与卷积融合技巧
17
残差连接 (Residual Add)
加法树设计 · 流水线控制 · 多路复用
18
Softmax与归一化
指数近似CORDIC/LUT · 除法器 · 流水线实现
19
矩阵乘法加速单元
GEMM的RTL实现 · 分块Tiling策略
20
稀疏计算支持
CSR/CSC编码 · 跳过零值计算 · 索引生成
21
Winograd与FFT加速
频域卷积原理 · RTL实现与资源对比
22
多核NPU互联
NoC基础 · Ring/Mesh拓扑 · 数据一致性
23
片内存储层次设计
SRAM/Cache/TCM模型 · 延迟与带宽权衡
24
外部存储接口
DDR/LPDDR控制器 · 读写调度 · 带宽优化
25
功耗优化技术
时钟门控 · 数据门控 · 操作数隔离 · 多电压域
26
验证策略(一)
UVM环境搭建 · 定向/随机测试 · 覆盖率收集
27
验证策略(二)
形式化验证 · 属性检查 · 等价性检查
28
综合与时序收敛
Design Compiler脚本 · 时序约束 · 关键路径优化
29
FPGA原型验证
Vivado/Vitis流程 · 片上调试ILA/VIO · 性能评估
30
项目实战:YOLOv5s卷积加速
从算法到RTL完整流程 · 以YOLOv5s为例