FPGA开发——在线调试工具Signal Tap的使用

news2024/9/21 0:49:02

一、简介

        在我们进行FPGA进行开发时通常都会经历代码编写,仿真,下板验证等过程。使用FPGA进行开发的小伙伴都知道,在代码编写时往往花费不了太长的时间,下板验证更是。在开发中占绝大部分时间的是仿真,有时候编写代码只需要1天,而仿真就需要几天才能调试出来。而仿真有分为功能仿真(RTL仿真)、在线调试等两方面。

        在一般情况下我们往往只需要编写测试文件进行功能仿真就行,这样就能解决大多数问题。但这是在项目功能少,结构简单的方面。如果在大的项目或者结构复杂的设计中,如果要进行功能仿真,在编写测试文件时往往需要编写大量的测试数据才能进行我们相应功能的验证。在这个时候我们就可以采取在线调试的方式进行波形的抓取,这相对于功能仿真来说,就省去了编写测试代码的时间,减少我们的工作量。

        这篇文章我们就来说一下Signal Tap 的简单使用!

二、Signal Tap的介绍

1、什么是 SignalTap II?

        SignalTap II 是第二代系统级调试工具(类似: 逻辑分析仪), 可以捕获和显示实时信号, 是一款功能强大的 FPGA 片上调试软件、 捕获的触发方式以及捕获的数据样本深度, 并将数据实时提供给工程师协助 debug。

        传统的 FPGA 板级调试是由外接的逻辑分析仪连接到 FPGA 的控制管脚, 然后再将内部信号引出至引脚 IO 上, 进行板级调试。 (缺陷: 1.需要逻辑分析仪、 2.需要修改代码、 3.引脚多外接时比较麻烦)。

2、功能

         SignalTap II 借用了传统逻辑分析仪的理念以及大部分的功能, 使用 SignalTap lI 无需额外的逻辑分析设备, 只需将一根JTAG 接口的下载电缆连接到要调试的 FPGA 器件, 数据通过JTAG 接口从 FPGA 传送到 Quartus II 软件中显示。

3、局限

        SignalTap Il 在工程中额外加入了模块来采集信号, 所以使用 SignalTap II 需要消耗 FPGA 的逻辑资源和 RAM 资源, 如果工程中剩余的 RAM 资源比较充足, 那么 SignalTap ll 一次可以采集较多的数据;反之, 如果 FPGA 资源已被工程耗尽则无法使用SignalTap Il 调试。

三、Signal Tap 的使用

1、打开 SignalTap 工具界面

这里我们需要打开一个建立好的工程,才能进行操作,如图所示,我们Quartus 里面已经打开了一个key_led_test的工程,然后就是点击Tools选项里面的Signal Tap Logic Analyzer:

2、SignalTap 工具界面

3、双击信号空白区域, 打开信号列表

这里除了双击的方式也可以使用右键,找到Add Nodes...的方式打开信号列表。

4、添加好后的结果

5、重新打开添加界面

6、添加采样时钟(注: 不一定是系统时钟)

7、设置采样深度

采样的值设置越大则观看的点数越多, 同样占用的资源越多

8、电脑连接开发板, 打开开发板

9、SignalTap II 界面右上角选 Hardware: usb-blaster

10、编译工程(注: 先保存文件到项目 par 文件夹)

 

是否将 stp2.stp 文件添加至工程

11、切换视图, 编辑工程

12、编译完后, 程序下载到开发板

第一步:

第二步:

13、使用 SignalTap II 调试代码

 

按下复位按键:

修改波形进制:

14、使用 SignalTap II 通过触发的方式查看波形

复位按键通过下降沿触发:

 

按下复位按键后波形图:

15、使用 SignalTap II 通过触发的方式查看波形(续)

设置 cnt 为 1000, 并且复位下降沿时触发

按了复位按键后一直无法采集到波形, 因为条件很难同时满足

16、关闭 SignalTap II 界面

提示: 采集的信号波形发生改变是否需要保存

17、从工程中删除 SignalTap 文件

原因: 调试结束后发现添加 SignalTap 消耗资源比较多, 调试结束后并不需要此文件, 需要从工程中删除 SignalTap 文件

在Settings 界面取消调试文件。

18、重新编译工程

通过重新编译之后我们可以看到资源使用情况回归到没使用Signal Tap进行抓取状态之前的资源使用量。

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

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

相关文章

C++类和对象(下):初始化列表、explicit关键字、友元函数、友元类

文章目录 C类和对象9、初始化列表9.1构造函数体赋值9.2初始化列表9.3 explicit(显示)关键字 10、友元10.1友元函数10.2友元类 C类和对象 9、初始化列表 一个类的构造函数要初始化成员变量有两种方式,一种是构造函数体赋值,另一种…

【C++二分查找】2817. 限制条件下元素之间的最小绝对差

本文涉及的基础知识点 C二分查找 LeetCode2817. 限制条件下元素之间的最小绝对差 给你一个下标从 0 开始的整数数组 nums 和一个整数 x 。 请你找到数组中下标距离至少为 x 的两个元素的 差值绝对值 的 最小值 。 换言之,请你找到两个下标 i 和 j ,满…

python应用之内置hashlib库的哈希算法介绍

hashlib 是 Python 的一个内置模块,提供了像 SHA1, SHA256, MD5 等哈希算法。可以接受任意长度的字节数据作为输入,并输出一个固定长度的“哈希值”,通常用于校验数据的完整性。而且该算法是不可逆的,不能通过哈希值反算出原始数据…

zookeeper服务搭建

zookeeper服务搭建 前言1. 前置准备2. 下载和解压Zookeeper3. 配置环境变量4. 编辑Zookeeper配置文件5. 配置Zookeeper节点ID6. 配置好的Zookeeper分发到其他节点7. 启动Zookeeper集群参考博客 前言 Zookeeper是一个开源的分布式协调服务,主要用于解决分布式应用中的…

