逻辑分析仪SignalTaPⅡ在系统级调试中的应用
扫描二维码
随时随地手机看文章
摘要:嵌入式逻辑分析仪SignalTap II是Quartus II软件中第二代系统级调试工具,它可以用来捕捉目标芯片内部信号节点处的信息,而又不影响原硬件系统的正常工作。通过一个多波形信号发生器的设计实例,详细阐述SignalTap II的工作流程和参数设置方法。实验结果表明,该测试方法操作方便,实时性较高,能够加快系统的开发流程。
关键词:SignalTap II;测试;信号发生器
引言
随着微电子技术、微封装技术和印制板制造技术的不断发展,印制电路板面积越来越小,密度越来越大,复杂度越来越高,层数越来越多。故采用传统的硬件测试方法(如外探针测试法)来测试焊接上的器件,难度增大。而嵌入式逻辑分析仪的使用可以将高效的硬件测试手段和传统的系统测试方法相结合,从而解决这些问题。嵌入式逻辑分析仪实现了硬件测试的软件化,但它和验证逻辑正确性的软件仿真又有所不同。它可以用来捕捉目标芯片内部信号节点处的信息,而又不影响原硬件系统的正常工作,具有无干扰、便于升级、使用简单、价格低等特点。
1 SignalTap II原理及工作流程
SignalTap II逻辑分析仪是Quartus II软件中第二代系统级调试工具。它是一种基于逻辑分析核的嵌入式逻辑分析仪,不仅具备普通逻辑分析仪的触发、数据采集和存储功能,还可访问FPGA器件内部的所有信号和节点,在系统设计中观察硬件和软件的交互作用。SignalTap II专用于Quartus II软件,与其他嵌入式逻辑分析仪相比,它支持的通道数最多,抽样深度最大,时钟速率最高。目前SignalTap II逻辑分析仪支持的器件系列包括:Cyclone、Cyclone II、Cyclone III、APEXT II、APEX 20KE、APEX20KC、APEX20K、Excalibur、Mercury、Stratix GX、Stratix、Stratix II、Stratix III等。
SignalTap II的工作流程如图1所示。在FPGA运行过程中,当满足触发条件时SignalTap II将启动采样过程并将数据暂存于目标器件中的嵌入式RAM(如ESB、M4K)中,采样数据不断刷新片内存储器内容,然后通过器件的JTAG端口将捕获到的信号数据传出,送入计算机Quartus II开发环境中进行显示和分析。这样开发者可以在整个设计过程中以系统级的速度来观察硬件和软件的交互作用。此外,SignalTap II允许对设计中的所有层次的模块的信号节点进行测试,可以使用多时钟驱动,而且还能通过设置以确定前后触发捕捉信号信息的比例。
2 STP文件的参数设置
在图1所示的SignalTap II工作流程中,STP文件的参数设置是否恰当将直接影响采样与分析结果的好坏,故它在整个流程中是极其重要的。STP文件的参数设置主要包括以下几个方面:
①设置采样时钟。采样时钟决定了显示信号波形的分辨率,它的频率要大于被测信号的最高频率,否则无法正确反映被测信号波形的变化。SignalTap II在时钟的上升沿采样,可以使用设计系统中的任何信号作为采样时钟,根据Altera公司的建议最好使用同步系统全局时钟
作为采样时钟。但是在实际应用中,多数使用独立的采样时钟,这样能采样到被测系统中的慢速信号,故需将系统时钟进行分频。
②设置被测信号。可以在Node Finder窗口进行选择,添加要观察的信号。
③配置采样深度,确定RAM的大小。采样深度决定了待测信号采样存储的大小,它是根据设计中剩余的RAM块容量和待测信号的个数决定的。待测信号个数的增减和采样深度的深浅会直接改变RAM块的占用情况,采样深度的范围为0~128 KB。SignalTap II所能显示的被测信号波形的时间长度为Tx=N×Ts,其中N为缓存中存储的采样点数,Ts为采样时钟的周期。
④设置buffer acquisition mode。buffer acquisitionmode包括循环采样存储、连续存储两种模式。循环采样存储也就是分段存储,将整个缓存分成多个片段(segment),每当触发条件满足时就捕获一段数据。该功能可以去掉无关的数据,使采样缓存的使用更加灵活。通常选择循环采样存储,需要设置触发位置。触发位置允许指定在选定实例中在触发器之前和触发器之后应采集的数据量。Pre trigger position表示采样到的数据12%为触发前,88%为触发后;Center trigger position表示采样的数据处于触发前后各一半;Post trigger position表示采样到的数据88%为触发前,12%为触发后;Continuous triggerposilion表示以环形缓冲的方式进行连续采样保存,直到用户中断为止。
⑤触发级别。SignalTap II支持多触发级的触发方式,最多可支持10级触发,为设置复杂的触发条件提供了足够的灵活性,帮助验证检错。如果设置了多触发级别,直到所有的触发条件顺序满足后,才开始采集数据。
⑥触发条件。设定约束性的触发条件。可以设定单个信号的独立触发条件,直接采用单个外部或设计模块内部的信号;也可以允许多个节点信号的组合复杂触发条件构成触发函数的触发条件方程,以协助调试工作。当触发条件满足时,在SignalTap II时钟的上升沿采样被测信号。例如,使能信号EN与RST相与后触发,触发条件=ENA&RST。
当完成以上设置后,重新编译工程并将该设计下载到FPGA中,在Quartus II中SignalTap II窗口下查看逻辑分析仪捕获结果,并进行相关分析,完成系统测试。
3 实例分析
本文以一个多波形信号发生器为例,具体说明使用SignalTap II进行实时测试的具体过程。该设计基于Altera公司Cyclone II系列的EP2C8Q208C8。在Quartus II中完成的设计如图2所示。
设计的多波形信号发生器可以产生正弦波、三角波和方波,可以通过开关选择输出的波形。系统采用自顶向下的设计思想,底层采用VHDL语言编程和LPM_ROM模块实现,顶层采用原理图设计。图2中,rst为复位信号,sel[1..0]为波形选择信号,clk为主时钟,q[7..0]为输出信号。当sel=“00”时,输出正弦波;当sel=“01”时,输出三角波;当sel=“10”时,输出方波。系统由分频模块、正弦波模块(地址发生器模块和LPM_ROM模块)、三角波模块、方波模块和波形选择模块组成。
系统的RTL电路图如图3所示,双击图形中有关模块,或选择左侧各项,可逐层了解各层次的电路结构。
根据上述SignalTap II的工作流程,首先建立一个stp文件(stpl.stp),接着进行参数设置,如图4所示。调入待测信号q[7..0];采样时钟选为主频时钟信号CLK(50MHz)经过分频后的信号CLK1(100 kHz);在Buffer acquisition mode框中的Circulate栏设定采样深度中起始触发的位置,选择前点触发(Pre trigger position);采样深度设为1KB;触发级别选择1;触发信号选择rst,在Pattern栏选择上升沿触发方式。然后连接实验开板,进行编译下载。最后单击SignalTap II面板上的Autorun Analysis按钮,启动SignalTap II进行采样和分析。
在SignalTap II的采样之前,要进行相关设置,比如要观察产生的正弦波,先将拨码开关12(sel[1..O])设置为“00”(三角波时设置为“01”,方波是设置为“10”),再将拨码开关3(rst)由0变为1,产生一个上升沿,作为SignalTap II的采样触发信号。这时执行Autorun
Analysis,就能在SignalTapII数据窗观察到来自实验板上FPGA内部的实时信号,如图5所示。图中依次为正弦波、三角波和方波数据。数据窗的上沿坐标是采样深度的二进制位数,全程是1024位。
为了更直观地看到波形图,不需要进行数/模转换,直接右键单击所要观察的总线信号名,在弹出的下拉菜单中选择总线显示模式“Bus Display Format”为“Line Chart”,即可获得如图6所示的模拟信号波形。
从图5、图6可以看出输出结果和设计需求是一致的,验证了设计的正确性。如果采用传统的硬件测试方法,在本系统中还需要加入D/A转换模块,利用示波器观察波形。故利用SignalTap II进行系统的硬件测试是非常方便的,可以加快系统的开发流程。而在整个工作流程中,STP文件的参数设置是至关重要的,它直接影响测试结果。例如在本系统中,采样时钟采用分频后的信号,而不是采用主时钟,因为主时钟频率太高,不便于观察输出信号。另外还有触发信号的选择,启动采样前开关的设置,都会直接影响输出信号。
4 结论
嵌入式逻辑分析器SignalTap II克服了传统硬件测试的缺点,为系统测试提供了一个很好的途径。它具有实时性和可视性,减少了调试验证的时间,加快了设计周期。通过对Cyclone II系列EP2C8Q208C8器件的实验,证实该测试手段提高了系统的调试能力,具有很好的效果。在调试FPGA的时候,可以设置多个嵌入式测量模块等其他功能,这样可以加快系统的开发,为社会带来更大的经济效益。但是它需要占据FPGA资源(如RAM、LE等),且资源消耗量与需采集的数据量成正比,因此采集信号的深度不能过大。此外,当利用SignalT印II将芯片中的信号全部测试结束后,需将SignalTap II从设计中移除,以免浪费资源。