集成逻辑分析器( ILA)IP核用法详解

集成逻辑分析器(Integrated Logic Analyzer, ILA)IP核是一个可定制的逻辑分析器,用于监测设计的内部信号。ILA核心包含了现代逻辑分析器的许多高级特性,比如布尔触发方程(boolean trigger equations)和边沿转换触发(edge transition triggers)。

由于ILA核心与被监测的设计是同步的,因此应用于设计的所有时钟约束也会应用于ILA核心的组件。这意味着ILA能够准确地捕获和记录设计在特定时钟条件下的行为,这对于调试和验证复杂系统特别有用。

1 功能概述

在FPGA设计中,信号被连接到ILA IP核的时钟和探针(probe)输入(如图1-1所示)。这些连接到探针输入的信号以设计速度进行采样,并使用片上的块RAM(BRAM)进行存储。IP核的参数指定了探针数量、跟踪采样深度以及每个探针输入的位宽。

f784edf87122428cb237a611a32cf555.png

注意:在图1-1中,probe3到probe1022的数值范围用省略号(...)表示。

在将设计加载到FPGA后,使用Vivado逻辑分析器软件为ILA测量设置触发事件。当触发事件发生时,样本缓冲区将被填满并上传到Vivado逻辑分析器中。可以通过波形窗口查看这些数据。

探针采样和触发功能是通过常规的FPGA逻辑实现的。片上的块RAM(BRAM)用于存储数据,直到数据被软件上传。触发事件、捕获数据或与ILA核心通信不需要任何用户输入或输出。

简而言之,ILA提供了一个完全自动化的解决方案,用于捕获FPGA设计中的内部信号数据,而无需用户进行任何手动操作。通过Vivado逻辑分析器软件,可以轻松地设置触发条件、捕获数据并在波形窗口中查看结果。

ILA探针触发比较器

每个探针输入都连接到一个能够执行各种操作的触发比较器。在运行时,该比较器可以设置为执行等于(=)或不等于(!=)的比较。这包括匹配特定级别的模式,如X0XX101。此外,它还能检测边沿转换,如上升沿(R)、下降沿(F)、任一边沿(B)或无转换(N)。触发比较器还可以执行更复杂的比较,包括大于(>)、小于(<)、大于或等于(≥)和小于或等于(≤)。

重要提示:触发比较器是在运行时通过Vivado逻辑分析器进行设置的。

ILA触发条件

触发条件是每个ILA探针触发比较器结果的布尔“与”(AND)或“或”(OR)运算的结果。使用Vivado逻辑分析器,可以选择是将探针触发比较器进行“与”运算还是“或”运算。当所有ILA探针比较都满足时,“与”设置会触发事件。而当任何ILA探针比较满足时,“或”设置会触发事件。这个触发条件就是用于ILA跟踪测量的触发事件。

2 端口

时钟

clk输入端口是ILA IP核用于寄存探针值的时钟。为了获得最佳结果,它应该是与连接到ILA IP核探针端口的设计逻辑同步的时钟信号。

该时钟必须是一个自由运行时钟,即不会停止运行的时钟(时钟没有与其他时钟源相位锁定)。非自由运行时钟的例子包括GT TXOUTCLK、RXOUTCLK、RXRECCLK等。

探针

输入端口,探针端口的编号 <n> 的范围是从 0 到 1,023。每个探针端口的宽度 <m> 范围是从 1 到 4,096 位。这意味着可以捕获从单个位到高达4,096位的信号。

需要把端口声明为向量。例如,对于一个1位的探针端口,可以使用 probe<n>[0:0] 的方式来声明它。

触发输出(Trig_out)

可以由触发条件(trigger condition)或外部 trig_in 端口生成。这允许用户根据需要在运行时从逻辑分析仪中切换使用触发条件还是外部触发输入。

触发输入(Trig_in)

它通常用于基于处理器的系统,如 Zynq-7000 AP SoC,以实现嵌入式交叉触发(Embedded Cross Trigger)。这个端口允许用户从外部源(如另一个ILA或硬件调试器)接收触发信号,以控制数据捕获的开始。

