微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 自动实现半导体器件系统强化测试的方法

自动实现半导体器件系统强化测试的方法

时间:11-06 来源:eetchina 点击:

检验芯片的各项功能需要编写诊断软件,目的是确保器件的各项功能按要求工作,但是无论各项测试有多么详尽,它都无法找出大部分系统层次的问题。因此,要利用系统级强化测试(stress testing)来使多种功能以高强度和随机的方式共同执行,从而迫使这些设计问题浮出表面。本文将探讨用于检验半导体器件设计的系统强化测试方法。

强化测试

强化测试是指将产品置于比实际正常应用苛刻得多的条件下使用,其目的是通过各种方式对设备进行考验,迅速发现其设计缺陷。例如,对于一件机械产品,可能让它 面对恶劣的环境条件,如高压、高温和震动。如果该产品能在这样的条件下成功经受一个月的考验,那么在正常使用条件下,它应该能工作长得多的时间。

同样的概念也适用于芯片的设计。此时,强化测试的表现形式是执行诊断软件,其目的是使大量的芯片功能同时、连续、随机、密集地工作,其程度远远超过芯片正常 使用时的状况。这些测试通常连续运行,大多数时候无人照管,夜间和周末也不停止。通过这些测试,可以在产品发货之前迫使隐藏的系统问题尽快地暴露出来。

为什么强化测试对半导体设计如此重要呢?为了解释这一问题,假设一个半导体器件常常为了不同用途而应用在各种电子系统之中,因此,这些电子产品将被几千甚至 几百万用户使用,每个用户使用产品的方式各不相同。在如此大量的使用中,当芯片上的功能和事件出现某种在器件测试过程中从未遇到过的顺序或组合时,可能就 会发生问题。这些问题通常表现为:不时被锁住、数据出错或其它难以复现的异常现象。如果这些问题出现太多(或者在执行重要任务的产品中仅仅偶然出现),用 户将会认为这些产品是不可靠甚至不稳定的。

强化测试概念的引出

最初尝试创建系统 强化测试时,方法是研究和编写直接激活尽可能多的芯片功能并使它同时执行软件,使用定时器中断并让它执行随机测试,同时主程序不停地复制数据,并随机地不 时启动其它芯片操作。当想出向芯片内引入更多无序和随机事件的招数时,便将它添加到软件中去。很快就可以发现,虽然陆续发现了许多问题,但它大多发生在自 己编写的软件上。

由于不时使用同一块存储区域或外设资源,测试软件中的测试功能相互干扰。例如,当一个测试正在使用某一通用I/O时,另一个随机启动的测试却更改了它的状态。由此不时导致的故障耗用了大量的调试时间。

第二次,尝试开发组织得非常好的强化测试软件。它安排随机选择的测试功能轮流运行,在许多地方将中断锁住,以防止软件冲突和保证其它安全措施。这种谨慎的编 程使得测试非常稳定,但与直接测试相比,同样不能有效地发现芯片的问题,因为它是按照一种很大程度上可预期的顺序方式来执行测试。毕竟测试的目的是为了测 试半导体器件的设计,而不是为了获得稳定的测试软件。

在理论上希望避免这两种极端情况。测试的根本目的是为了暴露芯片中系统 级的相互作用问题,为了达到这个目的,就必须将操作搞乱,使得许多不同事件以随机方式发生。其中的诀窍是,以一种有组织的方式来保持测试的无序特点,从而 获得可靠的测试软件,并可进行扩展,还可以尽可能地帮助调试。要达到这些目的,需要仔细进行考虑和规划。这就是构建一个强化测试框架的思路。

测试框架

本文介绍一个软件框架(framework)的设计,读者可以使用这个框架来为半导体器件构建一个可扩展的强化测试。虽然本文没有提供完整的框架,但这些内容应当能够激发读者的灵感来帮助构建自己的强化测试框架。

软件框架通过提供一个公共操作引擎和环境来简化特定类型的应用开发工作,具体的应用经由一个定义好的接口来与框架连接。强化测试框架也采用了同样的思路,它提供一个软件引擎来处理强化测试的基本操作和公共功能。

强化测试框架本身不测试任何芯片功能,但它允许嵌入测试事件模块。测试事件模块是实现一项具体的半导体器件测试或事件的函数,通常要使用一组随机产生的测试参数。执行强化测试时,框架引擎将随机选择并以不同方式来启动这些测试事件模块。

这个框架还为测试事件模块提供了基本服务供其使用,包括保留系统资源的功能、选择随机测试参数的功能和数据记录功能。大部分预先规划和设计都位于框架本身内 部,因为框架处理强化测试复杂和"混乱无序"的一面。然后,根据需要增加单个测试事件模块,扩展强化测试。由于框架负责处理公共的强化测试软件部分,测试 事件模块的开发人员可以专注于为目标芯片功

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top