中文 英语

软件驱动和系统级测试驱动芯片质量

一种新的soc系统级测试正在获得关注,因为它能捕捉到晶圆探头和封装测试中未检测到的问题。

受欢迎程度

传统的半导体测试通常涉及由自动测试设备(吃)。但工程师们开始倾向于在系统环境中测试片上系统(soc)的额外后期测试,以便在最终产品组装之前发现设计问题。

SLT系统架构师Peter Reichert说:“系统级测试(SLT)提供了一个大容量的环境,在这里您可以一起测试硬件和软件,并发现在小容量工程测试中可能找不到的设计错误。Teradyne

针对测试(DFT)SoC上的基础设施用于交付测试向量,以保持测试周期尽可能短,重点转移到由CPU上的软件执行的测试。这与最终测试之后的新系统级测试插入非常一致。

集成电路的测试总是涉及到一个微妙的平衡。一方面,出口产品的质量需要高,以尽量减少回报和最大限度地提高客户满意度。另一方面,测试的成本必须尽可能降到最低。

这通常意味着对某些测试的执行地点进行一些战略性调整。传统上,在晶圆离开晶圆厂之前有三个插入点晶圆验收试验(WAT);在晶圆分拣时,在晶圆切块之前;在最后的测试中,在设备包装之后。

故障率高的测试应该尽早进行-靠近晶圆排序-以确保额外的资金不会花在制造将被丢弃的部件上。但也可能有机会在成本最低的插入中执行高产量的测试,因为报废设备的可能性很低。

对于soc(或任何可以执行软件的设备),额外的SLT插入正在获得动力。SLT在系统上下文中测试芯片,包括运行在软件中实现的测试和在芯片的CPU上运行的能力。

Teradyne SLT营销总监Paul Klonowski表示:“由于工艺节点的缩小,工程师们发现了更高的不良率。”此外,“随着高功能设备变得越来越小,包装也变得越来越复杂。晶圆测试和封装测试都有逃逸现象。你需要使用系统级测试来捕捉这些漏洞。”

矢量vs.软件
逻辑芯片测试包括两种类型的测试,功能测试和参数测试,测量电流和电压等。为了最大限度地降低测试成本,功能测试使用芯片内部的专用硬件执行。这种DFT基础结构允许测试向量直接应用于内部电路。在芯片被适当地计时之后,结果被发送到输出进行评估。

为了保持低的硅成本,输入向量和输出结果是扫描进出.结果不会直接输出,而是被压缩成一个签名,可以与预期的签名进行比较,以确定通过/失败。

图1:传统的基于扫描的测试使用内置的测试设计(DFT)基础设施,它与主要的功能架构是分开的。这个简化的概念图以蓝色显示扫描链,由连接到外部测试引脚的块控制。资料来源:Bryon Moyer/Semiconductor Engineering

图1:传统的基于扫描的测试使用内置的测试设计(DFT)基础设施,它与主要的功能架构是分开的。这个简化的概念图以蓝色显示扫描链,由连接到外部测试引脚的块控制。资料来源:Bryon Moyer/Semiconductor Engineering

其目的是将尽可能多的测试打包到尽可能少的向量中。这种效率允许在尽可能短的时间内实现更高的测试覆盖率,将测试成本保持在一定范围内。

然而,值得注意的是,这种测试并不类似于芯片在系统中的功能。在功能上可能永远不会同时使用的多个块可以同时进行测试,以减少向量的数量。因此,从目标系统的角度来看,测试模式将设备置于一种不自然的状态——以至于测试期间的功率配置可能远远高于所谓的“任务模式”。

通过CPU上执行的软件驱动测试可以使设备处于自然状态,但它没有扫描矢量的效率和测试密度。然而,它确实允许测试特定的用例——特别是涉及SoC中多个块的交互的角落用例。

图2:软件驱动测试起源于加载到CPU中的程序。然后,CPU执行这些程序来控制SoC中的各种元素。简化的流程用红线表示。资料来源:Bryon Moyer/Semiconductor Engineering

