socAXIManager
描述
的socAXIManager
对象与MATLAB通信®在硬件板上运行的AXI管理IP。对象使用JTAG连接将读写命令转发到硬件板上的IP和访问从内存位置。通过一项socAXIManager
对象作为参数时创建socIPCore
对象,以便对象可以访问板上IP核内的内存位置。
创建
描述
输入参数
供应商
- - - - - -FPGA品牌名称
“英特尔”
|“Xilinx”
FPGA品牌名称,指定为“英特尔”
或“Xilinx”
.AXI管理器IP取决于您拥有的FPGA类型。
hw
- - - - - -硬件对象
socHardwareBoard
对象
硬件对象,指定为socHardwareBoard
对象,表示到SoC硬件板的连接。
属性
JTAGCableType
- - - - - -用于与FPGA板(Xilinx . FPGA)通信的JTAG电缆类型®董事会)
“汽车”
(默认)|“FTDI”
用于与FPGA板(仅限Xilinx板)通信的JTAG电缆类型,指定为“汽车”
或“FTDI”
.当有多根电缆连接到主机时,此属性最有用。
当此属性设置为“汽车”
(默认值),对象自动检测JTAG电缆类型。对象优先搜索Digilent®电缆,并使用该过程自动检测电缆类型。
的
socAXIManager
对象搜索Digilent电缆。如果对象发现:恰好一根Digilent电缆——对象使用该电缆与FPGA板通信。
多于一条Digilent电缆——该对象返回一个错误。要解决此错误,请使用
JTAGCableName
财产。No Digilent电缆——对象搜索FTDI电缆(参见步骤2)。
如果没有发现Digilent电缆,则
socAXIManager
对象搜索FTDI电缆。如果对象发现:恰好一根FTDI电缆——对象使用该电缆与FPGA板通信。
超过一条FTDI电缆——该对象返回一个错误。要解决此错误,请使用
JTAGCableName
财产。No FTDI电缆——该对象返回一个错误。若要解决此错误,请连接Digilent或FTDI电缆。
电缆搜索“汽车”
mode优先使用Digilent电缆连接。如果一根Digilent和一根FTDI电缆连接到主机,且此属性设置为“汽车”
,对象选择Digilent电缆与FPGA板通信。
当此属性设置为“FTDI”
,则搜索FTDI线缆。如果对象发现:
恰好一根FTDI电缆——对象使用该电缆与FPGA板通信。
超过一条FTDI电缆——该对象返回一个错误。要解决此错误,请使用
JTAGCableName
财产。No FTDI电缆——该对象返回一个错误。若要解决此错误,请连接Digilent或FTDI电缆。
有关示例,请参见选择“Multiple JTAG电缆”.
JTAGCableName
- - - - - -用于与FPGA板通信的JTAG线缆名称
“汽车”
(默认)|特征向量
用于与FPGA板通信的JTAG电缆用户名,指定为“汽车”
或者一个字符向量。如果有多个相同类型的JTAG电缆连接到主机,则指定此属性。如果主机计算机有多个JTAG电缆,而您没有指定此属性,则该对象将返回一个错误。错误消息包含可用的JTAG电缆的名称。有关示例,请参见选择“Multiple JTAG电缆”.
TckFrequency
- - - - - -JTAG时钟频率
15
(默认)|正整数
JTAG时钟频率,以MHz为单位,指定为正整数。对于英特尔®fpga的JTAG时钟频率必须为12mhz或24mhz。对于Xilinx fpga, JTAG时钟频率必须为33mhz或66mhz。JTAG时钟频率由线缆类型和FPGA板支持的最大时钟频率决定。金宝app
JTAGChainPosition
- - - - - -FPGA在JTAG链中的位置(仅限Xilinx板)
1
(默认)|正整数
FPGA在JTAG链中的位置(仅限Xilinx板),指定为正整数。如果有多个FPGA或Zynq,请指定此属性值®设备在JTAG链上。
IRLengthBefore
- - - - - -目标FPGA之前所有设备的指令寄存器长度之和(仅限Xilinx板)
0
(默认)|非负整数
目标FPGA之前所有设备的指令寄存器长度之和(仅限Xilinx板),指定为非负整数。如果JTAG链上有多个FPGA或Zynq设备,则指定此属性值。
IRLengthAfter
- - - - - -目标FPGA后所有设备的指令寄存器长度之和(仅Xilinx板)
0
(默认)|非负整数
目标FPGA之后所有设备的指令寄存器长度之和(仅限Xilinx板),指定为非负整数。如果JTAG链上有多个FPGA或Zynq设备,则指定此属性值。
对象的功能
readmemory |
从AXI4内存映射位置读取数据 |
释放 |
释放JTAG电缆资源 |
writememory |
将数据写入AXI4内存映射位置 |
例子
在SoC硬件板上初始化内存
有关如何在设计中配置和使用AXI管理器IP的示例,请参见外部存储器的随机存取.具体地说,回顾soc_image_rotation_axi_master.m
脚本,初始化设备上的内存,启动FPGA逻辑,读取修改后的数据。本例只显示内存初始化步骤。
加载一个.mat
包含从板配置参数派生的结构的文件。该文件由SoC建设者.这些结构也描述了该设计板的IP核和内存配置。创建一个JTAG AXI管理器连接socHardwareBoard
对象,并将其传递给socAXIManager
对象。的socAXIManager
对象连接到硬件板并确认IP存在。
负载(“soc_image_rotation_zc706_aximaster.mat”);hwObj = socHardwareBoard(Xilinx Zynq ZC706评估试剂盒,“连接”、假);AXIManagerObj = socAXIManager(hwObj);
通过加载图形数据并将其写入来初始化设备上的内存内容Region1
.FPGA逻辑设计用于读取这些数据,旋转它,并将其写入Region2
.清除的内容Region2
.
负载(“soc_image_rotation_inputdata.mat”);inputFigure = smallage;[x, y] = size(inputFigure);inputImage = uint32(重塑(inputFigure',1,x*y));writememory (AXIManagerObj memRegions.AXI4MasterMemRegion1 inputImage);writememory (AXIManagerObj memRegions.AXI4MasterMemRegion2 uint32 (0 (1, x * y)));
基于SoC硬件板的内存访问
对于本例,必须在连接到MATLAB主机的硬件板上运行设计。
创建一个MATLAB AXI管理器对象。对象与硬件板连接,确认IP存在。可以使用供应商名称或名称创建对象socHardwareBoard
对象。
mem = socAXIManager(“Xilinx”);
用一个命令读写一个或多个地址。默认情况下,函数为每个数据字自动增加地址。例如,写入10个地址,然后从单个位置读取数据。
写入内存(mem,140,[10:19]) rd_d = readmemory(mem,140,1)
Rd_d = uint32 10
现在,阅读来自十个地点的书面数据。
Rd_d = readmemory(mem,140,10)
Rd_d = 1×10 uint32行向量10 11 12 13 14 15 16 17 18 19
设置BurstType
财产“固定”
关闭自动递增并多次访问同一地址。例如,从同一个地址读写入的数据十次。
Rd_d = readmemory(mem,140,10,“BurstType”,“固定”)
Rd_d = 1×10 uint32行向量10 10 10 10 10 10 10 10 10 10
将增量数据写入同一地址十次。存储在address中的最终值140
是29
.
writememory (mem, 140,(二十29),“BurstType”,“固定”) rd_d = readmemory(mem,140,10)
Rd_d = 1×10 uint32行向量29 11 12 13 14 15 16 17 18 19
或者,将地址指定为十六进制字符串。将读取的数据转换为uint32
,使用OutputDataType
财产。
writememory (mem、“1 c”,[0:4:64]) rd_d = readmemory(mem,“1 c”, 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)
选择“Multiple JTAG电缆”
当多条JTAG电缆连接到主机计算机时,该对象优先使用Digilent电缆而不是FTDI电缆。要使用FTDI电缆,请指定JTAG电缆类型属性。
h = socAXIManager(“Xilinx”,“JTAGCableType”,“FTDI”)
如果有两根相同类型的电缆连接到您的主机计算机,请指定JTAGCableName
JTAG管理器IP正在运行的板的属性。要查看JTAG电缆标识符,请尝试创建socAXIManager
对象,在本例中,该对象会出错并返回当前JTAG电缆名称的列表。
h = socAXIManager(“Xilinx”)
发现多个JTAG电缆:0 (JtagSmt1): #tpt_0001#ptc_0002#210203991642 1 (Arty): #tpt_0001#ptc_0002#210319789795请断开额外的电缆,或指定电缆名称作为输入参数。作为AXI管理器,请参阅FPGA Data Capture或MATLAB文档,了解如何设置电缆名称。
要与该Arty板通信,请指定匹配的JTAG电缆名称。
h = socAXIManager(“Xilinx”,“JTAGCableName”,“# tpt_0001 # ptc_0002 # 210319789795”)
版本历史
在R2019a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。