本示例展示了如何在没有嵌入式ARM®处理器的情况下使用HDL Coder™IP核心生成工作流为Xilinx®部件开发参考设计,但仍然使用HDL Coder™生成的AXI接口来控制DUT。这个例子使用MATLAB作为来自HDL验证器™的AXI主IP,通过启用参考设计参数选项来访问HDL编码器™生成的DUT寄存器插入JTAG MATLAB作为AXI Master。然后可以直接从MATLAB访问DUT寄存器。或者,您可以使用Xilinx JTAG AXI Master通过编写Tcl命令来使用Vivado Tcl Console访问DUT寄存器。对于Xilinx JTAG AXI Master,需要创建一个自定义参考设计。FPGA设计是在Xilinx Kintex-7 KC705板上实现的。
Xilinx Vivado设计套件,支持的版本列在万博1manbetxHDL编码文档
Xilinx Kintex-7 KC705开发板
Xilinx FPGA万博1manbetx板的HDL编码器™支持包
(可选)HDL验证器™Xilinx FPGA板支持万博1manbetx包
有许多设计将受益于使用HDL Coder™IP核心生成工作流,而无需使用嵌入式ARM®处理器或嵌入式Coder™支持包,但仍然利用HDL Coder生成的AXI4-Lite寄存器。万博1manbetx这些设计包括:
HDL验证器™MATLAB作为AXI Master + HDL Coder™IP Core
Xilinx JTAG Master + HDL Coder™IP Core
MicroBlaze™+ HDL Coder™IP核心
PCIe端点+ HDL编码器™IP核心
本例中包含两个参考设计:
的默认的系统
参考设计使用MathWorks IP和MATLAB命令行接口,通过启用参考设计参数选项“Insert JTAG MATLAB as AXI Master”来发出读写命令。注意,要使用此参数,您必须安装HDL验证器™。
的Xilinx JTAG到AXI Master
参考设计使用Vivado IP为JTAG到AXI Master,因此需要使用Vivado Tcl控制台发出读写。
两个参考设计几乎是相同的,除了在下面的框图中使用的JTAG主IP:
参考设计“Xilinx JTAG到AXI Master”使用Vivado™IP作为JTAG到AXI Master,因此需要使用Vivado™Tcl控制台发出读写:
指定插入JTAG MATLAB作为AXI Master (HDL verification Required)来在在设定目标参考设计的任务IP核心代
工作流。这将MATLAB AXI主IP自动添加到参考设计中,并使用AXI4从接口连接到DUT IP。在参考设计中自动插入MATLAB JTAG AXI Master的详细步骤将在下一节中讨论。
本节中的以下说明适用于默认的系统
参考设计使用MATLAB JTAG作为AXI Master
。使用这个参考设计,您可以生成一个HDL IP核,在KC705板上闪烁led。
1.使用以下命令设置Xilinx Vivado™工具路径:
hdlsetuptoolpath (“ToolName”,“Xilinx Vivado”,“路径”,“C: \ Xilinx \ Vivado \ 2019.1 \ bin \ vivado.bat ');
在执行该命令时,请使用您自己的Xilinx Vivado™安装路径。
2.使用命令打开实现L万博1manbetxED闪烁的Simulink模型:
open_system (“hdlcoder_led_blinking”)
3.启动HDL工作流顾问从hdlcoder_led_blinking / led_counter
控件右键单击led_counter
子系统,并选择HDL代码>高密度脂蛋白工作流顾问。
4.在设定目标>设置目标设备和合成工具任务,为目标工作流程中,选择IP核心代
,因为目标平台中,选择Xilinx Kintex-7 KC705开发板
并点击运行这个任务运行设置目标设备和合成工具任务
5.在设定目标>设定目标参考设计任务,选择默认的系统
作为参考设计和设置插入JTAG MATLAB作为AXI Master
下拉选择在
它出现在参考设计参数选项中。
6.在设定目标>设置目标接口任务,选择AXI4-Lite
为Blink_frequency,Blink_direction,Read_back。选择led通用用途
为领导。
7.运行工作流中的其余步骤来生成一个比特流并对目标设备进行编程。
请注意,与基于zynq的参考设计不同,这里没有生成软件接口模型的任务。如下图所示。
HDL Coder™IP核心的基地地址定义为0 x40000000
为默认的系统
参考设计,使用MATLAB AXI Master IP。您可以在生成的IP Core报告中看到这一点,如下图所示。
偏移量可以在IP核报告寄存器地址映射表中找到:
如果安装对Xilinx FPGA万博1manbetx板的HDL Verifier支持包,并选择参考设计“MATLAB as AXI Master”参考设计,则可以使用简单的MATLAB命令行接口来访问HDL Coder生成的IP核。
1.创建AXI主对象
h = aximaster (“Xilinx”)
2.发出一个简单的写命令。例如,禁用DUT
h.writememory (“40000004”, 0)
3.要重新启用DUT,请使用下面的write命令
h.writememory (“40000004”,1)
4.发出读取命令。例如,读取当前计数器值
h.readmemory (“40000108”, 1)
5.在释放JTAG资源时删除该对象。如果不删除该对象,其他JTAG操作(如FPGA编程)将失败。
删除(h)
您需要创建一个自定义参考设计来使用Xilinx JTAG AXI Master然后将参考设计文件添加到MATLAB路径中使用目录
命令。
使用Xilinx JTAG AXI Master访问HDL Coder™IP Core寄存器,基地地址在参考设计插件文件中定义。
这个示例将使用独立的Vivado Tcl控制台来执行基本命令来发出读和写。可以使用以下命令打开JTAG设备,并设置对DUT的“启用”和“禁用”写入。这些可以直接输入到Vivado Tcl控制台或保存在一个Tcl文件和来源。为简单起见,将以下Tcl命令复制到文件"open_jtag.tcl"中:
#打开JTAG Master的连接open_hw connect_hw_server open_hw_target refresh_hw_device [lindex [get_hw_devices] 0]
#创建一些读写create_hw_axi_txn wr_enable [get_hw_axis hw_axi_1] -address 44a0_0004 -data 0000_0001 -type write create_hw_axi_txn wr_disable [get_hw_axis hw_axi_1] -address 44a0_0004 -data 0000_0000 -type write
现在启动Vivado™Tcl控制台,查找刚才创建的文件:
> >系统('vivado -mode TCL -source open_jtag.tcl&')
使用完JTAG Master后,使用以下Tcl命令关闭连接:
#关闭和断开JTAG主close_hw_target;disconnect_hw_server;
使用JTAG到AXI Master是在没有嵌入式ARM®处理器(如Kintex-7)的系统中与HDL Coder™IP核心寄存器接口的一种简单方法。这可以作为调试独立HDL Coder™IP核的第一步,在为软处理器(如MicroBlaze™)手动编码软件之前使用,或作为在运行系统上调优参数的一种简单方法。