Micro-RDC Microelectronics Research Development Corporation A Programmable Scrubber for FPGAs ACKNOWLEDGMENT OF SUPPORT: This material is based upon work supported by the United States Air Force under Contract No. FA M Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Air Force. G. Alonzo Vera
Agenda Summary of reported solutions Design specification Architecture Extended Features Status and testing plan
Agenda Summary of reported solutions Design specification Architecture Extended Features Status and testing plan
Summary of reported solutions Commonly implemented: Blind scrubbing NASA/GSFC Radiation effects analysis group V4 scrubber (06/2007) Some examples of read, detect, scrub Sandia-Xilinx Virtex FPGA SEU experiment on the International Space Station. Cross scrubbing between V4 and V5. LANL flight experiment for Virtex I and its derivations BYU ICAP-based scrubber. Uses picoblaze Radix4 configuration scrubber Aeroflex Scrubber, an implementation of 989 XAPP 714: self scrubber, not longer supported XAPP 779: V2 scrubber XAPP 988: V4 scrubber XAPP 989: lastest supported solution from Xilinx (V2/V4)
Commercially available solutions Radix4 consulting Works only for VirtexII family Can be implemented as a peripheral or as stand alone Mitigate SEUs and SEFIs Uses 8-bit SelectMAP or ICAP Ref.: Radix4 Configuration Scrubber datasheet
Commercially available solutions Aeroflex Implements Xilinx's scrubber (XAPP989) on an Eclipse RadHard FPGA For Virtex 4 family Corrects and detect SEU Uses 8-bit SelectMAP Uses single CRC32 for the whole bitstream Identifies SEFI's Scrubs by pulling down PROG_B (whole device) Doesn't support frame-based scrubbing Ref.: Aeroflex's XRTC 2009 presentation
Agenda Summary of reported solutions Design specification Architecture Extended Features Status and testing plan
Agenda Summary of reported solutions Design specification Architecture Extended Features Status and testing plan
Design specification Read/Write access to a memory-like configuration storage. Error detection and correction using SECDEC or alternative. Small footprint (originally thought as a “self-scrubber”). Flexibility to implement different scrubbing rates and strategies, support different families and interfaces. Deal with scrubber's own susceptibility to SEU (TMR?). Others: Heartbeat signal, status and statistics on errors reporting capabilities, re-programming.
Agenda Summary of reported solutions Design specification Architecture Extended Features Status and testing plan
Agenda Summary of reported solutions Design specification Architecture Extended Features Status and testing plan
Architecture Femto: 8 bit, single cycle, micro-coded, “controller” “small footprint...” “error detection..” “flexibility...”“read/write access...”
FemtoCntrl: instructions
FemtoCntrl: Program example
PROM organization for Femto
Femto Flow
S-ASIC for rad-hard implementation A Low-Cost Solution for Low-Volume, Advanced Radiation-Hardened IC’s MPW Reticle → 10 Die w/Various Features
Femto's numbers It currently occupies ~522 slices XAPP989: ~ 200 to 1200 slices. Others ?? Time to scrub ~ 0.2 sec MHz for 32Mbit PROM) Instruccion memory: 256 instructions CRC16 code book : 1024
Agenda Requirements Other reported solutions Design specification Extended Features Status and testing plan
Scrubber extended features Selective scrubbing: flexible to implement different scrubbing rates and strategies
Scrubber extended features Flexible deployment
Scrubber extended features Support for other FPGA families or other devices (e.g. memories?)
Scrubber extended features State reloading
Agenda Summary of reported solutions Design specification Architecture Extended Features Status and testing plan
Agenda Requirements Other reported solutions Architecture Extended Features Status and testing plan
Testing Plan Supporting components: Formal verification plan for software components (flow) and RTL (Q3-09) Static testing: Fault injection / scrubbing automatic test (Q3-09) Dynamic testing Synthetic : Fault injection / detect / scrub / error monitoring (Q4-09) Proton testing: radiate / detect / scrub / error monitoring (Q1-10)
Questions?