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

2023-11-07

一、写在前面

  在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核的一些学习笔记,如果有疑义的地方欢迎评论区友好探讨学习!!!!!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vivado中ILA(集成逻辑分析仪)的使用 的相关文章

  • Verilog实现两路组相联cache

    cache代码 timescale 1ns 1ps cache共32块 分为16组 每组2块 即两路组相联 1块 4字 1字 4字节 主存共1024块 4096个字 主存地址共12位 1 0 为块内偏移 5 2 为组地址 11 6 为Tag
  • 八、RISC-V SoC外设——GPIO接口 代码讲解

    前几篇博文中注释了RISC V的内核CPU部分 从这篇开始来介绍RISC V SoC的外设部分 另外 在最后一个章节中会上传额外添加详细注释的工程代码 完全开源 如有需要可自行下载 目录 0 RISC V SoC注解系列文章目录 1 结构
  • Verilog之assign

    Verilog中的关键词assign主要用于如下两个地方 数据流建模 用于数据流建模的显示连续赋值语句语法格式如下
  • AD20/Altium designer——如何对PCB添加图片丝印、自定义LOGO、专属图案

    本篇介绍如何在PCB添加图案丝印并调节大小 主要步骤 图片转单色图 bmp格式 复制粘贴进word文档 再次复制到AD 1 选择图片用电脑自带的画图软件打开 2 将图片另存为 bmp格式 3 查看图片效果是否理想 图片是否需要取反色 选做
  • 八段数码管动态显示(输入数据为BCD编码)

    八段数码管动态显示 输入数据为BCD编码 一 数码管概述 图1 八段共阴数码管内部等效原理图 图2 八段共阳数码管内部等效原理图 上面两图分别是对应八段共阴 共阳的数码管内部等效图 共阴是将八个LED数码管的阴极连接在一起接低 阳极segm
  • 【DDR3 控制器设计】(3)DDR3 的写操作设计

    写在前面 本系列为 DDR3 控制器设计总结 此系列包含 DDR3 控制器相关设计 认识 MIG 初始化 读写操作 FIFO 接口等 通过此系列的学习可以加深对 DDR3 读写时序的理解以及 FIFO 接口设计等 附上汇总博客直达链接 DD
  • Verilog HDL——Modelsim仿真

    常用testbench语法 finish 和 stop finish任务用于终止仿真并跳出仿真器 stop任务则用于中止仿真 timescale time unit time precision time unit指定计时和延时的测量单位
  • PAJ7620U2手势识别——配置0x00寄存器(3)

    文章目录 前言 一 为啥要配置0x00寄存器 二 配置步骤 1 单个读操作步骤图 2 模块状态转移图绘制 3 模块波形图绘制 4 上板验证 5 参考代码 总结 前言 在前面的教程中 小编带领各位读者学习了如何通过I2C协议去唤醒PAJ762
  • 2023 华子(华为)硬件岗位面试2

    写在前面 本内容仅作参考 如有侵权或者其他问题 立马删除 也仅作为笔者个人经历或者回忆 不一定完全准确 一切都在改变 也祝愿大家面试顺利 顺利取得自己心仪的offer 编辑切换为居中 添加图片注释 不超过 140 字 可选 本次是业务主管面
  • 【FPGA多周期时序约束详解】- 解读FPGA多周期时序约束的全过程

    FPGA多周期时序约束详解 解读FPGA多周期时序约束的全过程 FPGA作为数字电路设计的常见工具 其设计中必然会遇到时序约束的问题 而多周期时序约束更是FPGA设计中不可避免的难点之一 本文将详细介绍FPGA多周期时序约束的全过程 并结合
  • ADS Via Designer 快速建模举例

    如何快速地对设计中的差分过孔进行建模 是layout前仿真中经常遇到的问题 好在目前主流的仿真软件都提供了独立的过孔建模向导 可以很方便地进行操作 本文以ADS提供的Via Designer向导为例 展示如何快速完成过孔的建模操作 以下图所
  • 时序约束理解

    异步配置信息 跨时钟域 配置信息一般set max delay按照3delay来约束 2 异步回读 rst clear信号 设置set false path 放松时序约束要求 不应分析设计中的逻辑路径 因为不关心点到点时序要求
  • 硬件基础-电容

    电容 本质 电容两端电压不能激变 所以可以起到稳定电压作用 充放电 电容量的大小 想使电容容量大 使用介电常数高的介质 增大极板间的面积 减小极板间的距离 品牌 国外 村田 muRata 松下 PANASONIC 三星 SAMSUNG 太诱
  • 基于FPGA的简易BPSK和QPSK

    1 框图 2 顶层 3 m generator M序列的生成 输出速率为500Kbps 4 S2P是串并转换模块 将1bit的m序列转换到50M时钟下的2bit M序列数据 就有4个象限 5 my pll是生成256M的时钟作为载波 因为s
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • allegro画PCB如何更新元件的PCB封装

    allegro画PCB如何更新元件的PCB封装 一 更新单个器件的PCB封装 首先菜单栏选择Place gt Update Symbols 如下图 注意此案例是更新了C0805封装 中更新封装 就将上图第二个红色方框中的勾选即可 二 更新某
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • Vivado ILA的debug信息保存与读取

    保存 write hw ila data D Project FPGA ILA Debug Data 202401041115 ila upload hw ila data hw ila 1 读取 display hw ila data r
  • 48V转12V的DC-DC稳压电路推荐

    项目或学习过程中好用且稳定的DC DC的电路将是一个成功硬件项目的基础 主芯片 MP9486 MP9486A 是一款高压降压型开关稳压器 可输 出高达 1A 的持续电流至负载 它集成了一个高 压高端 MOSFET 提供 3 5A 的典型峰值
  • 基于信号完整性的PCB设计原则

    最小化单根信号线质量的一些PCB设计建议 1 使用受控阻抗线 2 理想情况下 所有信号都应该使用完整的电源或地平面作为其返回路径 关键信号则使用地平面作为返回路径 3 信号的返回参考面发生变化时 在尽可能接近信号换层孔的位置增加至少一个返回