【Excal】OR 函数

语法: OR(判断条件1,判断条件2,判断体件3,****) 评优条件: 语文成绩高于90 数学成绩高于90 英语成绩高于85 物理成绩高于85 点击回车键 选中填充 回车 选中填充

echart legend 的使用及离开界面图表全局销毁

父组件 <template><AbnormalAlarmStatistics ref"abnormalAlarmStatistics" /> </template> <script setup> import {ref,reactive,computed,onMounted,getCurrentInstance,watch } from "vue";const { proxy } getCurrentInsta…

CentOS Docker搭建Mysql5.7集群

MySQL Replication MySQL提供了Replication功能&#xff0c;可以实现将一个数据库的数据同步到多台其他数据库。前者通常称之为主库&#xff08;master&#xff09;&#xff0c;后者则被称从库&#xff08;slave&#xff09;。MySQL复制过程采用异步方式&#xff0c;但延时非常…

图解Redis五大数据类型

五种数据类型的不同之处&#xff0c;是value在存储时的形式不同。 hash类型 value类型是<key,value>键值对。如果发生hash冲突&#xff0c;用开放定址法解决&#xff0c;不拉链&#xff01; key值重复&#xff0c;则新值覆盖旧值 List类型 Set类型 与List的类似&…

嵌入式Keil工具【微库】和【标准库】的对比

我们在学习或者用单片机做开发的时候,输出信息以及打印调试基本都会有用的 printf 函数,那么,这个时候基本都会用到【微库】。 如果使用 Keil 软件,就会勾选配置中的微库(MicroLib),如下图: 同样,在IAR、 e2 studio等开发单片机的集成开发环境中,也有类似的配置选项。…

电脑远程监控桌面软件集锦|(2024全网优秀资源整理!)

电脑远程监控桌面软件在企业管理和个人应用中扮演着重要的角色。 这些工具可以帮助企业提升工作效率、保护数据安全&#xff0c;同时也能在个人使用时提供便利。 以下是几款优秀的电脑远程监控桌面软件及其主要功能介绍&#xff1a; 1中科安企 特点&#xff1a;一款备受企业…

2024年第十五届蓝桥杯图形化省赛真题分享包含答案

Scratch初级:8月24日9:30-11:00 Scratch中级:8月24日14:00-15:30 Python:8月25日9:30-11:00 C++:8月25日14:00-15:30 这次考了哪些内容呢,我们来大概看看(编程题没有答案,编程题有,大家可以评论群留言单选题的答案):

智能手机摄影的发展方向全面分析

智能手机摄影技术在过去十年间取得了长足的进步&#xff0c;成为许多消费者购买手机时的主要考量因素。随着硬件和软件技术的不断创新&#xff0c;手机摄影的能力越来越接近甚至在某些方面超越了传统相机。本文将从多个角度分析手机摄影的发展方向&#xff0c;包括硬件、软件、…

2024年【防爆电气】找解析及防爆电气模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 防爆电气找解析考前必练&#xff01;安全生产模拟考试一点通每个月更新防爆电气模拟试题题目及答案&#xff01;多做几遍&#xff0c;其实通过防爆电气理论考试很简单。 1、【单选题】()电气设备没有防爆的外壳和保护…

IDEA中切换jdk的版本(环境配置)

一、问题 二、过程 IDEA切换jdk 电脑中切换jdk 如果改变之后&#xff0c;依然没有变化的情况&#xff0c;可以使用where java命令删除路径为“.\Oracle\Java\javapath\”下的java.exe、javac.exe等三个文件。

【TB作品】MSP430F149单片机,数字时钟万年历程序,滚动显示特效

一、 万年历 任务要求&#xff1a; 制作一个万年历&#xff0c;具有显示时间、日期、温度、湿度、闹钟功能。 1、OLED显示屏上显示日期和时钟&#xff08;显示到秒&#xff0c;时间可走动&#xff09;&#xff1b;&#xff08;20分&#xff09; 2、通过开发板上的温度传感器采集…

Java小白一文简单普及Java中的String关键字

String类 String对象用于保存字符串&#xff0c;也就是一组字符序列 字符串常量对象是用双引号括起的字符序列&#xff0c;例如 “Kerwin” 字符串的字符使用Unicode字符编码&#xff0c;一个字符&#xff08;不区分字母还是汉字&#xff09;占两个字节 String类较常用构造方…

婚宴座位号怎样查?

在婚宴的温馨氛围中&#xff0c;快速准确地找到座位是每位宾客的期待。本文将带您领略如何通过一系列简单步骤&#xff0c;在电脑端和小程序中查询座位号&#xff0c;确保每位宾客都能享受到这场庆典的每一个细节。 第一章&#xff1a;电脑端查询信息上传 1. 官网登录&#x…

基于状态机实现的按键释放、消抖、单击、双击、长按等功能

状态机理论&#xff1a; 每次只能执行状态机中的一个状态 注意&#xff1a;状态转移时有时会根据需要发生不同的动作(可根据不同条件发生不同的动作)&#xff0c;此处的发生动作指返回按键码值&#xff08;代表那个按键的对应状态&#xff09; 如果是在长按状态在向释放状态迁…

分享一个基于python的内蒙古旅游景点数据分析与采集系统(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

【算法进阶1】贪心算法、背包问题(0-1背包、分数背包)、拼接最大数字问题、活动选择问题

1 贪心算法 2 背包问题 2.1 0-1背包问题 2.2 分数背包 3 拼接最大数字问题 4 活动选择问题 1 贪心算法 贪心算法(又称贪婪算法)是指&#xff0c;在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。 也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;他所做出…