逻辑分析仪自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级触发输入/输出,从而增加了采样的精度。
ela在fpga测试中的应用
嵌入式逻辑分析仪在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的采样深度zui大可达128kb。在选择采样深度时,必须考虑到fpga的内存大小,此处选择1kb的采样深度。
④设置缓冲获得模式。通过设置缓冲获得模式,用户可以在signaltap ii触发前和触发后所捕获的数据量,缓冲获得模式主要有环形模式和分段缓冲模式。在此选择环形模式的预触发位置。
⑤设置触发条件。signaltap ii支持基本触发和触发的功能。在基本触发中,它支持10级触发级数,对于每一级触发,可以根据设计的需要设置不同的触发电平。
本设计对signaltap ii的设置如图3所示,其中采样深度为1kb,缓冲获得模式选择环形模式的预触发位置,触发条件为基本触发;此外,采样时钟选择为全局时钟。这些设置能够准确地对本设计进行在线调试,有效地监测内部信号。
图3 signaltap ii设置窗口
3 设计下载
当设置完stp文件并编译综合后,软件将ela ip嵌入设计里面,同设计一起下载到fpga中。在器件列表中,逻辑分析仪会自动探测编程硬件,如果在保存设