芯片设计测试中scan和bist的区别

EDA/IC设计

1065人已加入

描述

Scan和BIST属于DFT范畴的两种技术,本质还是设计,因为这两种技术是会实实在在的在芯片中生成硬件电路的,但不是任何的function,专门为测试服务的。

Scan Design -- 扫描路径设计

Scan 技术最初由Kobayashi等人提出来的,它的优点是基本原理是时序电路可以模型化为一个组合电路网络。

Scan design的设计目标是能够提高可控性和可观测性。

通过在逻辑A和逻辑B之间插入一些额外的硬件电路,便可观测&控制逻辑A传递到逻辑B的值。[1]

寄存器

scan 分为两步:

1. Scan replacement

把普通的DFF,替换成带Scan DFF,下图是一个mux-D的DFF,可以看到多了一个SI,SE,和一个mux。

其SE端值为0时,电路工作在正常功能状态并能把D端的值锁存下来;当SE为1时,电路工作在所谓scan mode并锁存SI的值。

寄存器

常见的scan cell有三种:

寄存器

2. Scan stitching

Scan stitching 是把上一步中得到的Scan DFF的Q和SI连接在一起形成scan chain。在芯片的顶层有全局的SE信号,以及scan chain的输入输出信号:SI 和 SO。通过scan chain的连续动作,就可以把问题从对复杂时序电路的测试转化成测试组合电路。

实际在设计中,这两步都是由EDA工具完成的。

寄存器

上面的两幅图都只有时序单元,我们再把组合逻辑放进来。

Before scan

寄存器

After scan insertion

寄存器

Scan test 的步骤:

1.把Scan-En设成0,此时电路工作在正常状态(function mode)下, scan insertion对电路的正常功能没有影响。

2.把Scan-En设成1,然后把enable clock来驱动寄存器,在Scan-In端输入测试数据,然后在输出端Scan-Out观测,用此种方法便可以测试Flip-Flop.

3.测试组合逻辑的时候,把Scan-En设成1,然后enable clock来驱动寄存器,在Scan-In端输入测试数据,两个时钟周期后,数据便会送到组合逻辑的输入端。

4.然后把Scan-En设成0,时钟打一拍,经过组合逻辑的输出值便会送到右侧的寄存器中。

5.再把Scan-En设成1,此时scan chain 工作在shift mode,此时便可以把组合逻辑的输出值shift出来,和期望值进行比较。

经过这样一个周期,图中的组合逻辑和时序逻辑便都被测试到了。

BIST -- 内建自测试

内建自测试(BIST)设计技术通过在芯片的设计中加入一些额外的自测试电路,测试时只需要从外部施加必要的控制信号,通过运行内建的自测试硬件和软件,检查被测电路的缺陷或故障。和扫描设计不同的是,内建自测试的测试向量一般是内部生成的,而不是外部输入的。内建自测试可以简化测试步骤,而且无需昂贵的测试仪器和设备(如ATE设备),但它增加了芯片设计的复杂性。

寄存器

BIST大致可分为两类:Logic BIST(LBIST) 和 Memory BIST (MBIST)

LBIST通常用于测试随机逻辑电路,一般采用一个伪随机测试图形生成器来产生输入测试图形,应用于器件内部机制;而采用多输入寄存器(MISR)作为获得输出信号产生器。MBIST只用于存储器测试,典型的MBIST包含测试电路用于加载,读取和比较测试图形。目前存在几种业界通用的MBIST算法,比如“March”,March-C,MATS+算法。

另一种比较少见的BIST称为Array BIST,它是MBIST的一种,专门用于嵌入式存储器的自我测试。Analog BIST,则用于模拟电路的自我测试。   BIST技术正成为高价ATE的替代方案,但是BIST技术目前还无法完全取代ATE,他们将在未来很长一段时间内共存。

Scan和BIST是芯片可测性设计中两种非常重要的技术,也是一个DFT工程师必备的技能。

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分