SoC中可修复嵌入式内存的测试:方法和挑战
嵌入式存储器在任何SoC中都扮演着至关重要的角色,几乎在任何设计中都覆盖了70%以上的面积。它们具有不同的大小和类型,并且随着技术节点的缩小,测试存储器变得至关重要。较低的几何结点会导致在地址,行和列方面更密集的内存,因此更容易出现缺陷。
内存内置自测试(MBIST)提供了测试此类内存的最佳解决方案。内置的自我修复(BISR)广泛用于测试/修复RAM,其中每个RAM使用专用的BISR电路。BISR功能有助于检查内存BIST逻辑和内存包装器接口。内存测试在向其中添加诸如内置冗余分析(BIRA)之类的修复功能后,将变得更加有效。维修分析将使电路良率提高。本文重点介绍当我们包含修复功能时如何测试可修复的内存,还将探讨在自动测试模式生成(ATPG)或内置模式生成期间将如何影响可修复内存。此外,它着重介绍了常见的挑战。
什么是内存修复?
内存修复功能通过可用的备用或冗余行和列来转移内存的故障区域(例如,行,列或两者)。维修分析还包括收集可用的故障位置,冗余分析以及对内存将如何访问维修逻辑的分析,从而增加了设计的复杂性。当我们处理SoC时,大多数设计都覆盖有可修复的存储器,因此需要额外的硬件才能有效地启用和禁用修复功能。
内存修复由行修复或列修复或两者之类的不同方法组成,可以实现为硬修复,软修复和融合方法。使用内存编译器,我们可以确定设计中额外的行和列的数量。存储器设计库包括修复能力及其特征。
内存修复的工作原理:BISR和BIRA
图1.内置自我修复(BISR)架构
要为内存启用修复逻辑,必须启用或打开repair_analysis_present属性,这会触发内存中的修复逻辑。
内置自我修复(BISR)逻辑插入任务如下:
在设计中创建BISR链
将BISR控制器连接到链
BISR控制器将连接到垃圾箱
将创建BISR控制器到逻辑连接
图2.芯片BISR架构
维修带来的挑战
额外的区域开销
处理可修复内存时出现的主要困难是,它将需要一些额外的逻辑来进行修复分析。这将影响芯片的尺寸和面积。为存储器启用修复属性后,将在设计中插入BISR和BIRA逻辑,从而与控制器和垃圾箱连接。区域开销的数量还取决于可修复存储器的数量及其周围的逻辑。
在MBIST插入期间将插入专用的BISR寄存器模块,以用于可修复的存储器。每种类型的存储器都有一个专用的BISR寄存器模块,主要包括移位寄存器和重定时触发器。平均每个BISR寄存器将占用大约。总内存的5-7%。与BISR不同,不可修复的内存的BIST区域开销几乎只有1-2%。
插入修复用的可扫描拖板
根据我们的实验结果,我们观察到采用BISR(内置于自我修复)的设计,设计中可扫描触发器的数量增加了4-5%。插入到设计中的其他扫描触发器的分类如下表所示:
表1. MBIST逻辑插入比较
状态寄存器用于检查修复启用/禁用和修复完成的状态。
当特定的存储器是行可修复的或列修复的或两者兼有时,将使用列和行熔丝寄存器。
备用I / O范围可用寄存器用于检查备用行,列和输入/输出。
BIRA使能寄存器用于检查维修分析和诊断完成。
列和行保险丝寄存器。
错误匹配寄存器将在检测到错误时启用,并在稍后阶段由备用行和列替换。
BIST使能寄存器可检查是否对特定存储器启用了内置自检。
引脚数增加
与MBIST不同,可修复的MBIST将在DUT /模块级增加引脚数,从而导致另一个损失。在MBIST期间,CLK,RST,MBIST GO和MBIST DONE需要额外的引脚。在设计中,使能BIRA和BISR的电路将包括bisr_si,bisr_so,bisr_en,bisr_clk和bisr_reset引脚。BISR模块中的引脚将主要是专用引脚,因为这些引脚将用于维修。如今,业界使用共享引脚来实现这种逻辑,以确保最小的区域开销。
更高的运行时间
由于还有其他与修复启用相关的逻辑,它将通过BISR逻辑插入来插入和诊断修复实用程序,从而导致更长的运行时间和更多的设计工作。对于1000个内存,与关闭BISR相比,启用修复的MBIST插入将花费3倍的时间和精力。
ATPG期间的模式膨胀
插入MBIST后,一旦设计通过扫描插入/测试逻辑插入,结果是设计中可扫描触发器的数量增加。这进一步导致门数,故障数的增加,以及在ATPG中出现更多模式的结果。
结论
根据到目前为止我们已经讨论的内容,可以得出结论,维修分析有其自身的优缺点,在模块和系统/芯片级别具有正反作用。它通过维修逻辑提高了制造良率,从而提供了最大的成本节省因素。较低的几何节点始终具有密集得多的内存,这对于测试非常关键。如今,当内存占据最大的面积时,内存修复概念将有助于提高整体制造良率。