使用 
  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  
    项写入传输事务进行排队 
    , 
    并发出连续执行指令 
    , 
    以便降低传输  
   
 
    
    事务之间的时延并提升性能。非排队传输事务则直接在提交时运行。  
   
 
  


















