FLASH 测试方法分析
赤松城(北京)科技有限公司
2019/11/25 13:42:37>> 进入商铺1 NVM 简介
1.1 基本结构
图 1 NVM 结构
。非易失存储器(Non-Volatile Memory)在系统关闭或无电源供应时仍能保持数据信息。一个非易失
存储器(NVM)器件通常也是一个MOS 管,拥有一个源极,一个漏极,一个门极另外还有一个浮栅
(FLOATING GATE)。它的构造和一般的MOS 管略有不同:多了一个浮栅。浮栅被绝缘体隔绝于其他部
分。
非易失存储器又可分为两类:浮栅型和电荷阱型
在浮栅型存储器中,电荷被储存在浮栅中,它们在无电源供应的情况下仍然可以保持。所有的浮栅型存
储器都有着类似的原始单元架构。他们都有层叠的门极结构如图一所示。个门极被埋在门极氧化层
和极间氧化层之间,极间氧化层的作用是隔绝浮栅区,它的组成可以是氧-氮-氧,或者二氧化硅。包围
在器件周围的二氧化硅层可以保护器件免受外力影响。第二个门极被称为控制门极,它和外部的电极相
连接。浮栅型器件通常用于EPROM(Electrically Programmable Read Only Memory)和EEPROM(Electrically
Erasable and Programmable Read Only Memory)。
图 2 浮栅型NVM
电荷阱型器件是在1967 年被发明的,也是个被发明的电编程半导体器件。在这类型的存储器中,
电荷被储存在分离的氮阱中,由此在无电源供应时保持信息。电荷阱器件的典型应用是在MNOS(Metal
Nitride Oxide Silicon),SNOS(Silicon Nitride Oxide Semiconductor)和SONOS(Silicon Oxide Nitride Oxide
Semiconductor)中。下图展示了一个典型的MNOS 电荷阱型存储器的结构。
图 3 电荷阱型NVM
MNOS 中的电荷通过量子机制穿过一层极薄的氧化层(一般为1.5-3nm)从沟道中被注入氮层中。
详细请参考附件:全面理解非易失存储器.pdf
1.2 浮栅原理
图 4 浮栅原理
1.3 EEPROM 结构
图 5 EEPROM 结构原理
T2 为了提高擦、写的可靠性
T1 为实现数据存储的存储管存储原理:
Gf 存电荷前,正常控制栅极电压3V 下,T1 导通, 存0
Gf 存电荷后,正常控制栅极电压3V 下,T1 截止, 存1
1.3.1 写入为1:
图 6 写入1 原理
EEPROM 的写入过程,是利用了隧道效应,即能量小于能量势垒的电子能够穿越势垒到达另一边。 量子力
学认为物理尺寸与电子自由程相当时,电子将呈现波动性,这里就是表明物体要足够的小。 就pn 结来看,
当p 和n 的杂质浓度达到一定水平时,并且空间电荷极少时,电子就会因隧道效应向导带迁移。 电子的
能量处于某个级别允许级别的范围称为“带”,较低的能带称为价带,较高的能带称为导带。 电子到达较高
的导带时就可以在原子间自由的运动,这种运动就是电流。 EEPROM 写入过程,如图3 所示,根据隧道效
应,包围浮栅的SiO2,必须极薄以降低势垒。 源漏极接地,处于导通状态。在控制栅上施加高于阈值电压
的高压,以减少电场作用,吸引电子穿越。
1.3.2 擦除为0:
图 7 擦除为0 原理
要达到消去电子的要求,EEPROM 也是通过隧道效应达成的。如图4 所示,在漏极加高压,控制栅 为0V,翻
转拉力方向,将电子从浮栅中拉出。这个动作,如果控制不好,会出现过消去的结果。
1.4 FLASH
按结构又分为NOR Flash 和NAND Flash。基本单元为SIMOS--叠栅注入MOS,特点是浮栅Gf 与衬底间
SiO2 更薄10~15nm(相比EPROM 的30~40nm,E2PROM 的20nm),Gf 与源极S 有极小的重叠区,即隧道
区。
存储单元相对于EEPROM,只需要一个MOS 管,结构简单,集成度高,成本低。因为MOS 管的源极是
连在一起的,所以擦除时按固定大小的存储容量(典型为128-512kbits) 整体擦除,所以叫Flash Memory,
用来形容擦除速度快。和E2PROM 相比,需要电压明显减小,这源于更薄的SiO2 绝缘层。
1.4.1 FLASH 结构:
图 8 NOR/NAND Flash 结构
1.4.2 FLASH 擦除与写入
图 9 NOR 擦写原理
图 10 NAND 擦写原理
图 11 Flash 读原理
1.4.3 NOR, NAND FLASH 的比较
1. 擦除和写入方式相同:按块擦除和写入;
2. 存储单元的连接方式不同,或非和与非;
3. 读出方式不同: NOR 是线性编址,可以按字节随机访问;而NAND 是分了块页字节三个地址寻址,只
能按块读取。显然NOR 接口简单, 存取单位为字节, 可以随机访问;而且具有XIP 的功能(eXecute In
Place,本地执行),常用来存放程序代码;
4. NOR 寿命短(10 万次),NAND(100 万次);因为XOR 的擦除基于隧道注入,而写入基于雪崩注入,
它们是不对称操作,加速了存储单元老化的速度。
5. NOR 写入和擦除速度慢, 存储密度低, 成本高;NAND 相反, 所以现在的U 盘等便携存储用的是NAND
Flash。
2 FLASH 常见失效模型
与RAM 类似,FLASH 有如下常见缺陷:
2.1 Address-Decoder Fault (AF) 地址解码错误
测试方法:0,1 漫游,包括升序和降序,March 算法是比较优化的测试方法,省去了大量的重复读操
作。
2.2 Stuck-At Fault (SAF) 短路到0,1 错误
测试方法:对大小为N 的存储器Erase 0,Read 0, Program 1, Read 1.
2.3 Transition Fault (TF) 0-〉1,1-〉0 变迁出错
测试方法:对EEPROM/FLASH 来说,需验证每个位能否正确编程和擦写。
2.4 Stuck-Open Fault (SOF) 开路
测试方法:验证每个位是否能正确读写0,1。
2.5 Bridging Fault (BF) 不同cell 间短路
测试方法:单独验证每个位是否能正确读写0,1。
2.6 Data Retention Fault 数据不能达到规定的保存时间
测试方法:CP1 和CP2 之间高温bake,在高温bake 后测试bake 前的数据是否不变。
2.7 Cell Endurance Fault (CEF)
测试方法:对NVM,这里主要考量可擦写次数,其实也就是门氧化层的耐久度,可通过测试测试VT 的
范围来进行,如下图,一般在可靠性测试中进行。详细请参考附件:“全面理解非易失存储器.pdf“
图 12 擦写次数窗口
2.8 Coupling Fault(CF)
由于NVM 的特殊结构,耦合故障模型与RAM 不太一样,一般称之为disturb fault.后面会有详细分析。
以下几种是EEPROM/FLASH *的失效模型(详细请参考附件“Flash Memory Testing.pdf”和“Flash
memory disturbance faults.pdf”)
2.9 Word Line Program Disturb Fault (WPDF)字线写干扰
Conditions: 如下图,(绿色圆圈代表正在进行的动作,红色箭头表示可能造成的干扰):
当对cell- WL1BL1 编程时(电子进入浮栅),字线WL1 上为高压,cell-WL1BL2 上的缺陷(如漏电过大)
造成衬底电子被吸引到浮栅,该cell 被误编程。
测试方法:对某个CELL 编程(w1)后,检查同一字线上其他未被编程的CELL 是否也被编程(r0)
图 13 字线写干扰原理
2.10 Word Line Erase Disturb Fault (WEDF)字线擦干扰
Conditions: 如上图,当对cell- WL1BL1 编程时(电子进入浮栅),字线WL1 上为高压,cell-WL1BL0 上的
缺陷造成浮栅电子流失,该cell 被误擦除。
测试方法:对某个CELL 编程(w1)后,检查同一字线上其他已经被编程的CELL 是否被擦除(r1)
2.11 Bit Line Program Disturb Fault (BPDF) 位线写干扰
Condition: 如下图,当上方cell 被编程时,Bit 线上有电压,如果下方cell 漏极有defect(比如到浮栅的
氧化层漏电),那么电子将进入浮栅,该cell 被误编程
测试方法:对某个CELL 编程(w1)后,检查同一位线上其他未被编程的CELL 是否也被编程(r0)
图 14 位线写干扰原理
2.12 Bit Line Erase Disturb Fault (BEDF) 位线擦干扰
Conditions: 如7.1 节图示,
当对cell- WL1BL1 编程时(电子进入浮栅),位线BL1 上为6V,cell-WL0BL1 上的缺陷(如漏电过大)造
成浮栅电子流失,该cell 被误擦除。
测试方法:对某个CELL 编程(w1)后,检查同一位线上其他已经被编程的CELL 是否被擦除(r1)
2.13 Read Disturb Fault (RDF) 读干扰
Conditions: 如下图,当读取cell-WL1BL1 时,控制栅有电压,若该CELL 栅漏极的氧化层漏电,电子将进
入浮栅,该cell 被误编程;反之,如浮栅与控制栅间漏电,该cell 也可能被误擦写。
测试方法:对每个CELL 连续读两次(r0)。
图 15 读干扰原理
2.14 Over Erase Fault (OEF)
Conditions: Cell 被过度擦写(如擦写时间过长,电压过高),造成Source—Drain 漏电过大,可能表现为
读写错误。
测试方法:对全片CELL 进行00/FF 读写。
以下是NAND FLASH 的失效模型,原理与上述NOR FLASH 类似.
图 16 NAND 写失效原理
图 17 NAND 读/擦失效原理
3 EEPROM/FLASH 测试方法
常用测试方法:
3.1 全片擦除00/写入FF 并读出。
覆盖率:Stuck At, Stuck Open, 部分Bridge, Over Erase Fault.
3.2 Checkerboard
测试方法:每一个单元与相邻的单元值都不同,对每个page 写入5A 或AA55 实现。
覆盖率:Stuck At,Stuck Open , 部分Bridge Fault ,Over Erase Fault.
3.3 对角线
测试方法:先擦除全片,然后每个page 对角线上写1,也就是在每条位线上有一个CELL 写1,其
余为0,读取全片。
覆盖率:部分的Stuck At,Stuck Open , Bridge Fault,由于每条位线和字线都有动作,还可以检查除
去对角线上CELL 外其他CELL 的Word Line Program Disturb Fault (WPDF)字线写干扰和Bit Line Program
Disturb Fault (BPDF) Bit 位线写干扰
同理,将全片写1 后,在对角线CELL 上擦0 并写1,检查全片就可检查另外两种干扰WEDF 和BEDF。
3.4 CharBit(特征位)
测试方法:先擦除全片为0,再对page0(即word line0)写1,读page0 是否为1,把page0 擦为0;
再对除page0 外的某一行pageN 写1,读pageN 是否为1,把pageN 擦为0.
覆盖率:该测试主要针对生产测试中发现的如下失效现象:某条位线上有漏电,造成该位线上所有
cell 不能正常写入1。这里可归为Transition Fault 失效模型,0-〉1 变迁失效。
因为读的速度很快,建议在这个测试中将"读page0/N 是否为1" 改为"读全片",这样还可以覆盖
2.11/2.22 节描述的BPDF 失效模型。
3.5 Bit_Test0
测试方法:先擦除全片为0,再对page0 的Word0_Bit0 写1,读1,再擦除,然后Word0_Bit1 写1,
读1,再擦除,直到该page 上所有Bit 都进行了“写1,读1,再擦除”(也就是在该page 中进行了走1
操作)
覆盖率:该测试主要针对生产测试中发现的如下失效现象:由于VPP 映射到各个Bit 线上的驱动能
力问题,造成某个Bit 线不能被正常写入。这里可归为Transition Fault 失效模型,0-〉1 变迁失效。
因为读的速度很快,建议在这个测试中后全片读一遍,可以测试BPDF 失效模型。
3.6 几种Flash 测试算法:DCP,DCE, DD, EF, GF,March-FT,Diagonal-FT, Diagonal-FD
图 18 测试时间
图 18 测试时间
图 19 测试覆盖率
3.6.1 Algorithm DCP:
1. Flash n * Initialize array *n
2. For (i = 0; i < n; i++) n* Program column 0 *n
(i, 0, w0)
3. For (j = 1; j < m; j++) n* Read all except column 0 *n
For (i = 0; i < n; i++)
(i, j, r1)
4. Flash n* Erase array *n
5. For (i = 0; i < n; i++) n* Program column k *n
(i, k!= 0, w0)
6. For (i = 0; i < n; i++) n* Read column 0 for 1's *n
(i, 0, r1)
3.6.2 Algorithm DCE:
1. Flash n* Initialize array *n
2. For (j = 0; j < m; j++) n* Program all cells *n
For (i = 0; i < n; i++)
(i, j, w0)
3. For (j = 0; j < m-1; j++) n* Read all except column m-1 *n
For (i = 0; i < n; i++)
(i, j, r0)
4. For (i = 0; i < n; i++) n* Program column k *n
(i, k!= m- 1, w0)
5. For (i = 0; i < n; i++) n* Read column m-1 *n
(i, m-1, r0)
3.6.3 Algorithm DD:
1. Flash n* Initialize array *n
2. For (j = 0; j < n; j++) n* Program all cells *n
For (i = 0; i < m; i++)
(i,j,w0)
3. For (j = 0; j < m; j++) n* Read all except row n-1 *n
For (i = 0; i < n-1; i++)
(i,j,r0)
4. For (j = 0; j < m; j++) n*Program row k *n
(k!= n - 1, j, w0)
5. For (j = 0; j < m;j++) n* Read row n-1 *n
(n-1, j, r0)
3.6.4 Algorithm EF:
1. Flash n* Initialize array *n
2. For (j = 0; j < m-1; j++) n* Program all except column m-1 *n
For (i = 0; i < n; i++)
(i, j, w0)
3. For (i = 0; i < n; i++) n* Read column m-1 *n
(i, m-1, r1)
4. For (i = 0; i < n; i++) n*Program column m-1 *n
(i, m-1, w0)
5. For (j = 0; j < m; j++) n* Read all except (n-1,m-1) *n
For (i = 0; i < n; i++)
If (j != m- 1 and i != n - 1)
(i, j, r0)
6. For (i = 0; i < n-1; i++) n* Program column l except (n-1,l) *n
(i, l 6= m- 1, w0)
7. For (j = 0; j < m-1; j++) n* Program row k except (k,m-1) *n
(k!= n - 1, j!= l, w0)
8. For (i = 0; i < n-1; i++) n* Read column m-1 except (n-1,m-1) *n
(i, m-1, r0)
9. For (j = 0; j < m-1; j++) n* Read row n-1*except (n-1,m-1) *n
(n-1, j, r0)
10. Flash n* Erase array *n
11. For (i = n-1; i _ 0; i{ {) n* Program column m-1 *n
(i, m-1, w0)
12. For (j = 0; j < m-1; j++) n* Read all except column m-1 *n
For (i = 0; i < n; i++)
(i, j, r1)
13. (n-1, k!= m- 1, w0) n* Program cell (n-1,k) *n
14. (n-1, m-1, r0) n*Read cell(n-1,m-1) *n
3.6.5 Algorithm GF:
1. Flash n* Initialize array *n
2. For (i = 0; i < n; i++) n* Program column m-1 *n
(i, m-1, w0)
3. For (j = 0; j < m-1; j++) n* Read all except column m-1 *n
For (i = 0; i < n; i++)
(i, j, r1)
4. Flash n* Erase array *n
5. For (i = 0; i < n; i++) n* Program column 0 *n
(i, 0, w0)
6. For (i = 0; i < n; i++) n* Read column m-1 *n
(i, m-1, r1)
7. For (j = 1; j < m; j++) n* Program remaining cells *n
For (i = 0; i < n; i++)
(i,j,w0)
8. For (j = 0; j < m; j++) n* Read all except (n-1,m-1) *n
For (i = 0; i < n; i++)
If (j != m- 1 and i != n - 1)
then (i, j, r0)
9. For (i = 0; i < n-1; i++) n* Program column l except (n-1,l) *n
(i, l!= m- 1, w0)
10. For (j = 1; j < m-1; j++) n* Program row k except (k,m-1) *n
(k!= n - 1, j!= l, w0)
11. For (i = 0; i < n-1; i++) n* Read column m-1 except (n-1,m-1) *n
(i, m-1, r0)
12. For (j = 0; j < m-1; j++) n* Read row n-1 except (n-1,m-1) *n
(n-1, j, r0)
13. (n-1, k!= m- 1, w0) n*Program cell (n-1,k) *n
14. (c!= n - 1, m-1, w0) n*Program cell (c,m-1) *n
15. (n-1, m-1, r0) n* Read cell (n-1,m-1) *n
3.6.6 March-FT
{(e0);⇓(r0,w1,r1); ⇓(r1); (e0); ⇑(r0,w1,r1); ⇑(r1)}既:全页擦除为0->降序对每个CELL(读0,写1,读1)
->降序对全页读1->全页擦除为0->升序对每个CELL(读0,写1,读1)->升序对全页读1
覆盖率:所有上述失效模型(除了Data Retention Fault 和Cell Endurance Fault):Stuck At, Stuck Open,
Transition, Bridge, Address-decoder, WPDF, WEDF, BPDF, BEDF, Read Disturb, Over Erase Fault.
测试时间:2 erase+2N program+6N read (N 代表memory size).
该算法大约需要2500 个门.
3.6.7 Diagonal-FT (对角线Flash Test)
图 20 对角线FT 算法
测试时间:2 erase+(1N+2*N[1/2]) program+(4N+3*N[1/2]) read (N 代表memory size).
该算法大约需要2500 个门.
覆盖率:对所有上述失效模型(除了Data Retention Fault 和Cell Endurance Fault), AF=81.6%, CF=81.95%,
其它都为100%.
3.6.8 Diagonal-FD (对角线Flash Diagnosis)
图 21 对角线FD 算法
覆盖率:对所有上述失效模型(除了Data Retention Fault 和Cell Endurance Fault)都为100%.
测试时间:2 erase+(1N+3*N[1/2]) program+4Nread (N 代表memory size).
3.7 Ion Check
擦除电流测试。先对全片写1,在VPP 上逐步增加电压(0~13V)的同时读全片,个CELL 出现
0 的VPP 上的电流就是小擦写电流,继续增加电压,当全片所有CELL 都变成0 是的电流就是大擦
写电流。
该测试只用于性能评估。
3.8 CP_Test Check
在擦除或者写入过程中测试VPP,用于评估内部电压泵是否能提供正确的擦除/写入电压。
3.9 Baking
CP1 和CP2 之间高温bake,在高温bake 后测试bake 前的数据是否不变。是对Data Retention Fault (数
据保存时间)的估算。
3.10 Open-Window:
如2.7 节所示,是针对Cell Endurance Fault (CEF)(擦写次数)的考量,测试存储单元开启电压与擦
除/写入次数的线性关系,一般在特性测试中使用。
3.11 各测试方法覆盖率分析表
以一个64*8BYTE EEPROM 为例,只有片擦,片写,CheckBoard, BYTE write,
BYTE read 模式,假设所有pin 可以并行控制,一个读周期少需要145ns(VDD>=2.7V), 一个擦/写周期
为1.4065ms. 详细时序请参考IP SPEC:“UM-6HBL-0079-020.pdf”
图 22 测试覆盖率分析表
4 产品量产失效反馈
4.1 HHNEC 产品量产失效反馈
待补充
4.2 SMIC 产品量产失效反馈
待补充
5 附录
参考文档
7-2_半导体存储器.ppt
全面理解非易失存储器.pdf
Flash Memory Testing.pdf
Flash memory disturbance faults.pdf
memory_test_basics.pdf
FLASH MEMORIES (Kluwer Academic Publishers) 书架编号:BI029