3、Vivado硬件平台创建:创建Vivado工程、添加IP核、配置Zynq/MPSoC处理器系统、生成硬件描述文件(XSA)

好,咱们正式开始动手。这一章是整个Vitis加速核开发流程的基石——搭建Vivado硬件平台。说白了,就是给加速核准备好一个能跑起来的“家”。

我见过不少新手,一上来就急着写代码,结果硬件平台没搭对,后面调试时各种报错,回头再改,反而更浪费时间。所以,咱们一步一个脚印,把基础打牢。

3.1 创建Vivado工程

打开Vivado,版本我建议用2020.1或更新的,太老的版本对Vitis支持不好。我个人习惯用命令行创建工程,但为了照顾大多数同学,咱们还是用GUI方式。

  1. 启动Vivado,点击Create Project。
  2. 弹窗里选RTL Project,勾上Do not specify sources at this time。为什么?因为咱们的加速核逻辑是后面由Vitis生成的,现在不需要手动添加。
  3. 选择器件。如果是Zynq-7000系列,比如XC7Z020;如果是MPSoC,比如XCZU9EG。我建议直接选你开发板对应的型号,省事。
  4. 点击Finish,工程就建好了。
小技巧: 工程名字别用中文,路径也别有空格。我在项目中吃过这个亏,编译报错找了半天,结果发现是路径里有空格。

3.2 添加IP核

工程建好后,咱们要添加IP核。这里主要添加两类:

  • Zynq7 Processing System 或 Zynq UltraScale+ MPSoC:这是处理器系统。
  • AXI Interconnect:用于连接处理器和加速核的AXI总线。

操作步骤:

  1. 点击左侧IP INTEGRATOR → Create Block Design。
  2. 给Block Design起个名字,比如system。
  3. 在Diagram窗口中右键 → Add IP,搜索并添加上述IP核。

嗯,这里要注意:添加Zynq IP后,它会自动弹出配置界面。别急着关,咱们下一步就要配置它。

3.3 配置Zynq/MPSoC处理器系统

这是最核心的一步。配置不对,后面全白搭。

3.3.1 Zynq-7000配置要点

双击Zynq IP核,进入配置界面。我个人习惯按以下顺序配置:

配置项 推荐设置 说明
PS-PL Configuration 勾选AXI HP0/HP1/HP2/HP3 加速核需要高带宽接口,HP口是必须的
Clock Configuration PL Fabric Clocks: 100MHz或150MHz 加速核的工作频率,别太高,否则时序难收敛
DDR Configuration 根据板子实际型号选择 我建议直接导入板级文件,省得手动配错
MIO Configuration UART、SD卡等外设按需勾选 至少留一个UART用于调试
避坑指南: 我曾经在配置DDR时,因为选错了型号,导致系统启动后内存只有一半可用。排查了两天才发现是DDR配置不对。所以,一定要核对板子的DDR颗粒型号。

3.3.2 MPSoC配置要点

MPSoC比Zynq复杂一些,多了RPU和GPU等模块。但核心配置思路一样:

  • PS-PL接口:勾选AXI HPC0/FPD和AXI HPC1/FPD。MPSoC的加速器接口叫HPC,性能更强。
  • 时钟:PL时钟可以配到200MHz甚至更高,但要看你的加速核能不能跑上去。
  • DDR:MPSoC支持DDR4,配置时注意选择正确的速率和位宽。

配置完成后,点击Run Block Automation,Vivado会自动连接一些默认的接口。然后手动连接AXI Interconnect和Zynq的AXI主接口。

3.4 生成硬件描述文件(XSA)

配置完处理器系统后,咱们要生成XSA文件。这个文件是Vitis认识硬件的“身份证”。

  1. 在Block Design中右键 → Generate Output Products。
  2. 等待综合完成。这一步可能需要几分钟。
  3. 然后点击Create HDL Wrapper,选择Let Vivado manage wrapper and auto-update。
  4. 最后,在Flow Navigator中点击Generate Bitstream。

生成比特流后,导出硬件:

  • File → Export → Export Hardware
  • 勾选Include bitstream,点击OK。
  • 导出的文件就是.xsa格式,默认保存在工程目录下。
提示: 如果你只是做软件开发,不涉及硬件调试,可以不生成比特流,只导出硬件描述文件。但Vitis加速核需要比特流,所以建议每次都生成。

3.5 知识体系总览

为了让你更直观地理解整个流程,我画了一张图:

Vivado硬件平台创建流程 创建Vivado工程 添加IP核 配置处理器系统 生成XSA文件 选择器件型号 Zynq/MPSoC + AXI Interconnect 时钟、DDR、接口配置 包含比特流,导出.xsa 关键:XSA文件是Vitis认识硬件的“身份证”

这张图把整个流程串起来了。你跟着走一遍,基本不会出错。

3.6 常见问题与经验

  • 问题:Block Design中连线报错? 多半是接口没匹配上。检查AXI Interconnect的位宽和时钟是否与Zynq一致。
  • 问题:生成比特流失败? 先看时序报告,是不是时钟频率设太高了。我一般先降到100MHz试跑,通了再提频。
  • 问题:XSA文件导入Vitis后找不到加速核? 确认导出时勾选了Include bitstream,并且Block Design中预留了AXI接口给加速核。

核心总结:

  • Vivado工程是硬件平台的基础,别偷懒用默认配置。
  • Zynq/MPSoC配置时,重点关注AXI接口、时钟和DDR。
  • XSA文件是连接Vivado和Vitis的桥梁,必须包含比特流。

好了,硬件平台搭建就到这里。你跟着操作一遍,应该能顺利生成XSA文件。下一章咱们就用这个文件,在Vitis里创建加速核工程。

可可精品资料库