主要内容

使用IP核生成工作流访问Xilinx纯FPGA板上的DUT寄存器

本例展示了如何使用HDL Coder™IP核生成工作流为Xilinx®部件开发参考设计,这些部件不使用嵌入式ARM®处理器,但仍然使用HDL Coder生成的AXI接口来控制待测设计(DUT)。本例使用HDL验证器™AXI管理器IP访问从MATLAB®生成的DUT寄存器的HDL编码器。或者,您可以使用Xilinx JTAG AXI Master使用Vivado®Tcl控制台通过编写Tcl命令访问DUT寄存器。对于Xilinx JTAG AXI Master,必须创建自定义参考设计。FPGA设计在Xilinx Kintex®-7 KC705板上实现。

需求

Xilinx Kintex-7 KC705开发板

该图显示了Xilinx Kintex-7 KC705开发板。

示例参考设计

设计可以受益于使用HDL Coder IP核生成工作流,而不使用嵌入式ARM处理器或嵌入式Coder™支持包,但仍然利用HDL Coder生成的AXI4-Lite寄存器,可以包括这些IP集之一。金宝app

  • HDL验证器AXI管理器+ HDL编码器IP核

  • Xilinx JTAG Master + HDL编码器IP核心

  • MicroBlaze™+ HDL编码器IP核心

  • PCIe端点+ HDL编码器IP核

这个例子包括两个参考设计。

  • 默认系统参考设计使用MathWorks®IP和MATLAB命令行接口来发出读和写命令。要使用此设计,您必须拥有HDL验证器产品。

  • Xilinx JTAG to AXI Master参考设计使用Vivado IP作为JTAG to AXI Master,并且需要使用Vivado Tcl控制台来发出读写命令。

这两个参考设计的区别仅仅在于它们使用的JTAG管理器IP,如图所示。

HDL验证器AXI管理器参考设计

在IP核生成工作流的HDL工作流顾问,在设定目标参考设计步骤,设置插入AXI管理器(需要HDL验证器)参数设置为在主机和目标硬件之间进行通信的接口。该选项将接口的AXI管理器IP自动添加到参考设计中,并使用AXI4-slave接口将添加的IP连接到DUT IP。下一节详细介绍在参考设计中自动插入JTAG AXI Manager IP的步骤。

执行IP核工作流

按照以下步骤执行Default System参考设计的IP核心工作流,该设计使用JTAG AXI Manager IP。使用此参考设计,您可以生成一个在KC705板上闪烁led的HDL IP核。要生成HDL IP核,请遵循以下步骤。

1.通过在MATLAB中执行这个命令来设置Xilinx Vivado工具路径。执行该命令时,请使用您自己的Xilinx Vivado安装路径。

hdlsetuptoolpath (“ToolName”“Xilinx Vivado”“路径”...“C: \ Xilinx \ Vivado \ 2020.2 \ bin \ vivado.bat ');

2.在MATLAB中执金宝app行该命令,打开实现LED闪烁的Simulink模型。

open_system (“hdlcoder_led_blinking”

3.启动HDL Workflow Advisorhdlcoder_led_blinking / led_counterled_counter子系统与选择HDL代码紧随其后的是HDL工作流顾问

4.在步骤1.1中,设置目标工作流程IP核生成而且目标平台Xilinx Kintex-7 KC705开发板.点击运行此任务

5.在步骤1.2中,设置参考设计默认的系统.下参考设计参数,设置插入AXI管理器(需要HDL验证器)JTAG.点击运行此任务

6.步骤1.3设置接口Blink_frequencyBlink_direction,Read_back港口AXI4-Lite.接口领导港口led通用用途[0:7]

7.运行工作流中的其余步骤生成位流并为目标设备编程。

与基于zynq的参考设计不同,a生成软件接口模型Task不存在,如图所示。

从IP核报告中确定地址

HDL编码器IP核的基址定义为0 x40000000用于默认系统参考设计,该设计使用AXI Manager IP。在生成的IP核报表中可以看到地址设置,如图所示。

IP核报表寄存器地址映射表显示偏移量。

HDL验证命令行接口

如果您有针对Xilinx FPGA板的HDL验证器支持包,金宝app选择AXI Manager参考设计,那么您可以使用MATLAB命令行接口访问由HDL Coder产品生成的IP核。

要从DDR内存中写入和读取,请执行以下步骤。

1.创建一个AXI管理器对象。

H = aximanager(“Xilinx”

2.发出写命令。例如,禁用DUT。

h.writememory (“40000004”, 0)

3.重新启用DUT。

h.writememory (“40000004”, 1)

4.发出一个读命令。例如,读取当前计数器值。

h.readmemory (“40000108”, 1)

5.删除对象以释放JTAG资源。如果不删除该对象,将导致其他JTAG操作(如FPGA编程)失败。

删除(h)

Xilinx JTAG到AXI主参考设计

创建一个自定义参考设计,在参考设计中使用Xilinx JTAG到AXI Master IP,然后使用目录命令。

通过使用参考设计插件文件中定义的基址,使用Xilinx JTAG访问HDL Coder IP核心寄存器到AXI Master IP。

Vivado Tcl命令用于AXI读写

这个例子使用独立的Vivado Tcl控制台来执行基本的读写命令。您可以使用这些命令打开JTAG设备,并设置“启用”和“禁用”写入DUT。您可以直接在Vivado Tcl控制台中输入这些命令,也可以将它们保存在Tcl文件中,并在以后查找它们。为简单起见,将这些Tcl命令复制到一个文件中open_jtag.tcl

#打开连接JTAGOpen_hw connect_hw_server open_hw_target refresh_hw_device[lindex [get_hw_devices] 0]
#创建一些读/写create_hw_axi_txnwr_enable[get_hw_axis hw_axi_1]...地址44 a0_00040000 _0001类型create_hw_axi_txnwr_disable[get_hw_axis hw_axi_1]...地址44 a0_00040000年_0000类型

启动Vivado Tcl控制台,查找刚才创建的文件。

系统('vivado -mode TCL -source open_jtag.tcl&'

使用完JTAG Master后,使用这些Tcl命令关闭连接。

#结束而且断开连接JTAGclose_hw_target;disconnect_hw_server;

总结

您可以使用JTAG AXI Manager IP在没有嵌入式ARM处理器的系统(如Kintex-7)中与HDL Coder IP核寄存器进行接口。您可以使用这个IP作为调试独立HDL Coder IP核的第一步,然后再为软处理器(如MicroBlaze)手动编码软件,或者作为在运行中的系统上调优参数的一种方式。