【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采样频率相关推荐

  1. 已知.bit文件和.ltx文件用Vivado 的 ILA debug调试步骤

    这个想要成功之前是需要搭建好硬件平台的,比如我自己的板子是自己开发的,就和官方的Xilinx的开发板等有所区别,jtag线要插好一一对应上.开始的时候我就是没有对应好管脚,只是电源vcc插对了,也看不 ...

  2. Vivado中Debug的用法总结

    目录 方式一:代码中例化ILA IP核 方式二:通过网表标记 方式三:代码中Mark_debug Vivado中提供了多种Debug的操作方式,下面就来总结一下: 方式一:代码中例化ILA IP核 第 ...

  3. JPA/hibernate懒加载原理分析及JSON格式API反序列化时连环触发懒加载问题的解决

    什么是懒加载 JPA是java持久层的API,也就是java官方提供的一个ORM框架,Spring data jpa是spring基于hibernate开发的一个JPA框架.Spring data j ...

  4. Debug时含有的子元素,在代码里获取不到的问题

    比如,Debug时如下图展示: 我想要获取的是:ansList.get(i).getComponent().getConnectorId() debug时明明有这个元素,但是当我写出来的时候却发现:a ...

  5. Okhttp 使用与debug时留的大坑

    Okhttp简单辅助类与debug注意事项 先贴代码(代码不全,仅供参考) import android.os.Handler; import android.os.Looper; import an ...

  6. 解决eclipse Run启动或Debug时Console控制台不自动弹出问题

    解决eclipse Run启动或Debug时Console控制台不自动弹出问题 参考文章: (1)解决eclipse Run启动或Debug时Console控制台不自动弹出问题 (2)https:// ...

  7. android 在debug的时候不会出现闪退问题 在debug时无法重现bug 的可能原因

    application的运行的时候很明显出现了报错闪退的问题,但是一旦自己debug的时候,这个问题就不能重现,就是所谓的代码成精的问题,这个时候常常的原因是代码中有一部分"同步的" ...

  8. html 点击文本框则选中,JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。...

    内容选中事件(onselect) 选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行. 如下代码,当选中用户文本框内的文字时,触发onselect 事件, ...

  9. DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件

    正常响应CellValueChanged()事件时,当改变checkbox状态时,只有当焦点离开该单元格时才能触发CellValueChanged()事件, 如果要改变checkbox值时实时触发Ce ...

最新文章

  1. windows优化大师8周年纪念版_《数码宝贝》20周年纪念:当年的八神太一与亚古兽你还记得吗?...
  2. 西南交通大学计算机绘图,西南交通大学网络教育计算机绘图主观题第二次答案...
  3. 微信的充值页面为啥长这样?(多图)
  4. java后台工具类-通过交易码获得方法名
  5. [再寄小读者之数学篇](2014-11-14 矩阵的应用: 有限几何)
  6. 【BZOJ 3294】 3294: [Cqoi2011]放棋子 (DP+组合数学+容斥原理)
  7. 个人查阅资料-Sql语句
  8. maven简单了解,没有Maven和使用Maven的区别
  9. github 手机号码归属地信息库、手机号归属地查询
  10. cocos creator fgui 按钮事件
  11. vscode连接夜神模拟器
  12. 电气规则检查-ERC
  13. 基于android的酒店客房预订客户端app
  14. 我的007之skyfall歌词鉴赏及翻译
  15. 大学三年颠沛流离换来京东实习Offer
  16. 以下python语言关键字在异常处理_python后端开发工程师考证试题
  17. 晶联讯LCD(JLX128128G-610-PC)使用教程
  18. 支付宝支付接入-服务器端开发
  19. 设置input[type=number]不显示箭头
  20. ACP敏捷9.敏捷应用场景

热门文章

  1. DSICUZ论坛部署环境,超级简单,轻松拿捏
  2. 大型网站入口地址http到https的跳转方案
  3. matlab 罗德里格 公式,旋转矩阵,四元素,欧拉角
  4. 《个人信息保护法》解读
  5. 为什么我劝你不要太把领导当回事?
  6. 生物信息学 linux版本,BioInfoServOS:Ubuntu下的生物信息学软件
  7. 西门子工业数据桥WINCC IDB 7.4sp1 update1
  8. C语言数组元素的左移、右移
  9. vue 根据文件格式显示不同的图标
  10. dockerfile详解