明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 140|回复: 0

【FPGA至简设计原理与应用】书籍连载05 第一篇 FPGA基础知识 第五章 在线逻辑分析仪

[复制链接]
发表于 2020-5-18 09:38:11 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x


大家好,近期我们会连载《FPGA至简设计原理与应用》一书,有兴趣的同学可以学习,也希望大家可以对我们的书提出宝贵的意见和建议。

《FPGA
至简设计原理与应用》书籍连载索引目录

http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=989


读过的朋友可积极在贴后留言,书籍正式出版时,我们会从留言者中挑选20位幸运读者,幸运读者可获潘老师亲笔签名书籍一本。

注:手机浏览可能格式会乱,建议用电脑端进行浏览。





第一篇 FPGA基础知识

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


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


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


第1节 软件原理

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

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

    在调试过程中,某些需要观察分析的信号被称为被测信号,可以存在多个被测信号。SignalTap II的基本工作过程如下:以被测信号为对象,根据需要设置合理的触发条件,在触发条件(如图中的被测信号下降沿)满足时的前后一段时间,每个采样时钟的上升沿会对被测信号进行一次采集,并将采集的信号值存储在内部的RAM中。工程师可以指定触发条件前后采多少个样点,如果RAM比较大,则可以保存比较多的数据。反之,如果RAM比较小,那么保存的数据自然比较少,RAM大小决定了观察数据的多少。

    最后SignalTap将读出RAM中的数据并逐个在显示器中显示出来,因此SignalTap观测到的都是理想的,没有毛刺的信号,工程师可以在显示器中观测信号,从而达到对信号进行在线调试分析的目的。

第2节 软件界面

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

2.png
1.5- 2  SignalTap II打开方式


3.png
1.5- 3  SignalTap使用界面

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

1.5-3中所标识的14为基本的软硬件配置:

1为下载线选择;2为硬件检测(识别相关的FPGA设备);3为工程配置文件选择(sof文件);4为加载sof文件(1-3均完成后即可加载文件)。

图示57为采样设置:

5为选择采样时钟,采样时钟要根据具体需要进行设置, 可以为模块的工作时钟,也可以为内部信号; 6为采样深度设置,采样深度并非越大越好,要根据分析需求进行合理设置;7为触发位置选择,包括前段触发、中间触发、后端触发三种方式,以触发点为参考,根据触发位置的不同能得到不同时间段的信号值。

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

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

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

第3节 使用流程

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

4.png
1.5- 4  基本配置选择

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

5.png
1.5- 5  采样设置

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


6.png
1.5- 6  采样信号的选取

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

7.png
1.5- 7  选取好采样信号

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

8.png
1.5- 8  SignalTap中六种触发条件

    图1.5- 86种触发条件的含义如下:
Dont Care:表示不关心,也即任意,此信号的值不影响触发条件;
Low:低电平触发;
FallingEdge:下降沿触发;
RisingEdge:上升沿触发;
High:高电平触发;
EitherEdge:双沿触发,即有变化时触发。
此处可以假定为上升沿触发,对key_col也进行触发条件的设置,具体设置如下所示。


9.png
1.5- 9  设置上升沿触发

1.5- 9中设置的触发条件含义为:当rst_n为上升沿并且key_col全为高(Fh)时触发。注意,这里多触发条件之间默认为“与”的关系,很多读者可能会误认为是“或”的关系。

最后进行综合并下载,点击“Run Analysis”按钮后查看结果。

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


10.png
1.5- 10  SignalTap采样信号波形

第4节 案例说明

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

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

    案例2
观测时可以改变采样的深度以便观察到信号更长时刻的值。图1.5- 11中设置的深度为128,这意味着一共可以观察到128个点的值。如果这一观察量不够则可以将其设置成更大的数值。但需要注意的是,SignalTap需要使用到FPGA内部的RAM资源来保存采样的数据,所以采样深度越大,需要使用的的RAM就越大,与此同时占用的FPGA资源也就更多。然而FPGA的资源是有限的,当FPGA的内部资源不支持设置采样点数所占用的RAM资源数时,在编译时会出现报错提示。


11.png
1.5- 11  采样深度设置
    案例3
通过设置segmented参数可以检查满足触发条件的次数。例如,发现按键存在失灵情况时,为了定位此问题需要检查按键按下的次数,判断其是否与捕捉到信号次数一致。该操作的主要设置如下:
1. segmented设置为32
2. 将捕捉到信号key_vld拉到显示窗口,该信号为1表示捕捉到一个按键。
3. 设置触发条件为:key_vld的上升沿;
4. 按下run键,等待触发条件满足;
5. 按下按键4次。
6. 按停止捕捉键。
如果此时SignalTap波形界面出现5个窗口,其中前4个表示条件满足捕捉到key_vld的上升沿触发条件的窗口,则表示按下按键的次数与捕捉到的次数一致。否则代表发生错误,按键存在问题。

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

12.png
1.5- 12
采样信号为红色出现该问题的可能性原因有:
1.        该信号在电路综合时被优化。
a)        虽然该信号已经产生,但其没有被视为条件进行调用,或者不是输出信号。此时系统认为信号是多余的,因此在综合时会将该信号优化掉。
b)        如果该信号是有用信号,不应该被优化掉。则说明电路有BUG,需要工程师去定位错误。

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

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

13.png
1.5- 13  触发条件设置


14.png
1.5- 14  信号波形图

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

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







上一篇:【FPGA至简设计原理与应用】书籍连载04 第一篇 FPGA基础知识 第四章 FPGA开发平台介绍
下一篇:【FPGA至简设计原理与应用】书籍连载06 第二篇FPGA至简设计原理 第一章高效编辑器GVIM
MP801开发板 网络培训班 就业培训班 FPGA学习资料
周老师 17002067067(微信同号) Q1727673675
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|MDYBBS ( 粤ICP备16061416号-1

GMT+8, 2020-5-26 14:22 , Processed in 0.554106 second(s), 46 queries , File On.

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

快速回复 返回顶部 返回列表