DFT学习(二):DFT 之 IBIST

本文介绍了集成电路自测(BIST)中的内置自测技术LBIST,包括其组成部分(BIST控制器、TPG、RA)、基本机制(使用LFSR生成测试模式)和移相器的作用,强调了移相器在增加故障覆盖率和支持更多扫描链中的重要性。同时,还探讨了如何寻找满足特定测试模式需求的LFSR初始值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创作不易,点赞关注哦!!!

LBIST 是一种内置自测 (BIST) 形式,其中芯片内部的逻辑可以在芯片本身上进行测试,而无需任何昂贵的自动测试设备 (ATE)。

BIST 引擎内置于芯片内部,只需要像测试访问端口 (TAP) 这样的访问机制即可启动

一、Lbist的组成部分

片上lbist一般由三部分组成:

  • BIST controller、
  • TPG (Test Pattern Generator)、
  • RA (Response Analyzer)。

图1 lbist组成示意图

二、LBIST 的基本机制

LBIST 的基本机制是它使用线性反馈移位寄存器 (LFSR,Linear Feedback Shift Register) 生成设备内部扫描链的输入,启动一个功能周期,使用多输入签核寄存器(MISR,multiple input signature register )来捕获设备的响应,并将捕获的响应压缩。来自 MISR 的压缩后的响应称为签核。输出签核中的任何异常都表明设备存在缺陷。

线性反馈移位寄存器 (LFSR) 是一种移位寄存器,其输入位是其先前状态的线性函数。最常用的单位线性函数是异或(XOR)。

因此,LFSR 通常是一个移位寄存器,其输入位由整个移位寄存器值的某些位的 XOR 驱动。LFSR 的初始值称为种子,由于寄存器的操作是确定性的,因此寄存器产生的值流完全由其当前(或先前)状态决定。

同样,由于寄存器具有有限数量的可能状态,它最终必须进入一个重复周期。但是,具有精心选择的反馈函数的 LFSR 可以产生一系列看起来随机且周期很长的位。LFSR 的应用包括生成伪随机数、伪噪声序列、快速数字计数器和白化序列。

图2 一种16位的LFSR

三、Test Pattern Generator

通常,标准形式的 LFSR 用于生成伪随机pattern,该pattern充当输入测试向量。如图3所示,LFSR中每一个触发器都馈送一条扫描链。在伪随机pattern中,pattern在一定时间间隔后会重复,这就是我们称之为“伪随机”的原因。

图3 由四个触发器和一个XOR组成的馈送四条链的LFSR
LFSR 可以由其特征多项式表征,假设我们使用“1”“0”“0”“0”的输入初始化两个如下图所示的两个4 degree的具有如图所示的多项式的的LFSR。

图4 两种不同的LFSR的输出值
具有特征多项式 f(x) = x4 + x3 +1 的 LFSR 生成的pattern在 15 个pattern之后重复,因此具有 24 – 1 = 15 的周期。但是具有特征多项式 f(x) = x4 + x2 +1的 LFSR 生成的pattern在 6 个pattern后重复。

如果 LFSR 有N个触发器(也称为N degree LFSR ),如果其产生的pattern的周期 为2N – 1,则 LFSR 称为maximum-length sequence 或者 m-sequence。将 m-sequence LFSR的特征多项式称为本征多项式。

对于给定的 N degree LFSR,本证多项式不是唯一的;例如 – x4 + x3 +1 和 x4 + x3 +1 都是 4 degree LFSR 的本征多项式。

LFSR的多项式的选择对循环长度有很大的影响。更好的周期长度意味着更好的 TPG,因此实现本征多项式的 LFSR 最适合测试pattern生成。

四、为什么需要移相器

LFSR 的主要缺点之一是没有足够的随机性。考虑我们之前讨论过的相同的 m-sequence LFSR f(x) = x4 + x3 +1。如图5所示,在没有移相器的情况下,相邻比特流(bit stream)之间存在对角关系。

图5 移相器的作用
为了在比特流(bit stream)之间引入更多随机性,我们使用了一个由 XOR 网络实现的移相器。基本上每个比特流(bit stream)都相移了一些周期。

正如我们在移相器的存在下所看到的,对角线关系不再存在。更多的随机性有助于增加故障覆盖率。同样正如我们在示例中看到的,4 degree LFSR 正在馈送 5 个扫描链。

因此,带有移相器的 LFSR 可以支持更多的扫描链(通常一个“N” degree LFSR 可以支持最多“N”个没有移相器的扫描链)。