图2:软件驱动测试起源于加载到CPU中的程序。然后,CPU执行这些程序来控制SoC中的各种元素。简化的流程用红线表示。资料来源:Bryon Moyer/Semiconductor Engineering

生成软件定义的功能测试
基于矢量的测试使用的技术已经发展了几十年。它利用刺激和对电路中特定点的观察,扫描链允许直接访问这些点。

因此,传统的矢量生成涉及到为每个点确定激活所需状态所需的东西,然后确定期望的输出应该是什么。然后努力组合尽可能多的向量,以减少总计数,从而减少测试时间。

软件驱动的测试是不同的。CPU不能像扫描链那样直接访问内部电路,所以这与确认特定电路是否工作无关。它更多的是在实践现实场景,以确认芯片总体上按预期运行。

选择这些场景可能是因为它们会给芯片带来更大的压力。或者,目的可能是在极端电压或温度场景下运行测试,以确保芯片在这些条件下正常工作。

这意味着,在一般情况下,SoC设计团队需要决定执行哪些测试以及如何执行它们。实际上,一些软件测试可能在芯片构建之前就在芯片验证期间运行,通常用于模拟。

与在位或矢量级别上运行的低级测试不同,这些测试在C语言级别上运行,并为SoC中的CPU向下编译。Klonowski说:“软件驱动测试通常比ATE更容易创建,因为它涉及到在现场设备中看到的标准操作步骤。”“有硬件初始化,有内存训练,有引导操作系统,将设备置于睡眠和低功耗模式,执行高负载操作,并根据基准测试进行检查。但你实际上是在操作设备,就像在应用程序中一样,然后针对它们运行这些不同的操作测试。”

便携式测试和刺激标准(PSS)提供了一种生成测试的方法,该方法可以移植到任何验证节点、硅启动测试或大容量商业测试。PSS有助于促进重用。

Moshik Rubin,公司产品管理组总监节奏他说,一些测试可以跨多个目标平台重用,例如模拟或仿真。“生成的测试可以很容易地移植到硅后测试和制造测试中,”他说。

但这种重复使用在今天可能并不像可能的那样普遍。“我见过在硅前验证方面的团队进行定向测试,或者可能是集成软件测试,”该公司的科学家Filip Thoen说Synopsys对此.“你可以看到人们在做硅唤醒后的测试。我见过团队开发人工测试套件来强化芯片以优化产量。之后,你仍然需要为你的开发板开发软件,或者你可能会开发诊断。而且所有频谱都没有重复使用,这是一种巨大的浪费。”

例如,在模拟过程中完成的SoC软件测试可以重新用于SLT。“你加载到模拟器中的内容可能与最终软件并不完全相同,”Thoen说。“你必须自定义(模拟与测试)的是驱动程序,它设置了外部环境。”

获取测试结果
虽然测试的重点是软件,但为了获得测试结果和为了诊断目的检查芯片特性,仍然可能需要一些硬件方面的考虑。

很容易认为软件定义的测试通过仅仅是因为“没有出错”这一事实。但是更典型的测试将寻找一些特定的结果,并且该结果需要被交付到某个地方的输出。

一些这样的测试可能会自然地在输出引脚上显示结果(例如,内存地址可能出现在内存端口上)。但情况往往并非如此,因此需要用其他方式得出内部结果。

提供更多输出细节的一种方法是利用芯片内部的扫描链结构。这表明芯片在主要功能模式和测试模式之间存在相互作用。但背景也有助于理解为什么事情会失败。

微软平台扩展经理Klaus-Dieter Hilliges解释说:“如果我将软件加载到处理器上,软件就会运行,并返回通过/失败。效果显著.“我只是运行了一个黑匣子。我很难让它工作,因为我对正在发生的事情几乎没有可观察性。我们必须能够接收观察功能测试执行的跟踪信息。如果您去Cadence、Breker或其他自动生成此类功能测试用例的EDA公司,您可以看到在执行测试时发生了什么。”

