当前位置:首页 > 工作总结 > 【一种节约面积的可编程存储器内建自测试设计方法】 可编程控制器中存储器有
 

【一种节约面积的可编程存储器内建自测试设计方法】 可编程控制器中存储器有

发布时间:2019-02-16 04:37:27 影响了:

  摘要:随着深亚微米技术不断的发展,在soc设计中存储器需求越来越大,芯片的量产需要有效率而又具有相对的低成本的测试方法。可编程存储器内建自测试方法基于客制化的控制器,提供了一定程度可靠的弹性以及所需合理的硬件成本。我们在本文提出了一个P―MBIST设计的硬件分享架构,经由分享共用的地址产生器与控制器,P―MBIST电路的面积开销能够大幅减小,利用加入的两级流水线能够达到更高的测试速度。最后,所提出的P―MBIST电路能够由使用者自定义的配置文档而自动生成。
  关键词:存储器内建自测试;SoC
  
  1、引言
  
  随着现代SoC设计的设计复杂度不断提升,并且包含着许多不同大小和类型的存储体实例,用相对较低的代价测试所有的存储体便成了一件很重要的事情。提供用户自定义的向量来筛选出大量的制造缺陷也是一个很迫切的需求。为了在硬件成本和测试灵活性之间寻求一个折中,可编程内建自测试(Programmable Built-In Self-Test,P-MBIST)的方法即是在这种情况下完成存储体测试的一种开放性方法。许多的研究开始专注于P-MBIST设计。基于处理器的体系结构提供了很高的测试灵活性,但应用众多处理器家族却是会增加测试开发的成本。为了降低设计成本,一种定制的处理器和指令已经被开发出来。它使用程序存储器来存储测试程序。为了进一步降低硬件成本,指令可以串行输入并通过采取简单的控制器将其存储到一个内部寄存器里。尽管如此,多实例并行测试的问题还没有讨论。在这项工作里,我们提出了一种硬件共享体系结构来测试并行机制里的同类型的存储器。提出的方法仅使用一个地址计数器来为基于March的算法产生需要的地址,包括行扫描和列扫描。控制器能够在同一个读/写周期应用于不同的存储器类型。若插入两条流水线站可以达到更高的测试速度。最后,提出的P-MBIST引擎可以从用户自定义的配置文件中自动产生。本文组织结构如下:第2节简要的介绍了基于March算法的概念;在第3节,将涉及到所提出的体系结构和详细部件的设计,流水线的设计问题也将被探讨;第4节描述了整个P-MBIST引擎的自动化流程;第5节将会介绍实现的结果和相关的比较情况;最后,在第6节会给出简要的结论。
  
  2、支持测试的算法
  
  针对检测众多不同的故障模型,很多有效的测试算法已经被提出。尽管如此,为了在同样的P-BIST设计中实现多种测试算法,会导致较高的面积开销。因此,测试算法族的选择需要着重考虑。
  基于March的算法就是用来检测众多故障的算法中非常重要的一类。一个March测试算法是由一些March元素组成的一个有限序列。每个元素执行一系列存储器单元的“读”和“写”操作。每个元素的寻址顺序都是按照升序(↑)、降序(↓)或混合(↑↓)的方式来执行。作为图1所示的测试实例,其包含了三个March元素。第一个元素以混合寻址方式为每个存储器单元执行写0的操作。第二个元素以升序方式为每个地址执行两种操作。最后,第三个元素以降序方式读取所有地址。复杂度计为4N,N为存储器地址的位数。
  
  另外,基于March测试序列,动态故障能够通过在同一个存储器单元反复执行来测试。为了高效的实现基于March的算法,我们给P-MBIST体系结构定义相应的指令。这样做的优势可以使我们在运行期间编写指令来修改测试算法。在我们分享的体系结构中,只有一个地址产生器需要测试所有的存储器。同时,不同的存储器类型在同一个读/写周期可以共享一个控制器。在接下来的章节,我们将讨论主流的体系结构及其详细的组件设计,流水线问题也会被涉及到。
  
  3、推荐的P―MBlST体系结构
  
  为了支持灵活的March元素和诊断的程序,推荐的P-MBIST体系结构具有如下特征:(1)不同的数据背景,(2)可编程的基于March的元素,(3)列扫描地址模式,(4)捕获地址、故障的综合病症和状态,(5)并行的和串行的测试,(6)针对更高测试速度的流水线模式。表1列出了详细的可编程指令列表。当转换专门的地址位时,“folded”和“inverted”位可以转化为“data_bg”。通过设置“data_bg”为0和配置“Nlded”与“inverted”位为1,可以产生棋盘形图案。列扫描地址可以通过cs_sel控制。最后,每个March操作描述会使用三位,EOC,R/W和Polarity,来定义操作。图2给出了在March元素执行三种操作的一个指令例子。通过设置“diagnosis”位为1,当检测不匹配的存储器输出时,故障信息将会显示出来。
  
  
  图3显示了P-MBIST设计的模块框图。首先,指令被串行打入instruction_read模块。为了减少硬件开销,地址计数器被共享来测试所有的存储器实例。此外,译码器模块可以支持不同的存储器类型测试而没有增加任何状态(例如每个存储器有相同的read/write周期)。同种类型的存储器可以编组并以串行和并行的方式来测试。支持的存储器类型包括single/dual/two端口的SRAM、one/two端口的寄存器文件和ROM。最后,对于用户定义的配置文件,P-MBIST引擎可以从已开发的软件程序中自动的产生。
  
  
  3.1、地址产生器
  
  为了共享通用的地址产生器,一个很简单的方法就是在所有测试的存储器实例中选择一个最大地址位宽的地址计数器。正如图4所示,通过为每个存储器实例控制芯片选择信号,地址计数器的低位可以被用来描述存储器实例的低地址。
  
  对于列扫描模式,地址计数器并不只是以1升序或降序。表2给出了一个例子,其中定义列Mux为4和最大的地址位宽为11。在表2中,第1列为行扫描显示的地址计数器输出(例如以1升序)。第2列为列扫描给出了地址(例如以4升序)。为了共享行扫描和列扫描加法器,我们使用上扰码器(up-scrambler)来将加法器位数调整成列扫描模式。正如第3列所显示,A[1:0]的低位被移到最重要位的位置,这意味着行加法器可以直接应用于A[2]位。同样,在下扰码器(down-scrambler)处理后,以4升序的列扫描地址可以产生了。通过加入2个扰码器模块,行加法器可以支持列寻址。
  
  图5为行扫描和列扫描模式显示了地址产生器的模块框图,cs_sel信号会同时控制上扰码器与下扰码器。
  
  为了以列扫描的方式对每个地址持续的进行操作,会由于地址上或下的溢出造成两种特殊情况。表3列出8位地址的一个例子,这里的列Mux是4并且最大的地址是199。以向上计数(up-counting)为例,如果列扫描地址超出了最大地址位数,字线地址设置为0并且位线地址转换到下一个列单元。针 对向下计数(down-counting)例子,最大字线地址应该设置为hi-bit来处理溢出的情况。
  
  地址产生器的模块溢出框图如图6所示,列扫描和行扫描的路径被标注出来了。最后,通过控制信号fail_h和EOC,在清除故障数据(例如fai1-h)时地址计数器保持不变,同时在同一个March元素(例如EOC)执行连续操作。一个内建的查找表需要存储最大的地址和所有测试中的存储器的列MUX数值。
  
  
  3.2、时序图和控制器的设计
  
  图7显示了一般的输入和输出时序图。首先,使用者应该定义测试组(如gp_sel)并为选择的组指定并行或串行测试(如ps_sel)。然后,指令在ins_se使能时从信号scan_in端串行打入。执行当前指令后,tst_done会变高并且读下一个指令等等。
  
  图8展示了一个支持3个连续March操作的简单的控制器。首先,外部的信号rst_1触发状态并且进入等待状态。一旦结束指令被输入,其将进入March1状态。如果诊断模式开启同时故障地址被检测到,状态将会被保持直到所有故障信息都清除。否则,当执行每个March元素时则没有停转周期。
  
  
  3.3、流水线设计问题
  
  针对更快的测试速度,地址产生器会因为加法器和比较器的长延迟而变成一个关键路径。为了提高操作频率,两条流水线站被嵌入地址产生器。第一条被用来放置“inc_A”,第二条被用来放置“Over__flow_CS”信号(例如参考图6中的潜在流水线站)。图9描述了流水线地址产生器和两个嵌入的流水线站之间的时序关联,pipe_state1和pipe_state2。首先,寄存器inc_A_reg在一个addr_reg延迟周期后被确定。然后,Over_flow_CS_reg能够被确定并且addr_reg也被进一步确定。基于这个设计方法,针对典型的存储器实例(例如0.13μm下500MHz的14位加法器),操作频率能够达到很高的测试速度。
  
  
  4、P―MBIST自动化流程
  
  对于自动化流程,我们使用工具指令语言(TCL)来开发一个软件程序,其能基于用户定义的配置文件产生P-BIST设计。正如表4所示,我们可以定义组的数量、March元素的数量、流水线的模式和每个组的存储器实例数,也提出详细的存储器信息。
  
  如表5所描述,其给出了组TP0中第一个实例的详细信息。基于这个配置文件,12位地址计数器和8位data_bg产生了,可以对三个March操作进行编程。地址计数器和控制器能够被不同的组共享,来减少硬件开销。
  
  
  5、比较
  
  为了评估推荐的P-MBIST体系结构,我们在同样的条件下将推荐的P-MBIST与Mentor的benchmark作比较。表6描述了针对不同条件(存储器大小:1024x8bit,基于UMC 0.i3μm工艺,算法:March C+,March C-和Checkerboard)的Mentor的MBIST,单元面积。针对每个条件,其使用了2个单独的控制器来支持并行和串行测试。而且,MBIST不能通过使用同一个控制器来支持不同的存储器类型。因此,需要针对每种存储器类型的单独BIST电路。同推荐的体系结构相比较,我们对所有的存储器实例使用同一个地址计数器并对同一组共享控制器。
  
  正如表7(存储器大小:1024x8bit,基于UMC0.13μm,算法:March C+,March C-、Checkerboard、可编程的3个March基本操作)所示,推荐的P-MBIST电路使用1582门来测试2个单端口实例。当超过由不同的存储器类型组成的三组时,其需要额外的374门。此外,采用多输入转移寄存器(MISR)算法支持ROM测试,增加了403门数。通过应用推荐的硬件共享方法,其能极大的减小硬件开销。
  
  
  6、结论
  
  在本文中,我们针对P―MBIST电路提出了一个有效的体系结构。基于推荐的硬件共享的方法,我们使用常规的地址计数器来针对所有的存储器实例,包括行扫描和列扫描地址模式。此外,控制器可以被扩展到同一个读/写周期条件下的不同存储器类型,而没有增加任何状态。因此,硬件开销可以大大的减少。最后,推荐的P―MBIST电路可以从用户自定义的配置文件来自动产生。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3