使用SignalTap II逻辑分析仪调试FPGA例

发布时间:2020-12-01 01:15:35

使用SignalTap II逻辑分析仪调试FPGA

例:数字钟调试

作者:陈拓

2008627 最后修改日期:2008722

本文介绍了可编程逻辑器件开发工具Quartus II SingalTap II 嵌入式逻辑分析器的使用,并给出一个具体的设计实例,详细介绍使用SignalTap IIFPGA调试的具体方法和步骤。

关键字SignalTap硬件调试FPGA

1 概述

随着FPGA容量的增大,FPGA的设计日益复杂,设计调试成为一个很繁重的任务。为了使得设计尽快投入市场,设计人员需要一种简易有效的测试工具,以尽可能的缩短测试时间。传统的逻辑分析仪在测试复杂的FPGA设计时,将会面临以下几点问题:1)缺少空余I/O引脚。设计中器件的选择依据设计规模而定,通常所选器件的I/O引脚数目和设计的需求是恰好匹配的。2I/O引脚难以引出。设计者为减小电路板的面积,大都采用细间距工艺技术,在不改变PCB板布线的情况下引出I/O引脚非常困难。3)外接逻辑分析仪有改变FPGA设计中信号原来状态的可能,因此难以保证信号的正确性。4)传统的逻辑分析仪价格昂贵,将会加重设计方的经济负担。

伴随着EDA工具的快速发展,一种新的调试工具Quartus II 中的SignalTap II 满足了FPGA开发中硬件调试的要求,它具有无干扰、便于升级、使用简单、价格低廉等特点。本文将介绍SignalTap II逻辑分析仪的主要特点和使用流程,并以一个实例介绍该分析仪具体的操作方法和步骤。

2 SignalTap II的特点及使用

SignalTap是内嵌逻辑分析仪,是把一段执行逻辑分析功能的代码和客户的设计组合在一起编译、布局布线的。在调试时,SignalTap通过状态采样将客户设定的节点信息存储于FPGA内嵌的Memory Block中,再通过下载电缆传回计算机。

SignalTap II嵌入逻辑分析仪集成到Quartus II设计软件中,能够捕获和显示可编程单芯片系统(SOPC)设计中实时信号的状态,这样开发者就可以在整个设计过程中以系统级的速度观察硬件和软件的交互作用。它支持多达1024个通道,采样深度高达128Kb,每个分析仪均有10级触发输入/输出,从而增加了采样的精度。SignalTap II为设计者提供了业界领先的SOPC设计的实时可视性,能够大大减少验证过程中所花费的时间。目前SignalTap II逻辑分析仪支持的器件系列包括:APEXT II, APEX20KE, APEX20KC, APEX20K, Cyclone, Excalibur, Mercury, Stratix GX, Stratix

SignalTap II将逻辑分析模块嵌入到FPGA中,如图所示。逻辑分析模块对待测节点的数据进行捕获,数据通过JTAG接口从FPGA传送到Quartus II软件中显示。使用SignalTap II无需额外的逻辑分析设备,只需将一根JTAG接口的下载电缆连接到要调试的FPGA器件。SignalTap IIFPGA的引脚和内部的连线信号进行捕获后,将数据存储在一定的RAM块中。因此,需要用于捕获的采样时钟信号和保存被测信号的一定点数的RAM块。

使用SignalTap II的一般流程是:设计人员在完成设计并编译工程后,建立SignalTap II (.stp)文件并加入工程、配置STP文件、编译并下载设计到FPGA、在Quartus II软件中显示被测信号的波形、在测试完毕后将该逻辑分析仪从项目中删除。以下描述设置 SignalTap II 文件的基本流程:

1.设置采样时钟。采样时钟决定了显示信号波形的分辨率,它的频率要大于被测信号的最高频率,否则无法正确反映被测信号波形的变化。SignalTap II在时钟上升沿将被测信号存储到缓存。

