1、 本科毕业论文 (毕业设计 ) 题 目: 基 于 March 算法的 内存 异常检测 分析 算法 实现 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师: 职称: 年 月基于 March 算法的内存异常分析 算法 实现 I 摘 要 在当今工业,由于生产技术和产品设计提高等的原因,每个晶体管的制造成本呈持续下降的趋势,而每个晶体管的测试成本却基本保持不变。因而测试成本在快速追上制造成本,并且将很快超过其制造成本。原因很简单,因为先进的 测试设备的价格非常昂贵使得测试成本居高不下。 因此,对测试方法和测试算法的改进就成了重中之重。 本文从研究系统芯片可测试性
2、设计理论出发,从对 可测试性设计的 内建自测试方法 的研究 中 找寻 对 内存测试方法的有益论点。然后, 分析存储 器 和存储单元的 故障类型, 思考他们的特点,进而比较 各种当前较常用的 算法,详细 分析 March 算法的特性,探寻对 March 算法的改进。 在文章的下半部份以便于学者及研究人员对 March 算法的研究和改进为目标,分析设计了一个以 March 算法为基础的内存检测系统,并对系统的重点和难点进行了详细分析。 本文 包括了对 内存故障模型和内存测试算法的分析,并主要对所设计的 Windows 和 DOS版内存检测系统进行介绍,分别列出了其详细设计,和运行效果,并对设计实现
3、中的难点进行了分析,解决。 关键 词 : march 算法 存储器 内存异常检测 BIST 基于 March 算法的内存异常分析 算法 实现 II Abstract In todays industry, due to production of technology and improve of product design, and other reasons, the manufacturing cost of transistor continues down, but the basic cost of the test of transistor remains unchanged
4、. Thus the tests cost is rapidly catching up with the manufacturing cost, and will exceed its manufacturing costs. The reason is very simple, because of the high price of advanced test equipment makes the cost high. Therefore, the test methods and test algorithm has become the top priority of improv
5、ing. This article start from can be tested on system-on-chip design theory, from the design to test the built-in self-testing methods in the study of memory testing methods to find a useful argument. Then, memory and storage unit of the fault type, thinking their characteristics and then compare the
6、 more commonly used method, detailed analysis of the characteristics of March algorithm, to explore the March algorithm improvements. In the article, in the second half to scholars and researchers in March to study and improve the algorithm as the goal, the design of a March algorithm-based detectio
7、n system memory and system of priorities and carried out a detailed analysis of difficult. In this paper, including the fault of memory and memory test model algorithm analysis and design of the main Windows and DOS version of memory test system, a breakdown of its detailed design and operational ef
8、fectiveness, and analyse the difficulties in achieving, to resolve. Keywords: March Algorithm,Memory, Memory Anomaly Detection,BIST 基于 March 算法的内存异常分析 算法 实现 III 目 录 引 言 . 1 第一章 存储器测试的发展 . 2 1.1 存储器测试发展动态 . 2 1.2 BIST 的测试方法 . 4 第二章 存储器的故障模型 . 8 2.1 存储器故障分类 . 8 2.2 存储单元的简化功能故障 . 9 2.3 存储器故障诊断算法分析 . 9
9、2.3.1 Checkerboard 算法(棋盘法) . 10 2.3.2 Gallop 算法(奔跳法) . 10 2.3.3 March 算法(进行法) . 11 2.3.4 基于棋盘算法的改进 . 11 2.4 MARCH 算法详细叙述 . 14 第三章 内存检测系统设计 . 18 3.1 系统简析 . 18 3.2 Windows 版内存检测系统 . 19 3.2.1 系统环境 . 19 3.2.2 模块划分 . 19 3.2.3 模块数据流图 . 21 3.2.4 系统详细设计 . 21 3.3 DOS 版内存检测系统 . 29 3.3.1 系统环境 . 29 3.3.2 模块划分 .
10、 30 3.3.3 模块数据流图 . 31 3.3.4 系统详细设计 . 32 第四章 系统实现 . 46 4.1 DOS 版重点难点分析 . 46 4.2 系统运行效果 . 49 第五章 结论 . 52 基于 March 算法的内存异常分析 算法 实现 IV 致谢语 . 53 参考文献 . 54 基于 March 算法的内存异常分析 算法 实现 V Contents Introduction . 1 Chapter 1 Developments of Memory Testing . 2 1.1 Developments of Memory Testing . 2 1.2 Testing M
11、ethods of BIST. 4 Chapter 2 the Fault mode of the memory. 8 2.1 the kinds of Fault mode of the memory . 8 2.2 Simplified fault of storage unit . 9 2.3 The analysis of memory testing algorithm . 9 2.3.1 Checkerboard algorithm( Chessboard) . 10 2.3.2 Gallop algorithm . 10 2.3.3 March algorithm . 11 2.
12、3.4 The Improve Base on the Chessboard . 11 2.4 the detail of MARCH algorithm. 14 Chapter 3 System Design of Memory Test . 18 3.1 Analysis System . 18 3.2 Memory Test Base on Windows . 19 3.2.1 Environment . 19 3.2.2 Modules. 19 3.2.3 Data Flow Diagram . 21 3.2.4 Detailed design . 21 3.3 Memory Test
13、 Base on DOS . 29 3.3.1 Environment . 29 3.3.2 Modules. 30 3.3.3 Data Flow Diagram . 31 3.3.4 Detailed design . 32 Chapter 4 Implementation of System . 46 4.1 Analysis of key and difficult Base on DOS. 46 4.2 Running Interface . 49 Chapter 5 Conclusion . 52 基于 March 算法的内存异常分析 算法 实现 VI Thanks . 53 Re
14、ferences. 54基于 March 算法的内存异常分析 算法 实现 1 引 言 随着深亚微米 VLSI 技术的发展,大量的不同厂家的电路设计或核集成到一个芯片上。存储器密度的增长使存储器的测试面临着更大的挑战。 RAM 存储器是最难测试的电路,因为存储器的测试通常需要大量的测试模式来激活存储器并将存储器的单元内容读出来与标准值进行比较。在可以接受的测试费用和测试时间的限制下,准确的故障模型和有效的测试算法是至关重要的。而为了保证测试时间和故障覆盖率,测试的好坏大大的依赖于所选的功能故障模型。 随着集成电路设计方法与工艺技术的不断进步,集成电路的可测性己经成为提高产品可靠性和成品率的一个
15、不可忽视的因素。在近的二十多年中,尤其是最近十年来,电路测试方法的研究日益受到重视,测试问题己经成为了集成电路产品开发的流程中关键问题之一。 伴随着电子设备功能和结构日益复杂,“暗箱”方法越来越难以满足需求,因此要求测试人员以更积极的方式介入测试过程,不仅要承担传统测试中激励生成者和响应分析者的角色,而且要作为整个测试过程的主导者和设计者。通过改善被测试对象的设计来提高被测对象的可测试性,从而能更容易找到测试码,并使测试和测试码的生成问题大大简化,这就是可测性设计 (DFT)1。 第一章 存储器测试的发展 2 第一章 存储器测试的发展 1.1 存储器测试发展动态 自集成电路诞生之日起,设计方法
16、、制造方法和测试方法始终是集成电路发展不可分割的 3 个组成部分。但在集成电路发展的早期,人们更多的注意力集中在设计和制造领域,而且早期的集成电路逻辑设计与工艺技术相对简单,因此测试方法学的研究曾一度处于不被重视的地位,在当时人们认为可测性设计是可有可无的,是否采用完全由成本预算来决定。 可测性设计是在 1970 年 Cherry Hill 测试会议上提出的,然而可测性设计的必要性直至上个世纪 70 年代中期随着集成电路设计的发展才逐渐被人们 认识。随后关于可测性设计设计方面的论文和研究成果越来越多,目前在一些重要的国际会议上,如国际测试会议 (ITC),国际设计自动化会议 (DAC)等都有专
17、门的分组会。此外,一些可测性设计的规则已经成为集成电路设计的工业标准,如 IEEE1149. 1 标准等。可测性设计己经成为集成电路设计领域一个极其重要的组成部分 1。 在过去的 20 年乃至更长的时间里,可测性设计方法的研究主要集中在如何协调测试性能与其所带来的额外代价的折衷关系上。而在整个可测性设计方法学的发展道路上,对于额外代价的考虑也经历了几个不同的阶段,各个 阶段都有其不同的研究侧重点,由此也出现了相应的各类可测性设计方法。 在集成电路发展的早期,面积是所有产品设计的关键因素,同时由于可测性设计方法始终是集成电路设计方法的一种补充,因此在那一时期,面积代价成为了研究可测性设计方法学的
18、核心,增加尽可能少的额外面积也就成为了选择可测性设计方法的主导因素。在此期间出现的可测性设计方法多以非扫描方法为主,所 i 胃非扫描方法主要是区别于后来出现的扫描方法而言的。这类方法在写入测试数据时仍然保持电路正常工作时的模式,即所有的测试数据都是通过 功能 I/0 并行写入,一电路内 部的工作状态也与正常的工作状态相同。这样的方法必然会导致电路内部的某些节点难以控制或者难以观测,因此需要增加适当的结构,在不改变电路逻辑的前提下,提高这些节点的可控性和可观性,例如插入测试点技术、初始化技术、冗余逻辑等等 2。 非扫描可测性设计方法在发展的早期具有突出的优点 :它的面积代价小,测试模式与正常功能
19、模式接近,易于被设计人员理解和接受。但是其设计思想也决定了它具有不可避免的先天不足。 基于 March 算法的内存异常分析 算法 实现 3 第一,设计复杂,为了将电路的测试性能提高到所需的范围,经常需要搜索整个设计空间,并且搜索空间随着电路规模的增加呈级 数递增。 第二,需要复杂的自动测试生 成 (Auto Test Pattern Generation, ATPG)技 术,在非扫描可测性设计方法中, ATPG 算法的优劣对最终能够达到的故障覆盖率有至关重要的影响。 第三,非扫描可测性设计方法在处理复杂时序电路时,其测试向量的效率很难得到保证。原因是在时序电路中,非扫描方法经常需要采用一组特定
20、的测试向量序列 才 能控制或观测某个特定的节点,测试向量序列的长度与节点本身的可测性及可观性密切相关,也就是说与电路的结构密切相关。因此非扫描方法本身并不能保证其效率。 非扫描可测性 方法的这些不足在集成电路规模不大、复杂度不是很高的情况下,由于其面积代价上的优势,通常比较容易被设计工程师所接受。直接采用功能测试向量进行产品测试实际上就是非扫描测试方法的雏形。但是随着集成电路规模和复杂度的不断提高,非扫描可测性技术逐渐无法再满足设计的需要。同时随着集成电路工艺技术的发展,面积代价的比重也逐渐降低,此时另一种更适于处理复杂电路的可测性设计方法 基于扫描的可测性设计方法逐渐成为了可测性设计方法的主
21、流。 所谓基于扫描的可测性设计方法,其基本的设计思想是将电路内部的存储单元 (触发器、锁 存器等时序单元 )全部或部分地构建成链式结构,并采用扫描寄存器 (Scan Register)来代替原有的存储单元,由此组成串行的扫描链 3。外部的测试数据可以通过指定的测试端口,在测试控制信号的控制下,串行写入存储单元内。 在基于扫描的可测性设计方法中,全扫描方法,即将所有存储单元都替换为扫描寄存器的方法,是优点最突出的一种方法。因为如果采用全扫描结构,整个时序电路实际上被转换成了一个单纯的组合电路来进行测试。而对于组合电路来说,它的可测性问题相对时序电路要容易分析得多,而且在逻辑设计中也完全有可能避免
22、使用 某些难测的组合电路。经过多年的研究与探索,目前对于一般的组合电路,现有的 ATPG 算法都可以轻而易举地获得接近百分之百的故障覆盖率,而这些组合电路 ATPG 算法的复杂性也要远远低于时序电路的 ATPG算法。同时由于全扫描方法具有很好的结构化,因此采用全扫描的可测性设计方法,可以以比较低的测试设计代价完成复杂时序电路的处理,并获得满意的故障覆盖率。 基于扫描的测试方法同样也有其不足之处。扫描设计需要增加一定的硬件资源来完成扫描寄存器的插入。同时串行的扫描链结构也是缩短测试时间的瓶颈。这些因素对于扫描方法的应用造成了 一些负面影响。 上述所讨论的基于扫描的可测性设计方法和非扫描方法都是通过对电路施加特定的测试