集成逻辑分析器( 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)。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

gitignore配置不生效记录

第一种可能性&#xff1a; 在你所有的文件都通过了git add . 命令的情况下&#xff0c;使用指令git rm -r --cached .进行缓存清除&#xff0c;完成之后&#xff0c;再次通过git add . 然后通过git status去看提交的文件都有哪些。 第二种可能性 如果上面的不行就是你添加的…

Makefile经验总结

文章目录 0.概述1.常用规则1.1 清空目录的规则1.2 文件搜寻 &#xff08;用起来比较爽&#xff09;1.3 伪目标&#xff08;可用生成多个目标和配置工程删除规则&#xff09;1.4 静态模式&#xff08;用起来也很爽&#xff09;1.5 显示命令&#xff08;有助于调试makefile&#…

[YOLOv8] 用YOLOv8实现指针式圆形仪表智能读数(一)

最近研究了一个项目&#xff0c;利用python代码实现指针式圆形仪表的自动读数&#xff0c;并将读数结果进行输出&#xff0c;若需要完整数据集和源代码可以私信。 目录 &#x1f353;&#x1f353;1.yolov8实现圆盘形仪表智能读数 &#x1f64b;&#x1f64b;2.仪表目标检测…

Sui主网升级至V1.24.1版本

其他升级要点如下所示&#xff1a; GraphQL #17313 不再存在 Live 或 Historical 的 ObjectKind&#xff0c;它们已经合并为单个 Indexed 类型&#xff0c;表示从索引中获取的任何对象&#xff08;而不是我们有相关信息但尚未建立索引的对象&#xff0c; 或者已被删除或包装…

什么才是正确的领域驱动实现架构?

作为一种系统建模方法&#xff0c;DDD同样涉及系统的体系架构设计。区别于分布式、事件驱动、消息总线等架构设计方法&#xff0c;DDD中的架构设计关注前面各章所介绍的聚合、实体、值对象、领域事件、应用服务以及资源库之间的交互方式和风格&#xff0c;并在设计思想上有其独…

创建和管理数据库

1. 一条数据的存储过程 存储数据是处理数据的第一步.只有正确的把数据存储起来&#xff0c;我们才能进行有效的处理和分析.否则&#xff0c;只能是一团乱麻.在MySQL中&#xff0c;一个完整的数据存储过程一共有四步 : 创建数据库&#xff0c;确认字段&#xff0c;创建数据表&a…

[图解]SysML和EA建模住宅安全系统-01

1 00:00:00,980 --> 00:00:03,100 接下来&#xff0c;我们来看一下案例 2 00:00:04,930 --> 00:00:06,750 我们这次课程的案例 3 00:00:07,090 --> 00:00:13,800 选用了SysML实用指南的书上 4 00:00:13,810 --> 00:00:16,180 第十七章这个案例 5 00:00:16,350 …

RSAC 2024现场:谷歌展望大模型在网络安全领域的前景

人类距离将网络安全的控制权交给生成式AI还有多远&#xff1f; 前情回顾RSAC2024动态 伪造内容鉴别厂商Reality Defender斩获2024 RSAC创新沙盒冠军 RSAC 2024上值得关注的10款网络安全产品 RSAC 2024创新沙盒十强出炉&#xff0c;谁能夺冠&#xff1f; 安全内参5月8日消息…

代码随想录算法训练营第二十一天:树树树

代码随想录算法训练营第二十一天&#xff1a;树树树 ‍ 513.找树左下角的值 力扣题目链接​**&#xff08;打开新窗口&#xff09;** 给定一个二叉树&#xff0c;在树的最后一行找到最左边的值。 示例 1: ​​ 示例 2: ​​ #算法公开课 《代码随想录》算法视频公开课…

跨平台美学!使用DevExpress Reports Office File API时如何管理字体?

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库&#xff0c;不用安装Microsoft Office&#xff0c;就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…

鲁大师4月电动两轮车榜:RideyFUN Air智驾系统上线,九号F2z 110智能化再升级

鲁大师4月电动两轮车排行榜数据来源于鲁大师智慧实验室&#xff0c;测评的车型均为市面上主流品牌的主流车型。截止目前&#xff0c;鲁大师智能化电动车测评的车型高达160余台&#xff0c;且还在不断增加和丰富中。 鲁大师电动车智能化测评体系包含车辆的状态采集与管理硬件系统…

android基础-通知

基于第一行android 使用PendingIntent来实现点击通知跳转到另一个活动。 notificationcompat.builder后面可以跟很多的方法&#xff0c;不同方法不同效果&#xff0c;比如加一个音频.setSound(uri) 内置网页 解析json

Spring IoCDI(1)—入门

目录 一、IoC & DI入门 1、Spring是什么 &#xff08;1&#xff09;什么是容器&#xff1f; &#xff08;2&#xff09;什么是IoC&#xff1f; 二、IoC介绍 1、传统程序开发 2、解决方案 3、IoC程序开发 4、IoC优势 三、DI介绍 通过前面的学习&#xff0c;我们知…

开源即时通讯IM框架 MobileIMSDK v6.5 发布

一、更新内容简介 本次更新为次要版本更新&#xff0c;进行了bug修复和优化升级&#xff08;更新历史详见&#xff1a;码云 Release Notes、Github Release Notes&#xff09;。 MobileIMSDK 可能是市面上唯一同时支持 UDPTCPWebSocket 三种协议的同类开源IM框架。轻量级、高…

OpenGVLab/InternVL-Chat-V1-5-Int8

openedai-vision 代码仓库 OpenGVLab/InternVL-Chat-V1-5-Int8 模型文件地址 示 算力平台AutoDL df -h /root/autodl-tmp tar -xvf FileName.tartar -xvf 安装 克隆我们的仓库并跳转到相应目录 2. 创建 conda 环境 cond…

解决Vue devtools插件数据变化不会自动刷新

我们使用devtools插件在监测vuex中表单或自定义组件的数据&#xff0c;发现页面数据发生变化后&#xff0c;但是devtools中还是老数据&#xff0c;必须手动点击devtools刷新才能拿到最新的数据。很烦&#xff01; 解决方案&#xff1a; 打开chrome的设置&#xff0c;向下翻&…

安服仔养成篇——基线检查

基线检查概念理解 先放白嫖来的解释&#xff1a; “安全基线是保持信息系统安全的机密性、完整性、可用性的最小安全控制&#xff0c;是系统的最小安全保证&#xff0c;最基本的安全要求。” 啥意思呢&#xff0c;基线检查其实就是对操作系统、中间件、数据库、网络设备等多…

2024挂耳式耳机怎么选?5款高性价比开放式耳机推荐榜

近年来&#xff0c;开放式耳机受到了越来越多人的关注&#xff0c;特别是对于运动爱好者来说&#xff0c;在运动的过程中&#xff0c;传统的有线耳机不适合户外运动&#xff0c;不仅佩戴不稳&#xff0c;线还容易缠绕&#xff0c;而普通的蓝牙耳机长时间佩戴会感觉耳朵不适。在…

武汉星起航:亚马逊五大促销类型全面解析,打造销售狂欢新篇章

在全球电商领域&#xff0c;亚马逊以其卓越的平台优势和创新的促销策略&#xff0c;为卖家和消费者搭建了一座互通的桥梁。今天&#xff0c;武汉星起航在这里解析亚马逊的五大促销类型&#xff0c;帮助卖家和消费者更好地把握商机&#xff0c;享受购物的乐趣。 一&#xff0e;…