主要内容

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

此示例显示了如何使用HDL Coder™IP核心生成工作流程为没有嵌入式ARM®处理器的Xilinx®零件开发参考设计,但仍然利用HDL Coder™生成的AXI接口来控制DUT。此示例使用MATLAB作为AXI Master IP从HDL Verifer™通过启用参考设计参数选项来访问HDL Coder™生成的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设计套件,支持的版本列在金宝appHDL编码器文档

  • Xilinx Kintex-7 KC705开发板

  • 用于Xilinx FP金宝appGA板的HDL编码器™支持包

  • (可选)Xilinx FPGA板的HDL Veri金宝appfier™支持包

Xilinx Kintex-7 KC705开发板

示例参考设计

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

  1. HDL Verifier™MATLAB作为AXI Master + HDL Coder™IP核心

  2. Xilinx JTAG Master + HDL Coder™IP核心

  3. MicroBlaze™+ HDL Coder™IP Core

  4. PCIe端点+ HDL编码器™IP核心

此示例中包含两个参考设计:

  • 默认的系统参考设计使用MathWorks IP和MATLAB命令行接口,通过启用参考设计参数选项“插入JTAG MATLAB作为AXI Master”来发出读写命令。注意,要使用此参数,必须安装HDL验证器™。

  • Xilinx JTAG到AXI Master参考设计使用Vivado IP用于JTAG到axis Master,因此需要使用Vivado Tcl控制台进行读写操作。

这两种参考设计几乎相同,除了下面所示的框图中使用的JTAG主IP:

参考设计,“Xilinx JTAG to AXI Master”,使用Vivado™IP用于JTAG to AXI Master,因此需要使用Vivado™Tcl控制台进行读写操作:

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

指定插入JTAG MATLAB作为AXI Master(需要HDL验证器)设定目标参考设计任务IP核心生成工作流程。这将Matlab Axi Master IP自动添加到参考设计中,并使用Axi4从接口连接到DUT IP。在以下部分讨论了在参考设计中自动插入MATLAB JTAG AXI主站的详细步骤。

执行IP核心工作流

本节中的以下说明适用于默认系统参考设计使用MATLAB JTAG作为AXI Master.使用这个参考设计,您可以生成一个在KC705板上闪烁led的HDL IP核。

1.使用以下命令设置Xilinx Vivado™工具路径:

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

在执行该命令时,使用您自己的Xilinx Vivado™安装路径。

2.使用命令打开实现L金宝appED闪烁的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_frquencyBlink_direction,回过头再读.选择LED通用[0:7]为了领导

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

注意,与zynq的参考设计不同的是,这里没有生成软件界面模型的任务。如下图所示。

从IP核心报告中确定地址

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

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

HDL验证器命令行接口

如果安装Xilinx FPGA板金宝app的HDL Verifier支持包,并选择参考设计“MATLAB as AXI Master”参考设计,则可以使用简单的MATLAB命令行接口访问由HDL Coder生成的IP核。

1.创建AXI主对象

h = aximaster(“Xilinx”

2.发出一个简单的写命令。例如,禁用DUT

H.WriteMemory(“40000004”,0)

3.要重新启用DUT,请使用以下写命令

H.WriteMemory(“40000004”1)

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

h.readmemory('40000108', 1)

5.完成后删除对象以释放JTAG资源。如果未删除对象,则其他JTAG操作(例如编程FPGA)将失败。

删除(h)

2.Xilinx JTAG主参考设计

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

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

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_ax_txn wr_enable [get_hw_axis hw_ax_1] -address 44a0_0004 -data 0000_0001 -type write create_hw_ax_txn wr_disable [get_hw_axis hw_ax_1] -address 44a0_0004 -data 0000_0000 -type write #创建读写create_hw_ax_txn wr_disable [get_hw_axis hw_ax_1] -address 44a0_0004 -data 0000_0000 -type write

现在启动Vivado™Tcl控制台,查找刚才创建的文件:

> >系统('Vivado -Mode Tcl -source open_jtag.tcl&'

使用JTAG Master完成后,使用以下TCL命令关闭连接:

#关闭并断开jtag master close_hw_target;disconnect_hw_server;

总结

使用JTAG到AXI Master是一种简单的方法,可以在没有嵌入式ARM®处理器的系统中与HDL Coder™IP内核寄存器接口,例如Kintex-7。这可以用作调试独立HDL Coder™IP核心的第一步,该核心在手动编码软件之前使用,例如MicroBlaze™,或者作为在运行系统上调整参数的简单方法。