主要内容

部署模型AXI-Stream界面Zynq工作流

这个例子展示了如何使用AXI4-Stream接口来实现高速数据传输处理器和FPGA之间Zynq®硬件。

在你开始之前

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

Zedboard设置,请参考设置Zynq硬件和工具部分的示例开始使用针对Xilinx Zynq平台

介绍

这个例子展示了如何:

  1. 使用一个简化的流媒体协议模型流算法。

  2. 生成一个高密度脂蛋白与AXI4-Stream接口IP核。

  3. 生成的IP核心融入Zedboard参考设计与DMA控制器。

  4. 使用AXI4-Stream驱动程序生成C代码块运行在ARM处理器。

上面的图片是一个高水平的架构图,显示了一个流媒体数据传输之间的处理器和FPGA织物Zynq平台上。通常,AXI4-Stream接口与一个DMA控制器一起使用传输大量数据处理器的FPGA。数据通常被表示为矢量数据在软件方面。DMA控制器从内存中读取矢量数据,“流”到FPGA IP通过AXI4-Stream接口。“流”每样例流程发送一个数据元素,这意味着数据流的路径算法在FPGA IP使用标量数据类型。

FPGA IP还可以包括一个AXI4-Lite接口控制信号或参数调优。AXI4-Lite界面相比,AXI4-Stream接口传输数据的速度快得多,使其更适合数据路径的算法。

除了连接到处理器、FPGA IP与AXI4-Stream接口也可以与其他IPs AXI4-Stream FPGA内的接口来传输数据。

模型流算法与简化的流媒体协议

假设我们想要部署一个简单的对称冷杉Zynq过滤器。我们想在FPGA实现过滤器。和ARM处理器生成的源数据流FPGA通过AXI4-Stream接口。

让我们开始的sfir_fixed模型。

open_system (“sfir_fixed”)set_param (“sfir_fixed”,“SimulationCommand”,“更新”)

注意,这个模型的数据通路(x_iny_out)是处理标量输入数据,适用于流接口。

为了使数据传输的软件滤波算法,我们需要数据通路的端口映射到AXI4-Stream接口。AXI4-Stream接口包含数据(数据有效的()和控制信号等数据有效的)、背压(准备好了),和数据边界(TLAST)。

AXI4-Stream IP核心代功能至少需要数据有效的DUT信号进行建模。的数据信号是主要的有效负载发送整个界面。的有效的信号指示时数据信号是有效的。其它控制信号是可选的。

注意:IP核心代、数据和有效的遵循一个简化的流媒体协议。你不需要模型完整AXI4-Stream协议,这是更复杂的。HDL编码自动生成流接口模块在高密度脂蛋白IP核心简化的流媒体协议转化为完整的AXI4-Stream协议。如以下图片所示,协议很简单:只要数据信号是有效的,有效的信号还必须断言。

因此,为了地图sfir_fixed算法简化的流媒体协议,有效的信号需要添加。添加有效的信号模型,我们推荐以下建模模式:

  1. 算法子系统转化为一个子系统启用。

  2. 添加一个输入控制端口,Valid_In输出控制端口,Valid_Out

  3. 使用Valid_In驱动算法子系统的启用端口和Valid_Out

在此模式中,两个输入流通道和输出流通道按照简化流协议。

现在,让我们来看看例子模型。

open_system (“hdlcoder_sfir_fixed_stream”);

子系统DUT是硬件子系统针对FPGA结构。这个子系统内部,是symmetric_fir子系统代表了滤波算法。输入端口,x_in_datax_in_valid输出端口,y_out_datay_out_valid滤波器的数据通路的港口。另一个输入端口,如h_in1控制端口调整滤波器参数。

模型简化的流媒体协议遵循建模模式。的symmetric_fir子系统是一个子系统启用。输入控制信号,x_in_valid,控制symmetric_fir子系统的启用端口以及驱动器输出控制信号,y_out_valid

AXI4-Stream IP核心生成,您可以选择其他流媒体控制信号模型。例如,你可以背压信号模型,准备好了。AXI4-Stream接口通信在主/从模式中,在主设备发送数据到从设备。的准备好了信号是一个背压信号从奴隶设备主设备表明奴隶设备是否能接受新数据。如以下图所示,准备好了信号是断言当奴隶设备可以接受新数据。当奴隶设备可以不再接受新的数据,它需要de-assert准备好了信号。当主设备发现准备好了deasserted信号,停止数据传输一个样本后最多。这个示例津贴是内置在协议。

注:本图演示了数据之间的关系,有效的,根据简化的流媒体协议准备好信号。当您运行这个IP核心代工作流程,代码生成器添加一个流接口模块的HDL IP核心翻译充分简化协议流协议。

例如,您可以使用准备好了信号当你使用一个FIFO块收集一个框架的流数据,然后处理算法。在数据处理过程中,你deassert准备好了信号,防止进一步的输入数据。

产生高密度脂蛋白与AXI4-Stream接口IP核

接下来,我们开始HDL工作流顾问和使用Zynq硬件软件合作设计工作流Zynq硬件上部署这个设计。对于更详细的一步一步的指导,您可以参考开始使用针对Xilinx Zynq平台的例子。

