3、FPGA开发环境搭建:Vivado安装与配置、工程创建流程、IP核管理、仿真环境搭建
做FPGA开发,第一步就是把家伙事儿备齐。Vivado这套工具,说白了就是我们和FPGA芯片之间的翻译官。你写的Verilog代码,它帮你翻译成比特流,最后烧进芯片里跑起来。
我个人习惯,每年新版本出来先观望一阵,等第一个补丁包出了再升级。为什么?因为新版本刚发布时,bug往往比功能多。我在项目中就吃过这个亏,Vivado 2019.1刚出时,综合某些IP核会莫名其妙报错,折腾了两天才发现是工具本身的坑。
3.1 Vivado安装与配置
安装Vivado其实不复杂,但有几个关键点你得留意。
硬件要求:
- 内存至少16GB,我建议32GB起步。你想想看,综合一个稍大点的工程,内存占用轻松上10GB。
- 硬盘留出100GB以上空间。Vivado全家桶装完大概60GB,加上后续工程文件,100GB是底线。
- 操作系统建议Windows 10 64位或Ubuntu 18.04以上。
安装步骤:
- 去Xilinx官网下载Vivado安装包。注意选择版本,我一般用WebPACK版,免费且功能够用。
- 运行安装程序,选择“Vivado HL WebPACK”。
- 安装路径不要有中文和空格。嗯,这里要注意,很多新手在这栽跟头。
- 选择安装组件时,至少勾选“Vivado”和“Vivado SDK”。如果你做以太网,建议把“Vivado HLS”也勾上。
- 等待安装完成,大概需要30分钟到1小时,取决于你的网速和硬盘速度。
3.2 工程创建流程
工程创建这事儿,说简单也简单,说复杂也复杂。我带你走一遍标准流程。
创建新工程:
- 打开Vivado,点击“Create Project”。
- 输入工程名,比如“udp_stack_demo”。注意,工程名不要用中文。
- 选择工程类型,选“RTL Project”。
- 添加源文件。你可以现在加,也可以后面再加。我习惯先创建空工程,再慢慢加文件。
- 选择芯片型号。做千兆以太网,我常用Artix-7系列,比如XC7A35T。性价比高,资源够用。
- 点击Finish,工程就建好了。
添加设计文件:
工程建好后,右键“Sources”窗口,选择“Add Sources”。可以添加Verilog文件、VHDL文件、XDC约束文件等。我个人习惯把所有源文件放在一个“src”文件夹里,方便管理。
设置顶层模块:
在“Sources”窗口中,右键你要设为顶层的模块,选择“Set as Top”。Vivado会以这个模块作为综合和仿真的入口。
3.3 IP核管理
IP核,说白了就是Xilinx给你写好的功能模块。你不用从零开始写,直接拿来用就行。做以太网协议栈,我们至少需要这几个IP核:
| IP核名称 | 功能 | 使用场景 |
|---|---|---|
| Tri-Mode Ethernet MAC | 以太网MAC层控制器 | 千兆以太网核心 |
| AXI-Stream FIFO | 数据缓存 | 跨时钟域数据传递 |
| Clocking Wizard | 时钟管理 | 生成125MHz等时钟 |
| MII/GMII to RGMII | 接口转换 | 连接PHY芯片 |
添加IP核的步骤:
- 点击“IP Catalog”窗口。
- 搜索你需要的IP核,比如“Ethernet”。
- 双击IP核,配置参数。配置时注意看Datasheet,别乱改参数。
- 配置完成后,点击“OK”,Vivado会自动生成IP核文件。
3.4 仿真环境搭建
仿真,是FPGA开发中最重要的一环。没有仿真,你就是在盲人摸象。我个人习惯,写代码前先搭好仿真环境,边写边仿真,发现问题及时改。
Vivado自带仿真器:
Vivado自带了XSim仿真器,够用。但如果你追求速度,可以用ModelSim或QuestaSim。我一般用Vivado自带的,省事。
创建仿真文件:
- 在“Sources”窗口中,右键选择“Add Sources”。
- 选择“Simulation Sources”,添加你的testbench文件。
- testbench文件一般以“_tb”结尾,比如“udp_tx_tb.v”。
- 设置testbench为仿真顶层。
运行仿真:
- 点击“Flow Navigator”中的“Run Simulation”。
- 选择“Run Behavioral Simulation”。
- Vivado会启动仿真窗口,你可以添加波形信号,观察时序。
仿真脚本化:
如果你经常做仿真,建议写个Tcl脚本。这样每次仿真不用手动点来点去,直接跑脚本就行。下面是个简单的例子:
# 仿真脚本示例
open_project ./udp_stack.xpr
launch_simulation -mode behavioral
add_wave /
run 10 us
把这段脚本保存成“sim.tcl”,然后在Vivado Tcl Console里执行“source sim.tcl”就行。
3.5 知识体系总览
为了让你更直观地理解本章内容,我画了张图。这张图展示了开发环境搭建的完整流程和各个模块之间的关系。
这张图把整个开发环境搭建分成了四个核心模块。你按这个顺序来,基本不会出错。安装→建工程→配IP核→搭仿真,每一步都踩实了,后面写代码才能顺风顺水。
好了,环境搭好了,下一章我们就可以开始写代码了。记住,工欲善其事,必先利其器。环境搭得好,调试少烦恼。