A Universal Test Pattern Generator for DDR SDRAM *

Similar documents
Modeling And Simulation Of Microcode Based Asynchronous Memory Built In Self Test For Fault Detection Using Verilog

RAM Testing Algorithms for Detection Multiple Linked Faults

International Journal of Digital Application & Contemporary research Website: (Volume 1, Issue 7, February 2013)

Diagnostic Testing of Embedded Memories Using BIST

SRAM Delay Fault Modeling and Test Algorithm Development

EECS150 - Digital Design Lecture 17 Memory 2

Hardware Sharing Design for Programmable Memory Built-In Self Test

FPGA Implementation of ALU Based Address Generation for Memory

(Advanced) Computer Organization & Architechture. Prof. Dr. Hasan Hüseyin BALIK (5 th Week)

CS650 Computer Architecture. Lecture 9 Memory Hierarchy - Main Memory

Scalable Controller Based PMBIST Design For Memory Testability M. Kiran Kumar, G. Sai Thirumal, B. Nagaveni M.Tech (VLSI DESIGN)

COMPUTER ARCHITECTURES

Advanced Reliable Systems (ARES) Laboratory. National Central University Jhongli, Taiwan

The Memory Component

A Low Power DDR SDRAM Controller Design P.Anup, R.Ramana Reddy

March Tests Improvement for Address Decoder Open and Resistive Open Fault Detection *

Design and Implementation of Microcode based Built-in Self-Test for Fault Detection in Memory and its Repair

ECE 485/585 Microprocessor System Design

Computer Organization. 8th Edition. Chapter 5 Internal Memory

Application Note AN2247/D Rev. 0, 1/2002 Interfacing the MCF5307 SDRAMC to an External Master nc... Freescale Semiconductor, I Melissa Hunter TECD App

Embedded Static RAM Redundancy Approach using Memory Built-In-Self-Repair by MBIST Algorithms

Memory Systems for Embedded Applications. Chapter 4 (Sections )

A Parametric Design of a Built-in Self-Test FIFO Embedded Memory

Embedded Systems Design: A Unified Hardware/Software Introduction. Outline. Chapter 5 Memory. Introduction. Memory: basic concepts

Embedded Systems Design: A Unified Hardware/Software Introduction. Chapter 5 Memory. Outline. Introduction

A VLSI Implementation of High Speed FSM-based programmable Memory BIST Controller

William Stallings Computer Organization and Architecture 6th Edition. Chapter 5 Internal Memory

Online Testing of Word-oriented RAMs by an Accumulator-based Compaction Scheme in Symmetric Transparent Built-In Self Test (BIST)

William Stallings Computer Organization and Architecture 8th Edition. Chapter 5 Internal Memory

Design with Microprocessors

At-Speed On-Chip Diagnosis of Board-Level Interconnect Faults

of Soft Core Processor Clock Synchronization DDR Controller and SDRAM by Using RISC Architecture

Testing Static and Dynamic Faults in Random Access Memories

Memory System Design. Outline

Delay Test with Embedded Test Pattern Generator *

DUE to the high computational complexity and real-time

A Software-Based Test Methodology for Direct-Mapped Data Cache

An Advanced and more Efficient Built-in Self-Repair Strategy for Embedded SRAM with Selectable Redundancy

Organization. 5.1 Semiconductor Main Memory. William Stallings Computer Organization and Architecture 6th Edition

Modeling and Simulation of Microcode-based Built-In Self Test for Multi-Operation Memory Test Algorithms

Microcontroller Systems. ELET 3232 Topic 11: General Memory Interfacing

DESIGN AND IMPLEMENTATION OF SDR SDRAM CONTROLLER IN VHDL. Shruti Hathwalia* 1, Meenakshi Yadav 2

A Survey on Dram Testing and Its Algorithms

POWERFUL BISR DESIGN FOR EMBEDDED SRAM WITH SELECTABLE REDUNDANCY

Modeling and Simulation of Multi-Operation Microcode-based Built-in Self Test for Memory Fault Detection and Repair

EEM 486: Computer Architecture. Lecture 9. Memory

IMPLEMENTATION OF DDR I SDRAM MEMORY CONTROLLER USING ACTEL FPGA