1。设置Xilinx Vivado合成工具路径使用以下命令在MATLAB命令窗口。使用自己的Vivado安装路径,当你运行该命令。

hdlsetuptoolpath (“ToolName”、“Xilinx Vivado”、“路径”,“C: \ Xilinx \ Vivado \ 2019.1 \ bin \ vivado.bat”)

2。开始的高密度脂蛋白工作流顾问DUT子系统,hdlcoder_sfir_fixed_stream / DUT。目标接口设置已经保存在这个示例模型,所以任务1.1和1.2中的设置是自动加载。了解更多关于储蓄目标接口设置在模型中,您可以参考保存目标硬件设置模型的例子。

在任务1.1中,IP核心代被选中的目标工作流程,Zedboard被选中的目标平台。在任务1.2中,默认系统AXI4-Stream接口被选中的参考设计,目标平台接口表加载如以下图片所示。数据通路的端口,x_in_data,x_in_valid,y_out_data,y_out_valid、映射到AXI4-Stream接口和端口的控制参数,如h_in1,映射到AXI4-Lite接口。

AXI4-Stream接口通信在主/从模式中,在主设备发送数据到从设备。因此,如果一个数据端口是一个输入端口,将其分配给一个AXI4-Stream奴隶接口,如果一个数据端口输出端口,将其分配给一个AXI4-Stream主接口。

3所示。右键单击任务3.2,生成RTL代码和IP核心,并选择选择任务运行生成IP核。你可以找到寄存器地址映射和其他文档的IP核心IP核生成报告。

IP集成到AXI4-Stream兼容的参考设计

接下来,在高密度脂蛋白工作流顾问,我们运行嵌入式系统集成任务Zynq硬件上部署生成的HDL IP核。

1。4.1运行任务,创建项目。这个任务将生成的IP核心插入到默认系统AXI4-Stream接口参考设计。这个参考设计包含Xilinx AXI DMA IP处理处理器的FPGA结构数据流。第一个图所示,或IP核心报告,从手臂被发送的数据处理系统,通过DMA控制器和AXI4-Stream接口,生成的HDL冷杉过滤IP核。滤波器的输出IP核心然后发送回处理系统。

2。在结果窗格中选择点击链接打开生成Vivado项目。在Vivado工具,单击开放块设计查看Zynq设计图表,包括生成的HDL IP核心,阿喜DMA控制器和处理器。

3所示。在高密度脂蛋白工作流顾问,运行的其他任务生成软件界面模型,并建立和下载FPGA比特流。

生成的手臂执行使用AXI4-Stream驱动程序块

4.2软件界面模型生成的任务,生成软件界面模型,如以下图片所示。

尽管AXI4-Lite驱动程序自动生成软件界面模型,AXI4-Stream驱动程序块不能自动生成。原因是AXI4-Stream驱动程序块将被连接到一个向量港口在软件方面,但是x_in_dataDUT端口是一个标量端口。

1。之前你从软件界面模型生成代码:

  1. 添加AXI4-Stream IIO读AXI4-Stream IIO写司机街区金宝app模型库浏览器- >嵌入式编码器为Xilinx Z金宝appynq平台支持包图书馆。

  2. 使用一个矢量数据源驱动x_in_data端口。

  3. 连接x_in_data端口驱动程序块。

  4. 双击AXI4-Stream IIO写块,并将超时设置为0,而不是正无穷。这是如下所示。

5。设置的优先级AXI4-Stream IIO写块1确保写之前读。设置优先级,右键单击,打开属性,设置优先级为1。这是如下所示。

6。现在双击AXI4-Stream IIO读块和帧大小设置为100,样品时间Ts和超时10。这是如下所示。

7所示。的优先级AXI4-Stream IIO读块不需要设置,设置优先考虑写块单独1已经确保写之前读。

对于这个示例,提供更新后的软件界面模型:hdlcoder_sfir_fixed_stream_sw.slx。矢量数据来源与100年的数据元素在这个模型中,使用和连接到AXI4-Stream DMA驱动程序块。这意味着,对于每个处理器样品时间,DMA控制器将流100 32位数据样本高密度脂蛋白通过AXI4-Stream接口IP核,和接收100 32位流数据样本。

2。配置和构建的软件界面模型外部模式:

  1. 在生成的模型中,点击硬件面板和去硬件设置打开配置参数对话框。

  2. 选择解算器和“停止时间”设置为“正”。

  3. 从硬件面板中,单击监视和优化按钮。

  4. 单击运行按钮在将来发布模型。嵌入式程序员构建模型,下载手臂Zedboard硬件可执行,执行它,连接模型Zedboard硬件上运行的可执行文件。

3所示。现在的硬件和软件部分的设计都是Zynq硬件上运行。ARM处理器发送FPGA IP的源数据,通过DMA控制器和AXI4-Stream接口。ARM处理器接收到从FPGA IP过滤结果数据,并将结果数据通过外部模式仿真软件。金宝app观察冷杉滤波器的输出从Zynq IP核心硬件的时间范围y_out

4所示。调整滤波器参数在软件界面模型和观察冷杉滤波器的输出变化调整参数。发送的参数值是通过外部模式和AXI4-Lite Zynq硬件接口。