2.设置被测信号。可以使用Node Finder 中的 SignalTap II 滤波器查找所有预综合和布局布线后的SignalTap II 节点,添加要观察的信号。逻辑分析器不可测试的信号包括:逻辑单元的进位信号、PLL的时钟输出、JTAG引脚信号、LVDS(低压差分)信号。

3.配置采样深度、确定RAM的大小。SignalTap II所能显示的被测信号波形的时间长度为Tx,计算公式如下:

Tx=N×Ts

N为缓存中存储的采样点数,Ts为采样时钟的周期。

4.设置buffer acquisition modebuffer acquisition mode包括循环采样存储、连续存储两种模式。循环采样存储也就是分段存储,将整个缓存分成多个片段(segment),每当触发条件满足时就捕获一段数据。该功能可以去掉无关的数据,使采样缓存的使用更加灵活。

5.触发级别。SignalTap II支持多触发级的触发方式,最多可支持10级触发。

6.触发条件。可以设定复杂的触发条件用来捕获相应的数据,以协助调试设计。当触发条件满足时,在signalTap时钟的上升沿采样被测信号。

完成STP设置后,将STP文件同原有的设计下载到FPGA中,在Quartus IISignalTap II窗口下查看逻辑分析仪捕获结果。SignalTap II可将数据通过多余的I/O引脚输出,以供外设的逻辑分析器使用;或输出为csvtblvcdvwf文件格式以供第三方仿真工具使用。

3 实例分析

下面以数字钟作为实例,具体说明如何用SignalTap II 来进行FPGA设计的验证。使用Altera公司的器件Cyclone系列FPGA- EP1C12Q240C8,该器件支持SignalTap II 嵌入式逻辑分析仪的使用。

STP文件中将buffer acquisition mode分别设为连续存储和循环采样存储两种模式进行验证。连续存储方式记录采样操作的连续过程,而在循环采样存储方式下SignalTap II记录多次采样时刻数据。

在成功地编译项目并且设置管脚指定之后,从工具下拉菜单中选择SignalTapII逻辑分析仪,在项目中添加STP文件图所示。

也可以用选择“File | New | Other Files | SignalTapII Logic Anayzer File”的方法打开SignalTapII逻辑分析仪。

SignalTapII 打开后,在JTAG Chain Configuration的下面,选择Setup,如所示。

在硬件设置中,就象第一次连接编程器时那样,选择用于FPGA编程的编程器。如所示。

如下所示,再选择SOF文件。

在实例管理器(Instance Manager)下面,有一个自动添加的默认实例auto_ signaltap_0

在默认实例(Instance) auto_ signaltap_0的基础上,还可以修改、添加、删除实例。

在实例instance的下面,双击以添加要被分析的节点。如所示。

添加要在仿真波形中被分析的信号。如所示,我们选择:

数码管扫描计数器cnt

数码管地址选择信号scan

单击OK

Signal Configuration的下面,设置时钟。单击时钟旁边的浏览按钮。如所示。

列出管脚,选择用于扫描数码管地址的1KHz的分频clk1khz信号作为时钟,单击OK。如所示。

用于时钟的信号不能被分析,如果以被选择,它将从信号列表中被删除。

选择采样深度(Sample depth),默认值是128,我们选择256,如上图。

最后的设置如下所示。

按照图中的步骤查看仿真波形。

1.进行分析前重新编译,将所做的设置编译到烧写文件中。

2.将编译好的SOF文件通过JTAG烧写到FPGA中。

3.进行分析。

4.读数据,如所示。



原文节选

1处设置采样时钟ct[3],系统时钟的16分频。2处添加测试信号,包括待测模块输出的AD采样控制信号和状态机的状态等。3处是采样深度的设置,设为512。在4处的设置确定了在clko时钟的上升沿触发逻辑分析仪。在连续存储模式下设置buffer acquisition modeCircular前触发位置。在分段存储模式下设置为Sigmented 512 1 bit segments,表示将存储区划分成512个段,每段1个位的存储深度。存储模式的设置如图中6所示。另外,使用Mnemonic Table将状态机的7个状态标示为直观名称。

