主要内容

利用Zynq上的内置以太网使用AXI Master执行内存访问

这个例子展示了如何使用基于以太网的MATLAB®AXI master访问Xilinx®Zynq®-7000 ZC706板上的外部内存和FPGA ip。在基于Xilinx zynq的设计中,MATLAB作为AXI主机,利用处理系统(PS)中的用户数据报协议(UDP)服务器,通过AXI Lite接口与外部内存控制器和FPGA ip进行通信。这个框图显示了主机和Xilinx Zynq-7000板通过以太网的通信。

该示例演示了这些步骤和该图中概述的操作。

  1. 写入大小为24x64的ASCII图像到Region1

  2. 配置图像旋转的IP读取图像Region1,旋转图像,并将旋转后的图像写入Region2

  3. 读取图像Region2

硬件和软件要求

要运行此示例,必须安装并设置该软件和硬件。

  • Xilinx Vivado®Design Suite,支持的版本列在金宝appHDL语言支持和支持的第三金宝app方工具和硬件(高密度脂蛋白编码器)

  • Xilinx Zynq ZC706评估试剂盒

  • 连接ZC706 FPGA的以太网线

  • 用于Xilinx Zy金宝appnq平台的HDL Coder™支持包

  • 用于Xilinx FPGA板金宝app的HDL验证器™支持包

  • SD卡

设置

步骤1:搭建FPGA板

确认Xilinx Zynq-7000 ZC706单板已通过以太网线与上位机连接。以太网线缆用于与单板编程和通信。

步骤2:设置SD卡

具体操作请参见步骤1 ~步骤4用于Xilinx Zynq SoC器件的以太网MATLAB AXI Master

步骤3:创建一个Vivado项目

设置Xilinx Vivado工具路径。在MATLAB中执行命令时,使用您的Xilinx Vivado安装路径。例如,在MATLAB命令提示符处输入这个命令。

hdlsetuptoolpath(“ToolName”、“Xilinx Vivado”、“路径”,“C: \ -mw-0 Xilinx \ Vivado \ 2019.2 \赢得\ Vivado \ 2019.2 \ bin);

创建一个MATLAB安装文件夹范围之外的文件夹,您可以将示例文件复制到其中。文件夹必须是可写的。这个例子假设文件夹位于C: \ mytest

解压缩imagerotation_ip.zip文件中添加图像旋转IP用户存储库在你的Vivado项目中。

解压缩(fullfile(“ipcore”、“imagerotation_ip_v1_0.zip”),fullfile (' ipcore ', ' imagerotation_ip_v1_0 '));

使用此命令创建一个Vivado项目。该项目包含一个IP Integrator框图和一个约束文件。

系统('vivado -mode batch -source createproject.tcl')

这个过程大约需要一分钟。一个Vivado项目ethernetaximasterzynq.xpr在当前目录中创建。

通过在文件浏览器中双击项目或在MATLAB命令提示符中输入此命令,以GUI模式打开生成的Vivado项目。

系统(“vivado ethernetaximasterzynq。xpr &”)

步骤4:打开框图和地址编辑器窗口

在Vivado GUI中,打开框图设计文件design_1.bd。您可以在源文件子窗口中找到该文件。

打开“地址编辑器”窗口查看mig_7series_0(内存控制器)imagerotation_ip“诱导多能性”。

这些都是imagerotation_ip寄存器及其相应的物理位置。

  • IP核心重置寄存器['40000000']-写入1重置图像旋转IP。

  • IP Core enable register ['40000004'] - Write 1 to enable the image rotation IP。

  • 读取基址寄存器['40000008']-包含起始地址Region1(例如,0 x60000000)。

  • 写入基址寄存器['4000000C'] -包含起始地址Region2(例如,0 x62000000)。

  • 启动寄存器['40000100']-写入1以启动图像旋转操作。

请注意:如果要使用预生成的位流和复制到当前工作目录的设备树blob (DTB)文件,请跳过步骤5和步骤6。

步骤5:生成FPGA编程文件

单击,生成FPGA编程文件产生的比特流在Vivado窗口。Vivado可能会提示您在继续之前保存项目。Vivado生成bitstream文件大约需要5 ~ 10分钟。

步骤6:生成DTB文件

要编译DTB文件,需要在Linux机器上使用设备树编译器(DTC)。如果没有安装DTC,请在Linux控制台窗口中执行以下命令。

Sudo apt-get update -y
Sudo apt-get安装-y设备树编译器

成功安装DTC后,要生成DTB文件,请打开单板特定的DTS文件,提供如图所示的FPGA内存信息。

或者,你可以使用为这个例子提供的DTS文件:C: \ mytest \ devicetree_zc706_image_rotation.dts

通过在Linux控制台窗口中执行此命令,从DTS文件生成DTB文件。

dtc -I dts -O dtb devicetree_zc706_image_rotation。dts - o devicetree_zc706_image_rotation.dtb

步骤7:对FPGA编程

通过在MATLAB命令提示符处输入此命令,在MATLAB中编程FPGA。

loadBitstream (' ZC706 ', ' ethernetaximaster_zynq_zc706.bit ', ' devicetree_zc706_image_rotation.dtb ');

运行设计

要运行设计,请运行ethernetaximasterzynq_tb.m文件从MATLAB命令提示符当前工作文件夹。

ethernetaximasterzynq_tb

该脚本通过创建一个axis - master对象在MATLAB中运行设计,并绘制输入和输出图像,如图所示。

相关的话题