2. 开发环境搭建:Vivado/Quartus安装、E203源码获取、仿真环境配置

说实话,很多同学学RISC-V,第一步就卡在环境搭建上。工具链装到一半报错,仿真跑不起来,源码不知道去哪下——这些坑我都踩过。今天咱们就把这事一次性捋清楚。

我个人习惯把环境分成三块:FPGA综合工具、RTL源码管理、仿真验证环境。这三块搭好了,后面30章你才能安心调优。

2.1 FPGA综合工具:Vivado vs Quartus

蜂鸟E203官方推荐用Vivado,但我自己试过Quartus也能跑。区别在哪?我列个表你就明白了。

对比项 Vivado (Xilinx) Quartus (Intel)
支持器件 Artix-7, Kintex-7, Zynq等 Cyclone IV/V, MAX 10等
综合速度 较慢,但优化能力强 较快,中小规模项目友好
调试工具 Vivado Logic Analyzer (ILA) Signal Tap II
免费版限制 WebPACK版,器件有限 Lite版,功能基本够用
E203适配度 官方首选,脚本完善 需手动调整约束
我的建议:如果你手头是Nexys A7或Basys 3这类Xilinx板子,直接上Vivado 2020.1以上版本。Quartus用户也别慌,E203的RTL是标准的Verilog,改改管脚约束就能用。

2.1.1 Vivado安装要点

Vivado的安装包很大——20GB起步。我当年第一次装的时候,下载了一整夜。这里有几个省时间的技巧:

  • 只选需要的器件:安装时别全选,只勾你板子对应的系列。比如Artix-7就只选7 Series。
  • 路径不要有中文:Vivado对中文路径支持很差,我曾经因为这个折腾了两天。
  • License问题:WebPACK版不需要额外license,但如果你用Vivado ML Enterprise,记得申请免费试用。
注意:Vivado 2021.2之后对Windows 11的支持有bug,建议用2020.1或2022.1。我踩过这个坑——综合到一半直接崩溃。

2.1.2 Quartus安装要点

Quartus相对轻量,但有个坑:ModelSim仿真器需要单独安装。很多人装完Quartus发现跑不了仿真,就是因为漏了这一步。

# Quartus Lite版下载路径(仅供参考)
https://www.intel.com/content/www/us/en/software/programmable/quartus-prime/download.html
# 选择:Quartus Prime (Lite Edition) + ModelSim-Intel FPGA Edition

2.2 获取E203源码

蜂鸟E203的源码托管在GitHub上,由芯来科技维护。获取方式很简单:

# 方法一:直接克隆(推荐)
git clone https://github.com/SI-RISCV/e200_opensource.git

# 方法二:下载ZIP包
# 访问 https://github.com/SI-RISCV/e200_opensource/releases
# 选择最新release,下载Source code (zip)

克隆下来后,目录结构是这样的:

e200_opensource/
├── rtl/                # RTL源码(核心)
│   ├── core/           # E203处理器核
│   ├── soc/            # SoC顶层
│   └── periphs/        # 外设(UART, SPI等)
├── fpga/               # FPGA综合脚本和约束
│   ├── vivado/         # Vivado工程脚本
│   └── quartus/        # Quartus工程脚本
├── sim/                # 仿真环境
│   ├── verilator/      # Verilator仿真脚本
│   └── iverilog/       # Iverilog仿真脚本
├── software/           # 软件测试程序
└── docs/               # 文档

关键点:E203的RTL是标准Verilog-2001,不依赖任何厂商原语。这意味着你可以把它移植到任何FPGA上。我曾在Lattice的板子上跑过,只改了顶层约束文件。

2.3 仿真环境配置

仿真环境我推荐两种:Verilator(高性能,适合回归测试)和Iverilog(轻量级,适合快速调试)。

2.3.1 Verilator安装与配置

Verilator是C++写的Verilog仿真器,速度比Iverilog快一个数量级。E203的官方仿真脚本就是基于Verilator的。

安装步骤(Ubuntu为例):

# 安装依赖
sudo apt-get install git make autoconf g++ flex bison

# 下载Verilator源码
git clone https://github.com/verilator/verilator.git
cd verilator

# 编译安装
autoconf
./configure
make -j$(nproc)
sudo make install

# 验证安装
verilator --version
避坑指南:我曾经在Ubuntu 20.04上装Verilator 4.0,结果编译E203时报错——版本太旧了。建议用Verilator 4.2以上。如果你不想编译,可以直接用包管理器:sudo apt-get install verilator(但版本可能不是最新的)。

配置好之后,跑一下E203自带的测试:

cd e200_opensource/sim/verilator
make clean
make run_test
# 如果看到 "PASS!" 字样,说明环境搭好了

2.3.2 Iverilog安装与配置

Iverilog(Icarus Verilog)更轻量,适合在Windows或Mac上快速验证。安装方式:

# Ubuntu
sudo apt-get install iverilog gtkwave

# macOS (Homebrew)
brew install icarus-verilog gtkwave

# Windows
# 下载安装包:http://bleyer.org/icarus/
# 安装后记得把 iverilog.exe 所在目录加入PATH

Iverilog的仿真脚本在 sim/iverilog 目录下:

cd e200_opensource/sim/iverilog
make clean
make run_test
# 波形文件会生成在 sim/iverilog/dump.vcd
# 用gtkwave查看:gtkwave dump.vcd
注意:Iverilog对SystemVerilog的支持有限。E203的RTL是纯Verilog,没问题。但如果你自己写SV的断言或接口,Iverilog可能报错。这时候建议用Verilator或Vivado自带的xsim。

2.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。你照着这个流程走,环境搭建不会出大问题。

开发环境搭建流程 开发环境搭建知识体系 FPGA综合工具 RTL源码管理 仿真验证环境 Vivado Quartus GitHub克隆 Verilator Iverilog 安装+License配置 器件选择 安装+ModelSim 管脚约束调整 git clone 目录结构理解 编译安装 make run_test 验证:运行 make run_test 看到 "PASS!" 即环境搭建完成 💡 核心原则: 先搭仿真环境(Verilator/Iverilog)验证RTL正确性,再上FPGA综合。别一上来就跑综合,调试效率极低。

2.5 常见问题与避坑

环境搭建过程中,我遇到过不少问题。挑几个典型的说说:

  • Vivado综合报错 "cannot find module":多半是文件路径没加对。检查 read_verilog 命令是否包含了所有RTL文件。
  • Verilator编译报错 "Unsupported: BLKLOOPINIT":E203的某些代码用了for循环初始化,Verilator默认不支持。在编译命令加 --Wno-BLKLOOPINIT 即可。
  • Iverilog仿真卡死:检查是否有死循环。我曾经在测试程序里写了个 while(1);,仿真直接跑飞。

最后说一句:环境搭建是体力活,别急。我当年第一次搭E203环境,花了整整两天。但只要把上面三步走通——工具装好、源码拉下来、仿真跑通——后面的事情就顺了。