主要内容

没有嵌入式ARM处理器的IP核生成工作流:Xilinx Kintex-7 KC705

本示例展示了如何在没有嵌入式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包

Xilinx Kintex-7 KC705开发板

例子参考设计

有许多设计将受益于使用HDL Coder™IP核心生成工作流,而无需使用嵌入式ARM®处理器或嵌入式Coder™支持包,但仍然利用HDL Coder生成的AXI4-Lite寄存器。万博1manbetx这些设计包括:

  1. HDL验证器™MATLAB作为AXI Master + HDL Coder™IP Core

  2. Xilinx JTAG Master + HDL Coder™IP Core

  3. MicroBlaze™+ HDL Coder™IP核心

  4. 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控制台发出读写:

1.HDL验证器™MATLAB作为AXI主参考设计

指定插入JTAG MATLAB作为AXI Master (HDL verification Required)设定目标参考设计的任务IP核心代工作流。这将MATLAB AXI主IP自动添加到参考设计中,并使用AXI4从接口连接到DUT IP。在参考设计中自动插入MATLAB JTAG AXI Master的详细步骤将在下一节中讨论。

执行IP核心工作流

本节中的以下说明适用于默认的系统参考设计使用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-LiteBlink_frequency,Blink_direction,Read_back。选择led通用用途领导

7.运行工作流中的其余步骤来生成一个比特流并对目标设备进行编程。

请注意,与基于zynq的参考设计不同,这里没有生成软件接口模型的任务。如下图所示。

从IP核心报告中确定地址

HDL Coder™IP核心的基地地址定义为0 x40000000默认的系统参考设计,使用MATLAB AXI Master IP。您可以在生成的IP Core报告中看到这一点,如下图所示。

偏移量可以在IP核报告寄存器地址映射表中找到:

HDL验证器命令行接口

如果安装对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)

2.Xilinx JTAG Master参考设计

您需要创建一个自定义参考设计来使用Xilinx JTAG AXI Master然后将参考设计文件添加到MATLAB路径中使用目录命令。

使用Xilinx JTAG AXI Master访问HDL Coder™IP Core寄存器,基地地址在参考设计插件文件中定义。

Vivado Tcl命令的AXI读写

这个示例将使用独立的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™)手动编码软件之前使用,或作为在运行系统上调优参数的一种简单方法。