开始使用Zynq工作流中的AXI4-Stream视频接口

这个例子展示了如何使用AXI4-Stream视频接口在生成的HDL IP核上启用高速视频流。

在你开始之前

要运行此示例,您必须安装和设置以下软件和硬件:

  • HDL编码器支持包X万博1manbetxilinx Zynq平台

  • 嵌入式编码器支持包Xilinx万博1manbetx Zynq平台

  • 计算机视觉系统工具箱支持包基于Xilinx zynq的硬件万博1manbetx

  • 视觉HDL工具箱

  • Xilinx Vivado设计的套件,与支持的版本列出在万博1manbetxHDL编码文档

  • ZedBoard

  • FMC HDMI I / O卡(FMC-HDMI-CAM或FMC-IMAGEON)

要设置ZedBoard,请参阅本例中的“设置ZYNQ五金工具”一节。

介绍

这个例子展示了如何:

  1. 使用视频流像素协议建模视频流算法。

  2. 生成一个具有axi4流视频接口的HDL IP内核。

  3. 将生成的IP核心集成到一个ZedBoard视频参考设计与访问HDMI接口。

  4. 使用ARM®处理器调整FPGA结构上的参数来改变实时视频输出。

  5. 创建自己的自定义视频参考设计。

上面的图片是一个高层体系结构图,其示出了如何在一个预先定义的视频参考设计所产生的HDL DUT IP核工程。在该图中,高密度脂蛋白DUT IP块是从IP核心代工作流生成的IP核心。该图的其余部分表示预定义的视频参考设计,其中包含其他IP处理HDMI输入和输出接口。

高密度脂蛋白DUT IP处理从HDMI输入IP来的视频流,生成输出视频流,并将其发送到HDMI输出IP。所有这些视频流的AXI4插播视频接口传输。

高密度脂蛋白DUT IP还可以包含用于参数调优的AXI4-Lite接口。与AXI4-Lite接口相比,AXI4-Stream视频接口传输数据更快,更适合视频算法的数据路径。

建立Zynq硬件和工具

1.如图所示设置ZedBoard和FMC HDMI I/O卡。要了解更多关于ZedBoard硬件设置的信息,请参考主板文档。

1.1。连接USB电缆UART,以太网电缆和如上面的图中(标记1〜3)的电源线。

1.2。确保JP7JP11跳线设置如上图所示(标记4),因此您可以从SD卡引导Linux。JP7:下来;JP8:下来;JP9:最多;JP10:最多;JP11:下来。

1.3。确保J18跳线设置在2V5上,如图所示(标记5)。

1.4。如上述(标记6)的图所示连接HDMI视频源到FMC HDMI I / O卡。视频源必须能够提供1080p视频输出,例如,它可以是一台摄像机,智能手机,平板电脑或电脑的HDMI输出。

1.5。一个监视器连接到FMC HDMI I / O卡,如上面的(标记7)图。显示器必须能够支持1080p显示。万博1manbetx

2.如果你还没有准备好,安装HDL编码器和赛灵思ZYNQ平台的嵌入式编码器支持包和计算机视觉系统工具箱支持包基于赛灵思ZYNQ硬件。万博1manbetx要启动安装程序,转到MATLAB工具栏并单击附加组件>获取硬件支持包万博1manbetx。欲了解更多信息,请参阅万博1manbetx支持包安装文档

3.确保您使用的是Xilinx Zynq平台的嵌入式编码器支持包提供的SD卡映像。万博1manbetx如果需要更新SD卡映像,请运行万博1manbetx支持包固件更新通过运行在MATLAB提示以下命令:

targetupdater

4.在MATLAB命令窗口中输入以下命令,设置Zynq硬件连接:

h = zynq

ZYNQ在通过COM端口和运行在该硬件功能的日志ifconfig命令获取板的IP地址。此函数还测试以太网连接。

5.在MATLAB命令窗口中使用以下命令设置Xilinx Vivado合成工具路径。运行该命令时使用您自己的Vivado安装路径。

hdlsetuptoolpath( '工具名称', '赛灵思Vivado', '刀具路径', 'C:\赛灵思\ Vivado \ 2017.4 \ BIN \ vivado.bat')

模型的视频流算法使用流像素协议

部署上ZYNQ一个简单的Sobel边缘检测算法,第一步是确定哪些部分设计要在FPGA运行,并且其设计的一部分被ARM处理器上运行。在这个例子中,我们要实现对FPGA边缘检测器来处理AXI4插播视频协议的输入视频流。我们要使用的ARM处理器来调整FPGA的参数更改实况视频输出。

在示例模型中,DUT子系统Sobel_HW,使用边缘检测块实现Sobel边缘检测算法。视频数据和控制信号在视频流像素协议中建模,该协议在Vision HDL工具箱中被所有模块使用。pixelInpixelOut是视频流的数据端口。ctrlInctrlOut是视频流的控制端口。它们使用总线数据类型(像素控制总线),包含以下信号:HSTART,亨德,音速启动,公开发表,有效