Efficient BISR strategy for Embedded SRAM with Selectable Redundancy using MARCH SS algorithm. P. Priyanka 1 and J. Lingaiah 2

CENG3420 Lecture 08: Memory Organization

UMBC D 7 -D. Even bytes 0. 8 bits FFFFFC FFFFFE. location in addition to any 8-bit location. 1 (Mar. 6, 2002) SX 16-bit Memory Interface

Memory Pearson Education, Inc., Hoboken, NJ. All rights reserved.

Architecture of An AHB Compliant SDRAM Memory Controller

TESTING OF FAULTS IN VLSI CIRCUITS USING ONLINE BIST TECHNIQUE BASED ON WINDOW OF VECTORS

Address connections Data connections Selection connections

Design and Implementation of Built-in-Self Test and Repair

The DRAM Cell. EEC 581 Computer Architecture. Memory Hierarchy Design (III) 1T1C DRAM cell

MULTIPROCESSOR system has been used to improve

Topic 21: Memory Technology

Topic 21: Memory Technology

Research Collection. A survey of synchronous RAM architectures. Working Paper. ETH Library. Author(s): Gries, Matthias. Publication Date: 1999

Unit 6 1.Random Access Memory (RAM) Chapter 3 Combinational Logic Design 2.Programmable Logic

Basics DRAM ORGANIZATION. Storage element (capacitor) Data In/Out Buffers. Word Line. Bit Line. Switching element HIGH-SPEED MEMORY SYSTEMS

ECE 485/585 Microprocessor System Design

MCF5307 DRAM CONTROLLER. MCF5307 DRAM CTRL 1-1 Motorola ColdFire

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

Sram Cell Static Faults Detection and Repair Using Memory Bist

An enhanced barrel shifter based BIST scheme for word organized RAMs (EBBSR).

Fully Programmable Memory BIST for Commodity DRAMs

Introduction read-only memory random access memory

Datasheet. Zetta 4Gbit DDR3L SDRAM. Features VDD=VDDQ=1.35V / V. Fully differential clock inputs (CK, CK ) operation

Designing a High Performance SDRAM Controller Using ispmach Devices

15-740/ Computer Architecture Lecture 19: Main Memory. Prof. Onur Mutlu Carnegie Mellon University

Chapter 5 Internal Memory

Computer Systems Laboratory Sungkyunkwan University

Design and VLSI Implementation of DDR SDRAM Controller for High Speed Applications

APPLICATION NOTE. SH3(-DSP) Interface to SDRAM

CENG4480 Lecture 09: Memory 1

Effective Memory Access Optimization by Memory Delay Modeling, Memory Allocation, and Slack Time Management

Chapter 8 Memory Basics

Built-In Self-Test for Programmable I/O Buffers in FPGAs and SoCs

Built-in Self-Test and Repair (BISTR) Techniques for Embedded RAMs

CPE300: Digital System Architecture and Design

Evaluation of FPGA Resources for Built-In Self-Test of Programmable Logic Blocks

Memory System Overview. DMA & Endian-ness. Technology. Architectural. Problem: The Memory Wall

ISSN: [Bilani* et al.,7(2): February, 2018] Impact Factor: 5.164

An Efficient Parallel Transparent Diagnostic BIST

EE414 Embedded Systems Ch 5. Memory Part 2/2

The Memory Hierarchy Part I

Basic Organization Memory Cell Operation. CSCI 4717 Computer Architecture. ROM Uses. Random Access Memory. Semiconductor Memory Types

Digital Design with FPGAs. By Neeraj Kulkarni

Memory Controller. Speaker: Tzu-Wei Tseng. Adopted from National Taiwan University SoC Design Laboratory. SOC Consortium Course Material

CS 320 February 2, 2018 Ch 5 Memory

AN OPTIMAL APPROACH FOR TESTING EMBEDDED MEMORIES IN SOCS

Complex test pattern generation for high speed fault diagnosis in Embedded SRAM

a) Memory management unit b) CPU c) PCI d) None of the mentioned

Technical Note Designing for High-Density DDR2 Memory

6.1 Combinational Circuits. George Boole ( ) Claude Shannon ( )

Contents 1 Basic of Test and Role of HDLs 2 Verilog HDL for Design and Test

IMM64M64D1SOD16AG (Die Revision D) 512MByte (64M x 64 Bit)

