24、汽车片上系统(SoC)可靠性测试技术解析

汽车片上系统(SoC)可靠性测试技术解析

在当今电子技术飞速发展的时代,汽车片上系统(SoC)的可靠性测试变得至关重要。本文将深入探讨多种用于汽车SoC的测试技术,包括结构离线内置自测试(BIST)、IEEE 1149.X边界扫描设计、IEEE 1500封装、内存测试、内存错误纠正码等,旨在为相关领域的工程师和研究人员提供全面的技术参考。

1. 结构离线BIST技术

结构离线BIST技术允许未知(X)值从被测电路(CUT)传播到输出响应分析器(ORA),这意味着CUT必须遵循额外的BIST特定设计规则。与传统扫描技术相比,使用结构离线BIST技术具有以下优势:
- 有效测试与错误报告 :能够有效地测试并报告电路板或系统上的错误,并根据需要提供诊断信息。
- 随时可用 :可以随时运行测试,无需外部测试仪的存在。
- 易于追溯错误源 :由于BIST在芯片上实现了大部分测试仪功能,因此可以轻松将错误源追溯到芯片。
- 检测未建模缺陷 :能够检测到一些未被软件建模的缺陷。
- 自动进行N - 检测 :可以自动执行N - 检测方法,即检测一个故障N次。
- 检测延迟故障 :BIST固有的全速测试能力可用于检测许多延迟故障。
- 降低测试成本 :由于减少了测试时间、测试仪内存需求或测试仪投资成本,测试成本得以降低。

然而,这种方法也存在一些缺点:
- 严格的设计规则 :需要更严格的BIST特定设计规则来处理来自模拟块、存储器、非扫描存储元件、异步置位/复位信号、三态总线、伪路径和多周期路径等的未知(X)源。
- 可能需要额外测试点 :由于BIST模式生成大多使用伪随机模式,可能需要添加额外的测试点(包括控制点和观察点)来提高电路的故障覆盖率。

尽管如此,BIST消除了昂贵的软件测试模式生成过程以及存储输出响应进行比较所需的大量测试数据量。更重要的是,嵌入BIST电路的电路在集成到系统后可以轻松进行测试。定期的系统内自测试,即使使用故障覆盖率不完全的测试模式,也可以将问题诊断到BIST电路嵌入的级别,从而使系统修复变得简单且经济。

2. IEEE 1149.X边界扫描设计

边界扫描设计是一种可测试性设计技术,旨在简化在不同封装级别(如芯片、模块、电路板、背板)应用测试模式以检测和诊断不同故障的过程。传统的基于钉床探测技术的电路测试可以测试每个芯片及其互连,但需要自动测试设备探测每个芯片引脚,并且表面贴装技术的日益普及使得在线测试变得困难。边界扫描通过在每个芯片中嵌入专用的边界扫描寄存器或利用部分扫描寄存器来提高卡级可测试性。

IEEE 1149.1边界扫描设计使用明确的测试协议,正成为广泛采用的行业标准。其架构包括测试访问端口(TAP)、TAP控制器、指令和数据寄存器。TAP由测试数据输入(TDI)、测试数据输出(TDO)、测试时钟(TCK)和测试复位(TRST)组成,TRST可选择性使用。每个芯片的输入和输出引脚分别连接到输入和输出边界扫描单元。

IEEE边界扫描指令可分为强制指令(如BYPASS、EXTEST和SAMPLE/PRELOAD)和可选指令(如CLAMP、HIGHZ和RUNBIST)。TAP控制器是一个具有16个状态的有限状态机,主要用于将模式应用于数据和指令寄存器并观察测试响应。

电路板上的互连故障可总结如下:
1. S - at - 1和S - at - 0 :传统的固定故障模型。
2. S - open :CMOS实现的故障模型,将任何开路网络故障建模为上拉或下拉电路。检测开路故障需要初始化和转换模式,即双模式测试。
3. 短路网络故障 :可分为AND、OR、OPEN和DOMINATOR类型故障。例如,两个网络(A,B)短路时,AND类型短路在任一网络为逻辑0时结果为逻辑0;OR类型短路在任一网络为逻辑1时结果为逻辑1;若V(A)无论V(B)如何都出现在两个网络上,则称A支配B,反之亦然。
4. 延迟故障 :‘0 → 1’或‘1 → 0’转换在指定时间内无法到达接收器。

