SignalTapII学习简明教程

SignalTapII学习简明教程

一.引言

在诸多数字系统设计书籍资料中,关于FPGA开发的基本和流程,几乎都介绍到了嵌入式逻辑分析仪(或称之为虚拟逻辑分析仪)的相关知识,包括为什么要有这样的在线调试逻辑分析仪,它可以做什么,什么情况下使用,基于什么样的原理,有哪些逻辑分析仪等等。读者在知道了它的种种之后,存在脑袋中的很大疑问就是如何使用,那么本篇章就将带领大家解开这些疑团,教给读者如何使用基于Altera厂商的SignalTapII对具体的工程进行在线调试。

二.背景知识回顾

如果您是经验丰富的FPGA数字系统设计工程师或者已经掌握SignalTap II的原理或者更喜欢Follow Me直接动手操作,那么完全可以跳过这一小节。但是,笔者仍要照顾到FPGA初学者,帮助他们从浩繁的资料中解脱出来,用简短且通俗易懂的描述,使其迅速建立一定的基础,以便轻松掌握SignalTap II工具的使用。正如至芯的目标:FPGA培训专家,而不是扮演手册翻译工的角色。好,直奔主题,让我们先看一组术语:

在线调试 :

在线调试也称作板级调试,它是将工程下载到FPGA芯片上后分析代码运行的情况。有人会以为,我们已经做过仿真了,甚至是时序仿真都通过了,还会存在问题么?但是在实际中,还有以下情况我们需要用到在线调试:

1、仿真不全面而没有发现的FPGA设计错误。很多情况下,由于太复杂,无法做到100%的代码覆盖率;

2、在板级交互中,存在异步事件,很难做仿真,或者仿真起来时间很长,无法

运行;

3、除了本身FPGA外,还可能存在板上互连可靠性问题、电源问题和IC之间的信号干扰问题,都可能导致系统运行出错; 4、其他潜在问题。

在线调试的方式主要有两种,一种是利用外部测试设备,把内部信号传送到FPGA针脚上,然后用示波器或者逻辑分析仪观察信号,如图1、图2所示;另一种就是利用嵌入式逻辑分析仪,在设计中插入逻辑分析仪,利用JTAG边缘数据扫描和开发工具完成数据交互。

嵌入式逻辑分析仪的原理相当与在FPGA中开辟一个环形存储器,如图3、图4,存储器的大小决定了能够查看的数据的深度(多少),是可以人为设定的,但是不得超出FPGA所含有的逻辑资源。在FPGA内部,根据设置的需要查看的信号节点信息和驱动的采样时钟,对信息进行采样,并放置到设定的存储空间里,存储空间内容随时间更新。然后通过判断触发点来检查采集数据,一旦满足触发条件,这个时候会停止扫描,然后将触发点前后的一些数据返回给PC端的测试工具进行波形显示,供开发者进行调试。

目前的在线调试工具基本都是和本身的FPGA开发平台挂钩,不同FPGA厂

商都会有自己的软件开发平台,嵌入式逻辑分析仪也就不同。Altera 厂家在QuartusII软件开发平台中集成是SignalTapII嵌入式逻辑分析仪,工具的具体使用在后面详细讲解。

图表1 图表2

外部逻辑分析仪 :

传统的外部逻辑分析仪和示波器类似,但是就像图1、图2所展示的,在测

试复杂的FPGA设计时,会面临如下一些问题:

1、缺少空余I/O引脚。设计中器件的选择依据设计规模而定,通常所选器件的I/O 引脚数目和设计的需求是恰好匹配的。

2、I/O 引脚难以引出。设计者为减小电路板的面积,大都采用细间距工艺技术,在不改变PCB 板布线的情况下引出I/O 引脚非常困难。

3、外接逻辑分析仪有改变FPGA设计中信号原来状态的可能,因此难以保证信号的正确性。 4、传统的逻辑分析仪价格昂贵,将会加重设计方的经济负担。

嵌入式逻辑分析仪 :

SignalTap II基本上采用了典型外部逻辑分析仪的理念和功能,却无需额外的

逻辑分析设备、测试I/O、电路板走线和探点,只要建立一个对应的.stp文件并做相关设置后,与当前工程捆绑编译,用一根JTAG 接口的下载电缆连接到要调试的FPGA 器件即可。SignalTap II 对FPGA 的引脚和内部的连线信号进行捕获后,将数据存储在一定的RAM 块中。因此,用于保存采样时钟信号和被捕获的待测信号的RAM 块,同时也会占用逻辑资源(LE)、Memory资源(Block RAM)和布线资源。占用逻辑资源的多少基于信号或者被监测的通道数量,以及触发条件的复杂程度;所使用的存储器数量取决于被监测的通道数量和采样深度。理论上可支持1024个通道,每个通道可采集128k Bit数据,但是这两个极限值没办法同时满足,因为若同时满足,则等价于占用32768个M4K模块,没有FPGA器件能够提供那么多存储器资源。所以在存储资源方面,传统外部逻辑分析仪的优势就体现出来了。

图表3 图表4

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4