随机推荐

  • latex之使用texstudio 编辑算法伪代码

    latex安装一定要记得设置环境变量 另外texstudio配置变量设置请看latex安装和texstudio latex语法没怎么学 随便找个模板跟着玩的 入门案例如下贴出来的 方便以后查找 使用 首先推荐一下网址 https priva
  • 半导体(芯片制造)材料概述

    引用 1 https zhuanlan zhihu com p 371609556 2 https zhuanlan zhihu com p 374110990 3 https www eet china com mp a91416 htm
  • Opencv时间计算

    OpenCV中的时间计算 OpenCV提供了两个函数 cv getTickCount 和cv getTickFrequency 其中 getTickCount 表示的是从某一事件后 比如开机后 系统时钟的嘀嗒数 getTickFrequen
  • element-UI

    常用组件 vue admin里封装的组件 插件等 统一注册在framework vab index js里 main js再导入framework vab 就可以全局使用framework vab里的内容了 如果想全局使用自己封装的组件 可
  • 2. Unity操作基础知识

    1 创建新项目 双击打开 unity hub管理器 点击左侧栏中的 项目 选项卡 在右上角点击 新项目 按钮 进入项目创建页面 在项目创建页面中 选择合适的模板 并设置项目名称 选择项目保存位置 取消勾选同意版本管理和政策条款 最后点击 创
  • Python语法:... for ... in ... if ...

    Python中 for in if 语句是一种简洁的构建List的方法 从for给定的List中选择出满足if条件的元素组成新的List 其中if是可以省略的 下面举几个简单的例子进行说明 for in for in 语句 实例如下 1 a
  • 【Android基础篇】AlertDialog自定义setView方法的控件响应方法

    Android使用AlertDialog弹出对话框时 如果需要自定义对话框界面 就需要用到setView来设置界面 此时 界面上一般都会有需响应或需记录结果的控件 这就需要查找控件了 下面就是一个在自定义对话框中查找控件并进行响应的实例 L
  • 大神之路-起始篇

    欢迎关注 全栈工程师修炼指南 公众号 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 涉及 企业运维 网络安全 应用开发 物联网 人工智能 大数据 学习知识 花开堪折直须折 莫待无花空折枝 作者主
  • Vulkan开发环境配置 Win10+VS2019

    官方的环境配置教程 https vulkan tutorial com Development environment 一 下载SKD 进入官网 https vulkan lunarg com 由于是windows下进行开发 所以选择win
  • vue使用ElementUI,自定义Element组件样式,覆盖其原有样式,以el-table为例

    一 原有样式 以el table为例 此时使用其样式 size mini 效果如下 二 需求 此时觉得size mini 的下的表格单元格的内边距仍有点大 想要手动调小一点 三 解决方法 f12打开控制台 使用右上角图标 点击单元格 发现其
  • Vue 提示:./node_modules/_babel-loader@7.1.5@babel-loader/lib!./node_modules/_vue-loader@13.7.3@vue-loa

    今天在做租房管理系统后台模板提示如下错误信息 These dependencies were not found components part nav top vue in node modules babel loader 7 1 5
  • mercury怎么设置虚拟服务器,XAMPP邮件服务器Mercury的设置方法

    启动Apache和MySQL服务 点击 Mercury 顶部菜单的 Configuration MercuryS SMTP Server 在弹出的对话框上点击 Connection control 标签页 去掉 Do not permit
  • github下载的zip如何与远程仓库建立关联

    github下载的zip如何与远程仓库建立关联 从github上下载了zip压缩包 但是下载成功后没有git的信息 也不能push到远程仓库 然后执行了以下操作就可以关联上GitHub了 也可以正常commit push了 unzip
  • tfrecord图像分类_如何在tfrecord文件上训练图像分类器

    tfrecord图像分类 TFRecords简介 Introduction to TFRecords TFRecords store a sequence of binary records which are read linearly
  • jspSmartUpload成功操作示例

    jspSmartUpload成功操作示例 upload html
  • PCB Rules

    设计规则 Name 设计规则名称 Priority 优先级 数字越小优先级越高 Enabled 使能 Type 类型 Category 设计规则所属的类 Scope 设计规则作用的范围 Attributes 属性设置 1 概况 2 Elec
  • nodejs各种版本下载地址

    https nodejs org download release
  • java自动化测试语言高级之序列化

    java自动化测试语言高级之序列化 文章目录 java自动化测试语言高级之序列化 Java 序列化 Java 序列化 Java 提供了一种对象序列化的机制 该机制中 一个对象可以被表示为一个字节序列 该字节序列包括该对象的数据 有关对象的类
  • windows 服务器中tomcat 启动时复制替换项目中的某个文件

    Bat文件中的命令 复制命令 copy 删除命令 rd 复制命令 copy copy y 源文件路径 目标文件路径 echo off rem 注释复制app properties copy y D softwere apache tomca
  • Vivado中ILA(集成逻辑分析仪)的使用

    Vivado中ILA 集成逻辑分析仪 的使用 一 写在前面 二 ILA Integrated Logic Analyzer 的使用 2 1 ILA查找 2 2 ILA配置 2 2 1 General Options 2 2 2 Probe