Quartus的Signal Tap II的使用技巧

概述:

Signal Tap II全称Signal Tap II Logic Analyzer,是第二代系统级调试工具,它集成在Quartus II软件中,可以捕获和显示实时信号,是一款功能强大、极具实用性的FPGA片上调试工具软件。

传统的FPGA板级调试是由外接的逻辑分析仪连接到FPGA的控制引脚,将内部信号引出至引脚I/O上,接着进行板级调试。

        note:这种方法缺点是,需要逻辑分析仪,且效率很低,经常需要飞线,而且如果要测10个信号以上就非常庞杂,而且,考虑到100Mhz左右的信号完整性,不能用逻辑分析仪,要用高性能的示波器,测量的信号质量也存在失真的情况。

Signal Tap II在线逻辑分析仪克服了以上所有缺点,将采样逻辑电路编程后放在FPGA中,即,用FPGA资源来构成了嵌入式逻辑分析仪。

操作:

1、打开Signal Tap Logic Analyzer

在Quartus软件中打开待测工程,然后选择Signal Tap Logic Analyzer,

在弹出的New File from Template窗口选择Default (default selection)即可;

弹出Signal Tap Logic Analyzer界面,包含例化管理器(Instance Manager)、JTAG链配置(JTAG Chain Configuration)、节点列表和触发条件(Data与Set两个子界面可选)、信号配置(Signal Configuration)、分层设计(Hierarchy Display,分层显示)以及数据日志(Data Log),如下图。

2、实例管理

首先选择例化管理器,选中默认的auto_signaltap_0,可以增加、删除、重命名实例,这里一个实例可以理解为一组信号对+一个配置时钟,可以通过Enabled来选择该实例是否被编译到该工程中,因此可以有多组实例,方便分析各不同模块的信号。

3、时钟配置

选择信号配置,进行实例的时钟配置。

弹出的Node Finder界面中,首先在Options-Filter栏选择:Signal Tap: Pre-synthesis,在Options-Look in栏中选择down_sampling_top.v模块,接着输入想要在down_sampling_top.v模块中查看的信号的时钟:clk_7_148m,然后search搜索,在Matching Nodes中双击即可将clk_7_148m添加到Nodes Found栏,并单击ok即可完成时钟的添加,如下图:

完成后根据需要选择采样深度即可,其他默认,如下图:

4、添加待抓取信号

双击节点列表和触发条件界面,弹出Node Finder窗口,与上一步添加时钟信号一样的设置,选择自己想要的信号,最后要记得单击insert按键才能正常将信号成功添加。

5、设置信号触发条件

默认如下,但是可以根据需要对各个信号进行单独设置触发条件:

Don't Care不设置触发方式
Low低电平触发
Falling Edge下降沿触发
Rising Edge上升沿触发
High高电平触发
Either Edge双边沿触发

6、记得保存

选择保存路径为工程所在的quartus文件夹下,打开所在目录会发现多了一个stp1.stp文件,该文件即上述添加至工程中的分析文件。

7、开始编译

在工具栏选择Start Compilation 开始编译,等待工程编译完成即可。

8、选择烧录文件并下载

首先连接JTAG烧录器与FPGA板,并给FPGA板子上电,接着Scan Chain,识别FPGA器件,然后选择生成的sof文件,并单击开始下载。

9、查看抓取的波形

单击Run Analysis运行分析一次,也就是刷新采样一次,单击Autorun Analysis自动连续运行分析,也就是一直刷新采样。

补充:

1、在打开的波形窗口,左键单击放大波形窗口,右键单击缩小波形窗口;

2、波形窗口的数据默认16进制,可以选中信号名后,右键单击-Bus Display Format中选择十进制或者其他进制;

3、在Signal Tap Logic Analyzer中下载程序时软件比较卡,可以在Quartus 的Programmer中下载好以后直接在Signal Tap Logic Analyzer分析;

4、在上述第4步添加待住区信号时,如果有些wire/reg定义的信号不能被观察到,应该是被Quartus软件优化掉了,导致无法使用Signal Tap II观察,有两种解决办法:

        方法一、将wire/reg定义的信号改成端口信号(这种方法繁琐不推荐);

        方法二、在待观察的wire/reg定义的信号后面添加特殊字符:

wire        [9:0]       time_cnt  /*synthesis keep*/ ;

reg         [9:0]        time_cnt /*synthesis keep*/;

或者

(* noprune *) wire        [9:0]       time_cnt ;

(* noprune *) reg        [9:0]       time_cnt ;

5、Signal Tap II除了支持电平、边沿触发外,还支持计数触发,如可以对time_cnt计数器设置具体的值来触发。

参考链接:

noprune keep preserve 区别


 

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

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

相关文章

TCP的三次握手

TCP 是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如 IP 地址、端口号等。 TCP 可以看成是一种字节流,它…

《Spring Cloud学习笔记:微服务保护Sentinel》

Review 解决了服务拆分之后的服务治理问题:Nacos解决了服务治理问题OpenFeign解决了服务之间的远程调用问题网关与前端进行交互,基于网关的过滤器解决了登录校验的问题 流量控制:避免因为突发流量而导致的服务宕机。 隔离和降级&#xff1a…

hadoop hive spark flink 安装

下载地址 Index of /dist ubuntu安装hadoop集群 准备 IP地址主机名称192.168.1.21node1192.168.1.22node2192.168.1.23node3 上传 hadoop-3.3.5.tar.gz、jdk-8u391-linux-x64.tar.gz JDK环境 node1、node2、node3三个节点 解压 tar -zxvf jdk-8u391-linux-x64.tar.gz…

苹果cmsV10蜘蛛统计插件+集合采集插件

