4. 开发环境搭建:Vivado/Quartus安装配置、IP核授权管理、仿真工具设置、版本控制最佳实践

说实话,做SDI接口开发,环境搭建这一步看着简单,但坑是真不少。我见过太多人卡在工具链上,一卡就是好几天。今天咱们就把这事彻底捋清楚。

4.1 Vivado与Quartus的安装配置

先说说选型。我个人习惯是:Xilinx的片子用Vivado,Intel的用Quartus。别混着用,容易出幺蛾子。

Vivado安装要点

  • 版本选择:SDI接口开发,我建议用2020.1以上版本。为什么?因为低版本对GTY收发器的支持不够完善。我曾经在2018.3上折腾了三天,最后发现是工具链的bug。
  • 安装组件:记得勾选"Vivado HL System Edition",里面包含了SDI IP核需要的所有库。别图省空间只装最小化,后面你会后悔的。
  • License配置:如果你用的是Node-Locked License,记得绑定网卡MAC地址。我遇到过有人换了网卡,结果License失效,排查了半天。

重要提醒:Vivado安装路径不要有中文,不要有空格。这是老生常谈,但每次培训都有人踩坑。

Quartus安装注意事项

  • Quartus Prime Pro Edition对SDI支持更好,但需要单独安装SDI IP包
  • 安装时记得勾选"Arria 10"和"Stratix 10"器件支持,这是SDI常用的平台
  • ModelSim Starter版本够用,但如果你要做眼图分析,建议装Pro版

4.2 IP核授权管理

IP核授权这块,说白了就是花钱买省心。但怎么花得值,有讲究。

IP核类型 授权方式 我的建议
SDI RX/TX 付费License 买永久授权,别租用
视频处理 部分免费 先用免费版验证
时钟管理 免费 直接使用

我的经验:Xilinx的SDI IP核有评估模式,可以跑30分钟。我一般先用评估模式做功能验证,确认没问题了再买License。别一上来就买,万一不兼容呢?

授权管理还有个坑——IP核版本要和工具链匹配。我曾经在Vivado 2020.2上用了2021.1的SDI IP核,结果编译报错,查了半天才发现是版本不匹配。嗯,这事说起来都丢人。

4.3 仿真工具设置

仿真工具的选择,其实看团队。我个人偏爱ModelSim,但VCS也有它的优势。

ModelSim配置

  • 设置好库路径:vlib workvmap work work
  • 编译SDI IP核的仿真库:vlog -sv xilinx_sdi_v3_0.v
  • 别忘了加 -L unisims_ver-L xpm,不然会报一堆未定义
# 我的常用仿真脚本
vlib work
vlog -sv *.sv
vlog -sv xilinx_sdi_v3_0.v
vsim -L unisims_ver -L xpm work.tb_sdi_top
run -all

避坑指南:我曾经在仿真SDI的时钟恢复模块时,发现波形一直不对。折腾了两天,最后发现是仿真时间步长设得太大了。SDI的时钟频率是148.5MHz,步长至少要到1ps级别。

VCS设置要点

  • vcs -sverilog -full64 启动
  • -debug_access+all 方便调试
  • SDI IP核的仿真模型需要单独编译:vlogan -sverilog xilinx_sdi_v3_0.v

4.4 版本控制最佳实践

Git这东西,用好了是神器,用不好是灾难。我见过有人把整个Vivado工程都提交上去,结果每次pull都要等半小时。

我的.gitignore配置

# Vivado生成文件
*.jou
*.log
*.str
*.xpr.bak
*.rpt
*.dcp
*.bit
*.mcs

# 仿真文件
*.vcd
*.vpd
*.wlf
*.vstf

# 临时文件
*.swp
*.swo
*~

分支管理策略

  • master:只放经过验证的代码,别直接在上面开发
  • develop:日常开发分支,所有feature都往这合
  • feature/sdi_rx:每个功能模块一个分支,比如SDI接收、发送、时钟恢复
  • release/v1.0:发布分支,打tag用

我的习惯:每次提交前,先跑一遍仿真。如果仿真没过,坚决不提交。这习惯救了我好几次,有一次差点把有bug的代码合到master上。

还有个细节——IP核的License文件要不要提交?我个人建议不要。每个开发者的License都不一样,提交了反而容易冲突。在README里写清楚怎么获取License就行。

好了,环境搭建这块就这些。你想想看,把这些都配好了,后面开发SDI接口就顺畅多了。下一章咱们开始讲SDI协议的基础知识,到时候见。