Menu Close

Signal Tap Logic Analyzer在线调试工具的使用

Signal Tap Logic Analyzer是Intel_Altera提供的在线信号逻辑分析仪,在板载实验中是非常有利的调试工具。其基本原理是在用户设计的逻辑中插入一个调试模块,该模块将输入、输出缓冲器或内部(如wire,reg 类型)的信号以系统时钟的方式采集到FPGA内部的block memory ,最后通过JTAG接口传送Quartus 工具进行分析。Xilinx Vivado 提供了非常类似的工具。由于该工具没有开放软、硬件设计具体的设计原理,因此作为工具能灵活使用,对工程的调试与验证起到关键的作用就可以。使用Signal Tap Logic Analyzer将会占用一定的资源,因此对于资源、成本比较在意的工程,调试成功后可以将该调试模块删除,重新编译即可。

下面以最简单的4位开关输入、4位LED输出为例介绍Signal Tap Logic Analyzer的使用,目的是将主要目标放在Signal Tap Logic Analyzer的使用上。SW_LED 的原理图如图1,

图1

表1

程序信号名 网络标号 FPGA管脚 端口说明
clk C10_50MCLK 91 输入时钟
LED[3] SW7_LED7 77 拨码开关第7位
LED[2] SW6_LED6 76 拨码开关第6位
LED[1] SW5_LED5 75 拨码开关第5位
LED[0] SW4_LED4 74 拨码开关第4位
SW[3] SW3_LED3 87 拨码开关第3位
SW[2] SW2_LED2 86 拨码开关第2位
SW[1] SW1_LED1 83 拨码开关第1位
SW[0] SW0_LED0 80 拨码开关第0位

1.新建工程

在Quartus 下新建工程,工程名称为signaltap,顶层实体为signaltap,顶层文件为signaltap.v。

2. 将编辑好的工程编译,管脚锁定如表1.

3. 建立Signal Tap Logic Analyzer

    • 单击菜单Tools->Signal Tap Logic Analyzer,如图2,并跳出图3界面

图2

在图3中分为1,2,3,4等4个区域,如图3,

图3

  • 区域1主要处理逻辑分析的各种操作
  • 区域2设置JTAG接口,如图4,

图4

在图中设置合适的JTAG工具链,这里采用EPT-JTAG-Blaster v1.0(64)[MBUSB-0],如没有显示合适的JTAG接口,可以通过Setup设置。

  • 区域3主要设置(添加)待抓取的信号,以及信号波形。

图5

  • 添加待观察信号,

在图5中选择setup标签,并双击空白区域,弹出对话框如图6,

图6

在图6中的Node Finder对话框中按如下步骤设置:

  1. Named:框中,用通配符*
  2. 在Filter:选择框中选择SignalTap: pre-synthesis,本项选择的含义是选择综合之前的信号或端口,这样的选择可以在Matching Nodes:见到所有信号和端口。缺点是一旦选择这些信号,Quartus在后续的综合中就要保持该信号不被优化,替代,合并等,对整体的系统优化不利。
  3. 单击List按钮,本设计中的所有信号和端口都显示在Matching Nodes: 例表中,通过 >,>>,<,<<按钮添加到Nodes Found: 例表中,注意不要选择clk信号(因为clk信号将被用来作为主时钟抓取信号)。
  4. 单击Insert按钮,将被观测的信号添加到区域3中。单击close按钮关闭对话框。
  5. 在区域4设置时钟,数据抓取深度,存储信号的RAM类型等。如图7,

图7

  • 时钟选择clk
  • 抓取深度设为128,256等,主要决定要观察的深度还有所选择的FPGA芯片的资源,以及资源的剩余多少(由于 signal Tap添加的信号将作为FPGA资源使用的一部分,一起综合形成一个整体)
  • Segmented: 设置128的深度(深度由上一步决定),分为几个窗口
  • Nodes Allocated: 设置观察的信号在窗口的位置。

这里的可选择类型很多,按照图7设置即可,在将来的使用中,可以选择不同的类型进行体会。

4. 重新编译下载

当上面设置完成后,存储并重新编译,本次编译即携带了SignalTap 的信息。编译完成后需要重新下载。

 

图8

  • Run Analysis(F5) 或AutoRun Analysis(F6)
  • 拨动开关,观察Data 窗口数据。

图9

从图9可以看出,SW[0]为高电平,对应的led[0]也为高电平,这符合程序设计结果。

5. 设置触发条件

在图10窗口(选择setup标签),右键点击led[3],并选择Either Edge(双边沿),重新运行Run Analysis。此时窗口将会等待触发条件的满足。

图10

6. 观察带触发条件的波形

单击Run Analysis后拨动sw[3] ,观察双边沿触发条件的波形。如图11,

图11

总结:利用一个简单的例子演示了signalTap的建立、设置、编译、下载、触发条件的设置等,并观察得到的波形。

练习题:设置不同的采样深度、不同的触发条件、信号满足触发条件在窗口的位置等,重新编译,运行run analysis, 观察抓取的波形。

Posted in FPGA, FPGA 教材教案, Quartus II, Quartus II, Verilog, 教材与教案, 文章