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

news2025/1/16 3:52:44

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

  • 一、写在前面
  • 二、ILA(Integrated Logic Analyzer)的使用
    • 2.1 ILA查找
    • 2.2 ILA配置
      • 2.2.1 General Options
      • 2.2.2 Probe Ports
  • 三、ILA调用
  • 四、ILA联调
    • 4.1 信号窗口
    • 4.2 波形窗口
    • 4.3 状态窗口
    • 4.4 设置窗口
    • 4.5 触发条件设置窗口
    • 4.6 联合调试
  • 五、写在最后

一、写在前面

  在FPGA设计上板过程中,如果出现问题难以定位具体问题的位置和原因,要观察一些信号的波形,可以使用ILA来捕获关键信号,以便分析问题并快速定位其原因。ILA(Integrated Logic Analyzer),集成逻辑分析仪,与Quqartus 中的 SignalTap II 作用类似。

二、ILA(Integrated Logic Analyzer)的使用

2.1 ILA查找

  在IP Catalog中搜索ILA,可以找到该IP核,双击对该IP核进行配置。
在这里插入图片描述

2.2 ILA配置

  接下来可以对ILA进行配置,界面如下。

  这里,我们仅对Native接口进行讲解,关于AXI接口的ILA使用,在这里不进行过多讲解。

2.2.1 General Options

在这里插入图片描述

  • Component Name:IP核的名称,可根据需求进行设置;
  • Native/AXI:接口类型
  • Number of Probes:探头的数量,即需要查看的信号个数
  • Sample Data Depth:样本数据深度,即采样的时钟个数,也可以认为显示在窗口中的时钟数量,最小为1024= 2 10 2^{10} 210,最大为131072= 2 17 2^{17} 217。假如设置该值为024,则在窗口中可以观察到1024个时钟周期的数据;
  • Same Number of Comparators for All Probe Ports:是否为所有探头设置相同数量的比较器;
  • Number of Comparators:该选项仅在勾选Same Number of Comparators for All Probe Ports时才会有,表示为每个探头设置的比较器数量;
  • Trigger Out Port:触发输出端口,可用于 ILA 模块的级联或一些高级功能;
  • Trigger In Port:触发输入端口,可用于手工设置添加触发信号或进行 ILA 模块的级联或一些高级功能;
  • Input Pipe Stages:需观察信号打拍次数,可设置数值 0~6,一般情况下,采样时钟和探测信号是一个时钟域下,这里可以默认设置为 0 即可;
  • Capture Control:勾选后可在调试的设置窗口中进行对Capture mode的设置,如果不勾选后面有关 Capture mode 就不可修改;
  • Advanced Trigger:勾选后可在调试的设置窗口进行对 Trigger mode 的设置,如果不勾选后面有关 Trigger mode 就不可修改;

  在这里有一个点值得关注:上述中比较器是什么?
  在使用探头观察信号的值时,我们可以设置需要观察的信号在什么时候在窗口中显示波形?即什么是时候抓取信号的波形?比如需要观察一个8bit位宽的变量data,在其值等于8’hbb时,在窗口中显示其波形,则只需要一个比较器,当data==8’hbb为真时,抓取data波形,并在波形窗口中显示。那么如果需要使其值在区间8‘h11到8’hbb区间内时,在窗口中显示其波形,则需要设置两个比较器。

2.2.2 Probe Ports

  在Probe Ports界面,可以对每个探头进行详细设置,可以设置每个探头的探头位宽、比较器数量、探头类型,如下图所示。

在这里插入图片描述

  • Probe Width:探头的宽度,即需要观察的信号的位宽;
  • Number of Comparators:比较器数量。如果在前面勾选了Same Number of Comparators for All Probe Ports,为所有探头设置了相同的比较器数量,那么在这里则不可设置;如果在前面没有为所有探头设置相同的比较器数量,则在这里就可以为每个探头设置不同的比较器数量。
  • Probe Trigger or Data:探头作为触发条件还是数据;(DATA AND TRIGGER:既可作为触发条件,也可作为数据;DATA:仅作为数据;TRIGGER:仅作为触发条件;)

三、ILA调用

  在配置好ILA IP核后,在IP Sources中可以看到已经生成的IP核,在Instantiation Template可以看到IP核例化模板,如下图所示。
在这里插入图片描述
  打开lia_0.veo,可以看到IP核的例化模板,直接复制到需要观察信号的RTL代码中,修改例化模块的名称并对需要观察的信号进行连接。

在这里插入图片描述
在这里插入图片描述

四、ILA联调

  在这里,以串口回环为例,观察PC发送的串行数据rxd和FPGA开发板接收到的8bit数据。将生成比特流文件后将.bit文件和.ltx文件写入FPGA开发板。
在这里插入图片描述
  然后在调试窗口中,可以看到4个窗口:信号窗口、波形窗口、状态设置窗口和触发条件设置窗口。

在这里插入图片描述

4.1 信号窗口

  在信号窗口中可以看到之前设置为DATA的探头信号,可以对其进行删减。

