关于 【vivado ila debug时 高级触发的使用】之 改变ILA采样频率
【vivado ila 高级触发的使用】之 改变ILA采样频率
- 【vivado ila 高级触发的使用】之 改变ILA采样频率
- 一.背景
- 二. 改变ILA采样频率的解决方法
- 1.利用PLL模块或者自分频产生较低的频率,去作为ILA IP中的采样时钟。
- 2.采用 ILA高级设置和VIO 实现 ILA采样率的自定义设置
- 三.采用 ILA高级设置和VIO 实现 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改变采样频率的触发条件
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
endassign 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工具的熟悉会使得调试过程更有效率。如有错误和疑问的地方欢迎留言交流,共同进步。
关于 【vivado ila debug时 高级触发的使用】之 改变ILA采样频率相关推荐
- 已知.bit文件和.ltx文件用Vivado 的 ILA debug调试步骤
这个想要成功之前是需要搭建好硬件平台的,比如我自己的板子是自己开发的,就和官方的Xilinx的开发板等有所区别,jtag线要插好一一对应上.开始的时候我就是没有对应好管脚,只是电源vcc插对了,也看不 ...
- Vivado中Debug的用法总结
目录 方式一:代码中例化ILA IP核 方式二:通过网表标记 方式三:代码中Mark_debug Vivado中提供了多种Debug的操作方式,下面就来总结一下: 方式一:代码中例化ILA IP核 第 ...
- JPA/hibernate懒加载原理分析及JSON格式API反序列化时连环触发懒加载问题的解决
什么是懒加载 JPA是java持久层的API,也就是java官方提供的一个ORM框架,Spring data jpa是spring基于hibernate开发的一个JPA框架.Spring data j ...
- Debug时含有的子元素,在代码里获取不到的问题
比如,Debug时如下图展示: 我想要获取的是:ansList.get(i).getComponent().getConnectorId() debug时明明有这个元素,但是当我写出来的时候却发现:a ...
- Okhttp 使用与debug时留的大坑
Okhttp简单辅助类与debug注意事项 先贴代码(代码不全,仅供参考) import android.os.Handler; import android.os.Looper; import an ...
- 解决eclipse Run启动或Debug时Console控制台不自动弹出问题
解决eclipse Run启动或Debug时Console控制台不自动弹出问题 参考文章: (1)解决eclipse Run启动或Debug时Console控制台不自动弹出问题 (2)https:// ...
- android 在debug的时候不会出现闪退问题 在debug时无法重现bug 的可能原因
application的运行的时候很明显出现了报错闪退的问题,但是一旦自己debug的时候,这个问题就不能重现,就是所谓的代码成精的问题,这个时候常常的原因是代码中有一部分"同步的" ...
- html 点击文本框则选中,JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。...
内容选中事件(onselect) 选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行. 如下代码,当选中用户文本框内的文字时,触发onselect 事件, ...
- DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
正常响应CellValueChanged()事件时,当改变checkbox状态时,只有当焦点离开该单元格时才能触发CellValueChanged()事件, 如果要改变checkbox值时实时触发Ce ...
最新文章
- windows优化大师8周年纪念版_《数码宝贝》20周年纪念:当年的八神太一与亚古兽你还记得吗?...
- 西南交通大学计算机绘图,西南交通大学网络教育计算机绘图主观题第二次答案...
- 微信的充值页面为啥长这样?(多图)
- java后台工具类-通过交易码获得方法名
- [再寄小读者之数学篇](2014-11-14 矩阵的应用: 有限几何)
- 【BZOJ 3294】 3294: [Cqoi2011]放棋子 (DP+组合数学+容斥原理)
- 个人查阅资料-Sql语句
- maven简单了解,没有Maven和使用Maven的区别
- github 手机号码归属地信息库、手机号归属地查询
- cocos creator fgui 按钮事件
- vscode连接夜神模拟器
- 电气规则检查-ERC
- 基于android的酒店客房预订客户端app
- 我的007之skyfall歌词鉴赏及翻译
- 大学三年颠沛流离换来京东实习Offer
- 以下python语言关键字在异常处理_python后端开发工程师考证试题
- 晶联讯LCD(JLX128128G-610-PC)使用教程
- 支付宝支付接入-服务器端开发
- 设置input[type=number]不显示箭头
- ACP敏捷9.敏捷应用场景