使用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 Vivado设计套件,中列出了受支持的版本金宝appHDL语言支持和支持的第三金宝app方工具和硬件
Xilinx Kintex-7 KC705开发板
用于Xilinx F金宝appPGA板的HDL编码器支持包
用于Xilinx FPGA金宝app板的HDL验证器支持包
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_counter
的led_counter
子系统与选择HDL代码紧随其后的是HDL工作流顾问.
4.在步骤1.1中,设置目标工作流程来IP核生成
而且目标平台来Xilinx Kintex-7 KC705开发板
.点击运行此任务.
5.在步骤1.2中,设置参考设计来默认的系统
.下参考设计参数,设置插入AXI管理器(需要HDL验证器)来JTAG
.点击运行此任务.
6.步骤1.3设置接口Blink_frequency,Blink_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
.
#打开连接来的JTAG主Open_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_0004拼0000 _0001类型写create_hw_axi_txnwr_disable[get_hw_axis hw_axi_1]...地址44 a0_0004拼0000年_0000类型写
启动Vivado Tcl控制台,查找刚才创建的文件。
系统('vivado -mode TCL -source open_jtag.tcl&')
使用完JTAG Master后,使用这些Tcl命令关闭连接。
#结束而且断开连接从的JTAG主close_hw_target;disconnect_hw_server;
总结
您可以使用JTAG AXI Manager IP在没有嵌入式ARM处理器的系统(如Kintex-7)中与HDL Coder IP核寄存器进行接口。您可以使用这个IP作为调试独立HDL Coder IP核的第一步,然后再为软处理器(如MicroBlaze)手动编码软件,或者作为在运行中的系统上调优参数的一种方式。