嵌入式逻辑分析仪在FPGA设计中的应用
扫描二维码
随时随地手机看文章
1 引言
目前在设计和验证超高密度FPGA时一般采用逻辑分析仪、示波器和总线分析仪,通过测试头和连接器把信号送到仪器上,设计者必须提供足够的I/O引脚进行全方位的检测,以及配置足够的引脚。加入额外的逻辑,以便能选择信号来驱动I/O引脚进行测试。这种方法虽能减少测试时所需配置的I/O引脚数量,但步骤繁琐。此外,随着FPGA复杂度的增加,I/O引脚大都采用细间距工艺技术,使得引出I/O引脚变得很困难,本文所介绍的方法是在FPGA设计中插入逻辑分析核,他具有普通逻辑分析仪的功能,包括触发、数据采集和存储等。利用逻辑分析核,用户可以访问FPGA器件内部所有信号和节点,来自内部逻辑电路的信号可以通过FPGA中的高速互连转移到内部存储器。这些信号以系统时钟速率传送,延迟很小。
Altera公司的Quartus Ⅱ软件中的SignalTap Ⅱ就是这样一种基于逻辑分析核的嵌入式逻辑分析仪,他满足了FPGA开发中硬件调试的要求,并且具有无干扰、便于升级、使用简单等特点。
2 SignalTap Ⅱ 的特点和使用方法
SignalTap Ⅱ 逻辑分析仪是第二代系统级调试工具,能够获取、显示可编程片上系统(SOPC)的实时信号,帮助设计者在其系统设计中观察硬件和软件的交互作用,在可编程逻辑市场上,上,SignalTap Ⅱ 逻辑分析仪专用于Quartus Ⅱ 软件,与其他嵌入式逻辑分析仪相比,他支持的通道数最多,抽样深度最大,时钟速率最高。Quartus Ⅱ 软件4.0以及以后版本还提供了图形界面,定义了特定触发条件逻辑,实现更高的精度,解决问题的能力更强。SignalTap Ⅱ 嵌入式逻辑分析仪不需要对用户设计文件进行任何的外部探测或者修改,就可以得到内部节点或者I/O引脚的状态,目前SignalTap Ⅱ 逻辑分析仪支持的器件系列包括:Stratix Ⅱ,Stratix,Stratix GX,Cyclone Ⅱ,Cyclone,APEX Ⅱ,APEX 20KE,APEX 20KC,APEX 20K,Excalibur和Mercury。
在设计中嵌入SignalTap Ⅱ逻辑分析仪有2种方法:第一种方法是建立一个SignalTap Ⅱ(.stp),然后定义STP文件的详细内容;第二种方法是用Mega Wizard Plun-In Manager建立并配置STP文件,然后用Mega Wizard实例化一个HDL输出模块,图1给出了用这两种方法建立和使用SignalTAP Ⅱ逻辑分析仪的过程。
图2所示为SignalTap Ⅱ的编辑窗,以此介绍设置SignalTap Ⅱ文件的基本流程。
设置采样时钟 采样时钟决定了显示信号波形的分辨率。采样时钟在上升沿处采集数据,建议最好使用全局时钟而不要使用门控时钟作为采样时钟。
设置被测信号 可以使用Node Finder中的Filter查找所有综合和布局布线的SignalTap Ⅱ节点,添加要观察的信号,逻辑分析仪不可测试的信号包括:逻辑单元的进位信号、PLL的时钟输出、JTAG引脚信号、LVDS(低压差分)信号。
设置采样深度 存储每一个信号所需要的采样数,采样深度的范围从0-128kB。设置Buffer acquisition mode buffer acquisition mode包括的Circular和Segmented两种模式,每当触发条件满足使就捕获一段数据,该功能可以去掉无关的数据,使采样缓存的使用更加灵活。
触发级数 SignalTap Ⅱ支持多级触发的触发方式。,最多可支持10级触发。
触发类型 可以选择basic和advanced两种类型,如果选择basic,在STP文件中必须为每个信号设置触发模式,SignalTap Ⅱ逻辑分析仪中有6种触发模式可供选择;如果选择advanced,则设计者必须为逻辑分析仪建立触发条件表达式。
3 实例分析
本文以一个正弦信号发生器为例,具体说明使用嵌入式逻辑分析仪进行实时测试的具体过程,本文的设计实例是基于Altera公司Cyclone系列的EP1C6Q240C8。
图3是正弦信号发生器的结构图,其顶层设计文件由VHDL语言设计完成,及设计包含2个部分:ROM的地址信号发生器,由6位计数器担任;一个正弦数据ROM,由LPM_ROM模块构造,LPM_ROM底层是FPGA的EAB,ESB和M4K等模块,地址发生器的时钟CLK的输入频率f0与每个周期的波形数据点数(以64点为例)以及D/A输出的频率关系是:f=f0/64,硬件描述语言设计的正弦信号发生器所对应的RTL电路图如图4所示。
根据上述SignalTap Ⅱ的使用步骤,首先调入待测信号,这里,选择2组信号:8位输出总线信号DOUT和地址发生计数器内部锁存器总线Q1信号,对SignalTap Ⅱ的参数进行设置,逻辑分析仪的采集时钟选为工程的主频时钟信号CLK,采样深度设为1kB,根据待观察信号的要求,在Buffer acquisition mode框中的Circulate栏设定采样深度中起始触发的位置,最后选择触发信号和触发方式,根据实际的设计要求,在Trigger框中的Trigger栏选择1;选中Trigger前面的复选框,并在Source栏选择触发信号,在此选择地址计数器的最高位Q1[5]作为触发信号,在Pattern栏选择上升沿触发方式。
外部实验开发系统连接好,进行编译下载,单击SignalTap Ⅱ面板上的Autorun Analysis按钮,启动SignalTap Ⅱ进行采样和分析,这时就可以从SignalTap Ⅱ数据窗通过JTAG口观察到来自实验板上FPGA内部的实时信号,该实例的输出信号如图5所示。
4 结语
通过以上实例,不难发现采用Altera公司的SignalTap Ⅱ嵌入式逻辑分析仪为芯片测试提供了一个很好的途径可以大大降低设计成本,加快设计周期。用户无需外接专用仪器,就可以通过FPGA器件内部所有信号和节点的捕获对系统故障进行分析和判断,需要注意的是,SignalTap Ⅱ嵌入式逻辑分析需工作在JTAG方式,在调试完成后,需将SignalTap Ⅱ移除设计,以免浪费资源。可以预见,SignalTap Ⅱ嵌入式逻辑分析仪必将在FPGA设计中获得广泛应用。