Atmel AT94K FPSLIC Architecture Field Programmable Gate Array

Similar documents
A Case Study. Jonathan Harris, and Jared Phillips Dept. of Electrical and Computer Engineering Auburn University

Built-In Self-Test for Regular Structure Embedded Cores in System-on-Chip

Outline of Presentation

Built-In Self-Test for System-on-Chip: A Case Study

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

An Architecture for Fail-Silent Operation of FPGAs and Configurable SoCs

BUILT-IN SELF-TEST CONFIGURATIONS FOR FIELD PROGRAMMABLE GATE ARRAY CORES IN SYSTEMS-ON-CHIP

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

Outline of Presentation Field Programmable Gate Arrays (FPGAs(

Soft-Core Embedded Processor-Based Built-In Self- Test of FPGAs: A Case Study

BIST-Based Test and Diagnosis of FPGA Logic Blocks

Atmel s s AT94K Series Field Programmable System Level Integrated Circuit (FPSLIC)

BIST-Based Test and Diagnosis of FPGA Logic Blocks 1

Outline of Presentation History of DSP Architectures in FPGAs Overview of Virtex-4 4 DSP

Outline. Field Programmable Gate Arrays. Programming Technologies Architectures. Programming Interfaces. Historical perspective

Presentation Outline Overview of FPGA Architectures Virtex-4 & Virtex-5 Overview of BIST for FPGAs BIST Configuration Generation Output Response Analy

INTRODUCTION TO FIELD PROGRAMMABLE GATE ARRAYS (FPGAS)

Built-In Self-Test of Programmable Input/Output Tiles in Virtex-5 FPGAs

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

Circuit Partitioning for Application-Dependent FPGA Testing

Altera FLEX 8000 Block Diagram

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

Chapter 9. Design for Testability

Field Programmable Gate Array (FPGA)

Autonomous Built-in Self-Test Methods for SRAM Based FPGAs

FIELD PROGRAMMABLE GATE ARRAYS (FPGAS)

! Program logic functions, interconnect using SRAM. ! Advantages: ! Re-programmable; ! dynamically reconfigurable; ! uses standard processes.

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

Digital System Design Lecture 7: Altera FPGAs. Amir Masoud Gharehbaghi

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

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

EMULATED FAULT INJECTION FOR BUILT-IN SELF-TEST

FPGA: What? Why? Marco D. Santambrogio

Topics. Midterm Finish Chapter 7

EECS 579: Built-in Self-Test 3. Regular Circuits

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

L2: FPGA HARDWARE : ADVANCED DIGITAL DESIGN PROJECT FALL 2015 BRANDON LUCIA

FPGA Implementations

Analysis and Implementation of Built-In Self-Test for Block Random Access Memories in Virtex-5 Field Programmable Gate Arrays. Justin Lewis Dailey

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

INTRODUCTION TO FPGA ARCHITECTURE

Fault Grading FPGA Interconnect Test Configurations

FPGA. Agenda 11/05/2016. Scheduling tasks on Reconfigurable FPGA architectures. Definition. Overview. Characteristics of the CLB.

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

Microelectronics Reliability

DFT for Regular Structures

Programmable Logic. Simple Programmable Logic Devices

Chapter 5 Embedded Soft Core Processors

5K - 40K Gates of AT40K FPGA with 8-bit Microcontroller, up to 36K Bytes of SRAM and On-chip JTAG ICE

SSoCC'01 4/3/01. Specific BIST Architectures. Gert Jervan Embedded Systems Laboratory (ESLAB) Linköping University

Chapter 7. Logic Diagnosis. VLSI EE141 Test Principles and Architectures Ch. 7 - Logic Diagnosis - P. 1

CHAPTER 5 : Introduction to Intel 8085 Microprocessor Hardware BENG 2223 MICROPROCESSOR TECHNOLOGY

Topics. Midterm Finish Chapter 7

Scan-Based BIST Diagnosis Using an Embedded Processor

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline

Memories. Design of Digital Circuits 2017 Srdjan Capkun Onur Mutlu.

Testing Digital Systems I

Lecture #1: Introduction

Design and Synthesis for Test

CDA 4253 FPGA System Design Op7miza7on Techniques. Hao Zheng Comp S ci & Eng Univ of South Florida

AT40K05AL, AT40K10AL AT40K20AL, AT40K40AL

1. Internal Architecture of 8085 Microprocessor

3.1 Description of Microprocessor. 3.2 History of Microprocessor

VLSI Test Technology and Reliability (ET4076)

Memory System Design. Outline

The Virtex FPGA and Introduction to design techniques

Configurable Embedded Systems: Using Programmable Logic to Compress Embedded System Design Cycles

COEN-4730 Computer Architecture Lecture 12. Testing and Design for Testability (focus: processors)

AN OPTIMAL APPROACH FOR TESTING EMBEDDED MEMORIES IN SOCS

QUESTION BANK. EE 6502 / Microprocessor and Microcontroller. Unit I Processor. PART-A (2-Marks)

Virtex-II Architecture. Virtex II technical, Design Solutions. Active Interconnect Technology (continued)

Configurable UART ver 2.10

BIST is the technique of designing additional hardware and software. features into integrated circuits to allow them to perform self testing, i.e.

Data Side OCM Bus v1.0 (v2.00b)

The 8237 DMA Controller: -

Testing Configurable LUT-Based FPGAs

Analysis and Improvement of Virtex-4 Block RAM Built-In Self-Test. and Introduction to Virtex-5 Block RAM Built-In Self-Test.

PS2 VGA Peripheral Based Arithmetic Application Using Micro Blaze Processor

Very Large Scale Integration (VLSI)

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Microcomputer Architecture and Programming

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

Alternative Techniques for Built-In Self-Test of Field Programmable. Gate Arrays

Enabling success from the center of technology. A Practical Guide to Configuring the Spartan-3A Family

A Universal Test Pattern Generator for DDR SDRAM *

Chapter 9: Sequential Logic Modules

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna

Embedded Real-Time Video Processing System on FPGA

CHAPTER 6 FPGA IMPLEMENTATION OF ARBITERS ALGORITHM FOR NETWORK-ON-CHIP

This chapter introduces you to the design and test of microcontroller + FPLD designs using the XS40 and XS95 Boards.

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are:

FT-UNSHADES credits. UNiversity of Sevilla HArdware DEbugging System.

1 MALP ( ) Unit-1. (1) Draw and explain the internal architecture of 8085.

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

AT40K05, AT40K10, AT40K20, AT40K40

Automated TestVector Generation. Issues in Test Vector Generation. BIST Approach. Built-In Self Test (BIST) LFSR (cont)

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

Review: Timing. EECS Components and Design Techniques for Digital Systems. Lec 13 Storage: Regs, SRAM, ROM. Outline.

Transcription:

Embedded Processor Based Built-In Self-Test and Diagnosis of FPGA Core in FPSLIC John Sunwoo (Logic BIST) Srinivas Garimella (RAM BIST) Sudheer Vemula (I/O Cell BIST) Chuck Stroud (Routing BIST) Jonathan Harris (original Logic and Routing BIST)

Atmel AT94K FPSLIC Architecture Field Programmable Gate Array up to 48x48 array of Programmable Logic Blocks (PLBs) RAM cores 32x4 bit RAMs distributed in FPGA Program memory (up to 32 Kbyte) Single port to processor Data RAM (up to 6 Kbyte) Dual port to FPGA & processor 8-bit RISC processor core Various peripherals Processor can write (but not read) FPGA configuration memory Dynamic partial reconfiguration Program Memory Config FPGA memory Data RAM RISC Processor Peripherals /9/9 Embedded Systems Lecture 2

FPGA Core Architecture Arranged in 4x4 arrays of PLBs One 32x4-bit RAM per 4x4 array Single- or Dual-Port operation Sync or async operation Local routing to adjacent PLBs 4 4 directs (Y)( 4 4 diagonals (X)( Global routing 5 planes having: Two x8 lines/plane - spans 8 PLBs One x4 line/plane - spans 4 PLBs connects to/from PLB Repeaters provide buffering and interconnections between x8 & x4 lines FPGA Core Array Vertical Routing Planes PLB PLB 4 PLB Din 5 Wadd X Y X 5 PLB Radd Y PLB 32x4 Y PLB WEX RAM Y X OE Dout PLB PLB 4 PLB PLB local routing PLB PLB global routing Horizontal Routing Planes /9/9 Embedded Systems Lecture 3

General FPGA Logic BIST Architecture Columns or rows of PLBs configured as Test Pattern Generators (TPGs) Counter or LFSR: pseudo-exhaustive exhaustive test Blocks Under Test (BUTs) Configured in all modes of operation 2 test sessions to test all PLBs as BUTs Output Response Analyzers (ORAs) Comparison-based monitoring adjacent BUTs Routing resource usage: Global routing for TPG signals to BUTs Local routing for BUT outputs to ORAs Architecture forms basis for diagnostic procedure MULTICELLO: Multiple Faulty Cell Locator Test Session 2 =TPG =BUT =ORA /9/9 Embedded Systems Lecture 4

FPSLIC PLB Architecture Relatively small 4 4 data inputs Plus Clock and Set/Reset Two 3-input 3 LUTs One D flip-flop flop Async Set/Reset Issues for BIST ORAs need 5 LUT inputs Compare 2 outputs Latch any mismatches feedback to LUTs Shift out results 2 inputs to LUTs X W Y Z X LUT Y LUT configuration memory bit OUT i OUT j clock set/reset ORA data Shift Dynamic partial reconfiguration to create shift register /9/9 Embedded Systems Lecture 5 X Y L to local routing to local routing to global routing ORA data out

Logic BIST Column-based BIST architecture Logic blocks configured as TPGs, ORAs, and BUTs BUTs tested in all modes 4 4 test configurations Routing Scheme Routing Scheme 2 BIST architecture flipped vertically for 2 nd test session ORA can only observe X from one BUT & Y from other BUT 2 2 routing schemes needed to observe both X and Y outputs of all BUTs =TPG =BUT =ORA = X direct = Y direct /9/9 Embedded Systems Lecture 6

Pathological Case for Fault Detection To escape detection all of the following must be true: X & Y have same position in both TPGs in column W & Z have same position in both TPGs in column 8 X & Y have equivalent faults W & Z have equivalent faults X & Y cause TPGs in column to skip patterns that detect W & Z W & Z cause TPGs in column 8 to skip patterns that detect X & Y Rotating architecture by 9 will detect these faults! /9/9 Embedded Systems Lecture 7 X Y W Z

Conventional FPGA BIST Test Phase Test Phase 2 Empty TPG ORA BUT BUT2 Fault READ FPGA READ ORA Reset ORA FPGA Reset External downloads consume major portion of testing time More test phases means more external storage is required To find faulty blocks, ORA results are retrieved after each test phase download of the next test phase causes FPGA core to be reset External controller is needed BIST clocks from external pin ORA results are retrieved outside through external pin Embedded processor is not a main BIST component /9/9 Embedded Systems Lecture 8

Embedded Processor Based BIST Use embedded processor core to Reconfigure FPGA for BIST Execute BIST and retrieve BIST results Perform diagnostic procedure Perform fault injection emulation Methodical verification of BIST configurations Processor must access configuration memory Read access desirable for read-modify modify-write Implemented in Atmel AT94K 8-bit AVR microcontroller Configuration memory write access only Currently implementing in Virtex-4&5 for NSA PowerPC (hard), MicroBlaze & PicoBlaze (soft) Configuration memory write and read access /9/9 Embedded Systems Lecture 9

AVR-generated FPGA BIST Test Phase Test Phase 2 Empty TPG ORA BUT BUT2 Fault READ ORA No download to FPGA core Reset Single AVR program contains algorithmic reconfiguration routines for configuring FPGA core for each test phase TPG and ORA configurations are reusable for next phase Until architecture flips to next test session AVR reconfigures BUTs for each test phase ORA results can be retrieved after multiple phases FF values in ORAs remain throughout subsequent phases READ ORA Reset /9/9 Embedded Systems Lecture

Dynamic Reconfiguration Sequence Clear FPGA core PLBs, repeaters, clk, FFs, freerams, IOBs No need for chip reset Configure ORAs Comparison-based ORA Reset ORA FFs Routing scheme or 2 Configure BUTs Change BUT configurations Write FF s from AVR (FF set/reset test) Cannot be tested by external download Configure TPGs Two 5-bit 5 counters Route TPG signals to BUTs Need care when configuring repeaters Reset TPG FFs =TPG =BUT =ORA /9/9 Embedded Systems Lecture

Dynamic Reconfiguration Sequence Route BIST clock BIST clock driven by AVR Configure AVR-FPGA interfaces that cannot be called from MGL Route from FPGAIOWE to GCK4 Route clock signal to all BUTs, ORAs and TPGs Run BIST clock Reconfigure ORAs to shift reg Dynamic partial reconfiguration of ORAs to shift register without destroying ORA FF contents Route scan out path shift reg output to of 8-bit 8 bus between AVR and FPGA AVR Data In (ADIN) Retrieve ORA results On-chip diagnosis by AVR FIGARO /9/9 Embedded Systems Lecture 2

Configuration Routines for logic BIST BIST Reconfiguration Subroutines Program Memory Size (Bytes) Number of Lines of C Code (Approx.) Processor Execution Cycles K K4 Clear FPGA 492 5 59,664 25,28 Instantiate BUT 834 3 25,829,36 Instantiate ORA 22 7 4,844 6,686 Instantiate TPG,486 6 4,652 4,866 Route BIST clock 234 4,923 4,9 ORA/shift register 282 8 6,37 24,79 Generate clocks 32 6 456 456 Route scan out 42 45 24,879 97,37 Retrieve results 36 35 9,339 75,859 Miscellaneous 388 2,659 N/A N/A Total 4,676 4, 57,957 594,427 Largest subroutine (program memory & lines of code) is for configuring TPGs Due to irregular structures Clearing FPGA and configuring BUTs/ORAs need less program memory size Due to regular structure of BIST architecture /9/9 Embedded Systems Lecture 3

On-Chip BIST and Diagnosis Atmel SoCs contain: Program & Data RAMs Processor core FPGA core Use processor to: Configure FPGA for BIST Run BIST Get BIST results Perform diagnosis Reduces test and diagnosis time by a factor of 36.9 Store only one BIST and diagnostic program on-chip /9/9 Embedded Systems Lecture 4

Diagnosis Based on BIST Results Step : Record ORA results Step 2: Mark BUTs good between consecutive ORAs with s Step 3: Mark BUTs good for every two adjacent s followed by empty cell Step 4: Mark BUTs bad for every consecutive and followed by empty cell Step 5: Inconsistencies mean fault in ORA or in routing resources from BUTs Step 6: Unique diagnosis if all BUTs marked faulty or fault-free free row B 2 3 4 5 6 O 2 B 2 O 23 B 3 O 34 B 4 O 45 B 5 O 56 B 6 Note: Row 4: BUTs & 2 have equivalent faults =Core Under Test =TPG PLBs Ambiguities: =ORA PLBs =Processor Core Row 2: BUT 6 may be faulty or fault-free free Row 6: BUT 6 may be faulty or fault-free free Row 3: BUT 5 and/or BUT 6 is faulty Row 5: BUTs & 2 may be fault-free free or faulty (with equivalent faults) rotate BIST 9 to remove ambiguities /9/9 Embedded Systems Lecture 5

Implementation of Diagnostics Logic Resource Array Size Execution Clock Cycles Program Memory (bytes) Data Memory (bytes) RAMs 6 6 2 2 2,4 9,7,3,3 2 73 PLBs 24 24 48 48 32,,,33,33 8 72 Diagnostic program is independent of array size Extra 2 bytes for ORA/BUT translation Data memory requirement and execution time are a function of array size O(N 2 ) where N is array size in one dimension /9/9 Embedded Systems Lecture 6

BIST and Diagnostic Programs Test Function RAM BIST Logic BIST Diagnostics Total Execution Clock Cycles 398, 998,56,,56,66 Program Memory (bytes),86 3,38,33 6,57 Data Memory (bytes) 38 72 93 BIST and diagnostic programs easily fit in AT94K 2% of 32Kbyte Program Memory 2% of 4Kbyte Data RAM Same diagnostic program used for PLBs & RAMs PLB diagnosis dictates memory requirements /9/9 Embedded Systems Lecture 7 73

Routing BIST Global 4 lines repeaters Count-up/even parity repeaters Count-down/odd parity C C Par ORA ORA C C Par ORA ORA local routing resources Modified parity-based routing BIST 3-bit TPG = 2-bit 2 counter + parity Drive all five x4 global buses Detects all stuck-at faults, bridging faults and opens in wire segments stuck-on/off faults in repeaters Count-up up C C Pe Count-down C C Po /9/9 Embedded Systems Lecture 8

Configuration Routines for Routing BIST BIST Subroutine Cross-points Repeaters Total # Configs 6 4 56 Memory (bytes) 3,442 4,42 7,854 Lines of C Code 59 636,55 Processor Cycles K4,96,745 6,67,973 8,578,78 Routing BIST generation and reconfiguration program are similar to logic BIST shown previously Single AVR program generates all 56 routing BIST configurations /9/9 Embedded Systems Lecture 9

Resource Download Logic BIST Execution Total time Download Routing BIST Execution Total time Total Test Time Results: Speed-up Function Download Processor Speed-up 7.68 sec. sec 76..6 sec.85 sec.2 7.696 sec.86 sec 4.4 2.64 sec. sec 82.4.26 sec.343 sec.75 2.9 sec.453 sec 44.3 27.786 sec.639 sec 43.5 Configuration download time dominates total test time for conventional download approach Longer execution time on processor-generated BIST approach than download approach /9/9 Embedded Systems Lecture 2

Results: Memory Reduction Resource Tested Download Average File Size # Files Processor File Size # Files Memory Reduction Factor Logic 6 Kbyte 6 2 Kbyte 8 Routing 57 Kbyte 44 4 Kbyte 79 Combined 58 Kbyte 6 22 Kbyte 58 Download approach needs 6 configuration downloads to the chip Processor-generated BIST approach requires only one (relatively small) download to the program memory of AVR processor /9/9 Embedded Systems Lecture 2

BIST config Physical Fault Injection Faulty FPGA are difficult to find ORCA with faulty PLB & 2 ORCAs with faulty routing Physical fault insertion Etch package and zap with laser Fault Injection Emulation Modify configuration bits Prior to download, or Read-modify modify-write of configuration memory External or internal embedded processor Fault Emulator can create single & multiple faults in: PLBs: LUTs,, flip-flops, flops, etc. Interconnect: PIPs stuck-on & stuck-off Download file Stuck-at values Fault mask faults FPGA /9/9 Embedded Systems Lecture 22

Automated Fault Injection Analysis Fault injection emulation used for debugging, analysis & verification of BIST configurations & diagnosis Embedded processor based fault injection gives faster and more 9 7 8 7 6 6 5 4 5 3 2 4 Embedded processor based fault injection gives faster and more thorough analysis Programmable Resource PLB with flip-flops flops Vertical Repeaters Horizontal Repeaters 9 3 8 7 6 2 5 3 2 Free RAM Config Bits 8 7 65 4 Total Faults 62 42 3 8 Download Run Time 4 hrs 29 min 3 hrs 55 min 3 hrs 36 min 3 minutes Processor Run Time 4 min 34 sec 4 min sec 3 min 4 sec 4 seconds X3Y3ZBS X3Y3ZB2S X3Y3ZB4S X3Y3ZB6S X3Y3ZBS X3Y3ZB3S X3Y3ZB5S X3Y3Z2BS X3Y3Z2B3S X3Y3Z2B5S X3Y3Z3BS X3Y3Z3B2S X3Y3Z3B4S X3Y3Z4BS X3Y3Z4B2S X3Y3Z4B4S X3Y3Z4B6S X3Y3Z5BS X3Y3Z5B3S X3Y3Z5B5S X3Y3Z6BS X3Y3Z6B3S X3Y3Z6B5S X3Y3Z7BS X3Y3Z7B2S X3Y3Z7B4S X3Y3Z8BS X3Y3Z8B2S X3Y3Z8B4S X3Y3Z8B6S X3Y3Z9BS X3Y3Z9B3S X3Y3Z9B5S # Configs Detecting Fault Configs Detecting Fault 4 Read-modify-write of config memory bits makes analysis more efficient! Horizontal Ebus Repeater Faults /9/9 Embedded Systems Lecture 23