EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【教程】史上最详细的调试工具SingalTap使用教程
$ \) o: a! B9 S1 E& c) M作者:陈刀刀 7 f* v! c+ {4 s: g
本文为明德扬原创文章,转载请注明出处!( C: h D' g! U/ e: Q
5 r. S, o3 m4 _3 d. Y
明德扬设计的工程经常使用到Quartus Ⅱ软件,其中常用的调试工具就是SignalTap。当代码经过仿真没有问题,但加载到FPGA电路板后,发现功能不正确时,我们就可以用signalTap工具进行分析,它的作用就类似于一个数字逻辑分析仪。今天就给大家分享SignalTap的使用教程。 ) T% L0 k, D3 G: z
一、打开SignalTap工具 1 N# Y }+ ~& K ~) Q2 [
打开Quartus后,在菜单栏中,选择“Tools”->”SignalTal II Logic Analyzer”,就可以打开SignalTap工具。如下图: * a& z* `0 d% e8 Q
, ^! `, a6 F: B' D" |/ u* q1 e/ _二,使用SignalTap调试设置步骤 8 e6 C3 W/ e: ^4 S
界面示意图如下所示,其中有对应的标号,其解释如下:
$ z% K( W0 r; ^ |, V
5 k( w' S4 T Q1 a5 C# U2 @/ c0 B# r! @◆ 1—4为基本的软硬件配置:1为下载线选择;2为硬件检测(识别相关的FPGA设备);3工程配置文件选择(sof文件);4加载sof文件(1-3均完成后即可加载文件)。
. O$ K, O; x7 ]/ Z; w: X1 h% z1 g◆ 5为采样时钟设置:选择采样时钟,采样时钟要根据具体需要进行设置, 可以为模块的工作时钟,也可以为内部信号; 4 D& Z0 M) h0 c* J
◆ 6为采样深度设置:采样深度并非越大越好,要根据分析需求进行合理设置;
# m5 A* k1 N# L◆ 7为触发位置选择:包括前段触发、中间触发、后端触发三种方式,以触发点为参考,触发位置不同,我们能得到不同时间段的信号值。 4 |8 d) L- z& L3 p( @& m( B
◆ 8—9为信号设置:包括添加信号,设置信号触发条件等。在8中空白处双击即可添加信号界面,根据需要添加工程中的相应信号,添加信号后即可设置其触发条件。 ' d' y) G X: r; g; L* T
◆ 10为资源使用情况指示:如果资源多于FPGA本身的资源,综合时会报错,无法进行分析。
/ T. V; E* y( Q% ~3 |0 U- }$ ?7 C◆ 11为运行操作按钮:开始运行后,待触发条件满足后会显示波形。
. C5 X1 V& C4 b# o$ j' }9 O( ~# i0 ~5 ]& `( b8 t% p. H1 M" U5 m
三,选择采样时钟
7 W( ~$ ?! g9 j1 u1、SIGNALTAP的采样时钟,不一定是时钟信号,可以是其他任意的信号。总之,SIGNALTAP会在采样时钟的上升沿去捕捉信号的值,如果没有上升沿,则会一直等待。例如下图所示,就是以按键信号key【0】为采样时钟。在key【0】由0变1时,就会采样一个值。
# ^4 _+ C' D& t0 M2、若该工程使用到几个模块,并且每个模块的时钟不一定相同,则我们选择采样时钟时,要根据我们要测试的信号所在的模块的时钟是什么。 0 X9 \: H r" B7 I5 T4 W4 \
! Q7 J- |& Z$ |) R* l8 ~四,选择触发条件的次数 $ S) |$ \0 V% ~: b% K/ |4 U
下图所示,通过设置segmented,可以检查满足触发条件的次数。例如,发现按键有时候失灵的情况,为了定位此问题,我想检查按键按下的次数,是否与捕捉到信号次数一致。 其主要设置为: 1. 把segmented设置为32; 2. 把捕捉到信号key_vld拉到显示窗口,该信号为1表示捕捉到一个按键; 3. 设置触发条件为:key_vld的上升沿; 4. 按下run键,等待触发条件满足; 5. 按下按键4次; 6. 按停止捕捉键 。 ) S5 i8 Q1 F1 V( y; j8 Q* Y/ ?
3 k4 q' P) T2 g4 e五,信号的触发条件
% m' L" C2 {4 { A$ S1、如下图所示,6种触发条件的含义如下: don’t care:表示不关心,也即任意,此信号的值不影响触发条件; Low :低电平触发; Falling Edge:下降沿触发; Rising Edge:上升沿触发; High:高电平触发; Either Edge:双沿触发,即有变化时触发。 ; K$ M5 ~$ l e6 a9 E* Q
2、假设取上升沿触发,并对key_col也做触发条件的设置如下: $ V C0 e0 P9 _4 E4 m# u+ [# B
此时的触发条件含义为:当rst_n为上升沿并且key_col全为高时触发。 注意,这里多触发条件之间默认的是“与”的关系,很多人会误认为是“或”的关系。 $ I* M5 [6 X: @% |$ n1 a8 I
以上就是SignalTap的使用教程,有兴趣的朋友可在明德扬论坛获取更多学习资料,也可加入明德扬技术交流Q群:544453837与我们进行深入讨论,期待与大家一起学习进步!!
) b2 D: t2 e: n% h
2 `% d" N! `8 N j, s! c+ C6 C1 A
- _7 }1 C+ F* [( @; ~4 X: _
% H" w q- Q4 C4 ? |