触发输出的确认信号(trig_out_ack

 

用于对 trig_out 输出端口进行确认。在ILA中,当另一个ILA、用户设计或处理器正确接收到trig_out信号时,会发送trig_out_ack作为确认。

触发输入的确认信号(trig_in_ack

用于对 trig_in 输入端口进行确认。在ILA中,当 ILA 成功接收到来自外部源的 trig_in 触发信号时,它会通过 trig_in_ack 端口发送一个确认信号,以通知外部源触发信号已被正确接收。

3 定制 ILA IP核

要定制ILA IP核并对其配置时,请按照以下步骤操作:

(1)打开Vivado项目:选择“File” > “Open Project”以打开现有项目,或选择“File” > “New Project”以创建新项目。

(2)打开IP目录:在Vivado中,打开IP Catalog并找到ILA IP核。

8ea97bceae294a6682c90e44c6faebe5.png

(3)添加ILA IP核:双击ILA以打开ILA IP核的配置界面(在Vivado IDE中)。

3.1 常规选项面板

7923ead1535a4f73bbc7566d3f0c55c5.png

  • Component Name:使用此文本框为ILA IP核提供一个唯一的模块名称。

  • Monitor Type:此选项指定ILA应该调试的接口类型。当前此参数的值为“native”和“AXI”。

  • C_NUM_MONITOR_SLOTS(仅适用于AXI类型):此选项允许您选择需要连接到ILA的AXI接口插槽数量。

  • Number of Probes(探针数量):使用此文本框选择ILA IP核上的探针端口数量。在Vivado IDE中使用的有效范围是1到64。如果您需要超过64个探针端口,您需要使用Tcl命令流程来生成ILA IP核。

  • Sample Data Depth(样本数据深度):从下拉菜单中选择合适的样本数据深度。这决定了在触发时能够捕获的数据量。

  • Same No. of Comparators for all Probes(所有探针使用相同数量的比较器):勾选以启用此选项,以便所有已启用的端口和接口都使用相同数量的比较器。

  •  

    No. of Comparators(比较器数量):选择适用于所有已启用探针的比较器数量。在这个IP版本中,每个探针的比较器数量限制增加到16个。现在,在基本触发模式和高级触发模式中,比较器数量都可以设置为1到16之间的任何数字。

     

  • Trigger Out Port(触发输出端口):勾选以启用可选的触发输出端口。此端口可以在触发发生时提供外部信号。

  • Trigger In Port(触发输入端口):勾选以启用可选的触发输入端口。此端口允许您从外部信号源接收触发。

  • Input Pipe Stages(输入管道阶段):选择您希望为探针添加的寄存器数量。此参数适用于所有探针。添加更多的输入管道阶段可以增加捕获数据的稳定性,但可能会增加延迟。

  • Capture Control(捕获控制):勾选以启用跟踪捕获的限定器。这允许您根据特定的条件(如时钟边缘)来限定捕获的数据。

  • Advanced Trigger(高级触发):勾选以启用基于状态机的触发序列。这提供了更复杂的触发条件,可以根据多个信号的状态和时序关系来触发捕获。

3.2 Probe Port Panels

d0c886167ab645228382a45ab52346a6.png

Probe Widths:在Probe Port Panels中,您可以配置每个探针端口的宽度。

Number of Comparators:当选择了“Advanced Trigger”选项并且禁用了“Same No. of Comparator for all Probes”时,此面板上会出现每个探针的比较器数量配置选项。这允许您为每个探针独立设置比较器的数量。

3.3 AXI Monitor Configuration

20240127c94c42a2bbce2ece83406a1d.png

C_ENABLE_AXI_MON:此选项用于在ILA IP核中启用AXI监控器。当您的设计包含AXI接口并希望在接口级别进行调试时,这会非常有用。

AXI Read/Write Channel User Widths(如C_SLOT_0_AXI_ARUSER_WIDTH、C_SLOT_0_AXI_RUSER_WIDTH等):这些选项用于配置AXI读写通道的用户数据宽度。默认值通常为1,但您可以根据需要进行更改。

C_SLOT_0_AXI_ID_WIDTH:此选项指定AXI ID的宽度。有效范围是从1到32。

C_SLOT_0_AXI_DATA_WIDTH:此选项指定AXI数据宽度。有效值包括32、64、128、256、512和1,024。

C_SLOT_0_AXI_ADDR_WIDTH:此选项指定AXI地址宽度。有效范围是从1到32。

C_SLOT_0_AXI_PROTOCOL:此选项指定AXI接口协议。支持的AXI协议包括AXI3、AXI4、AXI4-Lite和AXI4-Stream(AXIS)。

AXIS Interface Configurations(如C_SLOT_0_AXIS_TDATA_WIDTH、C_SLOT_0_AXIS_TID_WIDTH等):对于AXI Stream(AXIS)接口,也有类似的配置选项,如数据宽度、ID宽度、用户数据宽度和目的地址宽度。

3.4 约束

ILA IP核中的XDC文件包含适当的错误路径约束,用于防止对时钟域交叉同步路径的过度约束。这是非常重要的,因为时钟域交叉通常涉及复杂的时序关系,如果不正确处理,可能会导致时序违规或不必要的性能损失。

与ILA IP核的clk输入端口相连的时钟信号应在设计中得到正确的约束。这包括时钟的频率、相位关系(如果有的话)以及时钟的不确定性(jitter和skew)。

 

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

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

相关文章

H5视频付费点播打赏影视系统程序全开源运营版

这是一款视频打赏源码&#xff0c;勿做非法用途&#xff0c;由用户亲测功能完善&#xff0c;源码仅用于学习使用&#xff0c;分享链接是用户云盘&#xff0c;具有时效性&#xff0c;感兴趣的可以去学习。 thinkphp开发&#xff0c;前后端分离设计&#xff0c;支持游客登陆、VIP…

了解集合与数据结构(java)

什么是数据结构? 数据结构就是 数据结构, 功能就是描述和组织数据 比如我有10万个QQ号, 我来组织, 有很多种组织方法, 比如链表, 树, 堆, 栈等等. 假如QQ号要查找数据, 有种数据结构查找数据速度很快, 我们就用它 加入QQ号要进行删除数据, 有种数据结构删除速度很快, 我们…

Python中设计注册登录代码

import hashlib import json import os import sys # user interface 用户是界面 UI """ 用户登录系统 1.注册 2.登陆 0.退出 """ # 读取users.bin def load(path): return json.load(open(path, "rt")) # 保存user.bin def save(dic…

Covalent引入五个新网络运营商,提升去中心化特性和数据安全性

为了进一步扩大运营商基础以并践行去中心化网络基础设施的宗旨&#xff0c;Covalent Network&#xff08;CQT&#xff09;在网络中引入了五个新的区块样本生产者&#xff08;BSPs&#xff09;角色。该举措不仅重申了 Covalent Network&#xff08;CQT&#xff09;对社区驱动协议…

如何保护数据安全?迅软DSE加密系统给信息撑把保护伞!

信息安全当然需要保护&#xff0c;不然企业的信息可以发给任何人&#xff0c;普通信息还好&#xff0c;如果是重要机密呢&#xff0c;企业重要信息被发出去后可能会造成一些麻烦&#xff0c;所以可以使用加密系统&#xff0c;对数据进行安全保护&#xff0c;防止泄密问题&#…

pandas 预处理

文章目录 第1关&#xff1a;数据读取与合并第2关&#xff1a;数据清洗第3关&#xff1a;数据转换 第1关&#xff1a;数据读取与合并 任务描述 本关任务&#xff1a;加载 csv 数据集&#xff0c;实现 DataFrame 合并。 知识讲解 Pandas 模块导入 import pandas as pd 读取 cs…

如何在没有备份的情况下恢复 Mac 上丢失的数据

如果您因意外删除、错误格式化硬盘或文件损坏而丢失了重要的、感伤的文件、照片或音乐&#xff0c;那么这可能会令人非常痛苦。幸运的是&#xff0c;您有几个选择。 您的 Mac 位于数字宇宙的中心。您可能会在上面留下照片和视频形式的记忆&#xff0c;以及来自您不再见面的朋友…

[嵌入式系统-69]:RT-Thread-组件:网络组件“组”,RT-Thread系统通向外部网络世界的入口

目录 RT-Thread 提供的网络世界入口 - 网络组件 1. 总概 2. AT 3. Lwip&#xff1a; 轻量级IP协议栈 4. W5500 5. Netdev 6. RT-Thread SAL&#xff08;Socket Abstraction Layer&#xff09;套接字和BSD套接字区别 RT-Thread SAL 套接字接口示例 BSD 套接字接口示例 …

css: hover 划过显示/隐藏 div 样式

1. 图例: 划过用display: block;和 display: none; 显示div和隐藏div div: <div class="sectorBox"> <div v-for="(item, index) in sectorList" :key="index" class="sill"> <div class="si…

大数据Scala教程从入门到精通第五篇:Scala环境搭建

一&#xff1a;安装步骤 1&#xff1a;scala安装 1&#xff1a;首先确保 JDK1.8 安装成功: 2&#xff1a;下载对应的 Scala 安装文件 scala-2.12.11.zip 3&#xff1a;解压 scala-2.12.11.zip 4&#xff1a;配置 Scala 的环境变量 在Windows上安装Scala_windows安装scala…

通过红黑树封装 map 和 set 容器(1):红黑树的迭代器

一、红黑树的迭代器 红黑树的遍历默认为中序遍历 —— key 从小到大&#xff0c;因此 begin() 应该获取到红黑树的最左节点 —— 最小&#xff0c;end() 获取到红黑树最右节点的下一个位置&#xff0c; operator() 也应保证红黑树的遍历为中序的状态。 首先对红黑树节点进行改造…

FMEA助力智能电网升级:构建安全、高效、可靠的电力网络

随着科技的不断进步&#xff0c;智能电网已成为现代电力行业的重要发展方向。而在这个过程中&#xff0c;FMEA&#xff08;失效模式和影响分析&#xff09;作为一种重要的质量管理工具&#xff0c;正日益发挥着其在智能电网建设中的赋能作用。本文将从FMEA的基本概念出发&#…

Springboot 集成 Consul 实现服务注册中心-05

因为后续很多模块都要用到注册中心&#xff0c;所以此处先实现此模块。 Consul简介 Consul是一个开源的服务发现和配置管理工具&#xff0c;具有跨平台、运行高效等特点。它由HashiCorp公司开发&#xff0c;并使用Go语言编写。Consul主要用于实现分布式系统中的服务发现、健康…

python中一些莫名其妙的异常

目录 一、字符串中空格\xa0二、文件写入为空问题三、Counter对NAN空值的统计问题 一、字符串中空格\xa0 对于文本中的一些空格&#xff0c;原始状态时显示为普通“空格”&#xff08;其实是latin1编码字符&#xff09;&#xff0c;但是经过split()操作后&#xff0c;这些latin…

MOSFET场效应管栅极驱动电流的计算

MOSFET驱动 MOSFET场效应管是电压驱动器件&#xff0c;输入有电容&#xff0c;因此为可靠驱动MOSFET&#xff0c;栅极需要施加较大的驱动电流。 功率MOSFET开关模型 该模型显示了影响开关性能的最重要的寄生器件。 图1 MOSFET开通过程 MOSFET场效应管的开通动作可分为如下…

《起风了》观后感

我想宫崎骏的电影是很多人心目中美好的回忆&#xff0c;每当听到有他的新电影要上映&#xff0c;总是迫不及待想去捧场&#xff0c;一刷二刷三刷却还是依然看得津津有味&#xff0c;这就是宫崎骏电影独特的魅力。《起风了》跟他的其他电影有很明显的不同&#xff0c;他的大部分…

I forgot my Plex Account PIN; how can I reset it? How can I change my PIN?

If you’ve set a PIN on your Plex account, it’s possible to reset or remove that PIN. Related Page: Plex Home Regular Plex Account If you know the current PIN If the current PIN is known, then simply edit the current PIN on the Settings > Users &…

ESP8266固件烧写

概述 因为手上有块闲置的ESP8266开发板&#xff0c;想着拿来倒腾一下WIFI探针&#xff0c;倒腾了一阵测试成功&#xff0c;博文记录用以备忘 硬件 ESP8266 NodeMCU 环境 Windows 11 步骤 1.下载esp32_win32_msys2_environment_and_toolchain-20181001.zip 2.下载xtensa…

【禅道客户案例】北大软件携手禅道,开启产品化之路新征程

在项目制项目模式下&#xff0c;软件公司根据客户的需求进行短期项目开发&#xff0c;具有灵活、高效、受众面广的优点&#xff0c;在业界得到了广泛的应用。但这种模式也面临诸多挑战&#xff0c;软件公司需要不断地开发新项目来维持业务增长&#xff0c;由于没有自己的产品也…

和comate一起,用JavaScript实现一个简易版五子棋小游戏

前言 五子棋起源于中国&#xff0c;是全国智力运动会竞技项目之一&#xff0c;是一种两人对弈的纯策略型棋类游戏。双方分别使用黑白两色的棋子&#xff0c;下在棋盘直线与横线的交叉点上&#xff0c;先形成五子连珠者获胜。 这次和Baidu Comate智能代码助手共同完成这个小游戏…