《存储器技术-嵌入式存储器的两种可测性设计方式》由会员分享,可在线阅读,更多相关《存储器技术-嵌入式存储器的两种可测性设计方式(6页珍藏版)》请在金锄头文库上搜索。
1、嵌入式存储器的两种可测性设计方式 嵌入式存储器的两种可测性设计方式 黄禄惠 成都三零嘉微电子有限公司 摘要摘要:MBIST 是针对一个或多个内嵌存储器创建 BIST 测试逻辑电路,以此来达到测试的目 的;MacroTest 通过将用户自定义的测试向量转换为扫描测试向量的方式来测试被测对象。 关键字关键字:MBIST,MacroTest,FSM, March 1.1. 概述 概述 集成电路自问世以来,一直按照摩尔定律高速的发展,随着其快速的发展,IC 的设计和 工艺都在不断的提高, 这就使得 IC 产品的测试变得越来越困难。 特别是针对目前在 IC 产品 中比重越来越大的嵌入式存储器的测试。 因
2、此, 存储器测试已经成为电路测试中非常重要的 部分。Mentor 公司的 DFT 工具提供了两种适用于嵌入式存储器设计的测试方法:MBIST 及 MacroTest,本文将介绍这两种方式及它们在同一款芯片中的具体实现。 在一款通信芯片中,有多种类型的存储器,其中有 SRAM 及不同型号的 RegisterFile 多片。对这些片内存储器的测试方法选择从以下两个方面考虑:设计上,由于芯片内部的 RegisterFile 时序和布线稍紧张,而 SRAM 则相对宽松;测试工具方面,MBIST 测试方式需 要添加测试逻辑, 因此会增加存储器周围布线和时序的负担, 但这种方式产生的测试向量相 对要少,可
3、以减小测试的开销。而 Macrotest 是只对测试对象的写端口信号进行控制,通过 建立存储器的 ATPG 模型来转换并生成测试向量,从而实现对内部存储器的测试。这种测试 方法不增加测试逻辑,不会给后端布局布线增加负担。但产生的测试向量相对较多,一定程 度上增加了测试的开销。因此,对不同的存储器分别使用不同的测试策略,以达到测试最优 化的目的。结合存储器设计的实际情况考虑,在此项目中采用两种测试方法相结合,对 RegisterFile 采用 Macrotest 的测试方式,对 SRAM 则选择了 MBIST 测试方式。 2.2. MBIST 测试 MBIST 测试 2.1 MBIST 概述 2
4、.1 MBIST 概述 存储器内置自测试(MBIST)是芯片设计中用来测试嵌入式存储器的标准技术,这种测试 方式是一种以一定面积开销为代价来实现对嵌入式存储器测试的方式。 它的测试原理是: 生 成测试向量,输出给带多路选择器的内嵌存储器,并对存储器的响应进行分析比较,通过对 比预期数据与输出数据是否一致来判断被测试的存储器是否完好。对拥有大量存储器的设 计,让多个存储器通过同一个 BIST 控制器来进行测试,可以有效的节省测试逻辑的开销面 积并且能降低测试的复杂性。 Mentor公司的BIST工具-MBISTArchitect可以灵活地在ASIC或IC中自动实现内嵌存 储器阵列的 RTL 级
5、BIST 结构。它支持多种测试算法,并支持用户自定义的测试算法。可以 对一个或多个内嵌存储器自动创建 BIST 逻辑,完成 BIST 逻辑与存储器的连接,特别的,它 能够在多个存储器之间共享 BIST 控制器,实现并行测试,从而显著缩短测试时间和节约芯 片面积。另外,MBIST 结构中还包括故障的自动诊断功能,可以生成自动诊断故障的电路,1从而当芯片存在缺陷时可以自动导出芯片内部故障信息, 为时效分析和良率的提升提供了技 术上的保障。 2.22.2 具体实现 具体实现 在本款芯片的 DFT 设计过程中, 对多片存储器采用了 BIST 的设计。 具体设计遵循了 BIST 电路设计原则。在端口设计
6、上,增加了 BIST_ENABLE(BIST 测试使能), BIST_DONE(测试 结束信号), FAIL_H(故障发生指示信号), DEBUGZ(debug 模式使能信号),HOLD_L(运 行控制信号)等指示控制信号。其中 BIST_DONE 用来标示 BIST 测试结束,测试结束时该信 号置为有效。FAIL_H 为测试指示信号,在测试过程中发现任何错误,该信号将被置高并保 持。此外在设计中还加入了自诊断的功能。并实现了多个存储器共用一个 BIST 控制器的设 计。 如图一所示,在 BIST 测试电路中包括了三部分的逻辑电路:BIST 控制器、向量产生器 和响应分析器。 向量产生电路可生
7、成多种测试向量, 不同的测试向量是通过不同的测试算法 存储器存储器向量 产生 器向量 产生 器BIST控制器控制器响应 分析 器响应 分析 器选择器系统系统系统系统结束结束存储器存储器选择器开始开始. . . . .图一:多片存储器的BIST测试实现的电路所产生的,每种测试向量都着重测试某一种特定的电路类型或错误类型。比如 BIST 中最常用的测试类型 March 2 算法,它能够检测出绝大多数常见的存储器缺陷,包括 Stuck_at、寻址出错及耦合问题等。BIST 控制器通常采用有限状态机(FSM)来实现,由地 址,数据及控制产生器组成。有限状态机用来控制 BIST 对存储器的读写操作,它将
8、测试 pattern 写入存储器、并读回这些 pattern 交给响应分析器完成比较。响应分析器一般采用 比较器或者压缩器多输入移位寄存器电路来实现,最终通过标示信号的状态来显示测试结 果。另外,在原有电路上还增加了一些多路选择逻辑,这部分电路是通过测试模式使能信号 来控制,用来做系统正常工作与测试模式的选择。 BIST 电路设计完成后,首先要进行验证。MBIST 工具可以产生相应的测试基准对 BIST 外围逻辑进行验证。在确保这部分电路的正确后,再将这部分电路插入到芯片电路设计中,2并设计相应的测试基准来对 BIST 测试电路插入后的整个电路进行验证,保证电路功能的正 确。 3.3. Mac
9、roTest MacroTest 3.1 MacroTest 概述 3.1 MacroTest 概述 MacroTest 是 Mentor 公司的测试向量自动生成工具 FastScan 中的一个子工具, 这个工 具支持所有主要的故障类型,不仅可以对常用的 Stuck-at 模型生成测试向量,还可以针对 关键时序路径、Transition 模型生成 At-speed 测试向量、针对 IDDQ 模型生成 IDDQ 测试向 量。并且可以利用生成的测试向量进行故障仿真和测试覆盖率计算。FastScan Macrotest 是一个专门用于较小存储器(如 REGISTERFILE,CACHE,FIFO 等
10、)测试的工具。它的测试原 理是将用户自定义的测试向量转换为扫描测试向量(如图二)。 当设计中包含大量内嵌存储器 时,提高芯片的测试覆盖率变得非常困难,MacroTest 测试方法的优点在于它能够在不对芯 片的面积和性能造成不利影响的前提下提高芯片测试的质量, 采用 MacroTest 测试方式, 可 以大幅度提高芯片的测试覆盖率。相对于 BIST 测试方式来说,它要增加更多的测试向量, 但不会增加带来面积的开销。 Logic1100010101001010RegisterFileLogic1001011001011001自定义向量文件自定义向量文件图二:Macrotest 测试 3.2 具体实
11、现 3.2 具体实现 在本款芯片中用到了多片不同的 RegisterFile,考虑到时序和布线资源有限,对其采 用了 MacroTest 方式。并实现了多个测试对象的并行测试。采用这种测试方法,首先必须定 义好测试向量文件。 用户可根据一定的算法来定义测试向量文件, 这些算法可以是工具自带 算法,也可以采用自定义算法。比如用一个简单的 March3 算法定义,一共有四个步骤:首先 是对所有地址写 0,即初始化;第二步是读 0,写 1,读 1;第三步是读 1,写 0,读 0。前 面都是按照地址升序的顺序完成,第四步则按地址降序完成读 0,写 1,读 1。这四个步骤 组成一个完整的 March3
12、算法。算法的优化程度将直接影响到产生的测试向量的数量。在实 际使用中可以根据自身设计的测试需要,对算法进行删减或根据自定义算法来生成向量文 件。 3在项目中,一个简单的宽度 8、深度 7 的存储器,采用 March3 算法实现的用户测试向 量文件如下: macro_inputs CLKB CENB ADB ADB ADB ADB ADB ADB ADB macro_inputs DBIN DBIN DBIN DBIN DBIN DBIN DBIN DBIN macro_inputs CLKA CENA ADA ADA ADA ADA ADA ADA ADA macro_outputs DAOU
13、T DAOUT DAOUT DAOUT DAOUT DAOUT DAOUT DAOUT end /initialize P 0 0000000 00000000 x x xxxxxxx XXXXXXXX P 0 0000001 00000000 x x xxxxxxx XXXXXXXX P 0 0000010 00000000 x x xxxxxxx XXXXXXXX P 0 0000011 00000000 x x xxxxxxx XXXXXXXX P 0 0000100 00000000 x x xxxxxxx XXXXXXXX P 0 0000101 00000000 x x xxxxx
14、xx XXXXXXXX P 0 0000110 00000000 x x xxxxxxx XXXXXXXX P 0 0000111 00000000 x x xxxxxxx XXXXXXXX P 0 0001000 00000000 x x xxxxxxx XXXXXXXX P 0 0001001 00000000 x x xxxxxxx XXXXXXXX P 0 0001010 00000000 x x xxxxxxx XXXXXXXX P 0 0001011 00000000 x x xxxxxxx XXXXXXXX P 0 0001100 00000000 x x xxxxxxx XXX
15、XXXXX P 0 0001101 00000000 x x xxxxxxx XXXXXXXX P 0 0001110 00000000 x x xxxxxxx XXXXXXXX P 0 0001111 00000000 x x xxxxxxx XXXXXXXX /read 0, write 1, read 1 in ascending order x 1 xxxxxxx xxxxxxxx P 0 0000000 XXXXXXXX+ x 1 xxxxxxx xxxxxxxx P x xxxxxxx LLLLLLLL P 0 0000000 11111111 x x xxxxxxx XXXXXX
16、XX x 1 xxxxxxx xxxxxxxx P 0 0000000 XXXXXXXX+ x 1 xxxxxxx xxxxxxxx P x xxxxxxx HHHHHHHH . x 1 xxxxxxx xxxxxxxx P 0 0001111 XXXXXXXX+ x 1 xxxxxxx xxxxxxxx P x xxxxxxx LLLLLLLL P 0 0001111 11111111 x x xxxxxxx XXXXXXXX x 1 xxxxxxx xxxxxxxx P 0 0001111 XXXXXXXX+ x 1 xxxxxxx xxxxxxxx P x xxxxxxx HHHHHHHH /read 1, write 0, read 0 in ascending order x 1 xxxxxxx xxxxxxxx P 0 0000000 XXXXXXXX+ x 1 xxxxxxx xxxxxxxx P x xxxxxxx HHHHHHHH P 0 0000000 00000000 x