Chapter 4: Memory Built-In Built In Self Test Self-Test Jin Fu Li Jin-Fu Dept. of Electrical Engineering National Central University Jhongli, Taiwan Outline • ROM BIST • RAM BIST • Serial BIST for RAMs • Processor Processor-Based Based RAM BIST • RAM BISTs in SOCs • References EE, National Central University Jin-Fu Li 2 • Introduction Characteristics of today’s SOC designs − Typically more than 30 embedded memories on a − − − − • chip hi Memories scattered around the device rather than concentrated in one location Different types and sizes of memories Memories doubly embedded inside embedded cores Test access to these memories from only a few chip I/O pins p Built-in self-test (BIST) is considered the best solution for testing embedded memories within SOCs − It offers a simple and low-cost low cost means without significantly impacting performance EE, National Central University Jin-Fu Li 3 General BIST Architecture Test Circuit Under Test Response Generator (CUT) Verification Test Controller EE, National Central University Jin-Fu Li 4 ROM Functional Block Diagram Inputs Buffer NOR/NAND Decoder (ROM Array) Buffer Outputs O t t EE, National Central University Jin-Fu Li 5 An Example of ROM BIST Counter ROM MISR Controller Go/No-Go EE, National Central University Status Jin-Fu Li 6 Typical RAM BIST Architecture Normal I/Os Test Collar C T t Controller Test C t ll Test Pattern Generator RAM Go/No-Go Comparator EE, National Central University Jin-Fu Li 7 RAM BIST • In general, two BIST approaches have been proposed for the RAMs − FSM-based RAM BIST − ROM-based RAM BIST • Controller − Generate control signals to the test pattern generator & the memory under test • Test pattern generator (TPG) − Generate the required test patterns and Read/Write signals g • Comparator − Evaluate the response EE, National Central University Jin-Fu Li 8 ROM-Based RAM BIST • The features of ROM-based BIST scheme − The ROM stores test procedures for generating test patterns − Self-test is executed by using BIST circuits controlled by the microprogram ROM − A wide range of test capabilities due to ROM programming p g g flexibility y • The BIST circuits consists of the following functional blocks − Microprogram ROM to store the test procedure − Program counter which controls the microprogram ROM − TPG − Comparator EE, National Central University Jin-Fu Li 9 ROM-Based RAM BIST Architecture Normal I/Os E d End Mi Microprogram Test Collar ROM TPG RAM Go/No-Go Comparator EE, National Central University Jin-Fu Li 10 • March-9N Test Procedure & Microcodes M h 9N March-9N: STEP OPERATION CLEAR WRITE(D), INC AC, IF AC=MAX THEN INC PC READ(D) WRITE(D’), INC AC, IF AC=MAX THEN INC PC ELSE DEC PC READ(D’)) READ(D WRITE(D), INC AC, IF AC=MAX THEN INC PC ELSE DEC PC DEC AC READ(D) WRITE(D’) DEC AC WRITE(D’), AC, IF AC=0 THEN INC PC ELSE DEC PC READ(D’) WRITE(D), DEC AC, IF AC=0 THEN INC PC ELSE DEC PC STOP EE, National Central University IF AC=MAX/0 ELSE DEC PC INCREMENT AC DECREMENT AC EXCLUSIVE OR INVERT/NORMAL COMPARE/MASK WRITE/READ CLEAR TEST END Jin-Fu Li MICROCODE 0000000010 1010000100 0000000100 1110010100 0000011000 1110000100 0001000000 0000001000 1101010100 0000011000 1101000100 0000000001 11 FSM-Based RAM BIST Normal I/Os E d End Test Collar FSM TPG RAM Go/No-Go Comparator EE, National Central University Jin-Fu Li 12 • FSM-Based RAM BIST A example An l off the h state di diagram off controller ll EE, National Central University W0 S0 R0 S1 W1 S2 R1 S3 W0 S4 R0 S5 W1 S4 End S4 Jin-Fu Li NOT last address? NOT last address? NOT last address? NOT last address? 13 • Programmable RAM BIST A example An l off the h programmable bl RAM BIST Normal I/Os BRS BGO Con ntroller BSC TGO ENA DONE Test Collar C BSI T TPG & Compar C rator CMD RAM CLK BNS EE, National Central University Jin-Fu Li 14 FSM State Diagram of the Controller Idle BRS=1 BSC=1 DONE=1 Shift Shift_cmd d BSC=0 Get_cmd Apply ENA=1 DONE=0 EE, National Central University Jin-Fu Li 15 • • Programmability The programmability Th bili can b be achieved hi db by using i test command The test command format − U/D OP Data background − U/D: ascending/descending address sequence − OP: test operations ∗ For o example, e a p e, wa, a, rawa’, a a , rawa’ra, a a a, warawa’ra’, a a a a , etc. • − Data backgrounds The width Th idth off each h field fi ld affects ff t the th programmability of the BIST design − For F example, l if 4 bit bits are used d ffor OP OP, th then only l 16 possible test operations can be generated Jin-Fu Li EE, National Central University 16 FSM State Diagram of the TPG ENA=0 Idle ENA=1 Init DONE/GO Null=1 Null=0 Ifetch Exec Dfetch No-Go EE, National Central University Error=1 Compare Error=0 Jin-Fu Li 17 Serial BIST • Today’s telecommunication ICs often have a variety if multiport memories on one chip • Typical RAM BISTs evaluate all the bits of a memory word in parallel as it is read • We can encounter significant problems when applying these BIST schemes to chips that have multiple embedded RAMs of varying sizes and port configurations − The area cost of these BIST designs would be unacceptably high • One better solution is a serial BIST technique − To T share h BIST d design i among severall RAM RAMs EE, National Central University Jin-Fu Li 18 Benefits of Serial BIST • Only a small amount of additional circuitry is required • Only a few lines are needed to connect the RAM to the test controller • Several RAM blocks easilyy share the BIST controller hardware • The serial serial-access access mode does not compromise the RAM cycle time • Existing E i ti memory d designs i d do nott need d any modification to use the serial interface EE, National Central University Jin-Fu Li 19 Serial-Data-Path Connection Row de ecoder Ci Ci+1 Column decoder Latch Latch Write Read BIST on To next test input or serial input From previous output or serial input Ii EE, National Central University Oi Jin-Fu Li Ii+1 Oi+1 20 Serial Shift Operation • An example of serial shift operations for the match element (R0W1) Time Operation Serial in 0 0 11 010 00 00 000 1 X 1 EE, National Central University 00 000 000 0 X Word content Serial out X 0 0 0 0 X 1 R0 X 0 0 0 0 0 2 W1 1 1 0 0 0 0 3 R0 1 1 0 0 0 0 4 W1 1 1 1 0 0 0 5 R0 1 1 1 0 0 0 6 W1 1 1 1 1 0 0 7 R0 1 1 1 1 0 0 8 W1 1 1 1 1 1 0 Jin-Fu Li 21 Serial March (SMarch) • Assume that a RAM has W words, and each word contains C bits • A Read operation is denoted by R0, R1, or Rx, depending on the expected value at the serial output (x=do’t care) • For a write operation operation, the terms W0 or W1 are used and only the serial input is forced to the value indicated • The SMarch modified from March C- is as f llc ( RxW 0 ) C ( R 0, W 0 ) C ; ⇑ ( R 0, W 1) C ( R1, W 1) C follows − ⇑ ( R1, W 0 ) C ( R 0 , W 0 ) C ; ⇓ ( R 0 , W 1) C ( R1, W 1) C ⇓ ( R1, W 0 ) C ( R 0 , W 0 ) C ; ⇓ ( R 0 , W 0 ) C ( R 0 , W 0 ) C EE, National Central University Jin-Fu Li 22 Serial BIST Architecture BIST GO Done Counters SO Control Data out Data in Address Timing Controller generator SI lsb msb C-1 Multiplexer Multiplexer C Address Data in Multiplexer C Data out Control RAM (W words of C bits) EE, National Central University Jin-Fu Li 23 Sharing BIST in Daisy-Chain Style BIST GO Done Counters Timing Controller SO generator g SI Add Address R d/W it Read/Write Test Collar Test Collar Test Collar RAM1 RAM2 RAM3 Serial Interface Serial Interface Serial Interface SI SI SI EE, National Central University SO SO Jin-Fu Li SO 24 Sharing BIST in Parallel Style BIST GO Done DeMux C Counters t SO SI Controller Address Timing g generator Read/Write Test Collar Test Collar Test Collar RAM1 RAM2 RAM3 Serial Interface Serial Interface Serial Interface SI SI SI EE, National Central University SO SO Jin-Fu Li SO 25 BIST Using Data Decoding/Encoding n m wire n n e m wire EE, National Central University Jin-Fu Li 26 Processor-Based RAM BIST Normal I/Os Test Collar Processor TPG RAM Go/No-Go Comparator EE, National Central University Jin-Fu Li 27 NTHU Processor-Programmable BIST ADDR_cpu ADDR ADDR_bist DATAO DATAO_sys DATAO DATAO_bist Embedded CPU Clock_cpu BIST core Ctrl_bist Ctrl_cpu DATAI_cpu DATAI_bist On-chip bus Mux_sel DATAI_sys Embedded Memory control DATAI Source: Prof. C. W. Wu, NTHU EE, National Central University Jin-Fu Li 28 NTHU Processor-Programmable BIST • BIST core DATAO_cpu DATAO_bist RBG ADDR_cpu Address decorder RAL L Lowest/highest t/hi h t addr dd RAH REA RME RFLAG RIR RED Address counter ADDR_bist Up/down Controller Read/Write Control Match/unmatch DATAI_bist Comparator DATAI sys DATAI_sys Data background Source: Prof. C. W. Wu, NTHU EE, National Central University Jin-Fu Li 29 NTHU Processor-Programmable BIST • Data registers Register RBG Function Store background data RAL Store lowest address RAH Store highest address RME Store current March element RIR Instruction register of BIST circuit RFLAG Status register of BIST circuit RED Erroneous response of defective cell REA Address of defective cell Source: Prof. C. W. Wu, NTHU EE, National Central University Jin-Fu Li 30 NTHU Processor-Programmable BIST • BIST procedure Source: Prof. C. W. Wu, NTHU Test program write data background to RBG Test program write lowest/highest address to RAL/RAH Performed by test program Test program write March instructions to RME Test program write START to RIR ↑(Wa) ↑(Ra,Wa’) ↑(Ra’,Wa) ↓(Ra,Wa’) Compare Data error Performed by BIST circuit ↓(Ra’,Wa) yes No No ↓(Ra) Write ERROR to RFLAG Write error response to RED Write faulty addr to REA March element complete yes Write FINISH to RFLAG EE, National Central University Jin-Fu Li Test program take over 31 SOC Testing • A typical SOC chip ADC FPGA Wrapper CPU UDL Flash Memoryy DSP Sink Source TAM Test Access Mechanism (TAM) MPEG SRAM SRAM DRAM Source: Y. Zorian, et al.-ITC98 EE, National Central University Jin-Fu Li 32 SOC Test Access ADC FPGA Wrapper CPU UDL Off-chip Source/Sink Flash Memory 1. Pins determine bandwidth 2. More TAM area 3. Requires expensive ATE DSP Sink TAM TAM Source MPEG SRAM SRAM DRAM ADC Flash Wrapper On chip Source/Sink On-chip 1. Close to Core-under-test 2 Less TAM area 2. 3. BIST IP area 4. Requires lightweight ATE FPGA UDL CPU Memory DSP Sink Source Sink Source MPEG SRAM SRAM DRAM Source: Y. Zorian and E.J. Marinissen EE, National Central University Jin-Fu Li 33 1500 Scalable Test Architecture Source User Defined Parallel TAM TAM-in TAM-out TAM-in 1500 Wrapper W Fin WSI Core1 WIR Sink TAM-out 1500 Wrapper W Fout Fin WSO WSI CoreN WIR Fout WSO WIP User-Defined Test Controller EE, National Central University Jin-Fu Li 34 1500 Test Wrapper Test stimuli WPI W WBR W WBR Functional Core WPO Test response Functional data data WBY WSI WIR WSO WSC EE, National Central University Jin-Fu Li 35 Memories in SOCs FPGA ADC Flash Memory CPU UDL DSP DRAM SRAM SRAM SRAM BIST BIST MPEG N BIST memory cores Non-BIST EE, National Central University SRAM BIST SRAM DRAM BIST BIST BIST-ready d memory cores Jin-Fu Li 36 RAM BIST in SOCs • Memory cores in an SOC can be categorized into two types in term of testability − BIST-ready memory cores − Non-BIST memory cores • An SOC can contain tens or even hundreds of memory e o y cores co es − Although a BIST usually have only about 8 controlling pins − The total BIST controlling pins is huge if each BISTready memory cores has its own BIST controlling pins • The BIST controlling pins should be shared − One solution is using g memory y BIST interface EE, National Central University Jin-Fu Li 37 Sharing BIST Controlling Pins ADC FPGA Flash Memory CPU UDL DSP DRAM SRAM SRAM BIST SRAM MBI MBI MPEG BIST MBI MBI BIST BIST SRAM DRAM SRAM EE, National Central University Jin-Fu Li 38 Memory BIST Interface (MBI) EE, National Central University Jin-Fu Li 39 Memory BIST Interface (MBI) • Instruction Register − Store the instructions ∗ RUN_BIST, RUN_DIAGN, EXPORT_STATUS, TAM_CONTROL • Bypass yp Register g − It is selected if the corresponding memory core is not tested • Monitor Register − Monitor o to the t e error e o flag ag ((indicating d cat g whether et e a memory e oy fault is detected or not) • Status Register − Record the key status values, such as Fail output from the BIST EE, National Central University Jin-Fu Li 40 Testing Multiple Memories with MBI • Using RUN_BIST instruction, we can test multiple memory cores concurrently − When one or more BIST circuits detect faults, the primary MSO_N will be high after N-K clock cycles if the concurrent output of the (K+1) through the N memory cores are fault free EE, National Central University Jin-Fu Li 41 Sharing BIST Hardware BIST controlling signals TPG & BIST Controller Comparator ll BIST C Collar BIST C Collar ll ll BIST C Collar RAM 1 RAM 2 RAM N EE, National Central University Jin-Fu Li 42 RAM BIST Compiler S Source: P Prof. f C. C W W. Wu, W NTHU EE, National Central University Jin-Fu Li 43 1500-Compilant BIST Wrapper T TAP Con ntroller TAP P EE, National Central University BIST Jin-Fu Li RAM 44 Programmable BISD for RAMs in SOCs • General test architecture ATE SOC TAP controller TAM Wrapper Processor + Test Program Memory Embedded Memory Core S Source: A Appello ll D D., et. al.l ITC03 EE, National Central University Jin-Fu Li 45 Programmable BISD for RAMs in SOCs • Test Processor Processor Wrapper P1500 Instructions Control Unit P1500 Output Data Memory Adapter Test Program Address Bus Data Bus g Control Signals S Source: A Appello ll D D., et. al.l ITC03 EE, National Central University Jin-Fu Li 46 Programmable BISD for RAMs in SOCs • Control Unit − Manage the test program execution − Include an Instruction Register (IR) and Program Counter (PC) − The control unit allows the correct update of some registers located in Memory Adapter − This part simplifies the processor reuse in different applications without the need for any re-design EE, National Central University Jin-Fu Li 47 Programmable BISD for RAMs in SOCs • Memory Adapter − Control Address registers g (Current ( _address)) − Control Memory registers ∗ Current_data ∗ Received_data R i d d t − Control Test registers ∗ Dbg g_index,, Step, p, Direction flag, g, and Timer registers g − Result registers ∗ Status, Error, and Result registers − Some constant value registers ∗ Add_Max, Add_Min, DataBackGround, Dbg_max EE, National Central University Jin-Fu Li 48 Programmable BISD for RAMs in SOCs • Processor instruction set M Meaning i I t ti Instruction SET_ADD RST_ADD STORE_DBG INV_DBG Current_address ⇐ Add_Max Direction flag ⇐ BACKWARD Current_address ⇐ Add_Min g ⇐ FORWARD Direction flag Current_data ⇐ DataBackGround[Dbg_index] Dbg_index ⇐ Dbg_index+1 Current_data ⇐ NOT (Current_data) READ Current data ⇐ Memory[Current_address] Current_data Memory[Current address] WRITE Memory[Current_address] ⇐ Current_data Source: Appello D., et. al. ITC03 EE, National Central University Jin-Fu Li 49 Programmable BISD for RAMs in SOCs • Wrapper WSI WRCK ShiftWR UpdateWR CaptureWR SelectWIR W D R W I R W B Y Processor Test Program W B R Me emory TAP controller c WRSTN W C D R CORE WSO Wrapper Source: Appello D., et. al. ITC03 EE, National Central University Jin-Fu Li 50 Summary • ROM BIST has been presented p • ROM-based and FSM-based RAM BIST have been introduced • Serial BIST methodology for embedded memories i h has also l presented t d • BIST approaches pp for testing g multiple p RAMs in an SOC have also been addressed EE, National Central University Jin-Fu Li 51 • • • • • • • • References [1] A. K. Sharma,”Semiconductor memories – technology, testing, and reliability”, li bilit ” IEEE P Press, 1997 1997. [2] B. Nadeau-Dostie, A. Silburt, and V. K. Agarwal,”Serial interfacing for embedded-memory testing”, IEEE D&T, pp.52-63, apr. 1990. [3] C. W. Wu,”VLSI testing & design for testability II: Memory built-in selftest”, http://larc.ee.nthu.edu.tw/~cww/ [4]C. H. Tsai and C.-W. [4]C.-H. C. W. Wu, ``Processor-programmable Processor programmable memory BIST for bus-connected embedded memories'', in Proc. Asia and South Pacific Design Automation Conf. (ASP-DAC), Yokohama, Jan. 2001, pp. 325-330 [5]C.-W [5]C W. Wang, Wang C C.-F F. Wu, Wu JJ.-F F. Li, Li C C.-W W. Wu, Wu T T. Teng, Teng K K. Chiu, Chiu and H. H -P P. Lin Lin, ``A A built-in self-test and self-diagnosis scheme for embedded SRAM'', in Proc. 9th IEEE Asian Test Symp. (ATS),Taipei, Dec. 2000, pp. 45-50 [6]D. Appello, [6]D Appello F F. Corno Corno, M. M Giovinetto, Giovinetto M M. Rebaudengo Rebaudengo, and M M. S S. Reorda Reorda,”A A P1500 compliant BIST-Based approach ro embedded RAM diagnosis”, pp.97-102, MTDT, 2001. [7]J. F [7]J F. Li Li, H H. JJ. H Huang, JJ. B B. Ch Chen, C. C P. P Su, S C. C W. W Wu, W C. C Cheng, Ch S. S I. I Chen, Ch C. C Y. Y Hwang, and H. P. Lin,”A hierarchical test methodology for systems on chip”, IEEE Micro, pp. 69-81, Sep./Oct., 2002. [8]S. Mourad and Y. Zorian,”Principles off Testing Electronic Systems”, John Wiley & Sons, 2000. EE, National Central University Jin-Fu Li 52