1. Boundary Scan就是边界扫描
测试目标是 IO-PAD,利用 JTAG 接口互连以方便测试。
两种做法:一是RTL hand coding,二是借助 EDA 厂商提供的 tools 来实现
2. MBIST是memory build-in self test,
MBIST是memory build-in self test,就是对芯片中嵌入式的 memory 进行自测试。芯片中嵌入式的 memory 被深深埋到芯片的逻辑当中,根本没有办法直接通过外部加激励来进行测试,必须在芯片中设计一部分电路自动对嵌入式的 memory 进行自测试。现在SoC设计,嵌入式的 memory 所占面积比例非常高,通常一款SoC, 75%~80% 的面积都是embedded memory,并且embedded memory的density很高,在生产当中很容易产生defect,并且工艺不同,产生defect的density容限也不同,必须把所有有defect的芯片通过测试筛选出来,这样MBIST几乎是每款芯片都要做的,对于一些memory占比高的芯片,不仅要做MBIST还要做Repair。
3. LBIST 是logic build in self test. 就是对逻辑进行内建自测试,
不同于ATPG, LBIST的测试激励是由on-chip的电路自己产生,对功能逻辑进行扫描测试。不依赖于ATE机台,直接在板上进行测试,甚至芯片部署到产品中以后也可以进行in-system 的测试。LBIST的开发难度大、开发周期长,对芯片面积也有很大的开销,一般都是对可靠性要求比较高的芯片才做LBIST,像消费类的产品鲜有做lbist的。由于LBIST on chip产生的激励是伪随机的,coverage一般不高,并且对芯片中的X-source敏感,芯片中的X-source会直接crash LBIST,所以进行lbist设计,清理芯片中的x-source是很大一部分工作量。
4. ATPG autotest pattern generation
用于利用scan chain 来测试数字电路中的defect,做ATPG先决条件必须是插好scan chain
5. scan chain (stuck at & at speed)
都是ATPG测试,
stuck-at pattern是用来测试电路中stuck类型的defect,比如open, short, tie high, tielow等。
At-speed test主要是用来测试电路中timing相关的defect。
ATPG pattern 的产生主要是依赖于EDA工具来实现。设计的挑战来自于对SoC设计的理解,特别是Clock domain的控制,对于CDC path的处理。
6. OCC/OPCG/scan clock mux
这些都是同一个东西,不同人的不同叫法。就是为了at-speed ATPG测试时在function clock和shift clock之间切换的控制逻辑。不同人设计的电路不一样,它就是一个2选一的clock mux,设计时注意处理一下cdc的path,不要产生glitch就行了