非易失性存储器中新型位间依赖关系的测试与故障分析
1. 引言
摩托罗拉的一位内部客户反馈,在其应用中一款支持集成电路(IC)的故障率较高。具体表现为,故障IC上的电可擦可编程只读存储器(EEPROM)无法用某些数据模式进行编程,而其他模式则可以成功编程。在数周内,约20%的晶圆批次受到影响,在有问题的晶圆批次中,5 - 30%的器件存在此问题。然而,故障器件却能通过包括棋盘格和反棋盘格模式在内的所有标准生产测试。
在正式进行故障分析之前,客户、产品工程和晶圆厂工程师有以下关键发现:
- 故障可通过在180°C无偏烘烤3小时诱发。
- 故障器件在暴露于紫外线下后可恢复。
- 无法编程的数据模式并非随机,而是存在特定关系。
由于即使IC采用陶瓷封装,故障仍然存在,因此推测故障机制与组装过程无关。该EEPROM存储器阵列由嵌入支持IC中的256字节组成,寻址方案允许按字节访问,若不访问整个字节,则无法对单个位进行编程或读取。片上电荷泵电路可从2.5伏(Voo)电源产生18伏(Vpp)的高电压,用于EEPROM的编程和擦除。
2. 故障描述
故障发生在EEPROM由电荷泵供电进行编程时。若Vpp由片外电源提供,则不会出现故障,且读取EEPROM也无问题。
3. 相邻字节的相互作用
EEPROM阵列中相邻字节的内容会影响某个字节是否能成功编程。产品工程师通过先在全擦除阵列中对一个字节编程为$FF,再尝试对另一个字节编程为$AA来探究这种字节间的相互作用。若后一个字节编程失败,则记录为故障。分析表明,若两个字节位于同一EEPROM行和同一EEPROM象限,则它们可能相互作用导致故障。象限定义为阵列列的四分之一,如下表所示:
| 数据模式 | 是否通过 |
|---|---|
| 1 0 1 0 0 0 0 0 | 失败 |
| 1 1 0 0 1 1 0 0 | 通过 |
此外,除了相邻地址中已有的数据,正在编程的数据也会影响编程是否成功。一般来说,棋盘格字节模式是最糟糕的情况。晶圆厂和产品工程师进一步研究发现,故障值包含的位模式与成功编程的模式不同。具体而言,若一个字节包含多个互补位对(如0 - 1或1 - 0),则在编程时更有可能失败。互补位对的位置也很重要,如下表所示:
| 第一字节数据 | 第二字节编程数据 | 泄漏路径数量 |
|---|---|---|
| 11111111 | 10 10 10 10 | 4 |
| 00 10 10 10 | 10 10 10 10 | 3 |
| 00 00 10 10 | 10 10 10 10 | 2 |
| 00 00 00 10 | 10 10 10 10 | 1 |
| 00 00 00 00 | 10 10 10 10 | 0 |
4. 故障分析
对EEPROM电路进行电气微探测发现,当一个字节编程失败时,电荷泵产生的电压低于10伏;而成功编程时,电荷泵产生18伏电压,且在所有EEPROM擦除操作中,电荷泵输出达到标称的18V。
由于电荷泵只能提供几微安的电流,几乎任何泄漏路径都可能使电荷泵输出电压从标称的18伏下降。通过测量不同EEPROM编程条件下的电荷泵输出,可以推断出泄漏电流至少通过一个被编程为导通状态的浮栅晶体管。
5. 故障机制
浮栅晶体管仅存在于EEPROM阵列中。若假设正确,泄漏电流必然在阵列本身。通过检查阵列原理图和物理布局,发现可能的故障机制是相邻EEPROM位之间的泄漏。经过多领域工程师的深入分析,确实发现相邻n +有源区之间由窄场氧化物隔离的区域存在泄漏路径。仅当满足以下所有条件时,该隔离区域上的高电压才会导致泄漏:
- 两个相邻位(以下称为“泄漏位”)被编程为1,对应浮栅晶体管的导通状态。
- 一个1 - 0模式正在被编程到与泄漏位同一EEPROM行和象限的字节中。
- 1 - 0模式按与泄漏位相同的位顺序进行编程。
graph TD;
A[两个相邻位编程为1] --> C[满足泄漏条件];
B[1 - 0模式编程到同象限同行字节] --> C;
D[1 - 0模式按相同位顺序编程] --> C;
若整个阵列中只有一对位之间发生泄漏,Vpp不会下降到足以导致故障的程度。只有当至少两对位之间发生泄漏时,才会出现故障。在故障器件上,有512个可能发生泄漏的位置,但同时只有12个位置可能导致泄漏,因为泄漏位必须与正在编程的字节位于同一行和象限。
Vpp在编程期间会随着泄漏路径数量的变化而变化。系统地改变泄漏路径数量并测量Vpp,结果表明,随着泄漏路径数量的增加,Vpp确实下降。当激活两条或更多泄漏路径时,Vpp会降至最低编程电平10伏以下。
非易失性存储器中新型位间依赖关系的测试与故障分析
6. EEPROM测试的意义
传统测试模式,如对所有位编程为1、棋盘格和反棋盘格模式以及字节/批量擦除等,未能识别出本文详细描述的故障模式。传统测试通常能完全检测出固定故障,但只能部分覆盖耦合和转换故障。
在随机存取存储器中,有更多模式可用于更全面的测试,如GALPAT、行走1或0等模式,能让测试工程师确保对存储器阵列进行更全面的故障覆盖。然而,对于EEPROM阵列,由于在当今竞争激烈的商业环境中,减少测试时间至关重要,因此需要综合考虑生产测试模式。
另一个需要考虑的因素是测试方法能否满足最终用户的需求。在本文讨论的器件中,最终用户仅依靠内部电荷泵为EEPROM阵列生成编程电压,而阵列的生产测试通常借助外部Vpp电压(约18V)进行,这是为了减少编程所需的测试时间。以下是使用和不使用外部电源编程的时间对比:
| 编程方法 | 字节编程时间 | 批量编程时间 |
|---|---|---|
| 外部VDD | 0.2ms | 5ms |
| 内部VDD | 3ms | N/A |
由于该器件的泄漏故障特性,使用外部Vpp电压的测试无法发现故障。因此,在为EEPROM阵列创建生产测试模式时,需要考虑以下几点:
- 是否使用外部Vpp会掩盖故障?
- 哪种类型的模式能提供最大的故障覆盖范围?
- 为了使器件具有竞争力,测试时间要求是多少?
7. 替代测试方法
尽管在生产过程中必须对测试量进行限制,但在评估器件的操作时,仍可对阵列进行全面分析。对于初始硅片的表征程序,可以编写模拟用于测试RAM阵列的模式,还可以使用随机模式生成器更精确地模拟最终用户将编程到阵列中的代码。对于定制器件,可以使用用户代码中频繁出现的值来更接近最终用户的应用。
另一种实施的方法是仅测试阵列的一部分,同时复制最终用户的编程方法。可以选择能提供最大故障覆盖范围的任何模式,例如在同一行的几个字节中交替编程$FF和棋盘格模式$AA。这种方法在尽可能减少测试时间影响的同时捕获了故障,也体现了故障分析在支持电气测试方面的积极作用。
8. 总结与结论
基本的棋盘格测试模式可以识别EEPROM制造过程中产生的大多数故障,但某些故障模式无法通过这些模式捕获。在生成生产测试模式和表征初始硅片时,必须考虑这一事实。同时,还需要审查测试过程中的其他变量(如是否使用外部Vpp),以确保某些缺陷不会被测试过程掩盖。
在对非易失性阵列进行故障分析时,非相邻位之间的相互作用会使故障的复杂性增加,甚至使其看起来几乎是间歇性的。测试阵列的所有可能配置显然是不可行的解决方案,因为一个N位阵列有2^N种可能的配置,对于一个仅64位的EEPROM,测试所有这些配置的时间将超过宇宙的估计年龄。
为了显著减少故障分析(F.A.)周期时间,必须采用更巧妙的测试程序。这些程序应结合对阵列物理布局和电气拓扑的了解进行设计。最后,在分析具有复杂位间相互作用的故障时,必须在每次测试期间了解(E)EPROM阵列的内容,以确保未考虑的变量不会干扰分析。
graph LR;
A[生成生产测试模式] --> B[考虑故障捕获情况];
A --> C[审查测试变量];
D[故障分析] --> E[减少F.A.周期时间];
D --> F[了解阵列内容];
E --> G[采用巧妙测试程序];
综上所述,对于EEPROM的测试和故障分析,需要综合考虑多种因素,不断优化测试方法,以确保产品的质量和可靠性。

1298

被折叠的 条评论
为什么被折叠?