四个输入端口,,Sobel_Enable,Background_ColorShow_Gradient,都是调节Sobel边缘检测算法参数的控制端口。你可以使用滑块增益手动开关块来调整这些端口的输入值。映射这些端口AXI4-精简版接口后,ARM处理器可以通过写入到生成的AXI接口访问寄存器控制所生成的IP核心。

modelname =“hdlcoder_sobel_video_stream”;open_system(MODELNAME);SIM(MODELNAME);

生成HDL IP核与AXI4-流视频接口

接下来,我们开始HDL工作流程顾问,并使用ZYNQ软硬件协同设计工作流程,部署在ZYNQ硬件这样的设计。对于更详细的一步一步的指导,你可以参考开始了Xilinx Zynq平台的HW/SW协同设计工作流程例。

1.从DUT子系统启动HDL工作流顾问,hdlcoder_sobel_video_stream / Sobel_HW。目标接口设置已经保存在这个示例模型中,因此任务1.1到1.3中的设置将自动加载。要了解有关在模型中保存目标接口设置的更多信息,可以参考在模型中保存目标硬件设置例。

在任务1.1中,IP核生成被选中的目标工作流程,ZedBoard被选中的目标平台

在任务1.2中,默认视频系统(需要HDMI FMC模块)被选中的参考设计

在任务1.3中目标平台接口表加载如下图所示。视频数据流端口,pixelIn,ctrlIn,pixelOut,ctrlOut,映射到AXI4-Stream视频接口,以及控制参数端口,例如,映射到AXI4-精简版界面。

AXI4-Stream视频接口以主/从模式通信,其中主设备向从设备发送数据。因此,如果数据端口是输入端口,则将其分配给AXI4-Stream视频奴隶接口,如果数据端口是输出端口,则将其分配给AXI4视频插播广告主接口。

2.右键单击任务3.2,生成RTL代码和IP核心,并选择运行到选定的任务生成IP核。您可以在生成的IP core报告中找到IP core的注册地址映射和其他文档。

集成IP进入AXI4-流视频兼容参考设计

接下来,在HDL流程顾问,我们运行嵌入式系统集成任务部署上ZYNQ硬件生成的HDL IP核。

1.4.1运行任务,创建项目。此任务将生成的IP核插入到默认的视频系统参考设计。如第一个图所示,这个参考设计包含处理HDMI输入和输出接口的IPs。它还包含从YCbCr到RGB进行颜色空间转换的IPs。生成的项目是一个完整的Zynq设计,包括算法部分(生成的DUT算法IP)和平台部分(参考设计)。

2.单击结果窗格中的链接,打开生成的Vivado项目。在Vivado工具,单击开放式模块设计以查看ZYNQ设计框图,其包括所生成的HDL IP核心,其他视频流水线的IP和ZYNQ处理器。

3.在HDL Workflow Advisor中,运行剩下的任务来生成软件接口模型,并构建和下载FPGA比特流。选择下载任务中的编程方法计划目标设备下载FPGA比特流到主板的SD卡上,这样你的设计将自动重新加载时,你的电源循环主板。

生成ARM可执行文件来调优FPGA结构上的参数

在Task 4.2中生成一个软件界面模型,生成软件界面模型

1.在从软件接口模型生成代码之前,注释掉视频源视频查看器在生成的模型中,如下图所示。这些块不需要在ARM处理器上运行。ARM处理器使用AXI4-Lite接口来控制FPGA结构。实际的视频源和显示界面都运行在FPGA架构上。视频源来自HDMI输入,视频输出将被发送到连接到HDMI输出的监视器。

2.配置和构建外部模式的软件接口模型:

  1. 在生成的模型中,打开配置参数对话框。

  2. 选择解算器并将“停止时间”设置为“inf”。

  3. 从“模型”菜单中选择模拟>模式>外部

  4. 点击运行按钮在模型工具条上。Embedded Coder构建模型,将ARM可执行文件下载到ZedBoard硬件上,执行它,并将模型连接到在ZedBoard硬件上运行的可执行文件。

3.现在,设计的硬件和软件部分都在Zynq硬件上运行。使用Sobel_Enable切换观察现场视频输出在边缘检测器输出和原始视频之间切换。使用Background_Color切换到现场视频输出的不同边缘检测效果。这些参数值通过外部模式和AXI4-Lite接口发送到Zynq硬件。

定制您的视频参考设计

您可能想要扩展现有的默认的视频系统参考设计添加额外的相机预处理或后处理流水线IPs,或者你可能想要使用不同的SoC硬件或摄像机接口。的默认的视频系统参考设计是创建自定义参考设计的一个示例或起点。

例如,默认的视频系统参考设计包含了两个IP核来做YCbCr到RGB的颜色空间转换,如下图所示。这两个IP核是由HDL编码器和使用IP核生成工作流生成。您可以选择生成其他预处理或后处理摄像机流水线IP核,并将它们添加到自定义参考设计,以扩展您的视频平台。

有关创建自定义参考设计的详细信息,请参考定义和注册自定义板和参考设计SoC工作流例。