从零学芯片设计与AI推理

本科生友好指南 — 用大白话讲清楚 RISC-V 芯片、FPGA AI 推理、HLS 设计

👋 你好!本指南假设你只有基础的计算机知识(知道二进制、会一点编程),然后一步一步带你理解三个真实的工程项目:

1️⃣ rv_control — 一颗 200MHz 的 RISC-V 芯片是怎么从 Verilog 代码变成 GDS 版图的

2️⃣ MiniCpm5 — 怎么用 FPGA 加速 AI 模型的推理(让 AI 跑得更快)

3️⃣ Qwen2.5 — 怎么把 Qwen2.5 这个"大模型"塞进一块 FPGA 板卡里

🎯 学习方法:每页都有 Mermaid 流程图(可视化理解)+ 大白话讲解 + 知识图谱导航。遇到不懂的术语,页面里都有解释。

3
工程项目
15+
Mermaid 图解
50+
知识卡片

🚀 从哪开始?—— 三条学习路线

学习路线图

flowchart TD A[🎓 本科生起点] --> B{你对什么感兴趣?} B -->|硬件/芯片| C[🔧 路线1: rv_control] B -->|AI/算法加速| D[🧠 路线2: MiniCpm5] B -->|大模型/LLM| E[🤖 路线3: Qwen2.5] C --> C1[先看: 数字电路基础] C --> C2[再看: RISC-V 是什么] C --> C3[然后: SoC 架构] C --> C4[最后: 物理设计 GDS] D --> D1[先看: FPGA 是什么] D --> D2[再看: HLS 怎么工作] D --> D3[然后: INT4 量化] D --> D4[最后: Token 输出头] E --> E1[先看: Transformer 架构] E --> E2[再看: GGUF 量化格式] E --> E3[然后: PS 裸机运行时] E --> E4[最后: 板级验证] style A fill:#3987e5,stroke:#fff style C fill:#199e70,stroke:#fff style D fill:#c98500,stroke:#fff style E fill:#e66767,stroke:#fff

🔧 rv_control — 一颗 RISC-V 芯片的诞生

什么是 rv_control?30秒理解

graph LR A[💻 你写的C代码] -->|编译器| B[🔢 RISC-V 机器指令] B -->|CPU执行| C[🧠 rv32i_core
3级流水线CPU] C -->|地址读写| D[🔀 bus_fabric
总线/路由器] D -->|0x1000_0000| E[📡 I2C 控制器] D -->|0x1000_1000| F[📡 SPI 控制器] D -->|0x1000_2000| G[📡 UART x4] D -->|0x1000_6000| H[📡 GPIO x16] D -->|0x0000_0000| I[💾 64KB RAM] style C fill:#3987e5,color:#fff style D fill:#c98500,color:#000

💡 一句话:rv_control 就像一台微型电脑——CPU是大脑,总线是神经系统,外设(I2C/SPI/UART/GPIO)是手和脚,RAM是短期记忆。

📖 第1课:数字电路与RISC-V基础

什么是组合逻辑?什么是时序逻辑?RISC-V 指令集怎么工作?用大白话讲清楚芯片设计的基础知识。

入门基础概念RISC-V

🏗️ 第2课:rv_control 芯片架构

CPU 怎么连上总线?4种外设各做什么?内存映射是什么?用 Mermaid 图和通俗比喻讲清楚整个 SoC 的架构。

架构SoC总线

🧠 第3课:RV32I CPU 深入

3级流水线怎么工作?什么叫"load-use冒险"?CSR寄存器是干嘛的?逐行讲解 CPU 核心的 415 行代码。

CPU流水线指令集

📡 第4课:四种外设详解

I2C的9状态FSM、SPI的4种模式、UART的FIFO缓冲、GPIO的中断机制——每个外设的原理、时序和应用场景。

I2CSPIUARTGPIO

🏭 第5课:从RTL到GDS全过程

RTL→综合→布图→布局→时钟树→布线→GDS——每一步是做什么的?OpenROAD 怎么跑的?200MHz 怎么做到的?

ASICOpenROAD物理设计GDS已生成

🕸️ 第6课:知识图谱全览

19个节点、30条边、5层架构——用可视化图谱一遍看懂所有模块之间的关系。Understand-Anything 方法论实战。

