第五章 在线逻辑分析仪-SIGNALTAP

简介: 第五章 在线逻辑分析仪-SIGNALTAP

第五章 在线逻辑分析仪-SIGNALTAP


ps:仿真实在pc端进行仿真,和fpga一点关系也没有,而signaltap是直接反馈芯片的信号。


进行 FPGA 开发的过程中,在逻辑代码上板运行前都会进行仿真验证,而 EDA 仿真工具(如 Modelsim 等)的使用更是可以可以让工程师提早发现工程中出现的一些错误。但这并不代表经过仿真工具验证后的设计就能够达到预期。事实上,在上板运行时仍有可能遇到各种各样的问题。使用仿真工具进行验证的时候所设计 Testbench 的激励输入有时不能囊括一切可能发生的情况,并且由于软件仿真与实际硬件之间总是存在着细微的差别,诸如此类的原因导致工程师在上板运行时仍会发现各种设计问题。而很多情况下,在 FPGA 实时运行中需要查看某些信号,因此需要一个实时的信号分析工具获取 FPGA 内部的实时信号从而进行调试分析——SignalTap II 应运而生。


SignalTap 是由 Altera 公司开发的一个在线、片内信号分析的工具,为设计开发者验证所用。其作用类似于一个数字逻辑分析仪,利用 signaltap 工具基本上可以代替数字逻辑分析仪。Signaltap 是Quartus 里最常用的工具,希望同学们可以熟练使用。


第1节 软件原理


在使用 SignalTap 前先来理解一下 SignalTap 的原理,从而有助于理解各个参数。

1670839205813.jpg

如图 1.5- 1 为 SignalTap II 的基本工作原理,通过此图可以直观的理解触发条件、采样时钟、采样深度等的概念(概念及相关设置见第三节)及其之间的关系。

在调试过程中,某些需要观察分析的信号被称为“被测信号”,可以存在多个被测信号。

SignalTap II 的基本工作过程如下:以被测信号为对象,根据需要设置合理的触发条件,在触发条件(如图中的被测信号下降沿)满足时的前后一段时间,每个采样时钟的上升沿会对被测信号进行一次采集,并将采集的信号值存储在内部的 RAM 中。工程师可以指定触发条件前后采多少个样点,如果 RAM 比较大,则可以保存比较多的数据。反之,如果 RAM 比较小,那么保存的数据自然比较少,RAM 大小决定了观察数据的多少。最后 SignalTap 将读出RAM 中的数据并逐个在显示器中显示出来,因此 SignalTap 观测到的都是理想的(这说明再出现一些特殊信号时候,你是检测不出来的),没有毛刺的信号,工程师可以在显示器中观测信号,从而达到对信号进行在线调试分析的目的。


第2节 软件界面


打开 Quartus 软件,在菜单栏中,选择 Tools>SignalTal II Logic Analyzer 后可以打开 SignalTap 工具。如下图 1.5:

1670839220352.jpg

1670839228125.jpg

图 1.5- 3 中将需要注明的地方进行了标记,接下来将对各处功能进行详细介绍:


图 1.5- 3 中所标识的 1—4 为基本的软硬件配置:

1 为下载线选择;

2 为硬件检测(识别相关的 FPGA 设备);

3 为工程配置文件选择(sof 文件);

4 为加载 sof 文件(1-3 均完成后即可加载文件)。


图示 5—7 为采样设置:

5 为选择采样时钟,采样时钟要根据具体需要进行设置, 可以为模块的工作时钟,也可以为内部信号;

6 为采样深度设置,采样深度并非越大越好,要根据分析需求进行合理设置;

7 为触发位置选择,包括前段触发、中间触发、后端触发三种方式,以触发点为参考,根据触发位置的不同能得到不同时间段的信号值。


图示左边区域 8—9 为信号设置,包括添加信号,设置信号触发条件等。在 8 中空白处双击即可添加信号界面,根据需要添加工程中的相应信号,添加信号后即可设置其触发条件。


图中标识的 10 为资源使用情况指示,如果资源多于 FPGA 本身的资源,综合时会出现报错从而无法进行分析。


最上面的 11 为运行操作按钮,开始运行后,待触发条件满足后会显示波形。


第3节 使用流程


首先需要选择下载线方式、FPGA 芯片型号、工程配置文件,如下图 1.5- 4 所示:

1670839245082.jpg

随后设置采样时钟、采样深度以及采样信号。

1670839253322.jpg

图 1.5- 5 为采样时钟及采样深度的设置。此处选择 FPGA 内部 pll 锁相环输出的信号 c1 作为采样时钟。这里需要注意的是,采样时钟不一定是工程里的时钟,内部任何信号都是可以作为采样时钟的。这里将采样深度设置为 128,即共计可以观察到到 128 个采样点的数据。在 setup 窗口中双击空白地方,弹出如下图 1.5- 6所示界面。

