此示例显示了如何使用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™支持包
有许多设计将受益于使用HDL Coder™IP核心生成工作流程,而无需使用嵌入式ARM®处理器或嵌入式编码器™支持包,但仍然利用HDL编码器生成的AXI4-Lite寄存器。金宝app这些设计包括:
HDL Verifier™MATLAB作为AXI Master + HDL Coder™IP核心
Xilinx JTAG Master + HDL Coder™IP核心
MicroBlaze™+ HDL Coder™IP Core
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控制台进行读写操作:
指定插入JTAG MATLAB作为AXI Master(需要HDL验证器)到在在设定目标参考设计任务IP核心生成
工作流程。这将Matlab Axi Master IP自动添加到参考设计中,并使用Axi4从接口连接到DUT IP。在以下部分讨论了在参考设计中自动插入MATLAB JTAG AXI主站的详细步骤。
本节中的以下说明适用于默认系统
参考设计使用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_frquency那Blink_direction,回过头再读.选择LED通用[0:7]
为了领导.
7.运行工作流中的其余步骤来生成位流并对目标设备编程。
注意,与zynq的参考设计不同的是,这里没有生成软件界面模型的任务。如下图所示。
HDL Coder™IP Core的基址定义为0x40000000
为默认系统
参考设计使用MATLAB AXI Master IP。您可以在生成的IP核心报告中看到此,如下图所示。
可以在IP核心报告寄存器地址映射表中找到偏移量:
如果安装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)
您需要创建一个自定义的参考设计来使用Xilinx JTAG AXI Master在参考设计中,然后使用引用设计文件添加到MATLAB路径目录
命令。
要使用Xilinx JTAG AXI Master访问HDL Coder™IP核心寄存器,基地址在参考设计插件文件中定义。
本例将使用独立的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™,或者作为在运行系统上调整参数的简单方法。