1.3 嵌入式逻辑分析仪的使用方法
随着逻辑设计复杂性的不断增加,仅依赖软件方式的仿真测试来了解设计系统(如CPU)的硬件功能已远远不能解决问题了,而且需要重复进行的硬件系统测试也变得更为困难。为了解决这些问题,设计者可以将一种高效的硬件测试手段和传统的系统测试方法相结合,这就是嵌入式逻辑分析仪的功能。它可以随设计文件一并下载于目标芯片中,用于捕捉目标芯片内部系统信号节点处的信息或总线上的数据流,而又不影响原硬件系统的正常工作,这就是Quartus II 6.0设置嵌入式逻辑分析仪SignalTap II的目的。在实际监测中,SignalTap II将测得的样本信号暂存于目标器件的嵌入式RAM(如ESB、M4K)中,然后通过器件的JTAG端口将测得的信息传出,送入计算机进行显示和分析。
嵌入式逻辑分析仪SignalTap II允许对设计中的所有层次的模块的信号节点进行测试,可以使用多时钟驱动,而且还能通过设置以确定前后触发捕捉信号的比例。
本节将以上面设计的计数器为例介绍SignalTap II的使用方法。
1.打开SignalTapII编辑窗口
选择菜单“File”的“New”命令,在New窗口中选择Other Files的SignalTap II File(见图1.2.2),单击“OK”按钮,即出现SignalTap II编辑窗口(见图1.3.1)。
2.调入待测信号
单击编辑窗口Instance栏内的auto_signaltap_0,更改此名,如改为cnts,这是其中一组待测信号名。为了调入待测信号名,在cnts栏的空白处双击,即弹出Node Finder窗口,单击“List”按钮,即在左栏出现与此工程相关的所有信号,包括内部信号。选择需要观察的信号名,即4位输出总线信号CQ、内部4位锁存器总线CQI信号和COUT,然后单击“OK”按钮即可将这些信号调入SignalTap II信号观察窗口(见图1.3.1)。注意,不要将工程的主频时钟信号CLK调入信号观察窗口,因为在本项设计中打算调用本工程的主频时钟信号CLK兼作逻辑分析仪的采样时钟。此外如果有总线信号,则只需调入总线信号名即可;慢速信号可不调入;调入信号的数量应根据实际需要来决定,不可随意调入过多的、没有实际意义的信号,这会导致SignalTap II无谓地占用芯片内过多的存储器。
图1.3.1 SignalTap II编辑窗口(1)
3.SignalTap II参数设置
单击全屏按钮和窗口左下角的Setup页,即出现如图1.3.2所示的全屏编辑窗口。
图1.3.2 Signal Tap II编辑窗口(2)
首先输入逻辑分析仪的工作时钟信号Clock。单击Clock栏左侧的“...”按钮,即出现Node Finder窗口,为了说明和演示方便,选择计数器工程的主频时钟信号CLK作为逻辑分析仪的采样时钟,接着在Data框的Sample栏选择采样深度为1Kb。注意这个深度一旦确定,则cnts信号组的每一位信号都获得同样的采样深度,所以必须根据待测信号的采样要求、信号组总的信号数量及本工程可能占用ESB/M4K的规模综合确定采样深度,以免发生M4K不够用的情况。
然后根据观察信号的要求,在Buffer acquisition mode框的Circulate栏设定采样深度中起始触发的位置,比如选择前触发,即Pre trigger position。
最后选择触发信号和触发方式,这可以根据具体需求来选定。在Trigger框的Trigger levels栏进行选择,选中小trigger框(见图1.3.2右下角),并在Source栏选择触发信号。在此选择cnts工程中的EN作为触发信号,在Pattern栏选择上沿触发方式,即在测得EN的上沿后,SignalTap II在CLK的驱动下根据设置cnts信号组的信号进行连续或单次采样。
4.文件存盘
选择菜单“File”的“Save As”命令,输入SignalTap II文件名为cnt10.stp1(默认后缀),单击“保存”按钮,将出现一个提示(见图1.3.2):“Do you want to enable SignalTap II...”,单击“是”按钮,表示同意。再次编译时将此SignalTap II文件(核)与工程(CNT10)捆绑在一起综合/适配,以便一起下载到FPGA芯片中去完成测试任务。
如果单击“否”按钮,则必须自己来设置,方法是选择菜单“Assignments”的“Settings”命令,在其Category栏中选择SignalTap II,即弹出一窗口。在此窗口的SignalTap II File栏选中存盘的SignalTap II文件名,如CNT10.stp1,并选中Enable SignalTap IILogic Analyzer,单击“OK”按钮即可。
但应该特别注意,在利用SignalTap II将芯片中的信号全部测试结束后,如在构成开发完成后的产品前,不要忘了将SignalTap II从芯片中除去。方法也是在上述窗口中关闭Enable SignalTap II Logic Analyzer项,再编译、编程一次即可。
5.编译下载
首先选择“Processing”菜单的“Start Compilation”命令,启动全程编译。编译结束后,SignalTap II的观察窗口通常会自动打开,若没有打开,则可选择菜单“Tools”的SignalTap II Analyzer,打开SignalTap II。
然后打开实验开发系统的电源,连接JTAG口,设定通信模式。单击图1.3.3所示右上角的“Setup...”按钮,选择硬件通信模式:USB-Blaster、SignalTap II或ByteBlasterMV。单击下方的Device栏中的“Scan Chain”按钮,对实验板进行扫描。如果在栏中显示为FPGA的型号,则表示系统JTAG通信情况正常,可以进行下载。
图1.3.3 下载CNT10.sof并准备启动SignalTap II
最后是在File栏选中下载文件(CNT10.sof)。单击左侧的下载标号,观察左下角处的下载信息。下载成功后,设定实验板上的电路模式No.5和恰当的控制信号(EN=1、RST=0),使计数器工作,CLK频率可在CLK0处设为65 536Hz或更高。
6.启动SignalTap II进行采样与分析
如图1.3.3所示,单击Instance名“cnts”,再单击“Autorun Analysis”按钮,启动SignalTap II。单击左下角的Data页和“全屏控制”按钮,然后按键1(EN),使之由低到高产生一个上升沿,作为SignalTap II的采样触发信号,这时就能在SignalTap II数据窗口的JTAG口观察到来自实验板上FPGA内部的实时信号(见图1.3.4,用鼠标的左键或右键放大或缩小波形)。数据窗口的上沿坐标是采样深度的二进制位数,全程是1 024b(前位触发在12%深度处)。
单击总线名(见图1.3.3)左侧的“+”按钮,同时可右击来控制数据的展开和收缩。此外,如果希望观察到将要形成模拟波形的数字信号波形,可以右击所要观察的总线信号名(如CQI),在弹出的下拉菜单中选择总线显示模式Bus Display Formant为Unsigned Line Chart,即可获得如图1.3.4所示的模拟信号波形。
图1.3.4 SignalTap II数据窗设置后的信号波形
注意:在以上给出的示例中,为了便于说明,SignalTap II的采样时钟选用了被测电路的工作时钟。但在实际应用中,多数使用独立的采样时钟,这样就能采集到被测系统中的慢速信号或与工作时钟相关的信号(包括干扰信号)。
SignalTap II提供独立时钟的方法是在顶层文件的实体中增加一个时钟输入端口,如LOGC_CLK:IN STD_LOGIC;在此实体中不必对其功能和连接具体定义,而只要在SignalTap II的参数设置中选择LOGC_CLK为采样时钟即可。
注意:可以使用SignalTap II逻辑分析仪窗口的Signal Configuration面板设置触发器选项;可以给逻辑分析仪配置最多十个触发器级别,以便用户可以只查看最重要的数据;可以指定四个单独的触发位置,即前、中、后和连续。触发位置允许指定在选定测试模块中、在触发器之前和触发器之后采集的数据量。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。