此外,现代工艺节点上的许多芯片还包含传感器和监控器。在发生故障时,这些电路可以为故障发生的条件提供有价值的线索。因此,为了诊断目的,还应该有一种方法将这些传感器信号和结果一起发送出去。

Hilliges指出:“它有一个DFT接口,就像JTAG一样,我可以进入一个传感器中心,读取这个或那个信息。”“这些传感器通常可以通过嵌入式软件访问。如果我运行一个功能测试,那么它可以读取内部接口。”

然而,尽管如此,用软件驱动测试来量化您正在测试的内容还是比较困难的。“这是SLT的一个巨大挑战。没有很好的方法来评估你的故障覆盖率,”Reichert说。

图3:软件定义测试的输出可以路由回DFT基础设施,以获得关于故障的诊断信息。芯片上的监控器和传感器(橙色线)提供的数据可以辅助这些诊断,当出现故障时,这些数据可以提供系统状况的上下文。资料来源:Bryon Moyer/Semiconductor Engineering

图3:软件定义测试的输出可以路由回DFT基础设施,以获得关于故障的诊断信息。芯片上的监控器和传感器(橙色线)提供的数据可以辅助这些诊断,当出现故障时,这些数据可以提供系统状况的上下文。资料来源:Bryon Moyer/Semiconductor Engineering

系统级测试
软件驱动测试的重点在于关注可能发生在系统上下文中的场景。在传统的最终插入测试之后,在一些复杂的芯片上进行了一种新的测试类型。

这种SLT插入运行在一个完全不同的测试器上,用于晶圆排序或最终测试。Klonowski说:“测试板通常非常像在现场看到的应用板或最终用途板。”“你实际上是在测试设备,就像它在现场运行一样。”

Teradyne的Reichert表示同意。“这是真正的功能模式,而不是测试模式。诸如模具上的热模式、时钟噪声或电源噪声等,在测试模式和实际操作中会有所不同。这是一个机会,可以发现芯片中其他在正常结构ATE测试中可能无法发现的故障。”

在某种程度上,SLT已经存在了一段时间。但是在过去,SLT使用较小的测试人员处理较小的容量,并且没有足够的空间来容纳大容量测试所需的测试人员数量。

“这本来还不错,直到数量急剧增加,SKU数量急剧增加,”Advantest技术和战略副总裁基思·绍布(Keith Schaub)说。“但是硅工艺节点急剧缩小,这使得热成为一个更大的问题,使得SLT变得更加重要。所以现在我们需要一些真正值得大批量生产的东西。”

低成本的测试
虽然这些测试器可能比标准测试器更昂贵,但它们也可以并行运行数百个站点。与最终测试不同的是,一些SLT测试人员可以在每个站点上独立运行测试,或者“异步”地运行测试,而不是步调一致。因此,如果某个设备出现故障,理论上可以将其弹出并替换为新设备进行测试,而无需等待其“队列”中的所有其他设备完成测试。甚至可以同时在两个不同的芯片上运行测试,在它们之间划分站点。

然而,每个单独的站点可能不是完全独立的。测试者有带有一些地点的板子或盒子。这些单板作为一个整体进行插拔。这些站点仍然自己运行它们的测试,但是一个板上的所有站点同时启动。如果早期有一个失败,则必须等到整个板完成后才能移除。但这比等待数百个单元完成的限制要小。

根据测试的进行方式,这种独立的特性为每个设备提供了更灵活的流程。Klonowski指出:“异步测试站点允许在线时的容错和维修。

异步测试,加上大量的站点,使得这是一个成本较低的插入。晶圆排序和最终测试尽量减少每微秒的测试时间,而SLT测试可能会运行几分钟。Klonowski说:“系统中有数百个站点,每个站点的总体成本更低,这使得测试时间更长。”

与早期的测试插入不同,SLT通常不显式地使用扫描测试基础设施——至少从执行向量的角度来看是这样。运行在CPU上执行的测试要自然得多,而软件定义的测试正好符合这种描述。出于报告的目的,仍然可能与内部测试和传感器基础设施有一些连接,但启动测试的是CPU。