如何找到符合要求的LSFR的初始值

我们将使用如下示例示范如何找到LSFR的初始值。

图6  4 degree LSFR馈送10个触发器组成的扫描链
4 degree LSFR馈送10个触发器组成的扫描链,S0-S9 是 ATPG 指定的test pattern,Q0-Q3 是 LFSR 的seed。
有两种方法:1. 逐周期追踪; 2. 线性方程组。
我们将只讨论线性方程组的求解。我们可以在线性方程组中对上述情况进行建模。
注意:S0-S9 值将被串行加载到链中,这样 S9 将在第一个时钟周期首先加载到链中,然后在下一个时钟周期向右移动,同时 S8 将加载到链中.这将持续 10 个时钟周期,直到所有值都加载到所需的位置。
初始条件(S9 是从 LFSR 到链的第一个输入,因此等于 Q0,并且类似地直到 S6):
S9 = Q0 S8 = Q1 S7 = Q2 S6 = Q3。

图7 该LFSR中的输入输出关系
看到这个线性方程,想起了高中数学的最后一题,数组方程的归纳推导。
在这里插入图片描述
因此一共有 10 个等式方程和 4 个变量 Q0、Q1、Q2 、 Q3。
假设这些pattern S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 分别为:1 X X X 0 1 X X 1 0。
然后我们将这 10 个方程写成矩阵形式,如下所示:

在这里插入图片描述
因此符合要求的该LFSR 的初始值是 “1” “1” “1” “0”.
注意:线性方程组并不总是可解的,在这种情况下,我们无法加载该特定pattern,因此将无法覆盖该pattern所针对的故障。变量的数量取决于 LFSR 的degree,更多的变量意味着获得解决方案的概率增加。
LFSR degree

假设我们有一个“N” degree的 LFSR,需要加载一个具有“S” bit的pattern,那么我们有“N”个变量和“S”个方程要求解。示例, 如果pattern为 1 X X X 0 1 X X 1 0,则“S”= 5。
现在,保证可以为给定pattern找到初始值所需的最小“N”是多少吗?
研究表明,当 N ≥ (S+20) 时,找不到初始值的概率是 10-6(非常小)。

参考资料

原文链接:http://www.ictest8.com/a/Principle/2022/04/IBIST.html

