欢迎光临专业集成电路测试网~~欢迎加入IC测试QQ群:111938408

专业IC测试网

LogicBIST 学习

时间:2024-12-11 19:11来源:少数派说投资 作者:ictest8_edit 点击:

 

 
#这篇小文是对LogicBIST学习总结

        重点学习下LogicBIST 的架构,后续有时间再详细学习这些电路;为什么需要LogicBIST?LogicBIST和ATPG的区别?并基于S家(Synposys)的Guide来学习LogicBIST 架构和LogicBIST 的测试过程。日拱一卒,愿我们一起变得更强!

#什么是LogicBist?

BIST测试一般分为两类:1.Memory BIST-> 利用特定的算法和向量来测试Memory,通过内嵌测试逻辑,实现对Memory的全面测试。
2.Logic BIST : logic-BIST基于Scan-based结构,在芯片内部插入BIST逻辑,生成伪随机测试向量; 再利用伪随机测试向量来进行自我测试。
 
#BIST优缺点

优点
    降低测试成本->减少了对昂贵ATE设备的依赖,随时测;很多测试可以在芯片内部自我测试。

    缩短测试时间->不像ATE机台测试,LogicBIST可以在线测试,可以在芯片工作过程中进行,提高测试效率;同时因为在Function下测试,有助于检测到正常工作时的缺陷。

    提高测试覆盖率-> 通过内嵌测试逻辑,可实现高频测试,能够覆盖更多测试场景。
     内建诊断(Built-In Diagnosis)-> 它通常包括诊断功能,有助于确定测试期间检测到的故障的位置和性质,从而有助于后续的调试和维护

缺点

     占用额外的电路面积:BIST逻辑需要占用芯片的一部分面积。无法产生某些特殊的测试向量,某些复杂Fault Model可能无法通过BIST完全覆盖,整体Coverage不高;缺乏调试和诊断信息,因为内建自测试,无法通过外部进行充分的Debug。
    LogicBIST 绝不是对常规ATPG的取代,而是补充;实际项目一般都是将两者结合。

#为什么要用LogicBist

     许多芯片需要在系统级或电路板级进行测试或重新测试(这是ATE无法完成的)。有些芯片在整个生命周期内都需要随时测试,比如自动驾驶,医疗相关的芯片,典型的就是心脏起搏器芯片,LogicBIST可以解决这个问题。

     LogicBIST还可以检测潜在缺陷,提高芯片的可靠性。哪什么是潜在缺陷(LatentFlaws)?出厂前ATE测试没有缺陷的芯片,随着时间推移在使用过程出现的缺陷,叫(Latent Flaws)潜在缺陷。举个例子,连接两个通孔的一条金属线,刻蚀过程中出现了缺口,使用早期没有问题,随着电迁移使用一段时间,该金属线断了,这样的缺陷。

LogicBIST和ATPG的差异?

      1. ATPG通过Tool集成的多种Fault Model,可得到很高的Fault Coverage;LogicBIST则只能通过内置TPG(TestPattern Generator),差生伪随机Pattern,然后用同一套Pattern,coverge所有的Fault

      2. 在物理实现上,LogicBIST的Rule更为严格:比如极度不能容忍X态(Black-Box和unscan_cell都是X态的源头)。因为对LogicBIST,任何X态一旦进入测试结果,都会参与MISR最后signature的形成,导致signature出错,测试Fail。但是对于ATPG,有Squential Pattern和Multi-Load Pattern可以处理这些X态源。

    3.Testpoint对于ATPG来说,可以添加也可不加,但是对于的LogicBIST基本上必须用;因为伪随机Pattern自由度太低,很难将需要的Gate配置到特定1和0值,插入Testpoint是提高TestCoverage仅有方法。

      4.在NetlistECO阶段,ATPG和LogicBIST也有差异:如果网表ECO需要添加寄存器,对于ATPG这个register可以直接舍弃,不上Chain,只要整体Coverage达标。但是对于LogicBIST而言,新添加寄存器的同时,必须额外再添加控制电路,将这些register控制在Shift-only mode,避免新加的register产生X态,影响最后的signature值。
 
#LogicBIST测试结构

    LogicBIST按测试时间来分类:on-lineBIST和off-lineBIST; 这里的on-line和off-line是离线和在线的意思。再简单粗暴理解:

离线测试:就是BIST测试时,芯片不工作,适用于整个测试过程时间较短的情况。在线测试:BIST测试时,芯片还在工作;因此on-line BIST允许在被测试电路内进行操作,必须见缝插针找时间间隙来对芯片进行测试,因此整个测试周期很长。

LogicBIST 逻辑的架构如下(MBIST结构大体类似):

 
 
①TPG :测试Pattern生成器(Test Pattern Generator)
②ORA: 输出响应分析仪(Output Response Analyzer或RA )
③BIST controller:BIST控制器

LogicBIST的大概测试过程(后面详细介绍):LFSR产生内部Internal Chain的伪随机测试向量,然后初始化一个Function Cycle,Capture Device的响应,然后使用MISR来压缩Capture response,经过MISR压缩后的输出叫做签名(Signature)。输出签名中的任何损坏都表明Device存在缺陷,测试Fail
 
①Test Pattern Generator (TPG)

      任何BIST硬件电路主要部分都是:测试向量生成模块(TPG)

TPG模块通过一些特殊的电路结构,能产生伪随机测试向量,常见结构是:线性反馈移位计数器(LFSR-linear Feedback Shift Register)

     LFSR:由XOR + Shift Register组成。常用StandardLFSR的结构如下:Q0-Q3是移位寄存器,N=4是LFSR的深度,4-Shift-Regsiter可以
Feed4条Scanchain
 
 

为了增加产生Test-Pattern的随机性,会再添加一个“Phase Shifter”。
如下图是深度都为4的两种LSFR,左边不带Phase Shifter的LFSR,右边带移相器;可以左边LFSR产生的相邻Pattern有明显的关联性。为什么Pattern随机性提高,可以提高Pattern的Coverage?( 个人理解:比如要检测一个Transition Faults,如果相邻的Pattern相关性很强,就很难配置产生0-1Transtion)

 

#②什么是ORA?

    ORA(Output Response Analyzer)输出响应分析器,该模块将测试输出data压缩整合成一个小小Signature(签名)数据;然后压缩生成的signature通过TAP传出与存储的gold signature(指在没有任何故障情况下生成的签名)比较,来决定Pass/Fail。

     Signature数据为什么要压缩?因为内建自测试,所压缩后更方便在芯片里面存储,未压缩的测试数据量太大。

 

什么是一个好的RA & ORA?

     1.产生的签名数据要尽可能小,这样在芯片上存储Gold Signature才会占用更少的Memory;2.对于测试正确失败的判断要准确,signature数据要低混叠(low-aliasing);3.ORA logic要尽可能小,对整体面积影响小。4.要能够支持Diagnosis,如果CUT测试出现Fail,应该能够找到Fail的源头。但是上面的4点如果全部都要,也是很难的。

     做好权衡是设计一个好ORA的关键。有很多电路结构可以完成ORA需要的功能,下面介绍2种基于LFSR电路结构的ORA(又回到了LFSR,哈哈,要学习EDT和LogicBIST,彻底弄懂LFSR很有必要 )

1.MISR:(multi-input Shifter Register)

     LFSR上面已经介绍过,而MISR是使用Parallel输入的LFSR,即是多输入特征信号寄存器;用于输出响应分析(所以MISR也就是ORA一种)

MISR和Standard LFSR的结构很像;同时MISR的特征多项式跟LFSR的特征多项式也很像。不同的地方:Stage之间的XOR逻辑的输入是Parallel的Inputs,也即是Multiple Inputs; 简单理解就是将Internal Short-Chain的输出端,作为MISR的Parallel inputs;MISR将这些Chain的输出,压缩为签名数据。MISR的结构图示意图如下:
 
 

2.SISR (串行输入移位寄存器,另一种ORA结构)

     一种单一串行输入的移位寄存器。它将CUT的测试输出数据,通过单一port,以Bit-Streaming的形式输入到SISR,且每次SISR只能压缩一个CUT的Short chain的输出。

 

#③什么是LBIST Controller?

     LBIST Controller 由下面三个部分构成:
1.有限状态机FSM:
     控制BIST操作,产生Scan_enable信号

2.Pattern Counter
     用来配置用户指定的测试Patterns数量

3.Shift Counter:
     来给每一条Pattern施加正确的shift clock cycles数值。Shift counter每完成一个序列,Pattern Counter的数值就递减1
 
