3、开发环境搭建:Vivado/Quartus安装、IP核授权、版本管理(Git)与仿真库配置
说实话,做光通信项目,环境搭建这一步要是没弄好,后面全是坑。我见过太多人卡在仿真库编译上,一卡就是半天。今天咱们就把这事彻底捋清楚。
3.1 开发工具选型:Vivado vs Quartus
先说说选哪个工具。我个人习惯是:Xilinx的Vivado 和 Intel的Quartus 都得会。但如果你只做光通信,我建议优先学Vivado。为什么?因为光通信里高速收发器(GTY/GTH)用得最多,而Vivado在这块的工具链更成熟。
不过也别小看Quartus。我在一个10G PON项目里用过Arria 10,Quartus的时序收敛工具其实挺好用的。说白了,工具只是手段,关键是你会不会用。
| 对比项 | Vivado | Quartus |
|---|---|---|
| 安装包大小 | 约50-80GB(完整版) | 约30-50GB(完整版) |
| 仿真器集成 | 自带XSIM | 自带ModelSim OEM |
| IP核授权 | 需单独申请License | 部分免费,部分需购买 |
| 光通信专用IP | 丰富(GTY、CPLL、QPLL等) | 较少(需第三方) |
3.2 Vivado安装与IP核授权
安装Vivado其实不难,但有几个坑你得注意。
第一步:下载安装包
去Xilinx官网下载Vivado HLx。我建议选WebPACK版本就够了,除非你要用Vivado HLS或者System Generator。安装路径千万别有中文,也别有空格。嗯,这个我吃过亏。
第二步:安装过程
安装时选择Vivado HL Design Edition,然后勾选以下组件:
- Vivado Design Suite
- Vivado Simulator(XSIM)
- Vitis Embedded Development(如果你要用MicroBlaze)
- Documentation(离线文档,建议勾上)
第三步:IP核授权
光通信项目里,IP核授权是个大问题。我记得有一次做25G光模块测试,需要用到GTY收发器IP核。Xilinx的IP核分三种:
- 免费IP:比如FIFO、BRAM、DSP48,直接能用
- 评估IP:比如GTY、CPLL,可以试用2小时,但会加水印
- 付费IP:需要购买License,比如一些加密算法IP
申请License的步骤:
- 在Xilinx官网注册账号
- 生成Node-Locked License(绑定MAC地址)
- 将License文件放到
C:\Xilinx\Vivado\2023.1\licenses目录下 - 在Vivado中设置
Tools -> License Manager加载
3.3 Quartus安装与IP核授权
Quartus的安装相对简单。我建议用Quartus Prime Pro Edition,支持最新的Arria 10和Stratix 10。
安装时注意:
- 选择Full Installation,包含所有器件支持
- 勾选ModelSim Intel FPGA Edition(自带仿真器)
- IP核授权:Quartus的IP核大部分是免费的,但像Transceiver Native PHY这种高速IP需要额外购买
Quartus的IP核管理在 Tools -> IP Catalog 里。你双击一个IP核,它会自动生成一个.qsys文件。嗯,这里要注意,Quartus的IP核生成速度比Vivado慢,别着急。
3.4 版本管理:Git与FPGA项目
很多FPGA工程师不用Git,觉得没必要。但我告诉你,光通信项目动辄几十个版本迭代,没有Git你根本活不下去。
Git管理FPGA项目的要点:
- 不要提交生成文件:比如
.runs、.cache、.jou、.log这些目录,全加到.gitignore里 - 只提交源码和约束:包括
.v/.vhd、.xdc、.tcl、.xci(IP核配置) - IP核管理:Vivado的IP核是
.xci文件,Quartus的是.qsys。这些文件很小,可以提交
我建议的 .gitignore 模板:
# Vivado
*.runs/
*.cache/
*.jou
*.log
*.str
*.xpr.bak
# Quartus
*.qpf.bak
*.qsf.bak
db/
incremental_db/
output_files/
# 通用
*.o
*.swp
.DS_Store
分支策略:我个人习惯用 main 分支放稳定版本,dev 分支放开发版本。每次综合通过后,合并到 main 并打tag。比如 v1.0.0、v1.1.0。
write_project_tcl 命令生成Tcl脚本。这样你只需要提交Tcl脚本和源码,别人拉下来后直接运行脚本就能重建项目。我一直在用这个方法,非常方便。
3.5 仿真库配置
仿真库配置是环境搭建里最烦人的一步。尤其是光通信项目,需要用到很多高速模型库。
Vivado的仿真库配置:
Vivado自带XSIM,不需要额外编译库。但如果你要用ModelSim或QuestaSim,就需要手动编译。
编译命令:
compile_simlib -simulator modelsim -family all -language all -dir <输出目录>
这个命令会编译所有器件的仿真库。我建议只编译你需要的器件,比如 -family kintex7 或 -family virtexuplus,不然要等很久。
Quartus的仿真库配置:
Quartus自带的ModelSim Intel FPGA Edition已经预编译了库。但如果你用第三方仿真器(比如QuestaSim),需要手动编译。
在Quartus里:Tools -> Launch Simulation Library Compiler,选择你的仿真器,然后编译。
光通信专用库:
光通信项目经常用到 IBERT(集成误码率测试)和 JESD204B 这些IP核。它们的仿真模型需要单独编译。
我记得有一次,我在仿真JESD204B IP核时,一直报错说找不到 jesd204_v2_2_1 库。后来发现是仿真库路径没配对。解决办法:
- 在Vivado里打开
Settings -> Simulation - 在
Verilog Compiler Search Path里添加IP核的仿真库路径 - 或者直接用
compile_simlib重新编译所有库
C:\FPGA_Libs,然后在工具里统一设置。这样换电脑或换项目时,只需要改一个路径。
3.6 知识体系总览
下面这张图是我自己画的,把本章的知识结构串起来了。你一看就明白。
这张图把四个核心模块串起来了。你从工具选型开始,然后安装配置,接着用Git管好版本,最后配好仿真库。每一步都踩实了,后面做项目才能顺风顺水。
好了,环境搭建这块就聊到这儿。你按这个流程走,基本不会出大问题。如果遇到具体报错,欢迎来交流。
公众号:蓝海资料掘金营,微信deep3321