关于 【vivado ila debug时 高级触发的使用】之 改变ILA采样频率

文章介绍了在FPGA设计中如何改变ILA(InlineLogicAnalyzer)的采样频率以适应不同的调试需求。方法包括利用PLL或自分频模块降低采样时钟,以及通过ILA高级设置和VIO来设置触发条件实现采样率的分频。这种方式允许在不增加资源的情况下灵活调整ILA的采样频率,提高调试效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【vivado ila 高级触发的使用】之 改变ILA采样频率

一.背景

通常情况下,FPGA工程师在设计完复杂的逻辑设计后,会进行初步的仿真测试,仿真测试之后进行上板测试,但是简单的仿真往往无以应对复杂的实际情况, 上板使用在线调试工具(ILA和VIO)抓取内部信号进行debug是常用的调试方式,一般,ILA的采样频率会选择当前逻辑使用的系统时钟,但是受资源限制,采集深度受限,只能看到连续较短时间内的信号,此时若能减低ila的采样频率,则可以在采样深度不变的条件下,抓到更长时间的数据(此时采样间隔增大,因此要牺牲一些细节)。

二. 改变ILA采样频率的解决方法
1.利用PLL模块或者自分频产生较低的频率,去作为ILA IP中的采样时钟。
    这种方法要新增一个ILA的IP ,相当于又占了一波FPGA的资源
2.采用 ILA高级设置和VIO 实现 ILA采样率的自定义设置

在工程中定义一个触发条件寄存器,在ILA高级设置中将此寄存器作为附加的触发条件,则可利用此触发条件实现对采样频率的分频,即如果该触发条件100个系统时钟拉高一次,则实现了采样频率的100分频, 再加上VIO的配合,则可以实现对ILA采样时钟的整数倍分频。 这种方法一劳永逸,可随意切换ILA的采样频率,以达到想到的Debug结果,在工程调试中能起到事半功倍效果。

三.采用 ILA高级设置和VIO 实现 ILA采样率的步骤

1.需要在ILA添加一个信号,此信号建议直接设置为 TRIGGER模式,如下红框所示,此信号专门用作ILA改变采样频率的触发条件
(1)
2.代码中产生触发条件。

always@(posedge Sys_Clk or negedge Rst_n)begin
if(!Rst_n) begin;
trigger_cnt <= 32'd0;
end
else if(trigger_cnt >= Vio_freq_div) begin
trigger_cnt <= 32'd0;
end
else begin
trigger_cnt <= trigger_cnt + 32'd1;
end
end
    
assign trigger = (trigger_cnt==Vio_freq_div);

vio_0 vio_0 (
.clk(Sys_Clk),                // input wire clk
.probe_out0(Vio_freq_div)
);

vio ip中默认 0x64 即为100
在这里插入图片描述
3.在在线调试界面,找到对应的ILA,进行如下的设置,因为vio默认100 ,则这时的采样频率为 系统时钟的100分之一,如果想改为系统时钟的2分之一,将vio的值改为2即可。

在这里插入图片描述

四.总结

调试过程中,对debug工具的熟悉会使得调试过程更有效率。如有错误和疑问的地方欢迎留言交流,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾引先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值