利用FPGA数据捕获调试IP核
这个例子展示了如何调试您在HDL Coder™中生成的IP核,只使用FPGA Data Capture,同时使用AXI Manager和FPGA Data Capture。
需求
Xilinx®Zynq®ZC702评估试剂盒有关设置ZC702硬件的信息,请参见如何瞄准Xilinx Zynq平台.
Xilinx Zynq平台的HDL编码器支持包
Xilinx FPGA板HDL验证器™支持包
Xilinx Vivado™设计套件,其支持版本列于HDL语言支持和支持的第三方工具和硬件
(可选)Xilinx Zynq平台Embedded Coder®支持包
(可选)“DSP系统工具箱”
简介
当设计在实际硬件上运行时,监视IP核内部信号是很有用的,因为您可以调试和分析设计。本示例演示了如何使用FPGA Data Capture在MATLAB®中捕获生成的IP核的内部信号。
这个例子展示了如何在阻塞和非阻塞模式下使用FPGA Data Capture。有关捕获模式的更多信息,请参见CaptureMode(Xilinx FPGA板HDL验证器支持包).非阻塞模式允许通过JTAG接口同时使用AXI Manager和FPGA Data Capture。阻塞模式会暂停MATLAB的执行,因此在使用此模式时不能使用其他应用程序。相比之下,非阻塞模式允许您使用AXI Manager配置IP核,而FPGA Data Capture从硬件捕获数据。
打开模型。
open_system (“hdlcoder_led_blinking_data_capture”);
此示例实现了led_counter
硬件上的子系统。这个子系统模拟一个计数器,导致硬件上的led闪烁。两个输入端口,Blink_frequency
而且Blink_direction
,分别是决定LED闪烁频率和方向的控制接口。输出端口领导
连接到硬件上的led。您可以使用输出端口Read_back
读取数据回MATLAB。
在led_counter
子系统中,几个内部信号是测试点。HDL Coder将这些内部信号从DUT路由到IP核包装器,这样信号就可以连接到FPGA数据捕获HDL IP。
open_system (“hdlcoder_led_blinking_data_capture / led_counter”);
生成HDL IP Core
从模型启动HDL工作流顾问,并运行IP核生成工作流。有关一步一步的指南,请参见如何瞄准Xilinx Zynq平台.
1.在步骤1.1中设置目标工作流程来IP核心代
而且目标平台来Xilinx Zynq ZC702评估试剂盒
.点击运行这个任务.
2.在步骤1.2中设置参考设计来默认的系统
.集插入AXI管理器(需要HDL验证器)而且FPGA数据捕获(需要HDL验证器)来JTAG
.点击运行这个任务.
3.在步骤1.3中,选择为测试点启用HDL DUT输出端口生成.
4.在步骤1.3中设置接口blinkfrequency,blinkdirection,led_output,数港口FPGA数据捕获
.点击运行这个任务.
5.运行剩下的工作流步骤来生成HDL IP并为目标设备编程。
从IP核捕获和显示数据
接下来,从Zynq板获取数据。
找到FPGA Data Capture启动脚本。对于本例,脚本位于您的HDL代码生成目录中:hdl_prj / ip_core led_count_ip_v1_0 / fpga_data_capture / launchDataCaptureApp.m
.您还可以在代码生成报告中找到此脚本。
运行launchDataCaptureApp
在MATLAB脚本。将脚本目录添加到MATLAB路径或更改当前工作文件夹。
以阻塞模式捕获数据
执行脚本以启动FPGA数据捕获工具。缺省情况下,FPGA Data Capture工作在阻塞模式。在不设置触发条件的情况下,单击从FPGA采集数据捕获数据.
或者,您可以使用触发器条件捕获数据。例如,设置触发条件led_counter = = 0
触发器的位置是32。然后,单击捕获数据一次。
非阻塞模式捕获数据
执行脚本以启动FPGA数据捕获工具并创建fpgadc_obj
对象。在MATLAB命令提示符下执行以下命令,将捕获模式更改为非阻塞模式。
fpgadc_obj。CaptureMode =非阻塞的;
非阻塞模式下的FPGA数据捕获允许同时使用FPGA数据捕获和AXI管理器。有关更多信息,请参见FPGA数据捕获和AXI管理器的同时使用(Xilinx FPGA板HDL验证器支持包).现在设置一个触发条件led_blink_direction = = 1
并将触发器位置设置为512。然后,单击捕获数据.
FPGA Data Capture等待触发条件。由于FPGA Data Capture允许AXI Manager在非阻塞模式下执行读写操作。
接下来,在FPGA数据捕获中,设置tp_blinkdirection来高
.然后,在MATLAB中创建一个AXI Manager对象。
axi_manager_obj = aximanager (“Xilinx”);
axi_manager_obj.writememory (“0 x40010104”1);
FPGA Data Capture用于捕获FPGA中的数据逻辑分析仪.图中显示了眨眼方向的变化。