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

        在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.xdnf.cn/news/1559795.html

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

相关文章

二叉树系列(遍历/dfs/bfs)10.10

一、二叉树的右视图(遍历) 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 (如果右子树为空的话,那么右视图中看到的就是左子树的节点) bfs层…

IPguard与Ping32 DLP能力对比,保护企业数据的最佳选择

在信息安全的背景下,数据丢失防护(DLP)解决方案已成为企业不可或缺的一部分。IPguard和Ping32是市场上两款功能强大的DLP产品。本文将对它们的DLP能力进行详细对比,帮助企业找到最适合自己的数据保护工具。 Ping32的独特之处 Pin…

java复制查询数组-cnblog

java数组 复制数组 copyOf(待复制数组,复制后新数组的长度) 如果复制后数组的长度,长于原来数组,多出来的元素会被补0,如果新数组元素少会从第一个元素,取到指定元素长度 package nb;import java.util.Arrays;public class co…

2024年,有多少程序员被迫转行?真是惨烈啊!

知乎有个很火热的帖子,很多人在讨论今年有多少程序员在被迫转行,原来今年的程序员这么难。 有个老哥说自己干了8年前端程序员,今年被裁之后,薪资从30K降到25K还是没找到工作,现在只能转行去卖保险。 还有一个38岁的老哥…

深度解析|生成式人工智能大模型备案全流程

一、大模型备案的含义 根据《生成式人工智能服务管理暂行办法》第十七条 提供具有舆论属性或者社会动员能力的生成式人工智能服务的,应当按照国家有关规定开展安全评估。这里所说的按照国家有关规定开展安全评估,其实就是生成式人工智能服务备案&#x…

Python_网络编程(IP 端口 协议)

网络编程: 互联网时代,现在基本上所有的程序都是网络程序,很少有单机版的程序了。网络编程就是如何在程序中实现两台计算机的通信。Python语言中,提供了大量的内置模块和第三方模块用于支持各种网络访问,而且Python语言…

JAVA毕业设计187—基于Java+Springboot+vue3的电动车销售管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue3的电动车销售管理系统(源代码数据库)187 一、系统介绍 本项目前后端分离(可以改为ssm版本),分为用户、管理员两种角色 1、用户: 注…

不用PS!patchwork快速解决多子图组合问题~~

如果现在你还是将自己制作的图表放在PS或者PPT中进行随意组合的化,那么这篇文章你就得好好看看了,今天小编就给大家安利一个超强的突变自由组合包-patchwork,让你轻松实现多图的自由组合。 更多详细的数据可视化教程,可订阅我们的…

科研绘图系列:R语言绘制中国地理地图

文章目录 介绍加载R包导入数据图a图b图c图d系统信息介绍 文章提供了绘制图a,图b和图d的数据和代码。该图展示了不同省份的物种分布情况。 加载R包 library(geojsonsf) library(sf) library(ggplot2) library(RColorBrewer) library(ggspatial) library(</

Springboot网上书城小程序—计算机毕业设计源码38707

目 录 摘要 1 绪论 1.1 研究背景及意义 1.2国内外研究现状 1.3系统开发的内容 1.4论文结构与章节安排 1.5小程序框架以及目录结构介绍 2 网上书城小程序系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析…

PowerJob做定时任务调度

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、区别对比二、使用步骤1. 定时任务类型2.PowerJob搭建与部署 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; PowerJob是基于java开…

Android SELinux——安全策略(三)

SELinux 通过严格的访问控制机制增强了 Linux 系统的安全性。它通过标签和安全策略来控制进程和文件的访问权限&#xff0c;从而保护系统免受未经授权的访问和攻击。 一、策略介绍 1、主要组件 安全标签&#xff08;Security Labels&#xff09;&#xff1a;每个文件、目录、…

Nginx中,413 Request Entity Too Large错误

背景 在Nginx中&#xff0c;413 Request Entity Too Large错误通常发生在尝试上传或发送超过Nginx配置文件中的client_max_body_size限制的文件时。这个错误意味着请求的正文大小超过了Nginx允许的最大值。 解决这个问题的方法是在Nginx配置文件中增加client_max_body_size的值…

运动耳机选哪个品牌比较好?盘点五大高品质运动耳机推荐!

在骨传导耳机日益普及的同时&#xff0c;一个不容忽视的问题也逐渐暴露在大众视野之中。根据可靠消息&#xff0c;有超过九成的运动爱好者反馈在使用骨传导耳机时感到佩戴不适&#xff01;作为一名有着5年经验的运动达人&#xff0c;我秉持着对消费者负责的态度&#xff0c;同时…

【力扣刷题实战】(顺序表)移除元素

大家好&#xff0c;我是小卡皮巴拉 文章目录 目录 力扣题目&#xff1a; 移除元素 题目描述 示例 1&#xff1a; 示例 2&#xff1a; 解题思路 具体思路 题目要点 完整代码 兄弟们共勉 &#xff01;&#xff01;&#xff01; 每篇前言 博客主页&#xff1a;小卡…

【新品发布】数字能源EMS管理再掀新篇章

致远电子EM系列工商业储能网关累计装机容量突破2GWh&#xff01;聚焦数字综合能源应用&#xff0c;全新一代EM-800/EM-1000G发布&#xff0c;见证光储充时代的来临&#xff01; 早在2008年&#xff0c;致远电子的工程师在为国内某新能源企业设计光伏通讯管理机方案时&#xff0…

Leetcode 50. Pow ( x , n ) 快速幂、取模 C++实现

问题&#xff1a;Leetcode 50. Pow ( x , n ) 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数。 算法&#xff1a; 具体实现流程如下&#xff1a; 代码&#xff1a; class Solution { public:double myPow(double x, int N) {double ans 1;long long n N;if (n <…

研究生异地报名,需要社保缴费记录,没有社保记录怎么办。

1、户籍在安徽省&#xff0c;在北京工作&#xff0c;想报北京科技大学&#xff1b; 招生简章中没有提社保记录&#xff0c;但是在报名的时候&#xff0c;又出来要求&#xff1a;北京连续6个月的社保记录。这里是指在北京市考试的要求。没有连续社保缴费记录&#xff0c;肯定不能…

软考《信息系统运行管理员》- 4.1信息系统软件运维概述

4.1信息系统软件运维概述 信息系统软件运维的概念 信息系统软件运维是指信息系统软件在开发完成投入使用后&#xff0c;对信息系统软件进行的改正 性维护、适应性维护、完善性维护、预防性维护等软件工程活动。 信息系统软件的可维护性及维护类型 信息系统软件维护工作直接…

dvwa:sql注入、sql盲注全难度解析

sql注入 easy 单引号闭合 id2 and if(11,sleep(3),1) and 11 ​ 联合注入&#xff1a; id2 union select database(),user() -- ​ 报错注入&#xff1a; id2 and updatexml(1,concat(0x7e,database(),0x7e),1) -- medium mysql_real_escape_string() 调用 mysql 库的函数 mys…