FPGA综合出来的电路都在芯片内部,基本上是没法用示波器或者逻辑分析仪器去测量信号的,所以xilinx等厂家就发明了内置的逻辑分析仪。在vivado中叫 ILA(Integrated Logic Analyzer),之前在ISE中是叫ChipScope。基本原理就是用fpga内部的门电路去搭建一个逻辑分析仪,综合成一个ILA的core核伸出许多probe去探测信号线。

下面逐步讲解在线debug的过程,主要侧重ILA中clock domain的正确使用。

第一大部分 添加被测信号线

通常有两种方式 :

1、在代码中添加这么一句 (*MARK_DEBUG="TRUE"*) 。不管是reg还是wire型的,接口信号或者内部变量,都可以添加。

2、在Setup Debug过程中,直接添加Netlist

我一般是,常用信号都加DEBUG标识,临时测量的就手动加net,需要的就加,不要的就删。

第二大部分 生成ILA模块

  1. 完成综合之后,Open Synth Design,点里面的Set Up Debug

  2. 按需要选一个

  3. 进去之后,就可以添加/删除被测net。如果提示没有参考时钟,右键选择一个合适的即可

  4. 选择FIFO深度。这个深度可以选很大,每个被测信号都会得到这么大的一个FIFO,所以逻辑分析仪非常占用bram资源!合理设置触发条件,FIFO就不用选太大的。

  5. 我这里再跳回上一步选时钟域的部分,结合上面的FIFO来说明选取clock domain的重要性。

    时钟域的选择会影响两大方面:生成几个ILA核,以及能探测多少时间。

    1) 选了3个时钟就一定会生成3个ILA核,毕竟给D触发器的clk不一样嘛;

    2) FIFO的参考时钟不同,直接决定FIFO多久会被存满;

    比如我这个设计中有3个时钟进来 50mhz 20mhz 以及8mhz转400khz给IIC用。如果IIC的参考50mhz,那scl sda的FIFO瞬间就存满了,触发后FIFO的任务完成了,但是我们连一个信号跳变都看不到。如果参考400khz的,那从起始条件到8bit数据到停止条件都能抓到了。

    FIFO存数据是参考信号时钟的,有一拍clk才会存1bit数据。

    选择合适的clock domain非常重要,因为最终影响到资源的占用。ILA核的个数,FIFO的个数(经常会出现要抓500个甚至1000个信号。为什么这么多!比如你32位的地址,32位的总线,还读写分开,还有好几个,慢慢就聚集多了,fpga本来功能就是采用并行总线提高速度的原理)。

    比如下面这个设置,铁定会生成3个ILA核,分3个波形界面显示。其实如果资源确实够用的话,建议按照大功能分开,这样能显示在不同界面上,然后各自设置触发条件。

第三大部分 信号波形

  1. 连上jtag,open目标板,然后烧写bit和ltx文件。

  2. 设置触发条件。这里就跟示波器是一样的用法了,可以run也可以trig。

  3. 右键有很多功能:short显示名 设置颜色 进制转换 分组 等等,可以琢磨一下。

  4. 举例子

    下面被测的信号是20mhz的clk,但是显示的波形却不是均匀方波!为什么?因为是用50mhz的时钟采的,就是这样的,没有错。所以再说一遍,clock domain的选择非常重要。