1670839261021.jpg

图 1.5- 6 中红色框表示的是选择哪一阶段的信号,例如选取的是综合前或是综合后的信号等。因为综合时软件会自动进行优化,有些信号可能会找不到。一般会选择 pre-synthesis 或 Design Entry(all name)模式,在 Nodes Found 选择要观察的信号,将其添加到右边框中即可。


本例中选择 key_col 和 rst_n 信号来进行观察,如图 1.5-7所示:

1670839269579.jpg

采样信号选择好后即可进行触发条件的设置。观察 trigger Conditions 一列,key_col 的默认值为 xh(总线型信号的 don’t care),rst_n 的默认值为 don’t care。在 trigger Conditions 一列中右击 rst_n 所在的行,将会出现 6 种触发条件供工程师选择。

1670839278464.jpg

图 1.5- 8 中 6 种触发条件的含义如下:

Don’t Care:表示不关心,也即任意,此信号的值不影响触发条件;

Low :低电平触发;

Falling Edge:下降沿触发;

Rising Edge:上升沿触发;

High:高电平触发;

Either Edge:双沿触发,即有变化时触发。

此处可以假定为上升沿触发,对 key_col 也进行触发条件的设置,具体设置如下所示。

1670839287369.jpg

图 1.5- 9 中设置的触发条件含义为:当 rst_n 为上升沿并且 key_col 全为高(Fh)时触发。注意,这里多触发条件之间默认为“与”的关系,可能会被误认为是“或”的关系。最后进行综合并下载,点击“Run Analysis”按钮后查看结果。


如果触发条件成立,则可在 Data 窗口观察到采样波形,图 1.5- 10 是某一工程的采样结果,可以看到其采样波形与 modelsim 波形相似。点击波形后可以放大波形进行观看,右击波形则为缩小波形。

1670839307834.jpg


第4节 案例说明


本节中将采用几个案例来对 SignalTap 的使用步骤进行详细的说明。


案例 1:SignalTap 的采样时钟不一定是时钟信号,也可以是其他任意的信号。SignalTap 会在采样时钟的上升沿对信号值进行捕捉,如果没有时钟上升沿则 SignalTap 一直处于等待状态。


案例 2:观测时可以改变采样的深度以便观察到信号更长时刻的值。图 1.5- 11 中设置的深度为128,这意味着一共可以观察到 128 个点的值。如果这一观察量不够则可以将其设置成更大的数值。


但需要注意的是,SignalTap 需要使用到 FPGA 内部的 RAM 资源来保存采样的数据,所以采样深度越大,需要使用的的 RAM 就越大,与此同时占用的 FPGA 资源也就更多。然而 FPGA 的资源是有限的,当 FPGA 的内部资源不支持设置采样点数所占用的 RAM 资源数时,在编译时会出现报错提示。

1670839319475.jpg

案例 3:通过设置 segmented 参数可以检查满足触发条件的次数。例如,发现按键存在失灵情况时,为了定位此问题需要检查按键按下的次数,判断其是否与捕捉到信号次数一致。


该操作的主要设置如下:


将 segmented 设置为 32;

将捕捉到信号 key_vld 拉到显示窗口,该信号为 1 表示捕捉到一个按键。

设置触发条件为:key_vld 的上升沿;

按下 run 键,等待触发条件满足;

按下按键 4 次。

按停止捕捉键。

如果此时 SignalTap 波形界面出现 5 个窗口,其中前 4 个表示条件满足捕捉到 key_vld 的上升沿触发条件的窗口,则表示按下按键的次数与捕捉到的次数一致。否则代表发生错误,按键存在问题。


案例 4:添加信号后,如界面中该信号显示为红色,如图 1.5- 12 所示,则表示该信号的捕捉存在问题。

1670839329841.jpg

采样信号为红色出现该问题的可能性原因有:


该信号在电路综合时被优化。

a) 虽然该信号已经产生,但其没有被视为条件进行调用,或者不是输出信号。此时系统认为信号是多余的,因此在综合时会将该信号优化掉。

b) 如果该信号是有用信号,不应该被优化掉。则说明电路有 BUG,需要工程师去定位错误。


组合逻辑信号一般是捕捉不到的。其解决方法为忽略该信号,可以将产生该信号的所有条件都调用出来,从而推敲结果是否正确。


案例 5:图 1.5- 13 中包含的一个案例触发条件是:当 en 为下降沿且 en_tmp 发生变化。注意,只有在采样时钟上升沿时捕捉到两个条件同时满足时才会进行触发。