<think>好的,用户现在问的是关于LBIST测试时序图,需要我详细介绍一下。首先,我需要回忆一下之前的对话,用户之前已经询问过LBIST内部的shift、capture和unload操作,现在他们可能希望更直观地了解这些操作在时序上的表现。 首先,我需要确定用户的需求。他们可能正在学习LBIST的工作原理,或者是实际工作中需要设计或测试相关电路。时序图对于理解数字系统的工作流程非常重要,所以用户可能想通过时序图来更清晰地看到各个信号之间的配合。 接下来,我需要考虑如何组织内容。时序图通常包括时钟信号、控制信号(如Test Mode、Scan Enable)以及数据信号(Scan-In和Scan-Out)。要分阶段讲解Shift、Capture和Unload的时序关系,每个阶段对应的时钟边沿和信号变化。 然后,要注意用户之前的问题中提到的细节,比如扫描链的结构、LFSR和MISR的作用,以及测试控制器的功能。这些内容需要整合到时序图的解释中,保持回答的连贯性。同时,用户可能需要了解每个阶段的时间点,比如Shift阶段需要多少个时钟周期,Capture阶段的触发方式等。 还要考虑可能的误区,比如用户可能混淆功能时钟和移位时钟,或者不清楚Test Mode信号何时切换。在解释时序图时,需要明确每个阶段的操作顺序和信号状态的变化,避免混淆。 另外,用户可能需要一个具体的例子来帮助理解。例如,可以举一个4位移位寄存器的例子,说明在Shift阶段数据是如何移入,Capture阶段如何触发逻辑,Unload阶段如何移出数据到MISR。这样具体的例子能帮助用户将理论应用到实际场景中。 最后,总结部分需要强调时序图的重要性,以及LBIST测试流程的关键点,比如模式切换、时钟控制和数据流的顺序。同时,可能还要提到设计中的挑战,如测试时间与扫描链长度的关系,以及功耗控制等问题,这样用户能更全面地理解LBIST的实现细节。 现在,我需要将这些思考整理成一个结构清晰、分步骤的解释,结合时序图的各个阶段,使用中文自然流畅地表达出来,并确保专业术语的准确性,同时保持口语化的表达方式,让用户容易理解。</think>以下是 **LBIST测试时序图** 的详细说明,结合关键信号与操作阶段解析其工作原理: --- ### **1. 时序图核心信号** 在LBIST测试中,时序图需体现以下信号的变化: - **Test Mode**:控制芯片进入测试模式(高电平有效)。 - **Scan Enable (SE)**:切换触发器输入源(功能逻辑/扫描链)。 - **Shift Clock**:移位时钟(驱动扫描链数据移动)。 - **Capture Clock**:功能时钟(驱动组合逻辑响应捕获)。 - **Scan-In**:扫描链输入数据(来自LFSR)。 - **Scan-Out**:扫描链输出数据(输入到MISR)。 --- ### **2. 典型LBIST测试时序图** ```plaintext Test Mode : |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|________________| Scan Enable: |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|________________| (与Test Mode同步) Shift Clock: _|‾|_|‾|_|‾|_|‾|___________________ (连续移位时钟) Capture Clk: _________________|‾|_____________ (单周期或短脉冲) Scan-In : D1 D2 D3 D4 ... (LFSR生成的测试向量) Scan-Out : X X X Q1 Q2 Q3 ... (捕获的响应) |--Shift Phase---|Capture|--Unload Phase---| ``` #### **阶段分解:** 1. **初始化阶段**: - **Test Mode** 和 **Scan Enable** 置高,芯片进入测试模式,扫描链与功能逻辑隔离。 - LFSR和MISR复位或初始化。 2. **Shift阶段(加载测试向量)**: - **Shift Clock** 连续触发,LFSR生成的测试向量(如`D1, D2, D3, D4`)通过 **Scan-In** 逐位移入扫描链。 - 每来一个移位时钟上升沿,数据在扫描链中移动一位。 - **Scan-Out** 此时可能为无效数据(图中标记为`X`)。 3. **Capture阶段**: - **Scan Enable** 置低,触发器的输入切换回功能逻辑。 - **Capture Clock** 施加一个或多个周期,组合逻辑根据测试向量生成响应,并将结果锁存到扫描触发器中。 - **关键时序**:Capture时钟需在组合逻辑稳定后触发,避免时序违例。 4. **Unload阶段(移出响应)**: - **Scan Enable** 重新置高,回到移位模式。 - **Shift Clock** 再次连续触发,将捕获的响应(如`Q1, Q2, Q3`)通过 **Scan-Out** 移出到MISR。 - MISR将响应压缩为特征码(Signature)。 --- ### **3. 关键时序参数** 1. **移位时钟频率**: - 通常低于功能时钟频率(降低信号完整性风险)。 2. **捕获时钟与移位时钟关系**: - 捕获时钟需在移位阶段结束后触发,且与功能逻辑时序约束匹配。 3. **扫描链长度与测试时间**: - 总测试时间 ≈(扫描链长度 × 移位时钟周期)× 测试向量数量 + 捕获时间。 --- ### **4. 示例:4位移位链的时序图** 假设扫描链长度为4,测试向量为`1011`,捕获的响应为`0110`: ```plaintext Shift Phase: Shift Clock: _|‾|_|‾|_|‾|_|‾|_________ Scan-In : 1 → 1 → 0 → 1 (从Scan-In输入) 扫描链状态: [1][1][0][1] (移入完成) Capture Phase: Scan Enable: _______________|‾|_______ Capture Clk: _______________|‾|_______ 组合逻辑计算响应 → 扫描链更新为 [0][1][1][0] Unload Phase: Shift Clock: _________|‾|_|‾|_|‾|_|‾| Scan-Out : 0 → 1 → 1 → 0 (输入到MISR) ``` --- ### **5. 设计注意事项** - **时序收敛**: - Capture阶段需满足组合逻辑的传播延迟要求。 - **功耗峰值**: - 移位阶段频繁翻转可能导致瞬时电流过高,需插入门控时钟或分块测试。 - **信号完整性**: - 长扫描链可能引入串扰和时钟偏移,需平衡链长度与物理布局。 --- ### **6. 总结** LBIST时序图通过 **Test Mode**、**Scan Enable** 和 **时钟信号** 的协同控制,明确划分了 **Shift**、**Capture** 和 **Unload** 三个阶段。其核心是通过硬件时序的精确管理,实现测试向量的加载、逻辑响应的捕获与结果的卸载压缩,最终完成对芯片逻辑的自动化自检。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值