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

一、简介

        在我们进行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进行抓取状态之前的资源使用量。

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

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

相关文章

基于Python的火车票售票系统/基于django的火车购票系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&…

Ubuntu虚拟机服务器的搭建

01.VMware安装 略。 02.Ubuntu虚拟机安装 略。 03.配置Ubuntu虚拟机网络 参考视频: Ubutu虚拟机网络配置(桥接)https://www.bilibili.com/video/BV1bG411V72A/?spm_id_from333.999.0.0&vd_sourced1fd4bcc46805ab35cc8bbb5a8bf318f…

解决springboot中Aspect注解不生效问题

如下图所示,配置了一个注解类型的Aspect,结果一直不生效 运行结果可以看到,其他非注解类型的Aspect都顺利执行了,但是这个注解的切面就是没有执行 当时也在网上搜了半天,包括在启动类增加配置,接口都要加上…

HTTPS通讯全过程

HTTPS通讯全过程 不得不说,https比http通讯更加复杂惹。在第一次接触https代码的时候,不知道为什么要用用证书,公钥是什么?私钥是什么?他们作用是什么?非对称加密和对称加密是啥?天,…

深度学习设计模式之外观模式

文章目录 前言一、介绍二、特点三、详细分析1.核心组成2.代码示例3.优缺点优点缺点 4.使用场景 总结 前言 外观模式是结构型设计模式,定义一个高层接口,用来访问子系统中的众多接口,使系统更加容易使用。 一、介绍 外观设计模式&#xff08…

一文掌握 Web 测试:功能、界面、兼容与安全的综合测试指南!

随着Web技术的不断演进,测试除了对应用的功能性、界面美观性、跨平台兼容性的基本要求外、安全性和性能的要求也逐步增高。因此,全面、系统的测试思维和策略成为了保证Web应用高质量的关键因素。本篇文章将从功能测试、界面测试、兼容性测试和安全测试四…

transformer-explainer

安装和启动 找到这个项目,然后装好了。 这个项目的目的如名字。 https://github.com/poloclub/transformer-explainerTransformer Explained: Learn How LLM Transformer Models Work with Interactive Visualization - poloclub/transformer-explainerhttps:/…

BVS:多强联手,李飞飞也参与的超强仿真数据生成工具,再掀数据狂潮 | CVPR 2024

BEHAVIOR Vision Suite(BVS)是一个新型工具包,旨在系统评估和全面理解计算机视觉模型。研究人员能够在场景、对象和相机级别控制各种参数,有助于创建高度定制的数据集。 来源:晓飞的算法工程笔记 公众号 论文: BEHAVIO…

Java基础开发之编译异常和运行异常

一、getProperties()方法 1.System类提供一个getProperties()方法用来**当前系统的全部属性,它会返回一个Properties对象,也封装了系统的全部属性,这些属性的存在是以键值对的形式。 2.getProperties()方法使用例子: public cl…

springboot粮仓管理系统的设计与实现论文源码调试讲解

第3章 系统分析 本文作者在确定了研究的课题之后,从各大数字图书馆下载文献来阅读,并了解同类型的网站具备的大致功能,然后具体事务具体分析,得出本系统要研究的具体功能与性能。虽然分析系统这一阶段性工作主要是确定功能&#…

Java二十三种设计模式-状态模式(20/23)

本文深入探讨了状态模式,一种允许对象根据其内部状态变化而改变行为的软件设计模式。文章从定义、组成部分、实现方式、使用场景、优缺点分析、与其他模式的比较,到最佳实践和建议,全面介绍了状态模式的各个方面。通过Java语言的实现示例和实…

如何高效搜集知乎热门话题? 掌握这五种搜索技巧

本文将深入探讨如何高效地在知乎平台上挖掘热门话题,通过揭秘五大实用搜索技巧,帮助内容创作者、市场分析师快速捕捉网络热点,提升内容相关性和曝光率。掌握这些技巧,让你的文章或产品始终站在潮流前沿。 一、为何关注知乎热门话…

Ropdump:针对二进制可执行文件的安全检测工具

关于Ropdump Ropdump是一款针对二进制可执行文件的安全检测工具,该工具基于纯Python开发,是一个命令行工具,旨在帮助广大研究人员检测和分析二进制可执行文件中潜在的ROP小工具、缓冲区溢出漏洞和内存泄漏等安全问题。 功能介绍 1、识别二进…

Python实现水果忍者(开源)

一、整体介绍: 1.1 前言: 游戏代码基于Python制作经典游戏案例-水果忍者做出一些改动,优化并增加了一些功能。作为自己Python阶段学习的结束作品,文章最后有源码链接。 1.2 Python主要知识: (1&#xf…

网络安全-防火墙初步认识。

文章目录 1. 防火墙是什么?2. 防火墙的工作原理是什么?3. 防火墙的分类有哪些?4. 实战4.1 防火墙管理和实验介绍4.2 防火墙命令行初体验实验目标:实验步骤: 4.3 防火墙Web初体验实验目标:实验步骤&#xff…

canvas实现图片矩形截图,矩形旋转后的截图,旋转后的截图摆正显示

一、效果图 二、主要代码 获取矩形框中地方的截图数据 1、先获取矩形四点在画布上的实际坐标值; 2、计算矩形此时实际的宽和高,便于设置后期临时矩形的宽和高; 3、可能矩形旋转了一定的角度,我们新建一个临时的画布tempCanvas&am…

mkv怎么改成mp4?3种mkv转mp4格式方法的介绍

mkv怎么改成mp4?将MKV格式视频转换为MP4格式,能显著提升兼容性,让视频在更多设备、平台上流畅播放。无论是智能手机、平板电脑、智能电视还是网页浏览器,MP4格式都具备广泛的支持,从而扩大视频的传播范围和受众群体。这…

【Hadoop】核心组件深度剖析:HDFS、YARN与MapReduce的奥秘

🐇明明跟你说过:个人主页 🏅个人专栏:《大数据前沿:技术与应用并进》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Hadoop简介 2、Hadoop生态系统概览 二、Hadoo…

人工智能和机器学习 3(复旦大学计算机科学与技术实践工作站)python机器学习、Pytorch库入门、d2l学习+<机器学习、神经网络————原理、理论>

前言 安装 — 动手学深度学习 2.0.0 documentation (d2l.ai)https://zh.d2l.ai/chapter_installation/index.html 安装 我们需要配置一个环境来运行 Python、Jupyter Notebook、相关库以及运行本书所需的代码,以快速入门并获得动手学习经验。 安装 Miniconda 最…

建造者模式 和 外观模式

这两种模式很像, 都是将一个复杂的流程统一用一个方法进行包装, 方便外界使用. 建造者模式更像是 外观模式的一种特里, 只对一个类的复杂初始化流程进行包装 建造者模式 简介: 就是一个类的构造方法可能很复杂, 由于系统的限制等原因, 可能很多初始化逻辑不能放在构造函数里,…