[推荐]嵌入式逻辑分析仪在FPGA测试中的应用(图)
逻辑分析仪自1973年问世以来,在短短几十年的时间内得到了迅速的发展。传统逻辑分析仪利用芯片的引脚对信号采样,并送到显示部分对系统进行分析,但对于无引脚的封装类型,传统逻辑分析仪很难有效的监测系统内部信号。而在FPGA测试中,嵌入式逻辑分析仪(ELA)的出现解决了内部信号的在线调试问题。ELA综合了嵌入式技术和逻辑分析仪技术,将逻辑分析IP核嵌入到FPGA中,在不引出内部信号的情况下即可方便的对系统进行调试。常用的嵌入式逻辑分析仪有Altera公司的SignalTap II、Xilinx公司的ChipScope Pro以及Lattice公司的ispTRACY等。本文以Altera公司的SignalTap II为例,对嵌入式逻辑分析仪的工作原理及在线调试进行探讨。
ELA的工作原理及特点
嵌入式逻辑分析仪的组成框图如图1所示,主要分为硬件部分和软件部分。硬件部分由待测设计(DUT)、嵌入到FPGA中的ELA IP核、RAM存储单元以及JTAG接口组成;软件部分由用户设计软件和集成在其中的ELA在线调试软件组成。ELA的工作原理为:设置ELA在线调试软件中需要监测的信号、触发逻辑、采样深度和时钟信号等各项参数;把设置好的ELA文件与用户设计编译综合后一起下载到FPGA中;运行ELA,如果满足触发条件,ELA就在时钟的上升沿对被测信号采样,并储存在RAM存储单元中;当采样完数据,即可通过JTAG接口将数据上传到SignalTap II中进行在线调试。
图1 嵌入式逻辑分析仪的组成框图
嵌入式逻辑分析仪能够方便地对设计进行在线调试,及时发现系统内部所存在的问题,无须对设计文件进行任何修改就可以得到内部节点或者I/O引脚的状态。例如,SignalTap II 支持多达1024个通道,采样深度高达128Kb,时钟支持超过200MHz,每个分析仪均有10级触发输入/输出,从而增加了采样的精度。
嵌入式逻辑分析仪在FPGA的测试中应用极为广泛,能够对系统实时监测。本文以交通灯控制器的设计为例,对SignalTap II应用于FPGA的在线调试进行了探讨。设计中所使用的FPGA芯片为Altera公司Cyclone系列中的EP1C12Q240C8,它支持SignalTap II,有12 060个逻辑单元,存储位的大小为239 616,能够较好的支持各种复杂的设计。
ELA的应用设计流程如下。
1 Stp文件的创建
在交通灯控制器的设计完成并编译综合后,即可创建一个SignalTap II文件(stp文件)。通常有两种方式来建立stp文件,一是直接建立stp文件,并利用SignalTap II Editor配置逻辑分析仪的各项参数;二是利用MegaWizard Plug-in Manager生成和配置stp文件。相比于第二种方式,第一种更为简单,只需在File中选择New,单击Other Files,选择SignalTap II File即可,如图2所示。
图2 Stp文件的载入
2 ELA的设置
将stp文件加入到设计中后,就可以对其进行设置,流程如下。
①添加被测信号。通过Node Finder中的SignalTap II Filter查找设计中所有预综合和布局布线后的信号,选择需要观察的信号,在本设计中,可以全部选定。
②设置采样时钟。在设置采样时钟时,可以使用其中任何一个信号作为采样时钟,但不能用布局布线后的信号,为获得更准确的采样数据,采样时钟应选择全局时钟。
③确定采样深度。SignalTap II的采样深度最大可达128Kb。在选择采样深度时,必须考虑到FPGA的内存大小,此处选择1Kb的采样深度。
④设置缓冲获得模式。通过设置缓冲获得模式,用户可以指定在SignalTap II触发前和触发后所捕获的数据量,缓冲获得模式主要有环形模式和分段缓冲模式。在此选择环形模式的预触发位置。
⑤设置触发条件。SignalTap II支持基本触发和高级触发的功能。在基本触发中,它支持10级触发级数,对于每一级触发,可以根据设计的需要设置不同的触发电平。
本设计对SignalTap II的设置如图3所示,其中采样深度为1Kb,缓冲获得模式选择环形模式的预触发位置,触发条件为基本触发;此外,采样时钟选择为全局时钟。这些设置能够准确地对本设计进行在线调试,有效地监测内部信号。
图3 SignalTap II设置窗口
3 设计下载
当设置完stp文件并编译综合后,软件将ELA IP嵌入设计里面,同设计一起下载到FPGA中。在器件列表中,逻辑分析仪会自动探测编程硬件,如果在保存设计前已经选好了FPGA中所使用的芯片,就会自动给出已经选好的器件,若没有选择,则需要在器件列表中选择。当器件连接成功,在SOF(SRAM Object File)管理器中选择需要下载的SOF文件,单击下载按钮即可将设计下载到FPGA中,如图4所示。
图4 设计下载窗口
4 在线调试
在线调试即利用JTAG接口将数据上传到调试软件中,根据实时运行的结果来对设计进行调试。本设计所实现的功能是在时钟信号的控制下,根据当前的状态决定下一个时钟周期的输出,即红灯、绿灯和黄灯的开启。在绿灯开启时,红灯和黄灯关闭,而在红灯开启时,绿灯及黄灯关闭。两组红、绿、黄灯为输出信号,8个状态为内部信号。
图5 SignalTap II数据窗的实时监测信号
设计中所得到的波形如图5所示,从图5中可以看出,对于第一组灯,在state.st3时,黄灯开启,绿灯及红灯都关闭,一个时钟周期后,跳转到state.st4,黄灯关闭,同时红灯开启;四个时钟周期后,跳转到state.st0,红灯关闭,同时绿灯开启,黄灯继续关闭;三个时钟周期后,再次跳转到state.st3,黄灯开启,绿灯关闭;一个时钟周期后,跳转到state.st4,黄灯关闭,红灯开启。对于第二组,其红绿灯的转换也是一样的不断循环,这样就实现了红绿黄灯的交替变化。
在线调试得到的波形与交通灯控制器设计中所要求的功能完全吻合,在上述调试过程中,嵌入式逻辑分析仪对内部的8个状态能够很好的监测,保证了设计的正确。
在调试过程中,用户可以很方便的开始或暂停ELA,对内部信号进行分析。如果需要修改设置,如采样深度或触发条件,只需停止运行ELA,完成修改后重新编译综合即可,缩短了调试时间。
评论