知识图谱可视化导航

🧠 MiniCpm5 — FPGA 加速 AI 推理

FPGA 怎么加速 AI?

flowchart LR A[🤖 AI模型
MiniCPM5-1B] -->|提取输出头| B[📐 lm_head
矩阵乘法] B -->|INT4量化| C[🗜️ 权重压缩4倍] C -->|HLS生成硬件| D[⚡ FPGA加速器] D -->|UART输出| E[📝 token结果] style A fill:#e66767,color:#fff style D fill:#199e70,color:#fff

💡 核心思想:AI 模型的核心计算是"矩阵乘法"——拿一个向量乘以一个大矩阵。FPGA 上可以并行计算很多个乘法,所以比 CPU 快。

📖 第1课:AI推理与FPGA基础

什么是推理?模型的"输出头"是干嘛的?FPGA 和 CPU 有什么区别?从零讲清楚 AI 推理和硬件加速的关系。

入门AI推理FPGA

🔢 第2课:INT4 量化与 HLS 设计

什么是 INT4 量化?weight/hidden/scale 三种数据怎么配合?HLS 怎么把 C++ 变成电路?Preload cache 为什么快?

INT4量化HLS

🔀 第3课:Target B vs Target D 双线策略

为什么搞两条线?Target B(手写RTL小词表)验证了什么?Target D(HLS大窗口)推进了什么?渐进式开发的智慧。

双线策略渐进开发

🤖 Qwen2.5 — FPGA 上跑大模型

怎么把大模型塞进 FPGA?

flowchart TB A[📦 Qwen2.5-0.5B
24层Transformer] -->|GGUF量化| B[🗜️ Q6_K压缩
290张量/392MB] B -->|拆成算子| C[🔧 9种HLS IP] C --> C1[Embedding查表] C --> C2[RMSNorm归一化] C --> C3[Attention注意力] C --> C4[MLP前馈网络] C1 & C2 & C3 & C4 --> D[⚡ ZCU106 FPGA] D -->|UART| E[💬 中英文输出] style A fill:#e66767,color:#fff style D fill:#199e70,color:#fff

📖 第1课:Transformer 大白话

Token是什么?Embedding是干嘛的?Attention怎么"注意"?24层Decoder一层层做什么?用比喻讲清楚。

Transformer入门LLM原理

🗜️ 第2课:GGUF 量化与 HLS 算子

Q4_K/Q5_K/Q6_K 是啥?超级块怎么压缩权重?9种HLS算子各做什么?Tokenizer 怎么把中文变成数字?

GGUF量化HLS算子

🖥️ 第3课:ZCU106 板级实战

PMUFW/FSBL/JTAG 是什么?PS端A53怎么跑裸机程序?UART怎么传token?6/6板级回归怎么通过的?

板级ZCU106裸机6/6通过

第4课:Qwen2.5 完整工程 Wiki

从本科生模型原理走到真实工程:模型资产、Host 参考、HLS、PS/UART、板级执行、模块接口和 RAG 方法。

工程全图接口RAGHTML Wiki

🛠️ 我们用了哪些"学习神器"?

📚 LLM Wiki

Andrej Karpathy 发明的方法:让 AI 帮你建立知识库,而不是每次都从零检索。每个项目都有独立的 Wiki,收录了全部资料、交叉引用、矛盾标记、进度表。

3个Wiki50+页面

🕸️ Understand-Anything

GitHub 70K Star 的代码知识图谱工具。Tree-sitter 静态分析 + LLM 语义理解 = 自动生成交互式项目地图。每个项目都有图谱 JSON。

3个图谱52节点/65边

📊 Mermaid 可视化

用流程图、状态图、时序图把抽象概念变成看得见的图。本学习指南中所有架构图、数据流图、FSM 状态图都用 Mermaid 绘制。

15+图解6种图表类型
💡 学习建议

1. 先看图,再读字:每页的 Mermaid 图是"鸟瞰视角",看完图再深入文字
2. 跟着知识图谱导航:每个页面底部有"相关知识"链接,像维基百科一样跳转
3. 不要死记硬背:理解"为什么这样设计"比记住"用了多少单元"重要得多
4. 动手跑代码:每个项目都有 Makefile,clone 下来跑一遍仿真比看十遍文档有用