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适配度 | 官方首选,脚本完善 | 需手动调整约束 |
2.1.1 Vivado安装要点
Vivado的安装包很大——20GB起步。我当年第一次装的时候,下载了一整夜。这里有几个省时间的技巧:
- 只选需要的器件:安装时别全选,只勾你板子对应的系列。比如Artix-7就只选7 Series。
- 路径不要有中文:Vivado对中文路径支持很差,我曾经因为这个折腾了两天。
- License问题:WebPACK版不需要额外license,但如果你用Vivado ML Enterprise,记得申请免费试用。
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
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
2.4 知识体系总览
下面这张图把本章的核心逻辑串起来了。你照着这个流程走,环境搭建不会出大问题。
2.5 常见问题与避坑
环境搭建过程中,我遇到过不少问题。挑几个典型的说说:
- Vivado综合报错 "cannot find module":多半是文件路径没加对。检查
read_verilog命令是否包含了所有RTL文件。 - Verilator编译报错 "Unsupported: BLKLOOPINIT":E203的某些代码用了for循环初始化,Verilator默认不支持。在编译命令加
--Wno-BLKLOOPINIT即可。 - Iverilog仿真卡死:检查是否有死循环。我曾经在测试程序里写了个
while(1);,仿真直接跑飞。
最后说一句:环境搭建是体力活,别急。我当年第一次搭E203环境,花了整整两天。但只要把上面三步走通——工具装好、源码拉下来、仿真跑通——后面的事情就顺了。