使用
JTAG-to-AXI Master
调试核进行硬件系统通信
JTAG-to-AXI Master
调试核为可自定义核
,
可在运行时生成
AXI
传输事务并驱动
FPGA
内部的
AXI
信号。该核支持所
有存储器映射型
AXI
接口和
AXI4-Lite
接口
,
并且可支持位宽为
32
或
64
的数据接口。
您添加到自己的设计中的
JTAG-to-AXI Master (JTAG-AXI)
核会显示在“硬件
(Hardware)
”窗口中的目标器件下。如果
未显示这些
JTAG-AXI
核
,
请右键单击器件并选择“
Refresh Hardware
”。这样将重新扫描
FPGA
器件并刷新
“
Hardware
”窗口。
注释
:
如果编程和
/
或刷新
FPGA
器件后仍未显示
ILA
核
,
请检查并确保已使用正确的
.bit
文件完成器件编程
,
并确
认已实现的设计包含
ILA
核。
单击并选中此
JTAG-AXI
核
(
下图中名为
hw_axi_1
的核
),
以在“
AXI
核属性
(AXI Core Properties)
”窗口中查看其属
性。
与硬件中的
JTAG-to-AXI Master
调试核进行交互
只能使用
Tcl
命令来与
JTAG-to-AXI Master
调试核进行通信。您可使用
create_hw_axi_txn
命令和
run_hw_axi
命令来分别创建并运行
AXI
读取和写入传输事务。
复位
JTAG-to-AXI Master
调试核
创建并发出传输事务之前
,
重要的是使用以下
Tcl
命令来复位
JTAG-to-AXI Master
核
:
reset_hw_axi [get_hw_axis hw_axi_1]
创建并运行读取传输事务
用于创建
AXI
传输事务的
Tcl
命令为
create_hw_axi_txn
。如需了解有关如何使用此命令的更多信息
,
请在
Vivado
IDE
的
Tcl
控制台
(Tcl console)
中输入“
help create_hw_axi_txn
”。以下是有关如何从地址
0
创建
4
字
AXI
读
取突发传输事务的示例
:
create_hw_axi_txn read_txn [get_hw_axis hw_axi_1] -type READ -address
00000000 -len 4
其中
:
•
read_txn
是用户定义的传输事务名称
•
[get_hw_axis hw_axi_1]
会返回
hw_axi_1
对象
•
-address 00000000
是起始地址
•
-len 4
会将
AXI
突发长度设置为
4
个字
下一步是运行刚使用
run_hw_axi
命令创建的传输事务。操作方式如下
:
run_hw_axi [get_hw_axi_txns read_txn]
最后一步是获取通过运行该传输事务所读取的数据。您可使用
report_hw_axi_txn
或
report_property
命令在屏幕
上打印此数据
,
或者也可以使用
get_property
命令来返回值
,
以供在别处使用。
report_hw_axi_txn [get_hw_axi_txns read_txn]
0 00000000 00000000
8 00000000 00000000
report_property [get_hw_axi_txns read_txn]
Property Type Read-only Visible Value
CLASS string true true hw_axi_txn
CMD.ADDR string false true 00000000
CMD.BURST enum false true INCR
CMD.CACHE int false true 3
CMD.ID int false true 0
CMD.LEN int false true 4
CMD.SIZE enum false true 32
DATA string false true 00000000000000000000000000000000
HW_AXI string true true hw_axi_1
NAME string true true read_txn
TYPE enum false true READ
创建和运行写入传输事务
以下是有关如何从地址
0
创建
4
字
AXI
写入突发传输事务的示例
:
create_hw_axi_txn write_txn [get_hw_axis hw_axi_1] -type WRITE -address
00000000 \
-len 4 -data {11111111_22222222_33333333_44444444}
其中
:
•
write_txn
是用户定义的传输事务名称
•
[get_hw_axis hw_axi_1]
会返回
hw_axi_1
对象
•
-address 00000000
是起始地址
•
-len 4
会将
AXI
突发长度设置为
4
个字
•
-data {11111111_22222222_33333333_44444444}
-
数据方向为左侧
LSB
(
即
,
地址
0
)
和右侧
MSB
(
即
,
地址
3
)
。
下一步是运行刚使用
run_hw_axi
命令创建的传输事务。操作方式如下
:
run_hw_axi [get_hw_axi_txns write_txn]
重要提示
!
如果您对器件进行重新编程
,
那么将删除所有现有
jtag_axi
传输事务。您可能需要重新创建这些传输
事务。
提示
:
run_hw_axi Tcl
命令的可选实参
-queue
允许您以队列模式指定
hw_axi
传输事务。排队操作允许在
JTAG
to AXI Master FIFO
中对最多
16
项读取和
16
项写入传输事务进行排队
,
并发出连续执行指令
,
以便降低传输
事务之间的时延并提升性能。非排队传输事务则直接在提交时运行。