应用和观察互连测试模式以及测试模式选择器状态转换的方法如下:
1. 读取和解码EXTEST指令 :状态转换为RESET → IDLE → Scan - DR → Scan - IR → Capture - IR → Shift - IR → … → EXIT1 - IR → Update - IR。
2. 串行应用互连测试模式 :相应的状态转换为Scan - DR → Capture - DR → Shift - DR → … → EXIT1 - DR。
3. 应用测试模式到更新锁存器 :信号并行传播到输入边界扫描单元(BSC),状态转换为Update - DR → Scan - DR → Capture - DR。
4. 移出捕获的测试响应 :通过BSC将测试响应移到TDO,状态转换为Capture - DR → Shift - DR → … → EXIT1 - DR。其中,Update - DR和Update - IR状态在TCK的下降沿激活,而其他状态在上升沿激活。

以下是TAP控制器状态转换的mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A([RESET]):::startend --> B(IDLE):::process
    B --> C(Scan - DR):::process
    C --> D(Scan - IR):::process
    D --> E(Capture - IR):::process
    E --> F(Shift - IR):::process
    F --> G(EXIT1 - IR):::process
    G --> H(Update - IR):::process
    C --> I(Capture - DR):::process
    I --> J(Shift - DR):::process
    J --> K(EXIT1 - DR):::process
    K --> L(Update - DR):::process
    L --> C
3. IEEE 1500封装

IEEE 1500定义了嵌入式核心测试接口的标准,包括测试封装、测试端口和封装控制信号。一般来说,核心测试访问机制(TAM)和测试方法由SoC设计人员定义。IEEE 1500封装由封装指令寄存器(WIR)、封装旁路寄存器(WBY)和封装边界寄存器(WBR)组成。定义了两个测试访问终端,一个是强制的封装串行端口(WSP),另一个是封装并行端口(WPP)。

与IEEE 1149.1不同,IEEE 1500的测试控制逻辑由SoC集成商定制,但通常IEEE 1149.1 TAP控制器成为嵌入式核心测试的主要控制源。IEEE 1500指令分为强制指令(如WS_BYPASS、WS_EXTEST、Wx_INTEST等)和可选指令(如WS_INTEST_SCAN、Wx_EXTEST、WS_SAFE等)。

根据不同的测试模式,使用多路复用器可以对测试路径进行不同的重新配置。内部扫描链可以根据可用的扫描输入和输出端口直接连接到外部WPI和WPO端口,或通过内部输入和输出WBR间接连接。扫描链由se和clk信号控制,封装串行控制(WSC)信号操纵IEEE 1500封装指令、旁路和边界寄存器。

虽然IEEE 1500标准没有明确指定通过WSP的访问机制,但它展示了IEEE 1149.1 TAP控制器和IEEE 1500 WSP之间的简单接口逻辑。WRCK直接连接到TCK,SelectWIR信号通过选择WIR或WBR连接到TAP的Select。捕获和移位操作在WRCK的上升沿发生,而更新操作在WRCK的下降沿发生。IEEE 1149.1 TAP用于设置每个核心的测试模式、配置测试路径并生成控制信号。

4. 内存测试

在SoC设计环境下,快速准确地测试各种内存缺陷对于降低测试成本和提高内存质量至关重要。内存缺陷可以建模为固定故障、耦合故障、转换故障、地址解码器故障和模式敏感故障等,已知80%的故障是由于泄漏缺陷引起的。

在不同复杂度从$O(\sqrt{n})$到$O(nlog(n))$的测试算法中,具有$O(\sqrt{n})$到$O(n)$复杂度算法的BIST(内置自测试)技术被广泛应用于嵌入式内存。内存测试模式可以通过测试设备或BIST电路确定性或随机生成。随机生成的测试模式不仅可以检测建模的缺陷,还可以检测未建模和时序缺陷,但由于其简单性,确定性的March模式被广泛用于BIST和片外测试。

5. 故障模型和定义

从内存缺陷建模的故障可以总结如下:
1. 固定故障(SF) :一个单元或一条线固定为逻辑‘0’或‘1’。
2. 转换故障(TF) :一个单元或一条线上的0 → 1(或1 → 0)转换不可能。
3. 耦合故障(CF) :当一个单元写入0 → 1(或1 → 0)时,另一个单元的内容发生变化。当k - 1个单元发生变化时,CF被推广为k - 耦合故障,并根据内容变化进一步分为反相或幂等耦合故障。
4. 地址解码器故障(ADF) :使用某个地址无法访问任何单元,或同时访问多个单元,或一个单元可以通过多个地址访问。
5. 地址解码器开路故障(ADOF) :CMOS地址解码器开路故障是由内存地址解码器的CMOS逻辑门中的开路缺陷引起的,由于其顺序行为,无法映射到内存阵列本身的故障。
6. 保留故障(RF) :一个单元在一段时间后无法保留其逻辑值,这是由损坏的上拉电阻引起的。
7. 邻域模式敏感故障(NPSF) :阻止基本单元转换到特定值的典型邻域模式敏感故障称为“静态”NPSF,当邻域单元的转换触发基本单元的转换时,NPSF称为“动态”NPSF。

