FPGA上板调试方式总结----VIO/ILA

news2024/10/23 17:28:57

        在Vivado中,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP核,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存器,从而检查设计的运行状态并修改其行为。VIO IP核提供了一个简单易用的接口,使得用户可以轻松地与FPGA内部寄存器进行交互。

         在Vivado中,ILA(Integrated Logic Analyzer)是一种强大的在系统调试工具,它可以捕获并分析FPGA内部的信号。使用ILA时,需要确保ILA的时钟信号与被观察信号的时钟域一致,以避免由于时钟域不匹配导致的数据捕获错误。此外,ILA的探针数量和数据深度应根据实际需求进行配置,以平衡资源消耗和调试需求。

        VIO与ILA基本上就是我们在板调试FPGA的主要工具,在vivado中均有相应的IP core,具体的步骤如下:

1. vivado中打开IP Catalog

2. 搜索ila,在Debug&Verification 中选择ILA(Inegrated Logic Analyzer)

3. 右键Customize IP ,设置参数,多数的选择可以采用默认的选择。

由于其使用比较简单,且CSDN博客中也有诸多大佬已经详细阐述过其使用方式。这里贴出我个人认为最细致的ILA使用方式的博客链接:

FPGA — Vivado下ILA(逻辑分析仪)详细使用方法_vivado ila-CSDN博客

这里对ILA的特殊参数做一点说明:

Capture Control:即可以选择一个条件信号,仅条件信号满足设置要求时,才会进行采样或者触发操作,用于我们在需要某些信号进行触发时勾选;

Advanced Trigger:支持高级触发功能,它允许用户通过编写触发状态机(Trigger State Machine,TSM)来定义更复杂的触发条件。TSM是一个简单的脚本语言,用于定义触发状态机。可以在ILA的属性窗口中编写TSM代码,或者创建一个后缀为.tsm的文件来编写TSM脚本,实现相应的触发设置,可以利用ILA的高级触发功能来更精确地捕获和分析FPGA设计中的信号。

Setup Debug:由于这种Debug方式是将Debug信息写入XDC文件的方式,vivado提示我们需要更新XDC文件,可以选择覆盖overwite现有的XDC文件,该选项并不会删除我们现有的XDC文件约束,而是将Debug信息添加在XDC约束后面,实际操作中会发现,并不是完全将新的ILA约束信息,添加在原有XDC文件之后,而是以vivado自己的方式,重新写我们的约束文件,即如果我们有重要的约束信息,建议新增XDC文件save constraints as ,这样可以保障原有XDC信息不被修改。

ILA其他注意事项

(1)ILA核的采样深度不宜过大,采样深度尽量设置在1024bit以内:在每个采样时钟下,ILA都会将捕获到的探针信号的值送入RAM中,由于RAM的存储空间是有限的,其数值越大,消耗的RAM资源也越多,从而对设计性能产生不利影响。

(2)ILA核的采样宽度不宜过大,随探针宽度增加,对资源利用率和时序的影响也会增大。

(3)请确保输入到ILA核的时钟与抓取的信号是同步关系,否则在设计编程到器件中时会产生时序问题并导致通信失败。

(4)抓信号的时钟必须为全局时钟网络。

(5)请尽量确保ILA核选择的时钟均为自由运行的时钟(常开稳定时钟),否则可能造成在器件上加载版本时无法与调试核通信。

(6)请尽量确保FPGA JTAG时钟比Debug Hub时钟慢2.5倍,否则可能出现运行后报错或者运行后不报错但不显示任何结果的情况,ug908。

        VIO的配置界面中,设置Input Probe Count和Output Probe Count,即输入和输出探头的数量。

Enable Input Probe Activity Detectors:当输入信号发生变化时,Vivado会显示一个活动指示,帮助追踪信号的变化。启用Input Probe Activity Detectors后,你可以在ILA调试波形中看到哪些信号是活动的,这有助于快速定位问题。

ILA与VIO的其他设置均所见即所得,不会引起很大的歧义,大家按照IP说明使用即可。最后远程调试上板的步骤请参考:

FPGA远程烧录bit流_vivadao2018.2怎么烧写bit-CSDN博客

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

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

相关文章

Redis总结(官方文档解读)

定义 Redis是一个开源的,基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。 特征 高性能 支持丰富的数据类型 丰富的操作类型,操作是原子性的 支持周期性持久化 支持分布式 开源免费,社区活跃 数据类型 数据…

图片加水印怎么弄?四款软件供你选择!

在这个信息爆炸的时代,每一张图片都可能成为你创意与努力的结晶。然而,网络上的复制粘贴如此轻易,如何有效保护自己的原创作品,防止未经授权的盗用,成为了每位创作者必须面对的问题。别担心,今天我们就来揭…

[Linux系统编程]线程概念,三级映射,线程操作函数

一.线程概念 线程概念: 进程:有独立的 进程地址空间。有独立的pcb。 进程是分配资源的最小单位。 线程:没有独立的进程地址空间。有独立的pcb。 进程是cup执行的最小单位。 线程有线程id和线程号,线程id是用于进程内部标识线程…

2024年10款超好用的图纸加密软件推荐|企业常用图纸加密软件分享

在数字化时代,图纸作为企业的关键技术资产,承载着大量敏感信息,泄露这些图纸不仅可能导致重大经济损失,还可能危及企业的市场竞争力。因此,选择一款合适的图纸加密软件,对企业而言至关重要。为了帮助企业保…

【C#网络编程】基础概念2

