主要内容

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

此示例显示如何使用基于以太网的MATLAB作为AXI主机,以通过以太网上的XilinxZynq®-7000 ZC706板上访问外部存储器和FPGA IP。在基于Xilinx Zynq的设计中,Matlab®充当AXI主机,通过在处理系统(PS)中使用用户数据报协议(UDP)服务器,与外部存储器控制器和FPGA IP通信。以下框图显示了以太网上的主机和XilinxZynq®-7000板之间的通信。

该示例演示了以下步骤中概述的操作:

  1. 写一个尺寸的尺寸24-64的ASCII图像区域1

  2. 配置图像旋转IP.阅读图像区域1,旋转图像,并将旋转图像写入地区2

  3. 阅读图像地区2

硬件和软件要求

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

  • Xilinx®Vivado®设计套件,其中包含支持的版本金宝appHDL编码器文档

  • XilinxZynq®ZC706评估套件

  • 以太网电缆连接ZC706 FPGA

  • HDL Coder™支金宝app持包用于Xilinx®Zynq®-7000平台

  • 用于Xilinx®FPGA板金宝app的HDL Verifier™支持包

  • SD卡

设置

第1步:设置FPGA板。验证Xilinx Zynq-7000 ZC706板通过以太网电缆连接到主机。以太网电缆用于编程和与电路板通信。

第2步:设置SD卡。有关详细信息,请参阅步骤1到4以太网MATLAB作为Zynq SoC设备的Axi Master

第3步:设置XilinxVivado®工具路径。在Matlab中执行命令时使用Xilinx Vivado安装路径。例如,在MATLAB命令提示符下输入此命令。

>> HDLSetuptoolPath('toolname''Xilinx Vivado''工具路径''C:\ Xilinx \ Vivado \ 2019.2-MW-0 \ WIN \ Vivado \ 2019.2 \ Bin');

在可以复制示例文件的MATLAB安装文件夹的范围之外创建一个文件夹。文件夹必须可写。此示例假定该文件夹位于C:\ mytests

将MATLAB中的当前目录设置为您创建的文件夹。例如,在matlab命令提示符下输入此命令。

>> CD C:\ mytests

通过在MATLAB命令提示符下执行此命令将示例文件复制到当前目录中。

>> CopyXilinxfpgaExamplefiles('ethernetaximasterzynq');

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

>>解压缩(FullFile('ipcore''imageerotation_ip_v1_0.zip'),fullfile('ipcore''imageerotation_ip_v1_0'));

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

>>系统('Vivado -Mode Batch -source createProject.TCL'

此过程在大约一分钟内完成。在当前目录中创建名为“Ethernetaximasterzynq.xpr”的Vivado项目。

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

>>系统('Vivado Ethernetaximasterzynq.xpr&'

第4步:在Vivado GUI中,打开块图设计文件设计_1.BD.。您可以在源文件子窗口中找到此文件。

打开地址编辑器窗口以查看地址映射mig_7series_0.(内存控制器)和imageerotation_ip.

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

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

  • IPCORE启用寄存器['40000004'] - 写入1以启用图像旋转IP。

  • 读取基础地址寄存器['40000008'] - 包含启动地址区域1(例如,0x60000000)。

  • 写基础地址寄存器['4000000C'] - 包含启动地址地区2(例如,0x62000000)。

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

笔记:跳过步骤5和6,使用普瑞格的比特流和复制到当前工作目录的DTB文件。

步骤5:生成FPGA编程文件。

点击生成比特流在Vivado窗口的左侧生成FPGA编程文件。Vivado可能会提示您在前进之前保存项目。Vivado在5到10分钟内生成比特流文件。

步骤6:生成设备树Blob(DTB)文件。

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

%sudo apt-get更新-y

%sudo apt-get安装-y device-tree-compiler

在成功安装DTC后,要生成DTB文件,请打开特定于电路板的DTS文件以提供如下所示的FPGA存储器信息。

或者,您可以使用为此示例提供的DTS文件:C:\ mytests \ devicetree_zc706_image_rotation.dts

通过执行此命令从DTS文件生成DTB文件。

%dtc -i dts -o dtb devicetree_zc706_image_rotation.dts -o devicetree_zc706_image_rotation.dtb

步骤7:通过在Matlab命令Prommpt中输入此命令来对MATLAB中的FPGA进行编程。

>> LoadBitStream('zc706''ethernetaximaster_zynq_zc706.bit''deviceTree_zc706_image_rotation.dtb');

运行设计

要运行设计,运行ethernetaximasterzynq_tb.m.从当前工作文件夹中的Matlab命令Prommpt文件。

>> ethernetaximasterzynq_tb.

该脚本通过创建Axi-Master对象来从MATLAB运行设计,并按照所示绘制输入和输出图像。