3、开发环境搭建:Vivado/Quartus安装、IP核授权、版本管理(Git)与仿真库配置

说实话,做光通信项目,环境搭建这一步要是没弄好,后面全是坑。我见过太多人卡在仿真库编译上,一卡就是半天。今天咱们就把这事彻底捋清楚。

3.1 开发工具选型:Vivado vs Quartus

先说说选哪个工具。我个人习惯是:Xilinx的VivadoIntel的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
⚠️ 注意: 评估IP在仿真时没问题,但综合后生成的bitstream会带水印。我曾经在客户演示时忘了换正式License,结果波形全乱了。所以正式项目一定要提前申请好License。

申请License的步骤:

  1. 在Xilinx官网注册账号
  2. 生成Node-Locked License(绑定MAC地址)
  3. 将License文件放到 C:\Xilinx\Vivado\2023.1\licenses 目录下
  4. 在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.0v1.1.0

💡 小技巧: 在Vivado里可以用 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 库。后来发现是仿真库路径没配对。解决办法:

  1. 在Vivado里打开 Settings -> Simulation
  2. Verilog Compiler Search Path 里添加IP核的仿真库路径
  3. 或者直接用 compile_simlib 重新编译所有库
📌 核心要点: 仿真库配置的关键是路径正确。我建议把所有仿真库放在一个固定目录下,比如 C:\FPGA_Libs,然后在工具里统一设置。这样换电脑或换项目时,只需要改一个路径。

3.6 知识体系总览

下面这张图是我自己画的,把本章的知识结构串起来了。你一看就明白。

开发环境搭建知识体系 FPGA开发环境 工具选型 Vivado Quartus 安装与IP核授权 免费IP / 评估IP / 付费IP License管理 版本管理(Git) .gitignore配置 分支策略 / Tcl脚本 仿真库配置 XSIM / ModelSim / Questa 光通信专用库(IBERT/JESD) 目标:一次配置,全项目复用

这张图把四个核心模块串起来了。你从工具选型开始,然后安装配置,接着用Git管好版本,最后配好仿真库。每一步都踩实了,后面做项目才能顺风顺水。

💡 我的建议: 花半天时间,把环境一次性搭好。别边做项目边装工具,那样效率极低。我曾经在一个项目中期换电脑,光重装环境就花了三天,血的教训。

好了,环境搭建这块就聊到这儿。你按这个流程走,基本不会出大问题。如果遇到具体报错,欢迎来交流。


公众号:蓝海资料掘金营,微信deep3321