文章目录 网络、数据包和协议网络数据包协议TCP、UDP 地址客户端和服务器套接字 网络、数据包和协议 计算机网络通过通信通道互连的机器组成,通常把这些机器称为主机和路由器,主机是是运行应用程序(如 Web 浏览器)的计算机。路由器…

市面上琳琅满目的网站开发公司,如何避免“踩坑”?

服务品质和售后服务是选择网站开发公司时的两大关键因素—— 因为这些方面将直接影响网站的质量、用户体验以及后期的维护效果,一家优秀的网站开发公司,其服务品质应体现在专业的技术水平、出色的项目管理能力以及对客户需求的精准理解和高效执行上。 …

今日最佳WAF雷池社区版,tengine问题解决办法

很多第一次使用雷池社区版的朋友会碰到tengine相关的问题 其实官方文档都有记录怎么排除,这里都单独把tengine的排查方法再说一下 请检查防火墙规则, tengine 容器状态和日志 如果站点报错如上,说明tengine容器可能出现问题,需…

Java | Leetcode Java题解之第475题供暖器

题目&#xff1a; 题解&#xff1a; class Solution {public int findRadius(int[] houses, int[] heaters) {Arrays.sort(houses);Arrays.sort(heaters);int ans 0;for (int i 0, j 0; i < houses.length; i) {int curDistance Math.abs(houses[i] - heaters[j]);whil…

【优选算法】(第四十篇)

目录 岛屿数量&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 岛屿的最⼤⾯积&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 岛屿数量&#xff08;medium&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#xff08;LeetCo…

双足机器人远程操作与动态运动同步研究

在当前的机器人技术中&#xff0c;双足机器人因其能够在复杂环境中灵活行动而备受关注。随着技术的进步&#xff0c;研究者们致力于开发能够与人类操作员实现高效同步的双足机器人&#xff0c;特别是在应对自然灾害或人为危险等紧急情况下的应用。 项目背景 尽管人工智能领域取…

在python中如何判断回文串(一)?

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

【原创】java+springboot+mysql智能农村管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Voronoi treemap!这么好看的图形绘制原来这么简单...

更多详细的数据可视化教程&#xff0c;可订阅我们的店铺课程&#xff1a; 在上次推出树形图绘制教程之后&#xff0c;有小伙伴私信说有没有啥方法绘制如下所示的图表&#xff1a; 网友提供样例 (说实话&#xff0c;我第一眼看到之后就感觉R或者Python绘制此图会比较难&…

InstructGPT的四阶段:预训练、有监督微调、奖励建模、强化学习涉及到的公式解读

1. 预训练 1. 语言建模目标函数&#xff08;公式1&#xff09;&#xff1a; L 1 ( U ) ∑ i log ⁡ P ( u i ∣ u i − k , … , u i − 1 ; Θ ) L_1(\mathcal{U}) \sum_{i} \log P(u_i \mid u_{i-k}, \dots, u_{i-1}; \Theta) L1​(U)i∑​logP(ui​∣ui−k​,…,ui−1​;Θ…

智慧灌区信息化管理系统解决方案

一、方案背景 我国南方地区一些县级一般拥有5000多个大小水利设施&#xff0c; 尤其是灌区水利设施众多&#xff0c;这些灌区水利设施修建年代久&#xff0c;信息化程度低&#xff0c;但在保障农民生产、农田灌溉、抵抗自然灾害方面发挥着一定的作用&#xff0c;并能够最大限度…

go开发环境设置-安装与交叉编译(二)

1. 引言 Go语言&#xff0c;又称Golang&#xff0c;是Google开发的一门编程语言&#xff0c;以其高效、简洁和并发编程的优势受到广泛欢迎。作为一门静态类型、编译型语言&#xff0c;Go在构建网络服务器、微服务和命令行工具方面表现突出。 在开发过程中&#xff0c;开发者常…

科技云报到:大模型时代下,向量数据库的野望

科技云报到原创。 自ChatGPT爆火&#xff0c;国内头部平台型公司一拥而上&#xff0c;先后发布AGI或垂类LLM&#xff0c;但鲜有大模型基础设施在数据层面的进化&#xff0c;比如向量数据库。 在此之前&#xff0c;向量数据库经历了几年的沉寂期&#xff0c;现在似乎终于乘着Ch…

Yolov11与Yolov8在西红柿识别数据集上对比

Ultralytics 最新发布的 YOLOv11 相较于其上一代产品 YOLOv8&#xff0c;虽然没有发生革命性的变化&#xff0c;但仍有一些显著的改进&#xff08;值得注意的是&#xff0c;YOLOv9 和 YOLOv10 并非由 Ultralytics 开发&#xff09;。其中&#xff0c;最引人注目的变化包括&…

4.redis通用命令

文章目录 1.使用官网文档2.redis通用命令2.1set2.2get2.3.redis全局命令2.3.1 keys 2.4 exists2.5 del(delete)2.6 expire - (失效时间)2.7 ttl - 过期时间2.7.1 redis中key的过期策略2.7.2redis定时器的实现原理 2.8 type2.9 object 3.生产环境4.常用的数据结构4.1认识数据类型…

代码复现(四):DBINet

文章目录 datasets/AB2019BASDataset.pydatasets/ext_transforms.pynetwork/modules.pynetwork/DBINet.pynetwork/DBINet_Backbone.pyAB2019_train.py 代码链接&#xff1a;DBINet datasets/AB2019BASDataset.py 加载Australia Bushfire 2019 Burned Area Segmentation Datase…