6. 内存March测试

以位为导向的March C - 算法是March测试的一个例子,如下表所示:

March元素 地址序列 操作
M0 m w0
M1 * r0w0
M2 * r1w0
M3 + r0w1
M4 + r1w0
M5 m r0

在每个March元素中,首先指定地址序列: 表示地址序列按升序排列,+表示地址按降序变化,&表示 或+均可接受。例如,M1的地址序列从最低地址开始,按升序向最高地址变化。对于每个地址(内存单元),执行读操作(在无故障情况下期望为0)并立即写回补码位,然后继续下一个地址。该算法也称为March 10 N算法,因为它需要10 N次读/写操作,其中N是内存单元(地址位置)的数量。

March C - 已知可以完全检测固定故障(SAFs)、未链接的地址故障(AFs)、未链接的转换故障(TFs)和耦合故障(CFs,包括CFins、CFids和CFsts)。如果将M1扩展为r0w1r1,或将M2扩展为r1w0r0,则还可以检测开路故障(SOFs),得到的算法称为扩展March C - 算法。为了降低测试成本,应选择合适的故障模型和测试算法。其他一些March测试总结如下:
- 修改的算法测试序列(MATS) - {m(w0); m(r0,w1); m(r1)}
- MATS + - {m(w0); (r0,w1); +(r1,w0)}
-
Marching 1/0 - { (w0); (r0,w1,r1); +(r1,w0,r0); (w1); (r1,w0,r0); (r0,w1,r1)}
-
MATS ++ - {m(w0); (r0,w1); +(r1,w0,r0)}
- March X - {m(w0); (r0,w1); +(r1,w0); m(r0)}
-
March C - {m(w0); (r0,w1); (r1,w0); m(r0); +(r0,w1); +(r1,w0); m(r0)}
-
March C2 - {m(w0); (r0,w1); (r1,w0); +(r0,w1); +(r1,w0); m(r0)}
-
March A - {m(w0); (r0,w1,w0,w1); (r1,w0,w1); +(r1,w0,w1,w0); +(r0,w1,w0)}
-
March Y - {m(w0); (r0,w1,r1); +(r1,w0,r0); m(r0)}
- March B - {m(w0); (r0,w1,r1,w0,r0,w1); (r1,w0,w1); +(r1,w0,w1,w0); +(r0,w1,w0)}

7. 内存BIST

内存BIST设计图展示了BIST逻辑与嵌入式DRAM之间的接口。BIST激活控制(BAC)输入激活BIST逻辑;当BAC为0时,嵌入式DRAM处于正常模式,当BAC为1时,处于BIST模式。BIST控制器是一个有限状态机,其状态转换由BIST控制选择(BCS)输入控制。BIST控制器还控制扫描链,从BIST扫描输入(BSI)输入移入测试模式和命令,并从BIST扫描输出(BSO)输出移出结果。

BIST逻辑有三个额外的I/O信号:
- BIST就绪标志(BRD*) :指示BIST序列何时完成,以便可以采样通过/不通过指示信号(BGO)来检查嵌入式DRAM是否正常工作。
- BRS*/SCAN信号 :既作为复位信号,又作为扫描测试控制信号。在使用BIST逻辑测试DRAM之前,会对BIST控制器有限状态机中的所有寄存器进行扫描测试。
- BIST时钟(BCK)输入 :BCK和BAC必须是专用的,其他信号不能共享这两个输入引脚。但BRD 是可选的,如果引脚数量是一个问题,可以移除。在这种情况下,可以对BGO进行编码以信号BIST序列的完成并显示测试结果。复位(BRS )也是可选的,因为BIST控制器的短同步序列可以作为复位序列,但在这种情况下,仍然需要SCAN引脚。除了BCK和BAC,所有其他BIST I/O信号可以与DRAM核心外部的信号共享引脚,因此可以使用复用引脚来减少引脚开销。