首先将STP文件设置成连续存储模式,并将该文件连同工程一起下载到FPGA中。在连续存储模式下,SignalTap IIclko时钟的上升沿连续采样直到采样点数达到512个。这样,SignalTap II记录了一次采样过程的所有数据,捕获结果如图4所示,从中可以看到FPGA控制ADC0809转换的时序波形。

将图3所示步骤6中的Buffer acquisition node改为Segmented方式,设其值为256 1 bit segments,并将修改后的STP文件连同工程重新下载到FPGA中。和单次触发相同的是逻辑分析仪在ADC0809采样时钟上升沿时触发逻辑分析仪,不同的是因为每一段只有1bit的存储深度,因此捕获1位数据后逻辑分析仪停止,等待下一次满足触发信号再次启动,一共启动256次。在波形显示窗口,设显示格式为Line Chart,这样结果就直观的显示为连续的波形。分片采样,可观察同步采样的结果,图5是连续采样256个点的结果波形。

4 结论

SignalTap II 嵌入式逻辑分析器,提供了芯片测试的一个很好的途径。通过SignalTap II 测试芯片无需外接专用仪器,它在器件内部捕获节点进行分析和判断系统故障。本文通过对Cyclone EP1C12器件的实验证实该测试手段大大提高系统的调试能力,具有很好的效果。

参考文献西安交通大学电气工程学院 郭佳佳 胡晓菁 王永良 来源:《今日电子》

Altera资料[]

SignalTap II 功能

以下是SignalTap® II 嵌入式逻辑分析器的主要功能:

每个器件上的多个逻辑分析仪

单个JTAG链上多个器件的逻辑分析仪

每个分析仪具有10个基本或高级触发级别

灵活的缓冲获得模式捕获周期事件

分段缓冲获得模式

每个器件上最多1,024个通道

每个通道上最大128K采样

时钟支持超过200MHz

无需重新编译,即可增加节点,更改信号选择或改变触发条件

助记和基数表

多总线显示格式

多文件格式输出数据

每个器件上的多个逻辑分析仪

SignalTap II逻辑分析仪在每个器件中支持逻辑分析仪IP函数的多个实例。此特性实现了器件中每个时钟域上单独且唯一的嵌入式逻辑分析仪功能。

实例管理器对话框(图1所示)识别出设计中等待测试的所有验证过的逻辑分析仪,他们可以用来捕获并存储数据。该对话框还可以对用来生成每个分析仪的资源进行估算。

图1. 实例管理器

单个JTAG链上多个器件的逻辑分析仪

SignalTap II逻辑分析仪适用于单个JTAG链上的多个器件。由于每个Quartus II工程表征一个器件,因此,该功能不支持多个器件上多个逻辑分析仪同时采集数据。

每个分析仪具有10个基本或高级触发级别 

触发级别向SignalTap II逻辑分析仪指明何时开始采集数据。10个触发级别为设置复杂的触发条件提供了足够的灵活性,帮助验证工程师分离错误或者找出问题原因。

工程师可以利用SignalTap II用户界面(图2所示)中的信号配置面板进行多触发级别设置。如果设置了多触发级别,直到所有的触发条件顺序满足后,才开始采集数据。触发输出信号可以触发系统中别的嵌入式逻辑分析仪,外部逻辑分析仪或者示波器。

图2. 信号配置

基本触发功能

设计人员使用基本触发条件,可以对给定的信号或者总线指定数值,而不必关心其上升沿、下降沿,电平的高低或任何一个边沿条件。

高级触发功能

设计人员使用高级触发功能提供的图形界面,可以轻松的生成用户定义的触发逻辑,对总线状态和单个信号进行比较;此功能实现了更高的精度以及问题解决能力。图3是高级触发条件设置窗口的例子。