#S家LBIST测试过程如下

在LBIST Controller控制下:当Design进入LogicBIST Mode

     1.LogicBIST Controller控制Scan_enable信号和Wrapper-shift signals
    2.在测试程序的开始阶段,Controller里的FSM初始化Decompressor PRPG(伪随机Pattern生成器)和压缩器MISR到它们的初始状态,加载Pattern&shift Counters到用户声明的值。
    3.在测试过程,LogicBIST controller按顺序运行Pattern和Shift-Counter。随着移位计数器按顺序计数,Scan chain使用PRPG/MISR来分别执行load和unload,当Shift counter的值变为0时,Controller里面的FSM控制测试进入的Capture周期,完成Capture后;对PatternCounter进行减1,然后开始一个新的shift counter序列。
    4.当Pattern Counter=0,也就是所有的Pattern都完成了测试,MISR将当前生成Signature值,一般通过TAP接口和用户声明的GoldSignature进行对比,如果一致,BIST测试Pass;如果不一致,BIST测试Fail

大概测试流程图如下:

     TPG产生伪随机Pattern->在LogicBIST Controller控制下进入CUT进行测试->测试的结果进入ORA->ORA产生的测试Signature和Gold signature进行对比->一致就Pass/不一致Fail

 

#T家LogicBIST结构
Tessent的官网对LogicBIST结构示意图如下:

 
   
#重点学习下:S家LogicBIST的架构
 
    

包含:
      1.LBIST Decompressor(包含LFSR PRPG逻辑)
在测试程序开始时,用户指定的SeedValue在Single时钟周期内,并行加载到PRPG中。在测试程序期间,PRPG在每个时钟周期内生成一个新的伪随机数据,用于给压缩Scan Chain生成扫描数据。

     2.LBIST Compressor
含XOR压缩器+ MISR ORA模块,MISR在每个Shift-clock过程,从XOR压缩器捕获数据,然后将它们合并到当前的签名值中。

    3.LBIST Controller
整个LogicBIST测试信号的产生和控制。

    4.LBIST Clock Controller
    我们常见的Design大多使用OCC的Internal Clock,对于OCC,LogicBIST的Autonomous mode下,Clock Controller取得对OCC的控制权,将OCC的控制权,切换到lbist_clk_enable[*]这组BUS上,BUS的位宽和OCC-Clock chain的长度相同。

 

     5.LBIST Control and Data Signal
           S家的控制Signal有: LBIST_EN & START
           测试结果的状态信号:STATUS_0 & STATUS_1
 
S家对LBIST的解释:
1.复用Scan chain和插入的Test-mode信号。
2.能Cover Stuck-At和Transition Delay Faults
3.需要很少的Self-test Pin
4.期望的signatrure值可以HardCode和Programmable
  进行LBIST的Design必须的X-clean
 
#Logic BIST的两种工作模式(S家)

①ATPG Mode
      在ATPG里面产生TPG需要的Seed和Gold Signature; TMAX ATPG通过Core-level的Scan port来访问State element;LogicBIST Test-Mode通过编码来激活,LBIST_EN和START信号在ATPG Mode下不被使用。
②Autonomous Mode
      在Seed和Gold Signature数据被加载到Design时,Autonomous mode被启动。所有BIST操作在LogicBIST FSM的控制下自动进行;最终在Silicon上进行LogicBIST测试及仿真都是在Autonomous mode下进行; 当mission-mode的测试模式被编码启动,同时使能LBIST_EN和START这两个信号时,Autonomous Mode才会激活。
   
最近刷小视频看到句话,觉得很有道理:

             #浮躁是很愚蠢的,一天能干的事情很有限#
     年龄越大越觉得,时间过的太快,为什么小时候,觉得时间过得慢呢?这个问题挺有意思。可能小孩子比成人简单,90后在小时候跟小伙伴玩弹珠,可以玩一天,就这么个小游戏。可以天明玩到天黑,可不就觉得时间长。成为打工人后,时间被太多东西切割,导致我们专注到一件事上的时间变短。所以就有了“时间不够的紧迫感”。

    解决办法:做减法,越是普通人,越是要做减法;否则很容易剧终时,感慨自己一生碌碌无为。时刻提醒自己,做减法,聚焦自己真正想做的事 --自勉
    
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片