如果有必要,如果测试人员支持,仍然可以运行标准向量。“SLT测试人员可以装备运行扫描,”Klonowski说。“事实上,考虑到SLT系统提供的较低的每秒测试成本和高并行性,基于serdes的扫描是最有可能移植到SLT的ATE测试候选之一。装备SLT测试仪来运行扫描需要特定于扫描的硬件和仪器。”

重要的是要强调,尽管有SLT的名字,但这不是一个实际系统的测试。它是在芯片用于构建系统之前在系统上下文中对芯片进行的测试。它是芯片制造流程的一部分,而不是系统制造流程。

何时执行软件驱动测试
虽然额外的测试插入通常被视为增加成本,但添加潜在的低成本SLT插入可能有助于降低总体测试成本。

矢量测试可以在晶圆排序或最终测试中运行,因此软件定义测试似乎可以在这两种插入和SLT中运行。那么在哪里运行它们才是正确的呢?

首先,这是一个实用的方面。软件定义测试需要访问内存,这在晶圆排序的标准探测卡上通常是不可用的,尤其是多站点的。Schaub解释说:“假设你买了一些存储芯片,你想弄清楚如何让它接近ASIC。“你打算怎么做?”有客户尝试过,但都不成功。”

当你不是在处理整片晶圆的时候会更容易做。“他们已经想出了如何让它在最终测试中工作,”他补充说。

撇开测试基础结构不提,产出预期或经验可以帮助确定应该在哪里运行不同的测试。Klonowski说:“如果我发现一个高故障率的测试,如果可以的话,我想把这个测试转化为晶圆测试。”“如果这是一个非常高产的测试,我想尝试在系统级测试中进行,因为这是每个站点测试成本最低的地方。”

随着产品的成熟,测试可能会在插入之间来回移动,以优化产量和成本。但这正是公司从将矢量转换为软件的简单方法中受益的地方,反之亦然,因此这些测试可以轻松地四处移动。Schaub说:“如果你确实发现这些软件测试失败,你希望能够迅速将它们转化为向量,将其从SLT推回到最终测试。”

图4:两个SLT系统。左边是Advantest的版本;Teradyne的在右边。资料来源:Advantest, Teradyne

图4:两个SLT系统。左边是Advantest的版本;Teradyne的在右边。资料来源:Advantest, Teradyne

SLT的用户
SLT插入并不适用于每个芯片。它倾向于在质量至关重要的市场中用于面向系统的芯片。

Klonowski说:“终端用户对质量的要求越来越高,这导致人们说,‘通过SLT,我可以发现标准ATE中找不到的错误。

当测试期间的外部环境很重要时尤其如此。在SLT期间,温度和电压可以在每个站点的基础上进行控制,因此这可以是一种成本较低的方式,以确保芯片在所有条件下都能正常工作。

有三个市场对SLT尤其有需求——智能手机、汽车和高性能计算。它们这样做是出于不同的原因,并驱动不同的测试条件。

手机芯片通常在室温下进行测试。插入这些大批量芯片的目标是确保最高质量,以尽量减少设备退货。

汽车芯片要求更高,采用自动温度控制。它们需要在-40°C到150°C的环境下进行测试,以确保芯片能够在安全关键系统中生存在这些极端环境中。

另一方面,用于高强度计算的芯片制造商最关心的是确保他们的芯片在测试过程中不会过热。因此,我们的目标是提供足够的冷却,使温度保持在125°C以下,而不是测试现场强制执行特定的温度。通常不需要冷测试,因为芯片一旦启动就会迅速自热。

芯片现在是系统
随着复杂的soc为高容量运行的应用程序提供动力,并且故障成本很高,在现实条件下以系统模式测试芯片是有意义的。SoC的第一个词当然是“系统”,使它们成为自己的系统。

软件驱动的功能测试和SLT提供了确保这些复杂芯片以高信心交付的方法,并且它们将能够在一些更大的系统中成功地完成其任务。



留下回复


(注:此名称将公开显示)

Baidu