1670839343196.jpg

图 1.5- 14 所示波形中,在第 5 时钟上升沿时观察到 en 等于 1,en_tmp 等于 1,其不满足条件。而在第 6 时钟时捕获到 en 的下降沿(之前为 1,现在为 0)与 en_tmp 的下降沿(之前为 1,现在为0),可以看出第 6 个时钟满足触发条件。


在线逻辑分析仪是每个 FPGA 学习开发者必须熟练掌握的基本工具,是使用 FPGA 的必备能力之一。针对 SignalTap 的使用方法,下面链接中提供了 6 个训练工程以方便练习掌握这一工具。

工程训练网址:请点击


第5节 6个工程案例


5.1 案例1


5.2 案例2


5.3 案例3


5.4 案例4


5.5 案例5


5.6 案例6

相关文章
|
7月前
|
传感器 存储 监控
振弦采集仪在桥梁岩土工程中的应用与效果评价
振弦采集仪在桥梁岩土工程中的应用与效果评价 振弦采集仪是一种用于结构动力测试的仪器,也可以应用于桥梁和岩土工程中。其主要作用是通过测量结构的振动特性,分析结构的动态行为,评估结构的健康状况和性能。
振弦采集仪在桥梁岩土工程中的应用与效果评价
|
5月前
|
传感器 存储 监控
工程仪器振弦采集仪的设计与研发进展
工程仪器振弦采集仪的设计与研发进展
工程仪器振弦采集仪的设计与研发进展
|
7月前
|
传感器 数据采集 存储
岩土工程监测仪器之一:振弦采集仪的工作原理解析
岩土工程监测仪器之一:振弦采集仪的工作原理解析
岩土工程监测仪器之一:振弦采集仪的工作原理解析
|
传感器 数据采集
振弦采集仪和传感器在岩土工程中安装方法的关键要点
振弦采集仪和传感器在岩土工程中安装方法的关键要点 振弦采集仪和传感器在岩土工程中的安装方法是岩土工程中非常关键的过程。其安装质量的好坏直接影响实验数据的准确性,进而影响工程设计和施工效果。因此,在实际工作中,如何正确的安装振弦采集仪和传感器是一个十分重要的问题。本文将从振弦采集仪和传感器的安装过程、注意事项以及实施方法等方面进行详细说明。
|
传感器 存储 数据采集
岩土工程振动在线监测:以道路桥梁基础为例
在道路桥梁基础的振动监测方面,振弦传感器可以用于测量桥墩的振动情况和地基的动态响应,振弦采集仪可以用于采集振弦传感器的数据,而在线监测系统可以对采集到的数据进行实时分析和研究,从而对道路桥梁基础的稳定性和结构安全性进行监测和评估。
岩土工程振动在线监测:以道路桥梁基础为例
|
7月前
岩土工程监测振弦采集仪广泛应用于岩土工程中的土体动力特性的测试和分析
岩土工程监测振弦采集仪广泛应用于岩土工程中的土体动力特性的测试和分析。以下是一些岩土工程监测振弦采集仪的应用案例:
|
7月前
|
传感器 数据采集 算法
振弦读数模块开发振弦采集仪的注意要点有哪些?
振弦读数模块开发振弦采集仪的注意要点有哪些?
振弦读数模块开发振弦采集仪的注意要点有哪些?
|
传感器 算法
飞讯教学篇:振弦采集读数模块开发原理详细介绍
三河凡科科技飞讯教学篇:振弦采集读数模块开发原理详细介绍,振弦采集读数模块是一种用于测量弦震动的仪器,它可以将弦得振动转化成电信号进行采集和处理,通常应用于各种乐器、声学研究和音乐教学等领域。
飞讯教学篇:振弦采集读数模块开发原理详细介绍
|
传感器 安全
岩土工程监测案例:完整链条的振弦传感器、采集仪和在线监测系统
以下是一个振弦传感器和振弦采集仪及在线监测系统形成一套完整链条的岩土工程监测案例:
岩土工程监测案例:完整链条的振弦传感器、采集仪和在线监测系统
|
传感器 安全
基于振弦传感器的岩土工程在线监测系统案例分析
河北稳控科技岩土工程在线监测系统是一种非常重要的监测系统,它可以实时监测岩土体的变形、应力、应变等数据,帮助工程师及时掌握工程的变化情况,为工程的安全可靠提供有效的数据支持。其中,振弦传感器是一种常用的传感器,它能够实时监测结构体的振动情况,是岩土工程在线监测系统中不可或缺的一部分。
基于振弦传感器的岩土工程在线监测系统案例分析