Vivado中使用逻辑分析仪ILA相关推荐

  1. Vivado下集成逻辑分析仪ILA入门续

    在 Vivado下集成逻辑分析仪ILA入门 一文中带着读者走了一遍集成逻辑分析仪ILA的使用过程.当时通过Set up Debug 添加需要监控的点,间接添加了ILA, 本文介绍另外一种方法,直接添加 ...

  2. Vivado下的集成逻辑分析仪ILA 入门

    刚刚开始学习Zynq 7000的时候,看到别人问ILA的问题时,说是集成逻辑分析仪,我觉得这是一个好东西,我一定要学会它. 我是买了黑金的AX7010, 后来换成AC7010,开始学习Zynq 700 ...

  3. Vivado中ILA(集成逻辑分析仪)的使用

    Vivado中ILA(集成逻辑分析仪)的使用 一.写在前面 二.ILA(Integrated Logic Analyzer)的使用 2.1 ILA查找 2.2 ILA配置 2.2.1 General ...

  4. FPGA学习 Vivado使用篇之ILA(逻辑分析仪)

    ILA(Integrated Logic Analyzer),集成逻辑分析仪,允许用户在FPGA设备上执行系统内的调试.作为一名FPGA工程师,掌握在线调试工具进行时序分析是必备的职业技能之一. IL ...

  5. vivado中利用ILA抓取信号的教程

    vivado中利用ILA抓取信号的教程 虽然操作ILA核会有至少四种方法,但是真正高效的方法,我认为是如下的标记法,所以单独拎出来,给大家瞧瞧: 一.重要的话说三遍: (mark_debug =&qu ...

  6. 利用Vivado逻辑分析仪ila观察信号

    目录 一.添加ila core 1.双击ILA 2.设置采样深度 8192 及位宽8(可自定义) 二.顶层文件中进行例化 1.在IP Sources中找到ila的.veo文件双击打开 2.将文件中IL ...

  7. vivado中ILA核的使用

    RTL设计 在RTL设计中,将想要抓取的信号前加上: (*KEEP = "TRUE"*) reg led_reg02; 例如,本例中需要抓取的信号是led_reg02: ILA核的 ...

  8. 使用在线路线逻辑分析仪ILA调试模块的小技巧

    在CSDN这个BLOG中我详细给出了如何在VIVADO中插入在线逻辑分析仪进行信号获取.这里再记录一下自己用的一个小技巧: 实例化一个统一的多款口大位宽的ILA,在多处使用. 我们在一个模块内插入IL ...

  9. Vivado中Debug的用法总结

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

最新文章

  1. 理解extract_patches_2d
  2. DVWA学习(二)SQL Injection(Blind)
  3. socket网络间通信初识
  4. AcWing 788 逆序对的数量-归并排序
  5. okhttp post json 数据_使用python抓取App数据
  6. python的gui编程pyqt5_Python-GUI编程-PyQt5
  7. 图表展示结果开发(一)
  8. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实现字典的打印...
  9. [转]Resource for Windows Phone 7
  10. 编译安装nginx并修改版本头信息—参考实例
  11. ADS1112|MS1112|16位AD转换芯片|国产兼容PIN-TO-PIN。兼容替代无需修改软硬件
  12. 如何理解运算放大器的增益带宽积-运放增益
  13. oracle lsnrctl status unknown,理解 oracle 的 lsnrctl status
  14. 《单片机原理及应用(魏洪磊)》第六章第11题
  15. word文档正文页码从1开始
  16. TypeScript02 方法特性【参数种类、参数个数】、generate方法、析构表达式、箭头表达式、循环...
  17. 【深度】新派LaaS协议Elephant:重振DeFi赛道发展的关键
  18. 360手机刷机·LSPosed安装和使用教程
  19. DirectX11 骷髅头示例Demo
  20. win7升级win10后出现VisualSVN Server提供程序无法执行所尝试的操作 0x80041024

热门文章

  1. 基于STM32F103双轴机械臂完整电路板设计
  2. 基于ADuC845的数据采集板
  3. 华南赛区线上比赛安排
  4. 任艳频 | 竞赛12年纪念文集--后记
  5. oracle数据库中insert,【Oracle】sql插入之 insert all、insert first
  6. elf section类型_ELF文件解析(一):Segment和Section
  7. 图像迁移风格保存模型_CV之NS:图像风格迁移(Neural Style 图像风格变换)算法简介、关键步骤配图、案例应用...
  8. java solr 查询条件_05 java调用solr的api完成数据的查询
  9. 服务器更改文件夹权限,云服务器如何修改文件权限
  10. FPGA之道(23)VHDL的signal、variable与constant