第二章 FPGA开发环境搭建:工欲善其事,必先利其器
做图像滤波的FPGA实现,第一步不是写代码,而是把环境搭好。我见过太多新手卡在安装配置上,一卡就是半天。说实话,这些工具装起来确实有点繁琐,但一次配好,后面就省心了。
这一章,咱们就把Vivado、Quartus、ModelSim、VCS这些家伙搞定。顺便聊聊开发板怎么选。
2.1 Vivado安装——Xilinx用户的必修课
如果你用Xilinx的FPGA,Vivado是跑不掉的。我个人习惯用Vivado 2020.1以后的版本,对图像处理IP的支持更完善。
安装要点:
- 版本选择:建议Vivado HLx Edition,包含Vivado、Vitis、DocNav全套。别装WebPack,功能受限。
- 磁盘空间:至少留80GB。我上次装2022.2,光安装包就25GB,解压后更夸张。
- 操作系统:Windows 10/11 64位或Ubuntu 18.04/20.04。我个人更推荐Linux,编译速度快不少。
- 安装步骤:下载安装包 → 解压 → 运行xsetup → 选择版本 → 勾选器件(Zynq、Artix、Kintex等)→ 等待1-2小时。
2.2 Quartus安装——Intel/Altera用户的必备
用Intel FPGA的朋友,Quartus Prime是主力。我做过一个项目,客户指定要用Cyclone V,那就得老老实实用Quartus。
版本选择:
- Quartus Prime Standard:适合Cyclone、Arria系列,稳定。
- Quartus Prime Pro:适合Stratix 10、Agilex等高端器件,功能更强。
- Lite版:免费,但器件支持有限。个人学习够用。
安装注意:
- 先装Quartus,再装ModelSim Intel版(包含在安装包内)。
- 记得勾选USB-Blaster驱动,不然下载线连不上。
- 环境变量要配好:
QUARTUS_ROOTDIR指向安装路径。
2.3 仿真工具配置——ModelSim与VCS
仿真,说白了就是让你的代码在电脑上先跑一遍。我做过一个5x5的均值滤波,直接烧到板子上才发现边界处理有问题。要是先仿真,10分钟就能发现。
2.3.1 ModelSim配置
ModelSim是FPGA仿真最常用的工具。Vivado和Quartus都自带,但独立版功能更全。
配置步骤:
- 安装ModelSim SE/DE版本(建议2020.4以上)。
- 设置环境变量
MODELSIM_HOME。 - 在Vivado中设置:Tools → Settings → Tool Settings → 3rd Party Simulators → ModelSim,指定路径。
- 在Quartus中设置:Assignments → Settings → EDA Tool Settings → Simulation,选择ModelSim。
常用命令示例:
# 编译设计文件
vlog -work work top.v
# 编译testbench
vlog -work work tb_top.v
# 启动仿真
vsim -voptargs=+acc work.tb_top
# 添加波形
add wave -r /*
# 运行
run 10 us
个人经验:我习惯在仿真脚本里加上-voptargs=+acc,这样能看到所有内部信号。不然有些信号被优化掉了,查bug时急死人。
2.3.2 VCS配置(Linux环境)
VCS是Synopsys家的,主要用于ASIC验证。但做FPGA时,如果设计要转ASIC,用VCS仿真更稳妥。
配置要点:
- 需要安装Synopsys License Server。
- 设置
VCS_HOME和LM_LICENSE_FILE环境变量。 - 在Vivado中设置VCS路径:Tools → Settings → 3rd Party Simulators → VCS。
VCS仿真流程:
# 编译
vcs -full64 -sverilog -debug_access+all top.v tb_top.v
# 运行
./simv -l run.log
# 查看波形
dve -vpd vcdplus.vpd &
2.4 FPGA开发板选型——别买错了
开发板选型,说白了就是看你的项目需求。我做图像滤波,主要关注这几点:
| 需求 | 推荐芯片 | 推荐开发板 | 参考价格 |
|---|---|---|---|
| 入门学习 | Artix-7 XC7A35T | Nexys A7 / 正点原子开拓者 | ¥500-1000 |
| 图像处理 | Zynq-7020 | ZedBoard / 米联客Z7 | ¥1500-3000 |
| 高清视频 | Kintex-7 / Zynq UltraScale+ | KC705 / ZCU104 | ¥5000-15000 |
| 量产验证 | Cyclone V / Arria 10 | DE10-Nano / Arria 10 GX | ¥2000-8000 |
选型建议:
- 初学者:选Artix-7或Cyclone IV,便宜、资料多。我第一个项目就是用Nexys A7做的。
- 图像滤波:强烈推荐Zynq系列。ARM+FPGA的架构,ARM跑算法控制,FPGA做像素级加速,绝配。
- 注意外设:要有HDMI输入输出、DDR3/DDR4、摄像头接口。不然你图像数据从哪来?
- 调试接口:JTAG是必须的,最好有USB-UART,方便打印调试信息。
2.5 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你一看就明白:
嗯,这张图把工具安装、仿真配置、硬件选型串起来了。你照着这个框架去搭环境,不会乱。
2.6 环境验证——跑个Hello World
环境搭好没?跑个最简单的LED闪烁就知道了。我每次换电脑,第一件事就是跑这个,验证工具链通不通。
Vivado版本:
module led_blink(
input clk,
input rst_n,
output reg led
);
reg [23:0] cnt;
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
cnt <= 0;
else
cnt <= cnt + 1;
end
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
led <= 0;
else
led <= (cnt == 24'hFFFFFF);
end
endmodule
Quartus版本: 代码几乎一样,只是约束文件写法不同。Vivado用XDC,Quartus用SDC。
好了,环境搭好,工具配齐,板子到手。下一章咱们就开始写真正的图像滤波代码了。记住:环境是基础,基础不牢,地动山摇。
可可精品资料库