主要内容

aximanager

从FPGA板上读取和写入内存位置MATLAB

描述

aximanager对象在FPGA板上运行时,与AXI管理器IP通信。对象将读和写命令转发到IP,以访问FPGA板上的下级内存位置。在使用此对象之前,请执行中的步骤设置AXI管理器

请注意

aximaster对象已重命名为aximanager对象。有关更多信息,请参见兼容性的考虑

创建

描述

例子

mem= aximanager (供应商返回一个对象,该对象控制在您的电路板上运行的FPGA的AXI4管理器IP。供应商FPGA品牌。此连接使您能够从MATLAB访问SoC设计中的内存位置®

mem= aximanager (供应商的名字价值使用一个或多个名称-值对参数设置属性。将每个属性名和值用引号括起来。例如,“DeviceAddress”、“192.168.0.10”指定FPGA板的IP地址为192.168.0.10。

输入参数

全部展开

FPGA品牌名称,指定为“Intel”或“Xilinx”。指定FPGA板的厂商。AXI管理器IP取决于您指定的FPGA类型。

属性

全部展开

用于与FPGA板通信的接口类型,指定为'JTAG'(默认),'PCIe'或'UDP'。指定主机与FPGA通信的接口类型。

用于与FPGA板(Xilinx . FPGA)通信的JTAG线缆类型®),指定为'auto'(默认值)或'FTDI'。该值指定用于与FPGA板通信的JTAG电缆类型。当有多根电缆连接到主机时,此属性最有用。

当此属性设置为“汽车”(默认值),对象自动检测JTAG电缆类型。对象优先搜索Digilent®电缆,并使用该过程自动检测电缆类型。

  1. aximanager对象搜索Digilent电缆。如果对象发现:

    • 恰好一根Digilent电缆,它使用该电缆与FPGA板通信。

    • 如果多于一条Digilent电缆,则返回错误。要解决此错误,请使用指定所需的电缆JTAGCableName

    • 没有Digilent电缆,它会搜索FTDI电缆。

  2. 如果没有发现Digilent电缆,则aximanager对象将搜索FTDI电缆。如果对象发现:

    • 恰好一根FTDI电缆,它使用该电缆与FPGA板通信。

    • 如果超过一条FTDI电缆,将返回错误。要解决此错误,请使用指定所需的电缆JTAGCableName

    • 如果没有FTDI电缆,则返回错误。若要解决此错误,请连接Digilent或FTDI电缆。

  3. 如果对象发现两种不同类型的电缆,它将优先选择Digilent电缆。若要使用FTDI电缆,请将此属性设置为“FTDI”

当此属性设置为“FTDI”,则搜索FTDI线缆。如果对象发现:

  • 恰好一根FTDI电缆,它使用该电缆与FPGA板通信。

  • 如果超过一条FTDI电缆,将返回错误。要解决此错误,请使用指定所需的电缆JTAGCableName

  • 如果没有FTDI电缆,则返回错误。若要解决此错误,请连接Digilent或FTDI电缆。

详情请参见选择“Multiple JTAG电缆”

依赖关系

属性可启用此属性供应商输入“Xilinx”

用于与FPGA板通信的JTAG电缆名称,指定为字符向量或表示JTAG电缆名称的字符串标量。如果有多个相同类型的JTAG电缆连接到主机,则指定此属性。如果主机计算机有多个JTAG电缆,而您没有指定此属性,则该对象将返回一个错误。错误消息包含可用的JTAG电缆的名称。详情请参见选择“Multiple JTAG电缆”

数据类型:字符|字符串

FPGA板上以太网端口的IP (Internet protocol)地址,用字符向量或字符串标量表示IP地址。

例子:“192.168.0.10”

依赖关系

属性可启用此属性接口UDP的

数据类型:字符|字符串

目标设备类型,指定为'FPGA'(默认)或'SoC'。当您使用Xilinx Zynq或Intel SoC作为目标设备时,请将此属性指定为“SoC”。

例子:“SoC”

目标FPGA板的UDP (User datagram protocol)端口号,整数形式。

例子:“12345”

依赖关系

属性可启用此属性接口财产UDP的DeviceType财产FPGA的

数据类型:uint16

指定JTAG时钟频率(仅限Xilinx板),指定为正整数。单位为MHz。JTAG频率由线缆类型和FPGA板支持的最大时钟频率决定。金宝app检查董事会文件以确定最大频率。

依赖关系

属性可启用此属性供应商输入“Xilinx”

FPGA在JTAG链中的位置(仅限Xilinx板),指定为非负整数。如果有多个FPGA或Zynq,请指定此属性值®设备在JTAG链上。

依赖关系

属性可启用此属性供应商输入“Xilinx”

目标FPGA之前所有设备的指令寄存器长度之和(仅限Xilinx板),指定为非负整数。如果JTAG链上有多个FPGA或Zynq设备,则指定此属性值。

依赖关系

属性可启用此属性供应商输入“Xilinx”

目标FPGA之后所有设备的指令寄存器长度之和(仅限Xilinx板),指定为非负整数。如果JTAG链上有多个FPGA或Zynq设备,则指定此属性值。

依赖关系

属性可启用此属性供应商输入“Xilinx”

对象的功能

readmemory 从AXI4内存映射的下属中读取数据
释放 释放JTAG或以太网线资源
writememory 将数据写入AXI4内存映射的下属

例子

全部折叠

这个例子展示了如何从MATLAB®读取和写入Xilinx®FPGA板上的内存位置。

在使用此示例之前,必须在连接到MATLAB主机的FPGA板上运行设计。FPGA设计必须包括为您的FPGA供应商定制的AXI管理器IP。支持包安金宝app装中包含该IP。若要在项目中包含IP,请参见使用基于jtag的AXI管理器访问FPGA内存的例子。

创建一个AXI管理器对象。对象将MATLAB与FPGA板连接,并确认IP存在。

Mem = aximanager(“Xilinx”
mem =
具有特性的Aximanager:
供应商:Xilinx JTAGCableName: auto

写入10个地址,然后从单个位置读取数据。默认情况下,这些函数为每个数据字自动增加地址。

writememory (mem、140 [19]);Rd_d = readmemory(mem,140,1)
rd_d =
uint32
10

从10个位置读取数据。

Rd_d = readmemory(mem,140,10)
rd_d =
1x10 uint32行向量
10 11 12 13 14 15 16 17 18 19

通过指定AXI管理器从同一地址读取所有数据(禁用自动递增),从同一地址读取数据10次。

Rd_d = readmemory(mem,140,10,“BurstType”“固定”
rd_d =
1x10 uint32行向量
10 10 10 10 10 10 10 10

向同一个地址写数据10次。在本例中,最终值存储在address中14029

writememory (mem, 140,(二十29),“BurstType”“固定”);Rd_d = readmemory(mem,140,10)
rd_d =
1x10 uint32行向量
29 11 12 13 14 15 16 17 18 19

将地址指定为16进制值。指定函数将读取的数据转换为其他数据类型uint32

writememory (mem 0 x1c [0:4:64]);Rd_d = readmemory(mem,0x1c,16,“OutputDataType”numerictype(0、6、4))
rd_d =
列1 ~ 10 0 0.2500 0.5000 0.7500 1.0000 1.2500…1.5000 1.7500 2.0000 2.2500 11 ~ 16列2.5000 2.7500 3.0000 3.2500 3.5000 3.7500
DataTypeMode:定点:二进制点缩放signdness: Unsigned WordLength: 6 FractionLength: 4

当不再需要访问该单板时,释放JTAG连接。

释放(mem);

此示例显示如何从连接到主机的多个JTAG电缆中选择所需的JTAG电缆。

当多条JTAG电缆连接到主机计算机时,对象将优先搜索Digilent®电缆而不是FTDI电缆。如果使用FTDI线缆,请指定JTAG线缆类型。

H = aximanager(“Xilinx”“JTAGCableType”“FTDI”);

如果有两根相同类型的电缆连接到您的主机计算机,请指定JTAGCableName运行AXI管理器IP的单板的属性标识符。要查看JTAG电缆标识符,请尝试创建aximanager对象。该对象返回当前JTAG电缆名称的列表。

H = aximanager(“Xilinx”
错误使用fpgadebug_mex发现更多的一个JTAG电缆:1(火炮):#tpt_0001#ptc_0002#210203991642请断开连接额外的电缆,或指定电缆的名字作为一个输入论点。看到文档FPGA数据捕获阿喜经理学习如何电缆的名字。

如果需要与Arty板通信,请指定匹配的JTAG线缆名称。

H = aximanager(“Xilinx”“JTAGCableName”“# tpt_0001 # ptc_0002 # 210319789795”);

版本历史

在R2017a中引入

全部展开