1. 课程导入与学习路线

1.1 为什么是RISC-V?——一个工程师的视角

做FPGA开发这么多年,我见过太多处理器架构了。ARM要授权费,x86不开放,MIPS基本退出了消费市场。直到RISC-V出现,我才觉得——嗯,这才是工程师想要的指令集。

RISC-V是个开放标准。你不需要付一分钱授权费。你可以自由修改、扩展、定制。说白了,它把处理器设计这件事,从「黑盒采购」变成了「白盒创新」。

我在一个IoT项目中遇到过这种情况:产品需要低功耗,但市面上的MCU要么太贵,要么功耗下不去。后来我们用蜂鸟E203自己定制了一颗RISC-V内核,把不需要的指令砍掉,功耗直接降了40%。这种自由度,封闭架构给不了你。

核心认知: RISC-V不是一款芯片,而是一套指令集规范(ISA)。蜂鸟E203是这套规范的一个具体实现——一个面向嵌入式场景的32位RISC-V处理器软核。

1.2 RISC-V架构速览——你只需要知道这些

RISC-V的设计哲学就四个字:精简、模块化。它不像ARM那样把指令集分成Cortex-A/R/M三个系列,而是用「基础指令集 + 可选扩展」的方式让你自己拼。

指令集模块 名称 说明
RV32I 基础整数指令集 必选,包含算术、逻辑、访存、分支等40多条指令
RV32M 乘除法扩展 可选,硬件乘除法器
RV32F 单精度浮点扩展 可选,需要FPU硬件
RV32C 压缩指令扩展 可选,16位指令,减小代码体积
RV32A 原子操作扩展 可选,多核同步用

蜂鸟E203实现了RV32IMAC。什么意思?就是基础整数 + 乘除法 + 原子操作 + 压缩指令。浮点没有,因为它的定位是嵌入式控制,不是数字信号处理。

我的建议: 初学阶段,你只需要关注RV32I和RV32C。M和A在蜂鸟E203里是默认打开的,但你调优时可能会关掉它们来省面积。这个后面会细讲。

1.3 蜂鸟E203的设计哲学——为什么它适合学习?

我第一次看到蜂鸟E203的代码时,说实话有点惊讶。它不像其他开源RISC-V核那样追求极致性能,而是把「可读性」放在了第一位。

它的设计哲学可以总结为三点:

  • 代码即文档: 所有模块都用Verilog 2001编写,没有SystemVerilog的花哨语法。你只要懂基础数字电路,就能看懂。
  • 流水线极简: 经典的2级流水线(取指+执行),没有乱序、没有分支预测、没有超标量。说白了,就是教科书上的MIPS五级流水线的简化版。
  • 面积优先: 在同等工艺下,蜂鸟E203的综合面积大约是ARM Cortex-M3的1/3。代价是性能——它跑不到1GHz,但在FPGA上跑50-100MHz完全够用。

注意: 蜂鸟E203不是为高性能设计的。如果你要做AI推理、视频编解码,请去看C910或BOOM。E203的定位是:学会RISC-V、理解处理器架构、快速原型验证。

我个人习惯把蜂鸟E203比作「处理器设计领域的STM32」。它不复杂,但五脏俱全。你学会它,再看其他RISC-V核,思路会清晰很多。

1.4 蜂鸟E203的整体架构——一张图看懂

下面这张图是我自己整理的蜂鸟E203核心模块关系。你不需要一次全记住,但建议保存下来,后面每章都会用到。

蜂鸟E203核心架构模块图 蜂鸟E203 SoC e203_core 处理器核心 IFU (取指) EXU (执行) LSU (访存) CSR (控制) 总线互联 ICB (内部连接总线) 指令总线 数据总线 外设模块 UART GPIO CLINT (定时器) 存储器子系统 ITCM + DTCM + BIU 调试模块 JTAG + Debug 说明: 蜂鸟E203采用2级流水线(IFU→EXU),通过ICB总线连接ITCM(指令紧耦合存储器)和DTCM(数据紧耦合存储器)。 外设和调试模块通过总线桥接访问。这种架构在面积和性能之间取得了很好的平衡。

1.5 开发板选型——我踩过的坑

选开发板这件事,我吃过亏。第一次用蜂鸟E203时,我随手拿了块Xilinx Spartan-6的板子,结果发现BRAM不够,连ITCM都放不下。后来换了Artix-7才跑起来。

所以我的建议是:别在开发板上省钱,但也没必要买最贵的。下面这张表是我实测过的组合:

开发板 FPGA型号 LUT资源 BRAM 推荐理由
Nexys A7 Artix-7 100T 63,400 486 KB 资源充裕,适合完整SoC验证
Arty A7 Artix-7 35T 20,800 180 KB 性价比高,适合入门
Tang Primer 20K GW2A-18 20,736 162 KB 国产FPGA,价格低,但工具链不同
DE10-Lite MAX 10 15,000 126 KB 资源紧张,仅适合最小配置

我的推荐: 如果你预算允许,直接上Nexys A7。多出来的BRAM和LUT,在后期调优时你会感谢自己的。如果只是学基础,Arty A7完全够用——我课程里的所有例子都在Arty A7上跑通过。

1.6 资源清单——你需要准备什么

别急着下载所有东西。我建议你先准备好这三样:

  1. 硬件: 一块上面表格里的开发板 + USB下载线(通常板子自带) + 一个串口模块(如果板子没有集成USB-UART)
  2. 软件工具链:
    • Vivado(Xilinx板子)或 Gowin IDE(国产板子)——用于综合、实现、下载
    • RISC-V GCC工具链——用于编译C代码到RISC-V机器码
    • OpenOCD + GDB——用于调试
  3. 源码: 蜂鸟E203的GitHub仓库(搜索"e200_opensource"),建议clone master分支

避坑指南: 我曾经在Windows下折腾Vivado + Cygwin环境,结果编译工具链时各种报错。后来换成Ubuntu 20.04虚拟机,半小时搞定。所以——强烈建议在Linux环境下开发。Windows用户装个WSL2也行。

1.7 本章小结

这一章我们聊了RISC-V为什么值得学、蜂鸟E203的设计思路、它的整体架构长什么样,以及该买什么板子、装什么软件。

你可能会觉得信息量有点大。没关系。后面每一章都会围绕这张架构图展开。你只要记住一句话:蜂鸟E203是一个为学习和快速原型而生的RISC-V软核,它不追求极致性能,但追求让你看懂、能改、会调。