Design for Test of Digital Systems TDDC33

Transcription:

A Universal Test Pattern Generator for DDR SDRAM * Wei-Lun Wang ( ) Department of Electronic Engineering Cheng Shiu Institute of Technology Kaohsiung, Taiwan, R.O.C. wlwang@cc.csit.edu.tw used to detect all the faults. To test effectively the memories, at least two march algorithms are used, however increasing the hardware cost. The double data rate synchronous dynamic random access memory (DDR SDRAM) is one of the promising memory products of today. To meet the market requirements, various specifications of DDR SDRAMs are manufactured. In this paper, a universal test pattern generator has been proposed for testing the various DDR SDRAMs.. Introduction To respond the memory chip market demand of high speed/price, the double data rate synchronous dynamic random access memory (DDR SDRAM) achieves high speed double-data-rate transfer rates of up to 533 Mb/sec/pin (i.e., DDR-533). Typical faults in memories include the address decoder faults (AFs), stuck-at faults (SAFs), transition faults (TFs), stuck open faults (SOFs), coupling faults Abstract (CFs), neighborhood pattern sensitive faults (NPSFs), and data retention faults (DRFs) []. For Because the memory cores can be used to save the instructions/data, the memory cores are frequently used within the system-on-a-chips (SOCs). The quality of the SOCs is mainly determined by the memory cores. However, due to the complicated fabrication process, the fault models of the memories are more complicated than the fault models of the logical cores. So far, more than 40 march algorithms have been proposed; however; no any single march algorithm can be *This work was supported in part by the National Science Council of R.O.C. under contract NSC 9-225-E-230-003. testing such faults of the memories, it is shown that the march algorithms are superior to the non-march algorithms [2]. So far, for testing all the faults in the memories, no 00% fault coverage can be obtained by any single march algorithm [3]. To obtain a satisfied high fault coverage, several march algorithms are required to test a single memory chip. In [4], a controller-based programmable built-in self-test (BIST) core with three march algorithms, MATS++, March X, and March C_, for embedded EDO DRAM is presented. We have previously presented a low cost cyclic shift register () based test pattern generator (TPG) to test the SRAMs/DRAMs [5]. The test patterns of any

