2. RISC-V与蜂鸟E203基础

说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学卡在这一步,工具链装到一半报错,或者仿真跑不起来,最后连板子都点不亮。咱们这一章就把这些基础工作捋清楚,你跟着我的步骤走,基本不会出大问题。

2.1 FPGA开发工具:Vivado与Quartus的选择

蜂鸟E203官方推荐的是Vivado,因为它的核心代码是用Verilog写的,对Xilinx器件支持最好。但如果你手头只有Altera/Intel的板子,Quartus也能用,只是需要额外处理一些约束文件。

对比项 Vivado (Xilinx) Quartus (Intel)
官方支持度 完全支持,有现成脚本 需手动移植,部分IP需替换
安装包大小 约40-60GB(WebPack版) 约20-30GB(Lite版)
免费版本限制 无限制(Vivado ML Standard) 部分器件需付费许可
仿真器集成 自带XSIM 自带ModelSim Starter

我个人习惯:如果条件允许,优先用Vivado。为什么呢?因为E203的Makefile和Tcl脚本都是针对Vivado写的,你直接跑make vivado就能一键生成工程,省心。Quartus那边你得自己写约束,我曾经在移植时因为时序没对齐,折腾了两天才找到问题。

2.2 Vivado安装避坑指南

安装Vivado其实不复杂,但有几个细节你一定要注意:

  1. 下载版本:建议用2020.1到2022.2之间的版本。太新的版本(比如2023.x)对某些老IP支持不好,太旧的版本(2019以下)编译E203会报语法错误。
  2. 安装路径:不要有中文!不要有空格!我见过有人装在C:\Program Files (x86)\下面,结果编译时路径解析出错,折腾半天。
  3. 选择组件:安装时勾选“Vivado ML Standard”和“Xilinx SDK”,仿真器选“XSIM”。其他像DocNav、System Generator这些,不是必须的,可以跳过。
  4. License:免费版不需要额外申请,安装完就能用。如果你需要综合更大的设计,可以去Xilinx官网申请一个免费的Node-Locked License。
⚠️ 我曾经踩过的坑: 安装Vivado时,Windows Defender会拦截一些动态库。建议安装前暂时关闭实时防护,或者把安装目录加入白名单。否则装到一半报错“无法写入文件”,你就得重来了。

2.3 RISC-V GCC工具链配置

这是整个环境搭建中最关键的一步。E203的软件代码(比如启动代码、裸机程序)需要用RISC-V的交叉编译器来编译。说白了,你的PC是x86架构,但目标芯片是RISC-V,所以需要一个“翻译官”。

工具链有两种获取方式:

  • 预编译包:从SiFive官网下载,解压即用。适合不想折腾的同学。
  • 源码编译:从GitHub拉取riscv-gnu-toolchain,自己编译。适合想深入理解工具链的硬核玩家。

我建议:初学者直接用预编译包。源码编译太耗时了,我第一次编译花了将近两个小时,中间还因为依赖库版本不对报错。咱们先把项目跑起来,后面有时间再研究底层。

2.3.1 预编译包安装步骤

  1. 访问SiFive官网的“RISC-V Tools”页面,下载riscv64-unknown-elf-gcc-xxxx.tar.gz。
  2. 解压到/opt/riscv目录(Linux)或C:\riscv(Windows)。
  3. 将/opt/riscv/bin添加到系统环境变量PATH中。
  4. 验证安装:在终端输入riscv64-unknown-elf-gcc --version,看到版本信息就说明成功了。
💡 小技巧: 如果你用的是Windows,建议用WSL2(Windows Subsystem for Linux)来搭建环境。E203的Makefile是基于Linux的,在Windows原生环境下跑会有一堆路径问题。我早期用Cygwin试过,各种报错,换成WSL2后一次通过。

2.4 仿真环境搭建

仿真环境是调试的“眼睛”。没有仿真,你根本不知道CPU内部发生了什么。E203官方支持两种仿真器:

仿真器 速度 波形支持 适用场景
Vivado XSIM 中等 VCD/FSDB 综合后仿真、时序仿真
Verilator 极快 VCD RTL功能仿真、回归测试

我个人推荐:日常开发用Verilator,它比XSIM快5-10倍。E203的Makefile里已经配好了Verilator的仿真脚本,你只需要确保系统里装了Verilator就行。

2.4.1 Verilator安装

在Ubuntu/WSL2下,一行命令搞定:

sudo apt-get install verilator

如果你需要最新版本,可以源码编译:

git clone https://github.com/verilator/verilator.git
cd verilator
autoconf
./configure
make -j$(nproc)
sudo make install

验证安装:verilator --version,看到版本号就OK。

2.4.2 运行E203的仿真测试

环境搭好后,我们来跑一个简单的测试,验证所有工具是否正常工作:

# 进入E203项目目录
cd e203_hbirdv2

# 运行一个简单的裸机程序仿真
make run_test TEST=hello_world

# 查看仿真结果
make run_test TEST=hello_world GUI=1

如果一切顺利,你会看到终端打印出“Hello World from RISC-V!”,同时生成一个.vcd波形文件。用GTKWave打开它,就能看到CPU内部信号的波形了。

🔑 关键检查点: 仿真跑通后,建议你检查一下这几个地方:

  • PC(程序计数器)是否从0x80000000开始递增
  • UART输出是否正常(打印信息)
  • 时钟复位信号是否稳定

这些信号正常,说明你的环境搭建成功了。

2.5 环境搭建知识体系

下面这张图帮你理清整个环境搭建的脉络:

蜂鸟E203开发环境搭建结构图 蜂鸟E203开发环境搭建 FPGA开发工具 RISC-V GCC工具链 仿真环境 Vivado (Xilinx) Quartus (Intel) 预编译包 (SiFive) 源码编译 (GitHub) XSIM (Vivado) Verilator 验证:运行 make run_test TEST=hello_world 输出:终端打印 + VCD波形文件 💡 建议:Windows用户使用WSL2,Linux用户直接安装 优先使用Vivado + Verilator组合,开发效率最高

2.6 常见问题与解决

环境搭建过程中,你可能会遇到这些问题:

  • “make: command not found”:没装build-essential,sudo apt install build-essential搞定。
  • “riscv64-unknown-elf-gcc: No such file or directory”:环境变量没配好,检查PATH是否包含工具链的bin目录。
  • “Verilator not found”:没装Verilator,或者版本太旧(需要4.0以上)。
  • 仿真跑完但没打印信息:检查UART的波特率设置,E203默认是115200。

💡 我的经验: 如果你在WSL2里跑仿真,记得把项目放在Linux文件系统下(比如/home/username/),不要放在/mnt/c/下面。跨文件系统的IO性能很差,而且容易出权限问题。我刚开始不知道,仿真跑一次要等5分钟,移到Linux目录后,30秒就出结果了。