4.2 波形窗口

  在波形窗口中,可以观察捕获的信号波形。

4.3 状态窗口

  在状态窗口中,可以看到当前的状态。

4.4 设置窗口

  在设置窗口中,可以对波形窗口显示的内容进行设置。

  • Number of windows:显示窗口个数,默认为 1;
  • Window data depth:窗口显示数据深度,最大可以设置为Sample Data Depth Sample Data Depth为IP核配置时配置的数据深度。(这里需要注意的是:Sample Data Depth = Number of windows X Window data depth)
  • Trigger position in window:设置触发位置在窗口波形中显示的位置,比如前面设置的样本数据深度Sample Data Depth为131072,那么想要设置触发位置位于波形窗口的中间,则设置为131072/2=65536;
  • Refresh rate:连续触发模式下,相邻触发之间的刷新时间;

4.5 触发条件设置窗口

  在触发条件设置窗口中,可以设置触发的条件,假如要观察8bit信号data大于8’h11且小于8’hBB,则这里设置2个比较器,一个比较器设置在Data大于8’h11时触发,输出高电平,另外一个比较器设置在Data小于8’hBB时触发,输出高电平。
在这里插入图片描述
  同时,可以设置这个几个触发条件之间的关系,可以设置为:与(AND)、或(OR)、与非(NAND)、或非(NOR)。在这里,我们设置为与(AND)。
在这里插入图片描述
  在这里有一点需要注意:对于单个观察信号,所使用的比较器个数不可以超过在ILA IP核配置时所设置的比较器个数(Number of Comparators),如果使用的个数大于所设置的比较器个数,则在触发条件设置窗口中可以看到提示Out of comparators,表示在这里使用的比较器个数超过我们前面设置的比较器个数。如果运行调试,则会出现报错!!!

在这里插入图片描述
在这里插入图片描述

4.6 联合调试

  在设置好以上的选项后,运行调试,查看状态窗口中,可以看到当前状态为等待触发状态。

在这里插入图片描述

  然后在串口助手中,发送数据8’hDD,再观察ILA调试窗口中波形,由于8’hDD不在区间[ 8’h11 , 8’hDD ]内,所以并未触发条件,波形窗口中也就无任何波形。

在这里插入图片描述
在这里插入图片描述

  然后在串口助手中,再发送数据8’hAA,再观察ILA调试窗口中波形,由于8’hAA在区间[ 8’h11 , 8’hDD ]内,所以并触发了捕获条件,波形窗口中也可以看到接收到Data为8’hAA,触发时位于波形窗口的中间。

在这里插入图片描述
在这里插入图片描述
  在这里可以看到,接收到8’hAA的上一个数据为8’hDD,同时可以看到我们接收到的串行数据为0_01010101_1,最高位0为起始位,最低位1为停止位,中间的8bit数据01010101为接收到的数据。由于串口发送是先发送数据的LSB,最后发送数据的MSB,所以实际上发送端发送的数据为10101010,即AA,与我们接收端接收到的数据data一致。
  

五、写在最后

  在本文中,学习了Vivado中集成逻辑分析仪(Integrated Logic Analyzer,ILA)的使用,结合串口回环程序进行波形捕获实验,观察串行数据传输是否正确,这里只是对ILA的使用进行简单的演示,在具体设计中应根据项目需求进行配置。
  好了,上面就是关于Vivado中ILA IP核的一些学习笔记,如果有疑义的地方欢迎评论区友好探讨学习!!!!!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Segment Anything论文详解(SAM)

论文名称:Segment Anything 论文地址:https://arxiv.org/abs/2304.02643 开源地址:https://github.com/facebookresearch/segment-anything demo地址:Segment Anything | Meta AI 主要贡献:开发一个可提示的图像分…

6.Java数组

数组 一、数组概述 1、什么是数组? 数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。 2、数组的…

哈夫曼树和最小生成树

哈夫曼树 首先给我们一串权值,然后我们需要让这串权值组成一个树,然后当他的wpl最小 我们可以发现当他的小权值离根节点越远,大权值离根节点越近的时候,我们这个时候构建出来的树就是wpl最小的树,也就是我们说的哈夫曼…

c++之 类和对象

目录 1.类和对象的基本概念 1.c语言与c中的结构体 2.类的封装性 3.定义类 4.构造与析构 构造与析构的概念: 构造函数 析构函数 拷贝构造函数 c默认增加的函数 1.类和对象的基本概念 1.c语言与c中的结构体 我们知道在c语言里,我们是无法在结构体…

进程的开销比线程大在了哪里?

进程内部都有哪些数据? 为什么创建进程的成本很高? 这样的问题确实不好回答,除非你真正理解了进程和线程的原理,否则很容易掉入面试大坑。探究问题背后的原理,围绕面试题展开理论与实践知识的学习。真正理解进程和线…

centos7虚拟机下hbase的使用案例讲解

系列文章目录 centos7虚拟机在集群zookeeper上面配置hbase的具体操作步骤 centos7虚拟机配置集群时间同步的操作步骤_centos虚拟机时间同步 centos7配置zookeeper本地模式与集群模式的详细教程 卸载centos7自带的jdk的操作步骤_centos7 卸载java 虚拟机centos7配置Hadoop单…

