超链接 网站,深圳企业建站程序,外贸网店怎么开,网站开发技术路线图VIVADO ILA IP进阶使用之任意设置ILA的采样频率 VIVADO ILA IP和VIO IP结合使用任意设置ILA的采样频率 目录
前言
一、VIO IP的配置
二、ILA IP的配置
三、测试代码
四、测试结果
总结 前言 VIVADO中编写完程序上板测试时经常会用到viavdo自带的ILA逻辑分析仪IP核#x… VIVADO ILA IP进阶使用之任意设置ILA的采样频率 VIVADO ILA IP和VIO IP结合使用任意设置ILA的采样频率 目录
前言
一、VIO IP的配置
二、ILA IP的配置
三、测试代码
四、测试结果
总结 前言 VIVADO中编写完程序上板测试时经常会用到viavdo自带的ILA逻辑分析仪IP核在ILA IP核的产品手册中明确说明采样时钟必须为永不停息的时钟也就是只能是系统时钟或PLL、MMCM分频倍频出来的时钟用户通过时序逻辑分频的时钟是无法使用的这就造成了在采样深度有限情况下无法完整采集频率较低的数据使用起来不方便本文章介绍ILA的进阶使用结合VIO IP可以任意改变ILA的采样频率且不会增加任何额外的资源。 提示以下是本篇文章正文内容下面案例可供参考
一、VIO IP的配置 只需要配置一个输出端口控制采样频率如下面两张图所示。第一张图设置输出端口第二张图设置分频系数的位宽。 要有默认分频系数大于0的整数。 二、ILA IP的配置 配置ILA的探针数量切记要勾选capture control抓取数据时会用到该功能。 设置各个探针的位宽根据信号位宽进行设置。 三、测试代码 以下是测试代码50MHz的系统时钟控制Led的亮灭代码生成了1kHz的时钟信号。
timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2025/01/19 20:29:13
// Design Name:
// Module Name: pl_led
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module pl_led(input clk,input rst_n,output reg led);reg clk_1k0;
reg [15:0] clk_cnt0;
always (posedge clk)
beginif(clk_cnt49_999)beginclk_cnt0;clk_1k~clk_1k;endelsebeginclk_cntclk_cnt1;end
endreg [15:0] cnt;
always (posedge clk or negedge rst_n)
beginif(!rst_n)begincnt0;led0;endelse if(cnt1500)begincnt0;led~led;endelse if(clk_1k1clk_cnt9_999)begincntcnt1;endelsebegincntcnt;ledled;end
endwire [15:0] vio_freq_div;
vio_frequency u_vio_frequency (.clk(clk), // input wire clk.probe_out0(vio_freq_div) // output wire [15 : 0] probe_out0
);reg [15:0] trigger_cnt;
wire trigger;
always(posedge clk or negedge rst_n)
beginif(!rst_n) begin;trigger_cnt 0;endelse if(trigger_cnt vio_freq_div-1) begintrigger_cnt 0;endelse begintrigger_cnt trigger_cnt 1;end
endassign trigger (trigger_cntvio_freq_div-1);ila_led u_ila_led (.clk(clk), // input wire clk.probe0(rst_n), // input wire [0:0] probe0 .probe1(led), // input wire [0:0] probe1 .probe2(clk_1k), // input wire [0:0] probe2 .probe3(clk_cnt), // input wire [15:0] probe3 .probe4(cnt), // input wire [15:0] probe4.probe5(trigger) // input wire [0:0] probe5
);endmodule四、测试结果 第一次测试设置分频系数就为默认的10。 按照下图设置ILA的捕获条件。 点击三角形符号进行采样。 以上设置采样时钟为系统时钟的10分频点击红色框的运行按钮即可观察到clk_cnt采集出来的数据是以10递增的程序里面设置的是每次在系统时钟的上升沿加1可见采样频率缩小了10倍。 第二次测试设置分频系数为50000。 以上设置采样时钟为系统时钟50MHz的50000分频点击红色框的运行按钮即可观察到程序里面1kHz的时钟被采到了同时cnt的数值也被采到了可见采样频率缩小了50000倍。 另外如果想以系统时钟的采样频率抓数据点击即可实现如下图所示。 总结 从以上测试结果可以看出ILAVIO结合的方式可以实现任意采样频率抓取数据想抓那个数据都能抓到只需通过vio就能控制采样频率不会增加任何额外的资源可以加速完成程序调试。