数字信号处理(DSP )系统测试和调试2
JTAG 技术简介
收缩技术(shrinking technology)的一个劣势在于,测试小型器件的复杂程度急剧升高。当电路板面积较大时,板的测试是通过采用钉床等技术来进行的。这种技术采用小型弹簧式测试探针来和板底部的焊盘进行连接。这种测试方案是定制的,不仅成本太高,而且效率低下,而且在设计完成之前很多测试都无法进行。
随着电路板面积的缩小,以及表面贴装技术的改进,钉床测试的问题不断增多。
而且,如果一块电路板两面都安插了器件,根本无法留下任何可使电路板安放到测试器件上的依附点。
边界扫描(Boundary scan)
1985 年,一个欧洲电子公司组织联合起来,试图寻找能够解决这些问题的方案。该组织名为联合测试行动组,制定了一个用于在集成电路级别上进行边界扫描硬件测试的规范。1990 年,IEEE 将该规范制定为IEEE 1149.1 标准,在其中说明了通过一个JTAG 端口接入任何芯片的详情。
边界扫描技术可以通过少数的专用测试管脚在嵌入式系统上进行大量调试和诊断。信号被连续扫描进出器件的I/O 单元,以在各种情况下控制其输入并测试输出。如今,边界扫描技术几乎成为业界最为流行并通用的可测性设计技术。
测试管脚
系统中的器件是通过一组I/O 管脚来和外界通信的。如果只靠这些管脚本身,我们无法详细了解器件内部的情况。但是,支持边界扫描的器件中有一种位移寄存器,器件的每个信号管脚都有一个。如图5 所示,这些寄存器以一个特别的路径连接在器件的边界上(边界扫描因此而得名)。这样就将每个普通输入端口都包围起来,并直接控制器件及输出端上的可视性。
图5 一个采用了JTAG 边界扫描的标准集成电路
在测试中,器件的I/O 信号通过边界扫描单元进出芯片。经过配置,边界扫描单元可以支持外部测试,以测试芯片间的互联,也可以支持内部测试,测试芯片内部的逻辑。
为了提供边界扫描功能,IC 厂商必须在他们的器件上添加逻辑,包括每个信号管脚上的扫描寄存器、一个连接这些寄存器的专用扫描路径、4 个(需要时可添加5 个)额外的管脚以及额外的控制电路。
添加这个逻辑并不会产生太多的负载,而且为了实现板级的高效测试能力,这样的成本也是值得的。这些边界扫描控制信号被统称为测试接入端口(TAP),定义了一个用于扫描式器件的串行协议:
TCK/时钟- 同步内部状态机操作。
TMS/模式选择- 在TCK 的上升沿被采样,以决定下一个状态。
TDI/数据进入- 当内部状态机处于正确状态时,这个信号在TCK 的上升沿被采样,被转移到器件的测试或编程逻辑。
TDO/数据输出- 当内部状态机处于正确状态时,这个信号表示数据被从器件的测试或编程逻辑转移出去,并在TCK 的下降沿有效。
TRST/重置(可选功能)- 当TCK 下降至很低时,内部状态机会自动重置。
TCK、TMS 和TRST 输入管脚驱动着一个有16 种状态的TAP 控制器状态机。TAP控制器控制着数据和指令的交换。它根据每个TCK 上升沿的TMS 信号数值来进入下一个状态。只要接线方式无误,就可以对多个IC 或电路板进行同步测试。边界扫描描述语言文件定义了各个器件的边界扫描逻辑的功能。
测试过程
通过边界扫描技术验证一个器件(或电路板)的标准测试过程如下:
测试人员将测试或诊断数据加到器件的输入管脚上。
边界扫描单元在监控输入管脚的边界扫描寄存器中捕捉数据。
数据通过TDO 管脚扫描出器件,用于验证。
数据可通过TDI 管脚扫描进器件。
测试人员在器件的输出管脚上验证数据。
简单的测试可以发现一些制造缺陷,例如器件管脚断开、器件缺失、电路板上的器件位置不正确或者方向倒反等情况,甚至能检测到有故障的或者无法工作的器件。
边界扫描技术的主要优势在于它能够独立于应用逻辑来观察器件输入上的数据,并控制输出的数据。另一个关键优势是它可以降低接入设备所需测试点的总数量。有了边界扫描,就不再需要物理测试点,从而降低电路板制造成本,并提高封装密度。
边界扫描的诊断功能要好于其它测试方法。传统的技术是将测试矢量(测试模式)加到器件的输入,并监控输出。如果测试中发生问题,需要很长的时间才能隔离问题,并且需要进行重新测试。而在边界扫描技术中,边界扫描单元可以通过监控器件的输入管脚来观察器件响应,从而轻松隔离各种测试故障,比如管脚和电路板不接触的问题。
边界扫描可以用于各种级别的功能测试和调试,从内部IC 测试到板级测试,甚至能用于硬件/软件测试中。
有些测试设备和ASIC 单元供应商就给自己的产品增加了JTAG 功能来执行软件调试功能。通于内置到目标CPU 中的功能支持,这个接口可以用下载代码、执行代码并检查寄存器和内存值。这些功能已经囊括了一个标准调试器的大部分低级别功能。另外,还可以在工作站或者电脑上运行一个成本不高的远程调试器,来软件调试提供支持。
边界扫描技术还被用来仿真。通过控制扫描信息在目标和调试器窗口之间的传输,仿真器的前端可以行使扫描管理器的功能。当然,当有一个主机来控制JTAG扫描信息时,必须让连接到这一扫描链中的其它器件也获知这一点。
JTAG 还让设备的内部组件都可以被扫描(例如CPU)。这使得JTAG 可以接入所有能通过CPU 接入的设备,因而可用来调试嵌入式设备,同时还能全速进行测试。
这已经成为了硅厂商使用的一个标准仿真调试方法。JTAG 还可进行系统级调试。
如果给设备添加额外的管脚,就能实现额外的系统集成功能,包括基准化、绘制概图和系统级断点等。
设计周期时间压力是由以下几个因素造成的:
集成等级的提高- 更多功能被集成到一个设备中,而不是添加离散器件。
时钟率提高- 外部支持逻辑导致的电气干扰。
更精密的封装- 这产生了外部调试连接性问题。
如今,这些同样的因素交织在一起,给为当前复杂的、更高时钟率的高集成设计提供所需的系统调试能力的扫描类仿真器形成了极大的挑战。现在的系统正在变得越来越小、越来越快而且越来越便宜。它们的面积密度越来越大,性能越来越高。系统发展的这些积极趋势,却给对系统活动的观察产生了反作用,而系统可视性却正是快速部署的关键因素。这个效应就叫做“日益下降的可视性”。
片上系统(SoC)模式将一个完整系统所有的功能都集成到了一张硅芯片中,包括处理器、存储设备、逻辑元件、通信外围设备和模拟设备。这个方法的优势在于通过在单芯片上集成所有这些组件而缩小了组件之间的物理间隔,使设备变得更小,并进而能够运行得更快,制造起来也更简单。这些优势使得系统的可靠性得以提高,总体成本也降低了。
应用开发人员更喜欢图6 中显示的理想化可视性级别,因为它不仅提供了可视性,还能控制各种相关的系统活动。随着集成等级和时钟速率的稳步上升,可视性和控制级别则不断下降。这些就造成了一个可视性和控制间隙,即期望的可视性和控制级别和现实级别之间的差距。这个间隙会随着时间的推移而不断扩大。
应用开发工具供应商正在努力延缓这一间隙的扩大。开发工具、软件和相关硬件组件必须以更少而且不同的方式来执行更多的功能,降低由于这些因素而导致的使用难度。高端的仿真技术可以提供人们期望的程序活动和执行的可视性,而由于以上提到的各种原因,DSP 类系统正需要这样的可视性。
图6:可视性和控制间隙
下一章将解释仿真器如何通过断点和单步执行等功能来控制DSP 上的程序。
评论