调试使用FPGA IP核心数据捕获
这个例子展示了如何调试一个IP核心生成HDL编码器™只使用FPGA数据捕获以及AXI经理和FPGA数据捕获。
需求
Xilinx®Zynq®ZC702评估工具。在设置ZC702硬件的信息,明白了开始使用针对Xilinx Zynq平台。
高密度脂蛋白编码器为金宝appXilinx Zynq平台支持包
高密度脂蛋白校验™Xilin金宝appx FPGA板支持包
Xilinx Vivado™设计套件,支持版本中列出金宝appHDL语言支持,支持第三方金宝app工具和硬件
(可选)嵌入式编码器®Xilinx Zynq平台支持包金宝app
(可选)DSP系统工具箱
介绍
监视IP核设计真正的硬件上运行时内部信号是有用,因为你可以调试和分析设计。这个例子演示了如何使用FPGA数据捕获捕获内部信号生成的IP核在MATLAB®。
这个例子展示了如何使用FPGA数据捕获在阻塞和非阻塞模式。拍摄模式的更多信息,请参阅CaptureMode(高密度脂蛋白校验支持包Xi金宝applinx FPGA板)。非阻塞模式允许同时使用的经理和FPGA通过JTAG接口数据捕获。阻塞模式MATLAB暂停执行,所以你不能使用其他应用程序使用此模式。相比之下,非阻塞模式允许您使用AXI经理配置IP核心,从硬件FPGA数据捕获捕获数据。
打开模型。
open_system (“hdlcoder_led_blinking_data_capture”);
这个例子实现了led_counter
子系统的硬件。这个子系统模型一个计数器,使led闪烁的硬件。两个输入端口,Blink_frequency
和Blink_direction
控制端口,确定LED闪烁频率和方向,分别。输出端口领导
连接到led的硬件。您可以使用输出端口Read_back
读取数据回MATLAB。
在led_counter
子系统,一些内部信号测试点。高密度脂蛋白编码器路线DUT的内部信号和IP核心包装,这样信号可以连接到FPGA数据捕获HDL IP。
open_system (“hdlcoder_led_blinking_data_capture / led_counter”);
产生高密度脂蛋白IP核心
开始HDL工作流顾问从模型和运行通过IP核心代工作流。对于一个循序渐进的指南,看看开始使用针对Xilinx Zynq平台。
1。在步骤1.1中,集目标工作流程来IP核心代
和目标平台来Xilinx Zynq ZC702评估工具
。点击运行这个任务。
2。在步骤1.2中,集参考设计来默认的系统
。集需要插入AXI经理(HDL校验)和FPGA数据捕获(高密度脂蛋白校验需要)来JTAG
。点击运行这个任务。
3所示。在步骤1.3中,选择使高密度脂蛋白DUT的输出端口生成测试点。
4所示。在步骤1.3中,设置的接口blinkfrequency,blinkdirection,led_output,数港口FPGA数据捕获
。点击运行这个任务。
5。贯穿剩余的工作流步骤生成HDL IP和项目目标设备。
从IP核心捕获和显示数据
接下来,从Zynq董事会捕获数据。
定位FPGA数据捕获启动脚本。对于这个示例,HDL代码生成目录的脚本:hdl_prj / ip_core led_count_ip_v1_0 / fpga_data_capture / launchDataCaptureApp.m
。你也可以找到这个脚本的代码生成报告。
运行launchDataCaptureApp
在MATLAB脚本。脚本目录添加到MATLAB路径或改变当前工作目录。
捕获数据处于阻塞模式
执行脚本启动FPGA数据捕获工具。默认情况下,FPGA数据捕获在阻塞模式下工作。从FPGA捕获数据没有设置触发条件,点击捕获数据。
或者,您可以捕获数据的触发条件。例如,设置触发条件led_counter = = 0
32和触发位置。然后,单击捕获数据一次。
在非阻塞模式捕获数据
执行脚本启动FPGA数据捕获工具和创建fpgadc_obj
在工作区中对象。捕获模式更改为非阻塞通过执行以下命令在MATLAB命令提示符。
fpgadc_obj。CaptureMode =非阻塞的;
FPGA数据捕获在非阻塞模式允许同时使用FPGA数据捕获和阿喜的经理。有关更多信息,请参见同时使用FPGA数据捕获和阿喜的经理(高密度脂蛋白校验支持包Xi金宝applinx FPGA板)。现在设置一个触发条件led_blink_direction = = 1
并设置一个触发器512的位置。然后,单击捕获数据。
FPGA数据捕获等待触发条件。随着FPGA数据捕获允许AXI经理执行读写操作在非阻塞模式。
接下来,在FPGA数据捕获,集tp_blinkdirection来高
。然后,创建一个AXI经理对象在MATLAB。
axi_manager_obj = aximanager (“Xilinx”);
axi_manager_obj.writememory (“0 x40010104”1);
FPGA数据捕获捕获的数据逻辑分析仪。图显示了在眨眼之间发生变化的方向。