为此,主流FPGA厂商相继在其开发工具中增加了嵌入式逻辑分析仪(ELA) IP软核,如Lattice在ispLEVER中提供的ispTRACY,Xilinx在ISE中提供的ChipScopePro,Altera在Quartus II提供中的Signal Tap II等。ELA在FPGA内部预先设计探测点和测试逻辑,可在软件工具的配合下对FPGA设计进行较全面的测试。采用ELA,只需用JTAG下载电缆连接待调试的FPGA器件,占用FPGA的部分逻辑资源和内部存储器资源,无需传统的逻辑分析仪就可以观察FPGA的内部信号和I/O引脚的状态。
以我们开发的全彩LED同步显示控制系统为例,该系统包括采集、传输、接收等模块,FPGA为Altera Cyclone系列PQFP封装的EP1C6Q240C8,逻辑单元(LE)数量为5980个,RAM大小为92160 bit。使用Quartus II软件首次对设计文件进行综合布局和布线,将布线好的工程下载到FPGA板上运行时,全彩LED屏显示效果非常差,图像闪烁且左右移动。根据Quartus II编译报告可以看出,该工程消耗的器件资源仅为26%,但是却占用了90%的引脚,留给外部测试的引脚仅为10%,使得利用Quartus II内部集成软件测试的优势得以体现。为了找出设计缺陷,采用Signal Tap II采集到FPGA内各个关键信号的波形,根据波形找出原因在于LED显示屏接收板中的数据信号较控制信号形成了延时,造成了时序不匹配。
本文介绍的FPGA时序匹配设计方法,利用Quartus II软件中的Signal Tap II采集FPGA内部信号波形,通过比较分析采集的数据,可得出精确的延时信息。在Signal Tap II时序测试结果的指导下改进了设计,经实际电路的波形测试证明,LED显示屏接收板中的数据信号与控制信号时序匹配良好。
Signal Tap II
Signal Tap II是Altera公司FPGA开发软件Quartus II中的一个实用工具,能够捕获、显示FPGA内部节点或I/O引脚实时信号的状态,帮助设计者在系统设计时观察硬件和软件的交互作用。
图1为Signal Tap II嵌入式逻辑分析仪采集数据的原理框图。其中CLK(采样时钟)和Trigger(触发逻辑)可以根据需要设定。在Signal Tap II工作时,待测试信号在CLK的上升沿被嵌入式逻辑分析仪实时捕获,经FPGA内部的RAM缓存后,通过JTAG接口传送至Quratus II软件中显示。其中,RAM缓存方式有连续存储和分段存储。JTAG接口用的下载电缆包括USB Blaster、ByteBlasterMV、ByteBlaster II或MasterBlaster等。这些在Signal Tap II工作窗口可以灵活设置。
嵌入式逻辑分析仪捕获数据的流程如图2所示。首先判断时钟的上升沿是否满足,不满足继续等待时钟,满足先捕获前触发数据,触发级别满足后,捕获后触发数据,然后清除数据,结束该捕获流程。其中Signal Tap II最多可支持10级触发级别。触发级别高意味着可接收更复杂的数据获取命令,提供更高的精度和问题解决能力。
根据理论计算,一个D触发器会带来一个clk156的时钟的延时,那么要延时9个clk38的时钟必须使用36个D触发器。实际上,D触发器固定的建立时间、保持时间,也会带来系统延时。根据Signal Tap II采集的波形对D触发器的个数进行适当的删减,达到了精确的9个clk38时钟的延时,最后的时序匹配模块由34个D触发器构成。
图7为Signal Tap II采集时序匹配模块的波形输出。其采样时钟为38MHz,采样深度为4K bit。rgb_regroup_output[23..0]为位面分离后红色输出的数据。可以看出,输出数据在flag_delay9的上升沿开始由 FFh(高阻)变成有效数据00h,达到了数据和控制信号的完全同步。
该时序匹配模块仅为LED同步显示控制系统中一个最简单的模块,用于示例说明嵌入式逻辑分析仪Signal Tap II在FPGA时序匹配设计中的应用方法。应用Signal Tap II还能解决各种各样的问题,如外部存储器的双向数据口的实时波形检测、驱动模块的并串转换波形等。使用Signal Tap II有如下优点:
不占用额外的I/O引脚。利用Signal Tap II成功的采集了FPGA内部信号的波形,如flag,flag_delay8,flag_delay9等都为FPGA内部寄存器信号。
Signal Tap II为硬件板级调试工具,它采集的波形是工程下载后的实时波形,方便设计者查找引起设计缺陷的原因。
节约成本。Signal Tap II集成在Quartus II软件中,无需另外付费。
使用Signal Tap II时应注意:
用Signal Tap II 采集数据时,应符合采样定律,即采样频率必须是信号最大频率的两倍或更高,否则采集到的波形会失真或者是一条全低的直线。
采样深度决定了每个信号可存储的采样数目,信号的数量和采样深度的乘积不能超过所选FPGA芯片内部RAM的大小,添加待观察信号、设置了采样深度后,可以根据Signal Tap II的Instance Manager 窗口观察内部存储资源的使用情况。如果观察的信号数量多,采样深度设置受到限制,此时灵活设置触发条件相当必要。图4和图7采集的波形都是以设置 RGBdin[23..16]为00h为触发条件,如图4,7中的虚线所示。
Signal Tap II必须工作在JTAG方式,调试完成后应将Signal Tap II文件移除,以免浪费FPGA资源。
结语
时序匹配是FPGA电路设计中的一个重要问题,介绍了一种应用嵌入式逻辑分析仪Signal Tap II捕获FPGA内部信号波形的方法,通过比较分析采集的数据,可得出精确的延时信息,指导FPGA时序匹配的设计。
以LED全彩大屏同步显示控制系统中显示驱动控制部分的位面分离模块为例,在嵌入式逻辑分析仪Signal Tap II的时序测试结果的指导下,设计一个由34个D触发器构成的时序匹配模块,经实际电路的波形测试证明,信号时序匹配良好。