苹果cmsV10蜘蛛统计插件集合采集插件 安装苹果cms盒子方法: 1.下载到的盒子客户端压缩包内拥有一个application文件夹,直接上传到网站根目录中。 2.添加苹果cms盒子快捷菜单:苹果cms盒子,macBox/stylelist 相信做网站的都想要百度 搜狗 3…

RabbitMQ 和 Kafka 对比

本文对RabbitMQ 和 Kafka 进行下比较 文章目录 前言RabbitMQ架构队列消费队列生产 Kafka本文小结 前言 开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不…

浅谈WPF之ToolTip工具提示

在日常应用中,当鼠标放置在某些控件上时,都会有相应的信息提示,从软件易用性上来说,这是一个非常友好的功能设计。那在WPF中,如何进行控件信息提示呢?这就是本文需要介绍的ToolTip【工具提示】内容&#xf…

【INTEL(ALTERA)】如何使用Tcl打开quartus IP自带的例程

前言 很多INTEL(ALTERA) IP生成的时候会自带例程,如LVDS SERDES IP,在菜单Generate中可以选择生成官方例程。 之后会在IP所在目录下生产【lvds_0_example_design】文件夹,但在这个文件夹中并没有FPGA工程。 例程在哪&…

【Linux】 last 命令使用

last 命令 用于检索和展示系统中用户的登录信息。它从/var/log/wtmp文件中读取记录,并将登录信息按时间顺序列出。 著者 Miquel van Smoorenburg 语法 last [-R] [-num] [ -n num ] [-adiox] [ -f file ] [name...] [tty...]last 命令 -Linux手册页 选项及作用…

Flask登陆后登陆状态及密码的修改和处理

web/templates/common 是统一布局 登录成功 后flask框架服务器默认由login.html进入仪表盘页面index.html(/),该页面的设置在 (web/controllers/user/index.py),如果想在 该仪表盘页面 将 用户信息 展示出来,就得想办法先获取到 当前用户的 登陆状态。…

Flutter配置Android和IOS允许http访问

默认情况下,Android和IOS只支持对https的访问,如果需要访问不安全的连接,也就是http,需要做以下配置。 Android 在res目录下的xml目录中(如果不存在,先创建xml目录),创建一个xml文件network_security_con…

动态规划 多源路径 字典树 LeetCode2977:转换字符串的最小成本

涉及知识点 动态规划 多源最短路径 字典树 题目 给你两个下标从 0 开始的字符串 source 和 target ,它们的长度均为 n 并且由 小写 英文字母组成。 另给你两个下标从 0 开始的字符串数组 original 和 changed ,以及一个整数数组 cost ,其中…

Python+OpenGL绘制3D模型(六)材质文件载入和贴图映射

系列文章 一、逆向工程 Sketchup 逆向工程(一)破解.skp文件数据结构 Sketchup 逆向工程(二)分析三维模型数据结构 Sketchup 逆向工程(三)软件逆向工程从何处入手 Sketchup 逆向工程(四&#xf…

家庭教育小妙招让孩子做事学会坚持到底

在生活中,我们常常会遇到一些孩子,他们做事情总是三分钟热度,不能坚持到底。而在面对困难时,他们很容易选择放弃。 看似是孩子缺乏热情,其实这是孩子缺乏自制力和毅力的表现。作为家长,我们需要培养孩子的…

开源项目推荐:Frooodle/Stirling-PDF

简介一个本地的处理 PDF 的工具,界面是 Web UI,可以支持 Docker 部署。各种主要的 PDF 操作都可以支持。比如拆分、合并、转换格式、重新排列、添加图片、旋转、压缩等等。这个本地托管的网络应用最初完全由 ChatGPT 制作,后来逐渐发展&#…

MySQL常用命令合集(Mac版)

mysql信息 MySQL位置 which mysql查看版本 mysql --version启动与关闭 使用mysql.server启用脚本来执行,默认在/usr/local/mysql/support-files这个目录中。 启动 sudo /usr/local/mysql/support-files/mysql.server start关闭 sudo /usr/local/mysql/suppor…

人体检测、跟踪实例 | 附代码

人体检测和跟踪是一项基本的计算机视觉任务,涉及在给定场景中识别并跟踪个体的移动。这项技术在各种实际应用中发挥着关键作用,从监视和安全到自动驾驶车辆和人机交互都有涉及。人体检测的主要目标是在图像或视频帧中定位和分类人体,而跟踪侧…

KVM 自动化脚本使用方法

一、介绍 目录结构介绍 [rootkvm-server kvm]# tree -L 2 . ├── control # 控制脚本目录 │ ├── KVMInstall.sh # kvm服务安装脚本 │ ├── VMHost.sh # kvm虚拟机克隆脚本 │ └── VMTemplate.sh # kvm模板机安装脚本 ├── mount # 此目录保持为空&…

代码随想录刷题笔记(DAY1)

前言:因为学校的算法考试让我认识了卡哥,为了下学期冲击大厂实习的理想,我加入了卡哥的算法训练营,从今天开始我每天会更新自己的刷题笔记,与大家一起打卡,一起共勉! Day 1 01. 二分查找 &…

科研学习|论文解读——融合类目偏好和数据场聚类的协同过滤推荐算法研究

论文链接(中国知网): 融合类目偏好和数据场聚类的协同过滤推荐算法研究 - 中国知网 (cnki.net) 摘要:[目的/意义]基于近邻用户的协同过滤推荐作为推荐系统应用最广泛的算法之一,受数据稀疏和计算可扩展问题影响&#x…

时序预测 | Matlab实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元时间序列预测

时序预测 | Matlab实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元时间序列预测 目录 时序预测 | Matlab实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元时间序…