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资源来构成了嵌入式逻辑分析仪。


Signal Tap II的工作示意图如下:

        可以看到,Signal Tap Instances将Design Logic中的部分信号引出并保存在FPGA的Buffer资源中暂时存储,通过JTAG 接口读出数据经过烧录器给Quartus显示。

note:Signal Tap中被抓取信号的显示的刷新速率受限于USB Blaser的通信速率。

如下图为Signal Tap的开发流程。

操作:

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、时钟配置

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

这里注意:只有在工程已进行过分析与阐释后,才能在signal tap中添加想要观察的时钟或者信号

弹出的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即可完成时钟的添加,如下图:

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

注意:在设置好时钟后,在Signal Configuration界面下滑有Trigger栏,可以设置触发的位置:

Pre 表示12%的存储深度用作触发事件之前,88%的存储深度用作触发事件之后;

Center 表示50%的存储深度用作触发事件之前,50%的存储深度用作触发事件之后;

Post 表示88%的存储深度用作触发事件之前,12%的存储深度用作触发事件之后。

一般默认都选Pre trigger position,可根据需要设置。

4、添加待抓取信号

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

5、设置信号触发条件-直接默认即可

默认如下全选,不需要做修改:

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

这里的触发条件呢,会在你进行Run Analysis时起作用,此时在Setup界面下根据需要选择触发方式即可,很方便。

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定义的信号不能被观察到,或者说stp1.stp中有的信号/时钟显示红色如下:

这表示sof文件烧录到fpga的逻辑资源中没有tx_vid_clk,可能是原来有后来.v模块中删除了,更有可能是有,但是被Quartus软件优化掉了,导致无法使用Signal Tap II观察,针对模块中有,但是signaltap中没有的情况,有两种解决办法:

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

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

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

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

或者

Quartus:

(* keep = "TRUE" *) wire        [9:0]       time_cnt ;

(* keep = "TRUE" *) reg         [9:0]        time_cnt /*synthesis keep*/;

或者

Quartus:

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

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

prune    发音 /pruːn/:

v.修剪;删除;

n.李子干,西梅干;<非正式>讨厌的人,乏味的人;(树枝、灌木丛等的)修剪,修整

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

6、相同的工程,但是在不同平台上跑的sof与stp文件,如自己的PC1(win10 64环境中的Quartus)与服务器PC2(Ubuntu环境中的Quartus)上的sof与stp文件,能不能将服务器PC2上的sof与stp拿到自己的PC1上进行逻辑分析呢?

说明:

        服务器上跑的工程速度会快很多,比如自己的PC1上跑一个工程需要接近2个小时,但是服务器PC2上跑工程只需要1小时10分钟。

        服务器PC2没有接口可以用来设别JTAG,因此还是要用到自己的PC1来做逻辑分析。

        可以的,将服务器PC2上的sof与stp文件拿到自己的PC1上即可,如果在Signal Tap Logic Analyzer中的设置一样,则只需要将PC2上的sof拿到PC1上即可使用,如果不同,则需要将sof与stp同时挪到同一台机器上。

备注:

stp文件上的信号接口可以多设置,但不能少设置,就是说假如服务器PC2上的stp有20个观察信号,但是PC1上的stp只有10个观察信号,则需要将服务器PC2上的sof与stp同时拿到自己的PC1上进行逻辑抓取分析;

        反过来,自己的PC1上的stp有20个待观察信号,而服务器PC2上仅有10个待观察信号,可以将服务器PC2上的sof拿到自己的PC1上进行逻辑分析即可,不用将PC2上stp也拿到自己的PC1上,当然拿了更好,只是stp的兼容性变差了,如果自己的PC1后续还要跑工程,那就得根据需要重新设置stp了。

7、如果我要保存此次使用signal tap II抓取的波形,怎么保存以及如何打开呢?

        很简单,简述如下:

前提:需要知道Quartus中,除了第一次打开需要创建实例外,每次选择Signal Tap Logic Analyzer打开的都是工程默认的stp1.stp文件。

1、stp1.stp文件中就是最后一次抓取的信号,当然还有一些基本设置;

2、将stp1.stp文件copy一份即可,随便起个英文名称,如test.stp,保存位置可以任意(注意不要stp1.stp文件从Quartus工程中挪走了Q)

3、左键单击将test.stp拖到桌面上的Quartus快捷图标,Quartus即可自动打开该test.stp文件并显示,同时打开了一个空的Quartus工程。

此外,在使用该stp1.stp打开的工程中可以使用In-System Sources and Probes Editor

参考链接:

noprune keep preserve 区别

FPGA零基础学习精选 | Signal tap 逻辑分析仪使用教程

  • 28
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值