如何用 Vitis HLS 实现 OpenCV 仿真

这篇文章的基础是《Windows上快速部署Vitis HLS OpenCV仿真库》,我们使用的版本是Vitis HLS 2022.2,其他版本BUG不清楚,目前已知2021版本有BUG,只能使用其他方式,本文不适合。 这次选择中值滤波这个常规算法作为演示算…

Springboot电脑商城项目

目录 系统概述与环境搭建 1 系统开发及运行环境 2 项目分析 3 创建数据库 4 创建Spring Initializr项目 5 配置并运行项目 6 导入前端项目 用户注册 1 用户-创建数据表 2 用户-创建实体类 3 用户-注册-持久层 4 用户-注册-业务层 5 用户-注册-控制器 6 用户-注册…

归并排序(递归实现)

上一次我们说了快排的其他版本,还有就是快排的非递归实现 这次我们就说一哈归并排序,归并排序也是很厉害的一种排序,而且归并排序的时间复杂度可以说成标准的O(n log n) 下面我们就来看一下归并排序 我们先来看一下什么是归并排序 假设我…

Scratch蓝桥杯实战训练 —— 巧解“韩信点兵”难题的五种方式

“韩信点兵”蓝桥杯问题描述: “蓝桥杯”中有一道有趣的 Scratch 编程题,题目要求为:韩信点兵 扩展知识: 这道题叫“中国余数定理”,又叫“孙子定理”,也叫“韩信点兵问题”,是我国古代数学智慧…

Faster-RCNN代码解读3:制作自己的数据加载器

Faster-RCNN代码解读3:制作自己的数据加载器 前言 ​ 因为最近打算尝试一下Faster-RCNN的复现,不要多想,我还没有厉害到可以一个人复现所有代码。所以,是参考别人的代码,进行自己的解读。 ​ 代码来自于B站的UP主&…

Node【三】Buffer 与 Stream

文章目录🌟前言🌟Buffer🌟 Buffer结构🌟 什么时候用Buffer🌟 Buffer的转换🌟 Buffer使用🌟 创建Buffer🌟 字符串转Buffer🌟 Buffer转字符串🌟 拼接Buffer&…

python 理解BN、LN、IN、GN归一化、分析torch.nn.LayerNorm()和torch.var()工作原理

目录 前言: 简言之BN、LN、IN、GN等归一化的区别: 批量归一化(Batch Normalization,BN) 优点 缺点 计算过程 层归一化(Layer Normalization,LN) 优点 计算过程 总结 分析torch.nn.LayerNorm()工作原理 分析torch.var(…

Vue2-黑马(十一)

目录: (1)vue2-联调准备 (2)vue2-登录实战-国际化 (3)vue2实战-登录-login-index.vue (1)vue2-联调准备 登录这个请求,并不是发给后台的,现在还…

浙大MBA提面申请材料的三六九等……

每年浙大MBA项目提前批面试申请的每个批次中都会有部分材料因为某些原因而被淘汰,无缘面试资格。考生们由最初的不理解到逐渐隐约的理解,行至今日也可以大体接受材料被刷这个结果,当然其中含有一部分面上资质背景还可以的考生,等到…

Faster-RCNN代码解读2:快速上手使用

Faster-RCNN代码解读2:快速上手使用 前言 ​ 因为最近打算尝试一下Faster-RCNN的复现,不要多想,我还没有厉害到可以一个人复现所有代码。所以,是参考别人的代码,进行自己的解读。 ​ 代码来自于B站的UP主(…

中国电子学会2023年03月份青少年软件编程Scratch图形化等级考试试卷四级真题(含答案)

2023-03 Scratch四级真题 分数:100 题数:24 测试时长:90min 一、单选题(共10题,共30分) 1.编写一段程序,从26个英文字母中,随机选出10个加入列表a。空白处应填入的代码是?(C&am…

Flink (十二) --------- Flink CEP

目录一、基本概念1. CEP 是什么2. 模式 (Pattern)3. 应用场景二、快速上手1. 需要引入的依赖2. 一个简单实例三、模式 API(Pattern API)1. 个体模式2. 组合模式3. 模式组4. 匹配后跳过策略四、模式的检测处理1. 将模式应用到流上2. 处理匹配事件3. 处理超…

【高项】项目整体管理、范围管理与进度管理(十大管理)

【高项】项目整体管理与范围管理 文章目录1、项目整体管理1.1 整体管理的过程1.2 制定项目章程(启动)1.3 制订项目管理计划(规划)1.4 指导与管理项目执行(执行)1.5 监控项目工作与实施整体变更控制&#xf…

Systemverilog中operators和expression的记录

1. Equality operators Equality operators有三种: Logical equality:, !,该运算符中如果运算数包含有x/z态,那么结果就是x态。只有在两边的bit都不包含x/z态,最终结果才会为0(False)或1(True)Case equality&#xf…