BIST支持以下测试模式:
1. 扫描测试 :测试BIST逻辑,除了BIST控制器有限状态机。在BIST序列开始时执行扫描测试,以确保电路的正确功能。此外,在这种模式下测试DRAM核心中的所有寄存器。
2. 内存BIST :使用March算法对DRAM进行功能测试。这种模式可以执行各种操作模式,如非页模式测试、页模式测试、刷新测试和保留测试。这种模式还支持诊断,在这种情况下,BIST逻辑可以通过扫描机制将任何故障单元、列或行的地址移到外部测试仪。可以在这种模式下或单独的测试模式下测试保留故障。
3. 老化测试 :进行压力测试,以筛选出可能在早期失效的不可靠部件。这种模式使用BIST逻辑以比正常读/写访问更有效的方法对整个内存单元阵列进行操作。默认的老化测试是使用内存BIST模式支持的March算法。
4. 时序故障测试 :通过以适当的速度运行BIST时钟来测试关键时序故障。这些故障包括各种控制和数据信号的不正确建立时间、保持时间和数据到达时间。在执行功能测试(在内存BIST模式下)时,可以同时检测一些时序故障,如不正确的建立时间和保持时间。可以通过使用不同的BIST时钟周期或外部时钟来测试其他时序故障。

8. 内存错误纠正码

随着工艺技术向纳米级发展,嵌入式内存系统的可靠性成为数字系统设计人员越来越关注的问题。纳米级组件本身越来越容易失效,并且片上内存的增加导致更多可能的故障点。因此,嵌入式内存系统中发生的错误对整个SoC和处理器的可靠性和良率构成了越来越大的威胁。

为了保护内存中数据的完整性,错误纠正码(ECC)起着至关重要的作用。最常用的代码是单错误纠正 - 双错误检测(SEC - DED)代码,其中最流行的是Hamming和Hsiao代码。这些代码可以纠正码字中的单比特错误,并可以检测双比特错误。这些代码需要在内存中存储额外的校验位。除了执行ECC所需的列之外,内存还包括额外的备用列用于修复。在某些情况下,校验位与备用行和列一起使用,以提供组合的容错能力。当前的内存设计包含冗余行、列和子阵列,以容忍制造时的硬错误,从而提高良率。当在产品测试期间检测到故障位时,使用内置自修复(BISR)技术将故障地址重新映射到冗余备用行或列。虽然在最坏的情况下,统计曲线尾部的大多数有缺陷的内存可能会使用所有备用资源,但大多数内存修复后将有未使用的备用资源。

我们关注传统的系统线性块SEC - DED代码。ECC通常按字(例如,64位)对数据应用,并允许以每个字额外的代码存储位和共享的计算/检查/纠正逻辑为代价进行错误检测/纠正。

代码字的长度、信息位的数量和校验位的数量分别用n、k和r = (n - k)表示。H - 矩阵定义为:
$H = [A^T | I_{n - k}]$
其中A是一个k×(n - k)的奇偶校验生成矩阵,$I_{n - k}$是一个(n - k)×(n - k)的单位矩阵。代码生成矩阵G定义为:
$G = [I_k | A]$
如果u是一个1×k的数据位向量,则其对应的n位代码字向量x形成如下:
$x = u \cdot G$
在本文中,代码由其(r×n)奇偶校验矩阵(H - 矩阵)描述。C是代码的一个代码字,当且仅当:
$H \cdot C^T = 0$
错误向量E定义为一个r位向量,其中出错的位值为1,所有其他位为0。错误消息$W_{error}$可以表示为:
$W_{error} = C \oplus E$
综合征S定义为:
$S = H \cdot W_{error} = H \cdot (C \oplus E) = H \cdot E$
如果传输的代码字没有损坏,综合征的值等于零。如果接收到的代码字包含可检测的错误,则综合征不为零。如果接收到的代码字包含可纠正的错误,则可以根据综合征的值进行错误纠正。

综上所述,汽车SoC的可靠性测试是一个复杂而关键的领域,涉及多种测试技术和方法。通过合理选择和应用这些技术,可以有效地提高汽车SoC的可靠性和良率,为汽车电子系统的安全稳定运行提供保障。

汽车片上系统(SoC)可靠性测试技术解析

9. 不同测试技术的对比与应用场景

为了更清晰地了解各种测试技术的特点和适用场景,我们对上述介绍的几种测试技术进行对比,如下表所示:
| 测试技术 | 优点 | 缺点 | 适用场景 |
| — | — | — | — |
| 结构离线BIST技术 | 有效测试与报告、随时可用、易追溯错误源、检测未建模缺陷、自动N - 检测、降低测试成本、消除软件测试模式生成成本和大量测试数据量、集成后易测试 | 严格设计规则、可能需额外测试点 | 对测试成本敏感、需要系统内自测试的汽车SoC |
| IEEE 1149.X边界扫描设计 | 简化测试模式应用、成为行业标准、可检测多种互连故障 | 传统测试方法受表面贴装技术限制 | 芯片、模块、电路板、背板等不同封装级别的故障检测和诊断 |
| IEEE 1500封装 | 定义标准接口、测试路径可重构 | 测试控制逻辑需定制 | 嵌入式核心测试,尤其是需要灵活配置测试路径的场景 |
| 内存测试(BIST技术) | 可快速准确测试内存缺陷、检测多种类型故障、随机模式可检测未建模和时序缺陷 | | 汽车SoC中的内存测试,降低测试成本和提高内存质量 |
| 内存BIST | 支持多种测试模式、可进行系统内自测试、可减少引脚开销 | | 汽车SoC中嵌入式DRAM的测试和诊断 |
| 内存错误纠正码(ECC) | 保护内存数据完整性、纠正单比特错误、检测双比特错误、提高系统可靠性和良率 | 需要额外校验位和备用资源 | 对内存数据可靠性要求高的汽车SoC |