march algorithm can be generated by using such a high flexible TPG. Although the based TPG can generate the various read/write operations of the march algorithms, however, for testing the DDR (SDRAM), not only the read/write commands but also the various characteristics including the CAS latency (CL), burst length (BL), initialization, activation, and refresh operations, are also considered. Besides, various specifications of DDRs with various data transfer speeds, CLs and BLs are manufactured to meet the market requirements. In this paper, extending the based TPG, a universal TPG is proposed to test the DDRs. To avoid the data overlapping problem in the DDR, some NOP commands are required to interleave between two consecutive READ/WRITE commands. The number of required interleaved NOP commands is dependent on the lengths of BL and CL of the various DDRs. In the proposed TPG, not only the test patterns of any march algorithm can be generated but also the interleaved NOP commands can be produced to test the various DDRs. The organization of this paper is as follows. The DDRs are firstly introduced in Section 2. Section 3 reviews the commonly used notations of march algorithms and introduces previous work. Sections 4 and 5 detail the proposed test flow and test pattern generator. Finally the conclusions are given in Section 6. 2. Characteristics of DDRs Before discussing the BIST scheme, the characteristics of the DDR are introduced. The simplified functional block diagram of DDR is shown in Fig.. Three kinds of buses, Command, Address, and Data, are used to handle the DDR and access the data. In the Command Bus, the control lines, CS, RAS, CAS, and WE, are used to trigger the actions of chip select, row address strobe, column address strobe, and write enable, respectively. From the most significant bit (MSB) to the least significant bit (LSB), the addresses of the DDR are divided into three parts, i.e., bank address (BA), row address (RA), and column address (CA). In the DDR, the bit number of BA is two. The RA and CA are multiplexed by using the same bus wires. Via the Command and Address Buses, eight commands, NOP (no operation), ACT (to activate selected bank/row address), READ (to start read operation), WRITE (to start write operation), BST (to terminate burst operation), PRE (to start pre-charge operation), AR (to start auto refresh), and LMR (to load mode register), are used to handle the DDR. { CS RAS Command CAS Data DDR WE SDRAM BA Address { RA/CA CK Fig.. Simplified functional block diagram of DDR. At the first time, the DDR is initialized by running the NOP, PRE, LMR, LMR, PRE, AR, AR, and ACT commands in order. Then the normal read/write operations are proceeded. Due to the characteristics of CAS latency and burst length, some NOP commands are required to interleave between the consecutive read/write operations to avoid the data-overlapping problem. During the normal read/write operation, some ACT commands are required to activate the row addresses. Besides, one AR and several NOP commands are required to auto refresh the whole DDR. To test the DDR completely, the above procedure must be gone through. To save the testing time, the number of interleaved NOP commands between consecutive read/write commands should be minimized. Table tabulates the BLs, CLs, and required minimal number of NOP commands of Micron s DDR [6]. Table. Characteristics of Micron s DDR. BL 2 4 8 2 4 8 CL 2 2 2 2.5 2.5 2.5 Read-Read 0 3 0 3 Write-Write 0 3 0 3 Read-Write 2 4 2 3 5 Write-Read 2 The values of BLs and CLs may be different for different manufacturers. For example, the values of BLs and CLs of DDR manufactured by Etron Technology, Inc. are (, 2, 4, 8) and (, 2, 3),

respectively [7]. Therefore, the required minimal number of NOP commands is distinct. To test the DDRs efficiently, the based TPG in [5] is extended in this paper. For different BLs and CLs, the proposed TPG can be used to test the various DDRs. Before discussing such a TPG, the march algorithms and the based TPG are reviewed in the next section. 3. Related Work 3. Review of March Algorithms Without loosing of generality, assume an m-step march algorithm with each step (denoted by S i ) having at most k read/write operations is expressed as: <march algorithm> ::= {<S i > i =,, m} () <S i > ::= <address order> ((<op j > j =,, k)) or del <address order> ::= (up) or (down) or (either up or down) <op j > ::= r0 or r or w0 or w where the notation r (w) is the read (write) operation and notation 0 () is the non-inverted (inverted) data backgrounds (DBs) [], respectively. For a W-bit memory chip, G (= log2 W +) inverted (non-inverted) data backgrounds are required. For example, the 4-bit non-inverted (inverted) data backgrounds are (0, 0, 0, 0), (0,, 0, ), and (0, 0,, ) ((,,, ), (, 0,, 0), and (,, 0, 0)). Thereafter we call the r (w) and 0 () in Eq. (), the r/w signals and the r/w data, respectively. The number of operations within a step is called its operation length. For example, in the following, the operation lengths of the st, 2 nd, and 3 rd march step of the MATS+ algorithm is one, two, and two, respectively. MATS+ algorithm []: { (w0); (r0, w); (r, w0)}. (2) To reduce the testing time, few march algorithms are presented in [8, 9] where the data backgrounds for each march step may be different. The march algorithms can also be implemented by the based TPG. However, the most algorithms are still used to test the memories by the following procedure: Test Procedure for Word-Oriented Memories: Step (): Choose an un-used data background. Step (2): Run march algorithm. Step (3): When the march algorithm is gone through, if there is any data background is un-used then repeat from Step (), else exit. In this paper, the above procedure will be extended to test the DDRs. 3.2 Cyclic Shift Registers In [5], a pair of cyclic shift registers (s) are used to generate the read/write signals and data, respectively. As shown in Fig. 2, a k-stage cyclic shift register () is composed of (k-) 2-to- multiplexers (MUXs) and k D flip-flops (F/Fs). Each MUX is controlled by the variable, c i (i =, 2,, k-). Only the variable c L (where L is the operation length) is one and the remaining variables are zero such that the output signal from Q is feedback to D L. Thus, two s with a seed of r/w data and signals can be used to generate the r/w operations of steps. For example, two 2-stage s are used for the MATS+ algorithm. The r/w operations of the st (2 nd ) step, (w0) ((r0, w)), can be generated by a pair of 2-stage s with a seed of (w0) ((r0, w)) and the variable (c ) = () ((0)). clk k c k- 0 k- 0 2 0 c 2 c Fig. 2 A k-stage cyclic shift register. output A simplified block diagram of based TPG is shown in Fig. 3, a pair of s, RW and DATA, are used to generate the r/w operations of each march step. The data backgrounds and the up/down consecutive addresses are generated by the DB and, respectively. The whole process of the march algorithm is handled by the Test Controller. 4. Design of Test Pattern Generator for DDRs 4. Test Flow for DDRs

Test Controller RW DATA DB Fig. 3 Simplified block diagram of based TPG. DRAM / SRAM During the DDR testing, not only the read/write operations of the march algorithms but also some conditions, including the initialization, auto-refresh, activation, BLs, CLs, and the number of NOP commands required to interleave between the read/write operations, are considered. In the following, a systematic test flow for the DDR is proposed. Test Procedure for DDRs: Step (): Initialize the DDR by running the NOP, PRE, LMR, LMR, PRE, AR, AR, and ACT commands in order. Step (2): Choose the un-used combinations of BL and CL. Step (3): Choose the un-used data background. Step (4): According to the march steps of the desired march algorithm, apply READ/WRITE commands, the interleaved NOP commands, and data to the DDR. Step (5): Perform the auto-refresh action by running the AR commands. Step (6): Perform the row address activation by running the ACT and two NOP commands in order. Step (7): If the march algorithm is not finished then repeat from Step (4) else continue. Step (8): If the data backgrounds are not exhausted then repeat from Step (3) else continue. Step (9): If the combinations of BL and CL are not exhausted then repeat from Step (2) else exit this procedure. interleaved NOP generator (ING) is presented and shown in Fig. 4 where the NOP ROM is used to store the number of interleaved NOP commands. When the inputs of NOP ROM, BL, CL, the first operation p and the second operation p 2 of, are ready, then the number of interleaved NOP command between p and p 2 is appeared at the NOP ROM output. For example, in Table, the number of interleaved NOP command between the READ/WRITE command is four when BL = 8 and CL = 2. The operation of ING is stated. At first, the first r/w operation in the, p = OP, is fed to the output via the MUX, then the MUX is switched to the opposite data input and the nop signal is applied to the output. The number of nop appeared at the output is the same as the content of the NOP Counter. When the content of the counter is equal to the output value of the NOP ROM. The MUX is switched again to the opposite data input. Meanwhile, an output signal from the Comparator is used to trigger the to shift right one bit (now, p = OP 2 ) and reset the NOP Counter, respectively. Such a procedure is generated repeatedly until all the r/w operations of the march algorithm are exhausted. Then the r/w operations of the and the nop signal will be proceeded to generate the READ, WRITE, and NOP commands in the next stage. For different specifications of BLs and CLs, only the contents of NOP ROM are required to update, thus the additional hardware overhead can be reduced. nop op k op 2 op p 2 p BL NOP ROM CL Comparator MUX Output 4.2 Interleaved NOP Generator As described previously, distinct combinations of BLs and CLs of DDRs may be existed by different semiconductor manufactures. To meet the test requirements of different BLs and CLs, an NOP Counter Fig. 4 The interleaved NOP generator. 4.3 Up/Down Address Generator Compared to the consecutive address generation

of the SRAM, the address is generated at BL intervals to test the DDR. The up/down addresses are expressed as follows: ( address) present + BL, if order is up ( address) next = (3) ( address) present - BL, if order is down As shown in Fig. 5, to generate the up/down addresses, a register array and a full adder/subtracter are utilized. When the address order is up (down), the register is initialized to all-zero (all-one) and use a full adder (subtracter) such that the next content of the register array is the present content of the register array plus (minus) the value of burst length (BL). BL Up/Dw Seed Full Adder / Subtracter Next Address Register Array Present Address Fig. 5 Block diagram of Address Generator. Meanwhile, the Burst Type of the mode register (MR) in the DDR is set to be sequential (interleaved) with an all-zero (all-one) starting column address, when the address order of the march step is up (down). Then the burst addresses in up (down) order are i, i+,, i+bl- (i, i-,, i-bl+) where i is the present address. After describing the generators of NOP commands and up/down addresses, the architecture of the proposed TPG will be stated in the next section. 5. Architecture of the Proposed TPG As shown in Fig. 6, eight main blocks, () Test Controller, (2) RW, (3) ING, (4) Command ROM, (5) ROM, (6) DATA, (7) DB, and (8), are used to constitute the proposed TPG for testing the DDRs. Test Controller RW DATA ROM Other Commands ING DB MUX MUX Command ROM Command Dat a Address Fig. 6 Block diagram of DDR TPG. DDR SDRAM The Test Controller block is used to control the overall testing procedure as stated in Subsection 4.. During the DDR testing, except the read/write/nop signals (commands), the other commands (signals) including the initialization, auto refresh, and activation signals are generated by the Test Controller. The RW block is used to generate the read/write operations of each march step, then the read/write and the interleaved nop signals are generated by the ING block. These signals are converted into the commands by the Command ROM and ROM. The commands of DDR are tabulated in Table 2. To apply the commands to the DDR, the Command Bus and Address Bus are needed. Therefore, as tabulated in Table 2, the blocks, Command ROM and ROM, are used to store the command messages and address messages, respectively. The read/write data of each march step, i.e., 0 and, are generated by the DATA, then the non-inverted and inverted data backgrounds are produced by the DB. As detailed in Subsection 4.3, the up/down addresses are generated by the. Table 2. The commands of DDR [6]. Command ROM Name ROM Command Bus CS RAS CAS WE Bus NOP 0 X ACT 0 0 BA/RA READ 0 0 BA/CA WRITE 0 0 0 BA/CA BST 0 0 X PRE 0 0 0 2 AR 0 0 0 X LMR 0 0 0 0 MR 3. X means don t care. 2. A 0 is high and the remaining bits of are don t care. 3. The BL and CL are defined in the MR by using the BA, RA, and CA. For testing a 52Mb (32M*6) Micron DDR chip with three march algorithms, MATS++, March X, and March C_, the proposed test pattern generator has been implemented by a hardware description language - Verilog and incorporated into an Altera device, EPF0K0TC44-3. In the following, a simulated timing diagram is shown in Fig. 7. According to the report of 0.35 µ m cell library of Glax! Inc, the gate count is 953. Compared to the BIST logic overhead of Mb*4

Extended Data-Out (EDO) DRAM in [4], which requires between 2000 to 3000 gates, the hardware overhead of the proposed TPG is acceptable. Fig. 7 The simulated timing diagram of proposed TPG. 6. Conclusions To meet the market requirements, various DDRs have been manufactured. Moreover, different NOP commands are required to interleave between two consecutive READ/WRITE commands. Therefore, the conventional march algorithms are required to extend to test the DDR, i.e., minimal NOP commands are needed to interleave between read/write operations. In this paper, a test flow of DDR is firstly discussed. Then a universal test pattern generator for various DDRs is presented. The architecture of the proposed TPG has been realized for testing a 52Mb DDR and it is reported that the associated hardware overhead is acceptable. [4] C. T. Huang, J. R. Huang, C. F. Wu, C. W. Wu, and T. Y. Chang, "A Programmable BIST Core for Embedded DRAM," IEEE Design and Test of Computers, pp. 59-69, Jan.-March 999. [5] W. L. Wang, K. J. Lee, and J. F. Wang, An On-Chip March Pattern Generator for Testing Embedded Memory Cores, IEEE Trans. on VLSI, vol. 9, no. 5, Oct. 200, pp. 730-735. [6] http://www.micron.com. [7] http://www. etron.com. [8] C. W. Wang, C. F. Wu, J. F. Li, C. W. Wu, T. Teng, K. Chiu, H. P. Lin, A Built-In Self-Test and Self-Diagnosis Scheme for Embedded SRAM, Proc. of Asian Test Symposium, 2000, pp. 45-50. [9] A. J. van de Goor, I. B. S. Tlili, March Tests for Word-Oriented Memories, Proc. Design, Automation and Test in Europe, 998, pp. 50-508. REFERENCES [] A. J. van de Goor, Testing Semiconductor Memories, Theory and Practice, Gouda, The Netherlands: ComTex, 998. [2] V. K. Kim and T. Chen, On Comparing Functional Fault Coverage and Defect Coverage for Memory Testing, IEEE Trans. on CAD, vol. 8, no., pp. 676-683, Nov. 999. [3] K. L. Cheng, M. F. Tsai, and C. W. Wu, Efficient Neighborhood Pattern-Sensitive Fault Test Algorithms for Semiconductor Memories, Proc. of 9 th VLSI Test Symposium, 200, pp. 225-230.