以文本方式查看主题

-  曙海教育集团论坛  (http://peixun0.cn/bbs/index.asp)
--  FPGA初中级  (http://peixun0.cn/bbs/list.asp?boardid=25)
----  SignalTapII ELA的FPGA在线调试技术  (http://peixun0.cn/bbs/dispbbs.asp?boardid=25&id=1526)

--  作者:wangxinxin
--  发布时间:2010-11-19 14:07:29
--  SignalTapII ELA的FPGA在线调试技术

在设计基于FPGA的电子系统时,一般需要用示波器、逻辑分析仪等外部测试设备进行输入输出信号的测试,借助测试探头把信号送到测试设备上进行观察分析。当然,前提是需要保留足够多的引脚,以便能选择信号来驱动I/O进行测试。但是外部的测试设备在测试FPGA系统时,常会遇到这样的情况:FPGA的I/O引脚数量不够丰富,PCB布线和封装丁艺复杂导致I/O引脚引出困难,外部测试探头有影响FPGA信号时序和完整性的可能。

如果能在FPGA内部嵌入具有外部测试设备功能的逻辑测试模块,那么以上问题就可以一一解决。SignalTapII就是这样一种嵌入式逻辑分析器(embedded logicanaIyzer),简称为SignalTapII ELA。它是QuartusII软件中集成的内部逻辑分析软件,使用它可以实时观察内部信号波形,方便用户查找设计的缺陷。

1  SignalTapII ELA的原理

SignalTapII ELA是Quartus软件中第二代系统级调试工具。将SignalTapII ELA代码和系统逻辑代码组合交由QuartusII编译、综合、布局布线,生成sol文件中内含SignalTapII ELA,把sof文件配置到FPGA内。FPGA运行时,一旦满足待测信号的触发条件,SignalTapII ELA就立即启动,按照采样时钟的频率捕获待测信号数据并暂存于FPGA片内的RAM中,采样数据不断刷新片内存储器,最后通过JTAG口将捕获的信号从片内RAM传至Quartus II实时显示。SignalTapII ELA的原理流程如图1所示。

实际工程中,加入SignalTapII ELA不会影响系统原有的逻辑功能。

2  SignalTapII ELA的配置

SignalTapII ELA基本配置过程如下:

①添加采样时钟。SignalTaplI ELA在时钟的上升沿进行采样,可以使用设计系统中的任何信号作为采样时钟,根据Altera公司的建议最好使用同步系统全局时钟作为采样时钟。但是在实际应用中,多数使用独立的采样时钟,这样能采样到被测系统中的慢速信号,或与工作时钟相关的信号。当然采样时钟的频率要大于被测信号的最高频率,否则被测信号波形会有较大误差。

②定义采样深度。采样深度决定了待测信号采样存储的大小,而可以采样的深度是根据设计中剩余的RAM块容量和待测信号的个数决定的。若待测信号较多,则在同样I/O Bank个数情况下采样深度较浅。待测信号个数的增减和采样深度的深浅会直接改变RAM块的占用情况,采样深度的范围为0~128 KB。

③定义RAM类型。设置占用片内何种RAM块资源,随着采样深度的改变,RAM块的数据线和地址线宽度可以分割成多种组合。例如:采样深度是1 KB,RAM数据线、地址线可以分割成2×512或4×256等多种组合。依此类推。

④定义触发位置。Pre trigger position表示采样到的数据12%为触发前,88%为触发后;Center trigger position表示采样的数据处于触发前后各一半;Post trigger position表示采样到的数据88%为触发前,12%为触发后。

⑤触发条件级数设置。SignalTapII ELA支持多触发级的触发方式,最多可支持10级触发,帮助滤除不相干的数据,更快地找到需要的数据。若有多级触发条件,首先分析第一级触发条件。若第一级为TRUE,则转到分析第二级是否满足,直到分析完所有触发条件均为TRUE才最终触发时钟采样数据。

⑥触发条件。设定约束性的触发条件。可以允许单个信号的独立触发条件Basic,直接采用单个外部或设计模块内部的信号;也可以允许多个节点信号的组合触发条件Advanced,构成触发函数的触发条件方程。例如:使能信号ENA与4位输出信号Q相与后触发,触发条件=ENA&(Q=15)。