10. 测试技术的操作流程总结

不同的测试技术在操作流程上有所不同,下面为大家总结一下主要的操作步骤:
- 结构离线BIST技术
1. 确保被测电路(CUT)遵循BIST特定设计规则。
2. 激活BIST逻辑,使其开始运行测试。
3. BIST逻辑对电路板或系统进行测试,并报告错误和提供诊断信息。
4. 根据测试结果进行相应处理,如修复故障或进一步分析。
- IEEE 1149.X边界扫描设计
1. 读取和解码EXTEST指令,状态按RESET → IDLE → Scan - DR → Scan - IR → Capture - IR → Shift - IR → … → EXIT1 - IR → Update - IR转换。
2. 通过边界扫描寄存器串行应用互连测试模式,状态按Scan - DR → Capture - DR → Shift - DR → … → EXIT1 - DR转换。
3. 将测试模式应用到更新锁存器,信号并行传播到输入边界扫描单元(BSC),状态按Update - DR → Scan - DR → Capture - DR转换。
4. 通过BSC将捕获的测试响应移到TDO,状态按Capture - DR → Shift - DR → … → EXIT1 - DR转换。
- 内存BIST
1. 根据需要设置BIST激活控制(BAC)输入,使嵌入式DRAM进入BIST模式。
2. 选择合适的测试模式,如扫描测试、内存BIST、老化测试或时序故障测试。
3. 执行相应的测试操作,如在内存BIST模式下使用March算法进行功能测试。
4. 根据测试结果进行诊断和处理,如将故障单元地址移到外部测试仪进行分析。

11. 未来发展趋势

随着汽车电子技术的不断发展,汽车SoC的复杂度和集成度将不断提高,对可靠性测试技术也提出了更高的要求。未来,汽车SoC可靠性测试技术可能会朝着以下几个方向发展:
- 集成化 :将多种测试技术集成到一个统一的测试平台中,实现更高效、更全面的测试。例如,将结构离线BIST技术、边界扫描设计和内存BIST等技术集成在一起,同时对芯片的不同部分进行测试。
- 智能化 :利用人工智能和机器学习技术,实现测试过程的自动化和智能化。例如,自动选择最佳的测试模式和算法,根据测试结果进行智能诊断和预测。
- 高速化 :随着汽车电子系统的运行速度不断提高,测试技术也需要具备更高的测试速度。例如,开发高速的测试时钟和数据传输接口,以满足高速电路的测试需求。
- 低功耗化 :在保证测试效果的前提下,降低测试过程中的功耗。例如,采用低功耗的测试模式和算法,减少测试设备的能耗。

12. 总结

汽车片上系统(SoC)的可靠性测试是确保汽车电子系统安全稳定运行的关键环节。本文详细介绍了多种用于汽车SoC的测试技术,包括结构离线BIST技术、IEEE 1149.X边界扫描设计、IEEE 1500封装、内存测试、内存BIST和内存错误纠正码等。每种测试技术都有其独特的优点和适用场景,通过合理选择和应用这些技术,可以有效地提高汽车SoC的可靠性和良率。

在实际应用中,需要根据汽车SoC的具体需求和特点,综合考虑各种测试技术的优缺点,制定合适的测试方案。同时,随着汽车电子技术的不断发展,测试技术也需要不断创新和改进,以适应未来汽车SoC的测试需求。

以下是一个简单的mermaid流程图,展示了汽车SoC可靠性测试的整体流程:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A([开始]):::startend --> B(选择测试技术):::process
    B --> C(准备测试环境):::process
    C --> D(执行测试):::process
    D --> E(分析测试结果):::process
    E --> F{是否通过测试}:::process
    F -->|是| G([结束]):::startend
    F -->|否| H(修复故障):::process
    H --> C

希望本文能够为汽车SoC可靠性测试领域的工程师和研究人员提供有价值的参考,推动汽车电子技术的不断发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值