图3. 高级触发功能例子

设计信号和总线被拖动到高级触发窗口中,和来自高级触发对象库的元件相连接(图4所示)。Operator输入可以是来自设计中的信号或总线,也可以是用户输入的数值。

图4. 高级触发功能对象库

4.1版及其以后的版本中加入了事件计数对象,这样用户不仅可以触发单个事件,还可以在事件发生一段时间后,进行触发。

灵活的缓冲获得模式

SignalTap II逻辑分析仪对环形缓冲模式支持4个触发位置(图5所示);这样,当触发条件满足后,用户可以更多的控制应该捕获并显示什么样的数据。

4个触发位置为:

—“触发位置向软件表明,在达到触发条件前,保存所发生采样的12%,达到触发条件后,再保存采样的88%。

—“触发位置向软件表明,在达到触发条件前,保存所发生采样的50%,达到触发条件后,再保存采样的50%。

—“触发位置向软件表明,在达到触发条件前,保存所发生采样的88%,达到触发条件后,再保存采样的12%。

连续—“连续触发位置向软件表明,以环形缓冲的方式进行连续采样保存,直到用户中断为止。

图5. 触发位置

分段缓冲获得模式捕获周期事件

用户使用此模式,可以将缓冲获得存储器进行分段处理,这样就可以多次捕获同一个事件,而不浪费储存器资源。此功能特别适用于捕获周期事件。图6是分段储存器缓冲选项的例子。

图 6. 分段缓冲获得模式选项

每个器件上最多1,024个通道

一个专用设计中所能够支持的通道数量,很大程度上取决于可以使用的器件资源(如逻辑单元(LE)和RAM)。SignalTap II逻辑分析仪可以管理来自每个器件上一个或多个逻辑分析仪宏函数的1,024个通道。

每个通道上最大128K采样

可以储存在Altera®器件嵌入式储存器中的采样数量取决于器件中的剩余存储器资源,这些资源在设计测试中没有使用。SignalTap II逻辑分析仪可以单独支持每通道128K采样。

时钟支持超过200MHz

许多含有FPGA的复杂数字系统具有速率超过200MHz的时钟。如果要支持超过200MHz的时钟频率,设计人员可以以系统速率对数据进行采样。

无需重新编译,即可增加节点,更改信号选择或改变触发条件

SignalTap II逻辑分析仪无需进行完整的设计重新编译,即可进行逐步增加节点,决定所要采样的信号,改变触发条件等。此功能节省了大量的设计时间。

助记和基数表

当需要处理许多信号时,所捕获的信号易读、易懂是非常重要的。SignalTap II软件同时具有助记功能(名称同比特图样相联系)和可选择基数表功能(二进制、八进制、十六进制、无符号、符号以及二元补码等)。助记功能可以同数据波形视图中的一组信号相关联。助记表可以根据信号组中比特的数量进行定义。如果相同比特长度定义了多个助记表,用户可以指定特定的信号组应采用哪个表。用户可以从一个SignalTap II文件输入助记表到另一个文件中。

多总线显示格式

另一个使所捕获的数据更加易懂的方式是以用户指定的格式识别和显示总线。SignalTap II嵌入式逻辑分析仪能够以等价的十六进制,无符号十进制,二元补码形式的符号十进制,符号大小表示法表示的符号十进制、八进制、二进制、8比特ASCII等格式来显示总线。用户还可以选择条形图或者线性图表示总线时间关系。

多文件格式输出数据

SignalTap II嵌入式逻辑分析仪可以采用矢量波形 (.vwf)、矢量表(.tbl)、矢量文件 (.vec)、逗号分割数据 (.csv)和Verilog数值更改转存(.vcd) 文件格式输出所捕获的数据。这些文件格式可以被第三方验证工具读入,显示和分析SignalTap II嵌入式逻辑分析仪所捕获的数据。

使用SignalTap II逻辑分析仪调试FPGA例

相关推荐