SlideShare a Scribd company logo
1 of 39
Download to read offline
Design and development of an all-digital
testing system for static RAM based on
Xilinx™ Spartan-3 FPGA
Advisor: Dott. Marcello DeMatteis
Co-Advisor: Prof. Andrea Baschirotto
Co-Advisor: Dott. Cristiano Calligaro
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Master’s thesis presentation by
Luca Terrazzan
738846
Index
 Introduction
 System Components
 Algorithms
 System Design
 Experimental Results
 Conclusions
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Introduction
In aerospace applications electronic devices are constantly placed
in a hostile environment, leading to a number of negative effects
generated from the exposure to charged particles that may
negatively affect the desired component behavior.
Such effects might cause temporary or permanent damage to
integrated circuits:
 SEU – Single Event Upset
 MBU – Multiple Bit Upset
 …
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Introduction
IC might also present different intrinsic errors, generating several
undesired effects:
 Stuck-at faults
 Address decoder faults
 . . .
For this reasons a testing system is required in order to verify
memory behaviour under both nominal and radioactive
conditions before its deployment or commercial production.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Index
 Introduction
 System Components
 Algorithms
 System Design
 Experimental Results
 Conclusions
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Overview
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Static Memory
The developed system tested memories are RedCat Devices RC7C4096MCT
and RC7C4096MCX Multi-Chip Modules, each integrating four
RC7C1024RHST and RC7C1024RHSX static RAM respectively.
RC7C4096MC are still in pre-commercial development stages, thus being
ideal test subjects.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
RC7C1024RHST
Process CMOS 180nm 6 metals
Die Area 3,944x5,18 mm
VDD (IO) 3.3V
VDD (core) 1.8V
TID >300Krad(Si)
Foundry TowerJazz
RC7C1024RHSX
Process CMOS 180nm 6 metals
Die Area 3,944x5,18 mm
VDD (IO) 3.3V
VDD (core) 1.8V
TID >300Krad(Si)
Foundry X-Fab
Memory Signals
Signal Width Descr
Chip Enable (CE) 1 Enable Chip operations
Write Enable (WE) 1 Enable writing
Output Enable (OE) 1 Enable Reading
Address Bus (A) 17 8 MSB = column, 9 LSB = row
Data Bus (Q) 8 Stores data to read or write
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
RC7C1024RHS has 512 x 256 positions, each containing 8 bits
and thus storing 512 x 256 x 8 = 1 Mb of information.
Multi-Chip Module
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
The RC7C4096MC integrates four
SRAM in the same package, but is
used as a single IC.
CE and Data Buses are separated for
each die, but other control signals
are the same for all four integrated
chips.
As a result, the RC7C4096MC
stores up to 4 Mb of information.
RC7C1024RHST RC7C4096MCT
RC7C1024RHSX RC7C4096MCX
Integration Board – XEM3001
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
XEM3001
Producer Opal Kelly
Gate Count 400 000
Clock 1- 50Mhz
Interface USB 2.0 A
FPGA Xilinx Spartan-3
LEDs 8
Buttons 4
GUI
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Developed withVB based interface, used for:
• Issuing algorithms to FPGA along with input parameters
• Gather algorithms results from FPGA (log file)
• Display result data
Communication API
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Software communications to the integration board are possible
through a dedicated Opal Kelly C library.
This library has the appropriate functions to interact with the
USB module three primitives:
• Wires: used for the single transfer of a 16bits data bus
• Pipes: used to stream errors data from FPGA to aVB vector
• Triggers: used to signal specific events, like algorithms ends,
stream end signal, etc...
Each of these must be first declared through HDL code during
the FPGA programming.
Index
 Introduction
 System Components
 Algorithms
 System Design
 Experimental Results
 Conclusions
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Algorithms
Three different algorithms: two for standard write and read
procedures (used mainly in test under irradiation) and one for
full memory scan (called march test, used mainly in electrical
tests).
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Write
• Write a
pattern on
the memory
Read
• Check
memory
content
• Detect
errors
• Save log file
MarchTest
• Full memory
scan
• Detect
intrinsic
faults
• Save log file
Pattern
Standard write procedure works with an input pattern.A pattern is made by
two bytes, which are written alternated on every memory position:
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
The AA-55 (or 55-AA) is a common
pattern called checkerboard.
With patterns, the user can specify
the data to write on selected
memory region. But is also used to
compare read data in read
algorithm.
Log File
Text file containing each found error. Every row stores
information about a single error entry, saving its position and the
XOR operation between the written and read data.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Error position Pattern XOR read data
Error size
 Each die has 217 locations
 Each Error Entry needs 25 = 17 (address) + 8(XOR) bits
In worst case scenario (e.g. 217 errors) …
217 x 25 = 400KB (432KB for march test)
too much for FPGA registers!
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
(plus 2 extra bits for march test entries)
Errors are stored into the FPGA internal RAM (called XRAM). Each time a
error is read, its data is saved into the XRAM until full capacity is reached;
once that happens, the algorithm halts and wait for XRAM data to be
streamed to PC before resuming operations.
FPGA RAM (XRAM)
XRAM
Capacity 16Kb
Ports 2
Word size 32 bits
Maximum Errors 512
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
The XRAM is a dual-port static RAM, with
word size of 32 bits. Since an error entry
needs 25(or 27) bits, it fits into a XRAM
word with a waste of 7 (or 5) bits per error
entry.
This way up to 512 errors can be stored.
After that, the XRAM data needs to be
downloaded to PC before saving any other
entry.
March Test
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
 Scan all memory address in both ascending and descending order
 Each address is checked for faults
 Several state-of-the-art march tests, each with a specific sequence of
actions
 Actions syntax:
Ascending addressing Descending addressing
Either ascending or
descending addressing
W0 , W1 : write 0 or 1 at the current
address
R0 , R1 : check for 0 or 1 at the
current address
MATS++
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
 MATS++ (Modified AlgorithmTest Sequence) is the chosen march test
implementation
 It is capable of detecting Stuck-at Faults (SAF),Transition Faults (TF) and
Address Decoder Faults (AF)
Its definition is:
W0 R0W1 R1W0 R0
Faults are detected in three possible phases, knowing which phase generated
the error entry is fundamental to understand how the fault generated.
MATS++ log files error entries store two extra bits to indicate the phase.
Log File Visualization
Log files are visualized displaying a scaled graphic
representation of the memory. Here errors are drawn
based on the Log File type:
 For read algorithm log files, memory content is drawn on
the display area.While highlighting eventual errors in
green.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Log File Visualization
 For march test log files, only error entries locations are drawn.
Each with a specific colour based on the MATS++ phase (or
phases) which detected a fault in that location.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
No error Phase 1 Phase 2 Phase 3
Phase 1+2 Phase 1+3 Phase 2+3 Phase 1+2+3
Index
 Introduction
 System Components
 Algorithms
 System Design
 Experimental Results
 Conclusions
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
System Design
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
SRAM
XEM3001
PC
PLL USB
Jumper
Spartan-3
FSM
Clock
mana
ger
XRAM
manager
System Design
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
SRAM
XEM3001
PC
PLL USB
Spartan-3
FSM logic
Clock
manager
XRAM
manager
Control
Selector
J
GUI
XRAM
FPGA Programming
Red modules have been designed and implemented through
HDL(Verilog) code (except for GUI).
HDL defines FPGA behaviour by altering its internal circuit
configuration FPGA is not a microcontroller!
FPGA manages both algorithm logic and communications.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
FSM Logic
Contains the FSMs that implement every algorithm logic.Write and read algorithms
are simple FSM that cycle through memory positions.
Write FSM simply goes through every address of the specified region, while selecting
pattern byte in the same state as the address increase.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
FSM Logic
The read FSM behave similarly to write, but incorporating three states for XRAM
buffering whenever an error is found.
When the XRAM is full, the whole algorithm is stopped until a PC trigger is received.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
FSM Logic
The FSM implementing MATS++ algorithm is made to reflect its definition.The first step (the
writing of 0 in all memory cells) is carried out with a standard write before starting the march
test.
Each read operation actually incorporates the three-state XRAM buffering, while also providing
the current phase to the error entry.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
XRAM Manager
The XRAM manager module is used to download XRAM data to PC when full
capacity has been reached.
It is synchronized with the USB clock, since it has to communicate with PC.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
When the trigger is off, the
current XRAM address is reset.
When the XRAM is full, the PC
software activates xram_trigger,
thus starting the download
procedure: at each clock cycle
the current address is increased,
and its content is sent through
the pipe_data bus.
Clock Manager and Control Selector
The Clock Manager receives the PLL clock directly from
the XEM3001, it then divides it before feeding it to the main
FSM module.
The Control Selector module manage the different control
signals and provides them to the SRAM according to user’s
inputs. It uses an undivided clock from the Clock Manager
in order to set each cotnrol signal between each main FSM
clock cycle.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Index
 Introduction
 System Components
 System Design
 Experimental Results
 Conclusions
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Radiation Test
Tests under radioactive
exposure were made at the
University of Palermo. Here
the memory has been
exposed to gamma rays
from a Cobalt-60 source.
The XEM3001 – and
therefore the FPGA – was
protected in a lead
container, while also
shielding cables where
possible. PC was located in
an adjacent protected
room.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Radiation Tests
Radiation test applied repeated write-read standard algorithms,
usually alternating AA-55 and 55-AA patterns.
This allows for every memory cell to assume both logic values at
least one time while also preserving the checkerboard pattern.
Random behaviour have been noted when certain write-read
operation were issued. However, since we could not directly
observe every system components during tests execution, it was
impossible to determine whether the cause was a testing sytem
defect or gamma rays infiltration beneath the shield.
Tests are still ongoing for RC7C4096MCX and RC7C4096MCT
Multi-Chip Module devices.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
March Test
MATS++ was executed on different RC7C4096MC devices,
although – at the current moment – still a small number of
tests have been performed to verify its results.
MarchTests are still ongoing and are being developed for
other kinds of SRAM (whose functioning have already been
tested) in order to ascertain the correctness of MATS++
results.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
March Test
March Test produced different error entries for different chips.
However, as mentioned before, their significance is still to be proved
with further development and implementations on other devices.
Additional validation processes may include MATS++ algorithm
variations or different components set-up and environment.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Index
 Introduction
 System Components
 System Design
 Experimental Results
 Conclusions
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Conclusions
We developed a functioning testing system through FPGA
and software programming – while at the same time
implementing their communications – which was sucessfully
deployed on actual in-development SRAM.
While all tests are still undergoing development, the
proposed design performed different tasks as expected,
even though its results will have to be further validated
through additional testing and confrontations.
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica
Future Developments
 MATS++ implementation for different devices (like single
RC7C1024 SRAM)
 Digitally controlled Power Supply
 Higher frequence tests
 New MarchTest versions to detect other fault types
Università degli Studi di Milano-Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Laurea Magistrale in Informatica

More Related Content

What's hot

Communication Protocols Augmentation in VLSI Design Applications
Communication Protocols Augmentation in VLSI Design ApplicationsCommunication Protocols Augmentation in VLSI Design Applications
Communication Protocols Augmentation in VLSI Design ApplicationsIJERA Editor
 
DOUBLE PRECISION FLOATING POINT CORE IN VERILOG
DOUBLE PRECISION FLOATING POINT CORE IN VERILOGDOUBLE PRECISION FLOATING POINT CORE IN VERILOG
DOUBLE PRECISION FLOATING POINT CORE IN VERILOGIJCI JOURNAL
 
PLA Minimization -Testing
PLA Minimization -TestingPLA Minimization -Testing
PLA Minimization -TestingDr.YNM
 
Id. 03 tcp ip model
Id. 03 tcp ip modelId. 03 tcp ip model
Id. 03 tcp ip modelRawa KirKuKi
 
Instruction Set Architecture – II
Instruction Set Architecture – IIInstruction Set Architecture – II
Instruction Set Architecture – IIDilum Bandara
 
A NOVEL APPROACH FOR LOWER POWER DESIGN IN TURBO CODING SYSTEM
A NOVEL APPROACH FOR LOWER POWER DESIGN IN TURBO CODING SYSTEMA NOVEL APPROACH FOR LOWER POWER DESIGN IN TURBO CODING SYSTEM
A NOVEL APPROACH FOR LOWER POWER DESIGN IN TURBO CODING SYSTEMVLSICS Design
 
Design and Implementation of HDLC Controller by Using Crc-16
Design and Implementation of HDLC Controller by Using Crc-16Design and Implementation of HDLC Controller by Using Crc-16
Design and Implementation of HDLC Controller by Using Crc-16IJMER
 
Melp codec optimization using DSP kit
Melp codec optimization using DSP kitMelp codec optimization using DSP kit
Melp codec optimization using DSP kitsohaibaslam207
 
Matlab source codes section | Download MATLAB source code freerce-codes
Matlab source codes section | Download MATLAB source code freerce-codesMatlab source codes section | Download MATLAB source code freerce-codes
Matlab source codes section | Download MATLAB source code freerce-codeshafsabanu
 
Digital Systems Design
Digital Systems DesignDigital Systems Design
Digital Systems DesignReza Sameni
 
Hardware description languages
Hardware description languagesHardware description languages
Hardware description languagesAkhila Rahul
 
Reconfigurable ICs
Reconfigurable ICsReconfigurable ICs
Reconfigurable ICsAnish Goel
 
Advance hdl design training on xilinx fpga
Advance hdl design training on xilinx fpgaAdvance hdl design training on xilinx fpga
Advance hdl design training on xilinx fpgademon_2M
 
Architecture of fpg as and cplds
Architecture of fpg as and cpldsArchitecture of fpg as and cplds
Architecture of fpg as and cpldsmikeproud
 
Lect05 Prog Model
Lect05 Prog ModelLect05 Prog Model
Lect05 Prog Modelanoosdomain
 

What's hot (20)

Communication Protocols Augmentation in VLSI Design Applications
Communication Protocols Augmentation in VLSI Design ApplicationsCommunication Protocols Augmentation in VLSI Design Applications
Communication Protocols Augmentation in VLSI Design Applications
 
DOUBLE PRECISION FLOATING POINT CORE IN VERILOG
DOUBLE PRECISION FLOATING POINT CORE IN VERILOGDOUBLE PRECISION FLOATING POINT CORE IN VERILOG
DOUBLE PRECISION FLOATING POINT CORE IN VERILOG
 
PLA Minimization -Testing
PLA Minimization -TestingPLA Minimization -Testing
PLA Minimization -Testing
 
Lec02
Lec02Lec02
Lec02
 
Risc vs cisc
Risc vs ciscRisc vs cisc
Risc vs cisc
 
Id. 03 tcp ip model
Id. 03 tcp ip modelId. 03 tcp ip model
Id. 03 tcp ip model
 
Instruction Set Architecture – II
Instruction Set Architecture – IIInstruction Set Architecture – II
Instruction Set Architecture – II
 
A NOVEL APPROACH FOR LOWER POWER DESIGN IN TURBO CODING SYSTEM
A NOVEL APPROACH FOR LOWER POWER DESIGN IN TURBO CODING SYSTEMA NOVEL APPROACH FOR LOWER POWER DESIGN IN TURBO CODING SYSTEM
A NOVEL APPROACH FOR LOWER POWER DESIGN IN TURBO CODING SYSTEM
 
Design and Implementation of HDLC Controller by Using Crc-16
Design and Implementation of HDLC Controller by Using Crc-16Design and Implementation of HDLC Controller by Using Crc-16
Design and Implementation of HDLC Controller by Using Crc-16
 
Melp codec optimization using DSP kit
Melp codec optimization using DSP kitMelp codec optimization using DSP kit
Melp codec optimization using DSP kit
 
Matlab source codes section | Download MATLAB source code freerce-codes
Matlab source codes section | Download MATLAB source code freerce-codesMatlab source codes section | Download MATLAB source code freerce-codes
Matlab source codes section | Download MATLAB source code freerce-codes
 
Digital Systems Design
Digital Systems DesignDigital Systems Design
Digital Systems Design
 
Hardware description languages
Hardware description languagesHardware description languages
Hardware description languages
 
Tutorial on FPGA Routing
Tutorial on FPGA RoutingTutorial on FPGA Routing
Tutorial on FPGA Routing
 
FPGA
FPGAFPGA
FPGA
 
Reconfigurable ICs
Reconfigurable ICsReconfigurable ICs
Reconfigurable ICs
 
CV_forum_anglais
CV_forum_anglaisCV_forum_anglais
CV_forum_anglais
 
Advance hdl design training on xilinx fpga
Advance hdl design training on xilinx fpgaAdvance hdl design training on xilinx fpga
Advance hdl design training on xilinx fpga
 
Architecture of fpg as and cplds
Architecture of fpg as and cpldsArchitecture of fpg as and cplds
Architecture of fpg as and cplds
 
Lect05 Prog Model
Lect05 Prog ModelLect05 Prog Model
Lect05 Prog Model
 

Similar to presentation

FPGA-based error generator for PROFIBUS DP - Jean-Marc Capron (Yncréa Hauts-d...
FPGA-based error generator for PROFIBUS DP - Jean-Marc Capron (Yncréa Hauts-d...FPGA-based error generator for PROFIBUS DP - Jean-Marc Capron (Yncréa Hauts-d...
FPGA-based error generator for PROFIBUS DP - Jean-Marc Capron (Yncréa Hauts-d...PROFIBUS and PROFINET InternationaI - PI UK
 
HIGH PERFORMANCE ETHERNET PACKET PROCESSOR CORE FOR NEXT GENERATION NETWORKS
HIGH PERFORMANCE ETHERNET PACKET PROCESSOR CORE FOR NEXT GENERATION NETWORKSHIGH PERFORMANCE ETHERNET PACKET PROCESSOR CORE FOR NEXT GENERATION NETWORKS
HIGH PERFORMANCE ETHERNET PACKET PROCESSOR CORE FOR NEXT GENERATION NETWORKSijngnjournal
 
tau 2015 spyrou fpga timing
tau 2015 spyrou fpga timingtau 2015 spyrou fpga timing
tau 2015 spyrou fpga timingTom Spyrou
 
Nilesh ranpura systemmodelling
Nilesh ranpura systemmodellingNilesh ranpura systemmodelling
Nilesh ranpura systemmodellingObsidian Software
 
Nt1310 Unit 5 Algorithm
Nt1310 Unit 5 AlgorithmNt1310 Unit 5 Algorithm
Nt1310 Unit 5 AlgorithmAngie Lee
 
UNIT-2 PPT Data link layer.pptx
UNIT-2 PPT Data link layer.pptxUNIT-2 PPT Data link layer.pptx
UNIT-2 PPT Data link layer.pptxdiptijilhare
 
computer architecture
computer architecture computer architecture
computer architecture Dr.Umadevi V
 
On chip crosstalk_avoidance_codec_design_using_fibonacci
On chip crosstalk_avoidance_codec_design_using_fibonacciOn chip crosstalk_avoidance_codec_design_using_fibonacci
On chip crosstalk_avoidance_codec_design_using_fibonaccibharath naidu
 
Applications - embedded systems
Applications - embedded systemsApplications - embedded systems
Applications - embedded systemsDr.YNM
 
soc ip core based for spacecraft application
soc ip core based for spacecraft applicationsoc ip core based for spacecraft application
soc ip core based for spacecraft applicationnavyashree pari
 
Introduction to FPGA acceleration
Introduction to FPGA accelerationIntroduction to FPGA acceleration
Introduction to FPGA accelerationMarco77328
 
VJITSk 6713 user manual
VJITSk 6713 user manualVJITSk 6713 user manual
VJITSk 6713 user manualkot seelam
 
Plan_design and FPGA implement of MIMO OFDM SDM systems
Plan_design and FPGA implement of MIMO OFDM SDM systemsPlan_design and FPGA implement of MIMO OFDM SDM systems
Plan_design and FPGA implement of MIMO OFDM SDM systemsTan Vo
 

Similar to presentation (20)

Dsp lab manual 15 11-2016
Dsp lab manual 15 11-2016Dsp lab manual 15 11-2016
Dsp lab manual 15 11-2016
 
FPGA-based error generator for PROFIBUS DP - Jean-Marc Capron (Yncréa Hauts-d...
FPGA-based error generator for PROFIBUS DP - Jean-Marc Capron (Yncréa Hauts-d...FPGA-based error generator for PROFIBUS DP - Jean-Marc Capron (Yncréa Hauts-d...
FPGA-based error generator for PROFIBUS DP - Jean-Marc Capron (Yncréa Hauts-d...
 
HIGH PERFORMANCE ETHERNET PACKET PROCESSOR CORE FOR NEXT GENERATION NETWORKS
HIGH PERFORMANCE ETHERNET PACKET PROCESSOR CORE FOR NEXT GENERATION NETWORKSHIGH PERFORMANCE ETHERNET PACKET PROCESSOR CORE FOR NEXT GENERATION NETWORKS
HIGH PERFORMANCE ETHERNET PACKET PROCESSOR CORE FOR NEXT GENERATION NETWORKS
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
tau 2015 spyrou fpga timing
tau 2015 spyrou fpga timingtau 2015 spyrou fpga timing
tau 2015 spyrou fpga timing
 
Nilesh ranpura systemmodelling
Nilesh ranpura systemmodellingNilesh ranpura systemmodelling
Nilesh ranpura systemmodelling
 
Nt1310 Unit 5 Algorithm
Nt1310 Unit 5 AlgorithmNt1310 Unit 5 Algorithm
Nt1310 Unit 5 Algorithm
 
UNIT-2 PPT Data link layer.pptx
UNIT-2 PPT Data link layer.pptxUNIT-2 PPT Data link layer.pptx
UNIT-2 PPT Data link layer.pptx
 
computer architecture
computer architecture computer architecture
computer architecture
 
On chip crosstalk_avoidance_codec_design_using_fibonacci
On chip crosstalk_avoidance_codec_design_using_fibonacciOn chip crosstalk_avoidance_codec_design_using_fibonacci
On chip crosstalk_avoidance_codec_design_using_fibonacci
 
Applications - embedded systems
Applications - embedded systemsApplications - embedded systems
Applications - embedded systems
 
FPGA In a Nutshell
FPGA In a NutshellFPGA In a Nutshell
FPGA In a Nutshell
 
MIMO Testbed presentation (DSPeR'2005)
MIMO Testbed presentation (DSPeR'2005)MIMO Testbed presentation (DSPeR'2005)
MIMO Testbed presentation (DSPeR'2005)
 
Introduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSPIntroduction to Blackfin BF532 DSP
Introduction to Blackfin BF532 DSP
 
soc ip core based for spacecraft application
soc ip core based for spacecraft applicationsoc ip core based for spacecraft application
soc ip core based for spacecraft application
 
Introduction to FPGA acceleration
Introduction to FPGA accelerationIntroduction to FPGA acceleration
Introduction to FPGA acceleration
 
VJITSk 6713 user manual
VJITSk 6713 user manualVJITSk 6713 user manual
VJITSk 6713 user manual
 
Bm36382385
Bm36382385Bm36382385
Bm36382385
 
Plan_design and FPGA implement of MIMO OFDM SDM systems
Plan_design and FPGA implement of MIMO OFDM SDM systemsPlan_design and FPGA implement of MIMO OFDM SDM systems
Plan_design and FPGA implement of MIMO OFDM SDM systems
 
x86_1.ppt
x86_1.pptx86_1.ppt
x86_1.ppt
 

presentation

  • 1. Design and development of an all-digital testing system for static RAM based on Xilinx™ Spartan-3 FPGA Advisor: Dott. Marcello DeMatteis Co-Advisor: Prof. Andrea Baschirotto Co-Advisor: Dott. Cristiano Calligaro Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica Master’s thesis presentation by Luca Terrazzan 738846
  • 2. Index  Introduction  System Components  Algorithms  System Design  Experimental Results  Conclusions Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 3. Introduction In aerospace applications electronic devices are constantly placed in a hostile environment, leading to a number of negative effects generated from the exposure to charged particles that may negatively affect the desired component behavior. Such effects might cause temporary or permanent damage to integrated circuits:  SEU – Single Event Upset  MBU – Multiple Bit Upset  … Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 4. Introduction IC might also present different intrinsic errors, generating several undesired effects:  Stuck-at faults  Address decoder faults  . . . For this reasons a testing system is required in order to verify memory behaviour under both nominal and radioactive conditions before its deployment or commercial production. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 5. Index  Introduction  System Components  Algorithms  System Design  Experimental Results  Conclusions Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 6. Overview Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 7. Static Memory The developed system tested memories are RedCat Devices RC7C4096MCT and RC7C4096MCX Multi-Chip Modules, each integrating four RC7C1024RHST and RC7C1024RHSX static RAM respectively. RC7C4096MC are still in pre-commercial development stages, thus being ideal test subjects. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica RC7C1024RHST Process CMOS 180nm 6 metals Die Area 3,944x5,18 mm VDD (IO) 3.3V VDD (core) 1.8V TID >300Krad(Si) Foundry TowerJazz RC7C1024RHSX Process CMOS 180nm 6 metals Die Area 3,944x5,18 mm VDD (IO) 3.3V VDD (core) 1.8V TID >300Krad(Si) Foundry X-Fab
  • 8. Memory Signals Signal Width Descr Chip Enable (CE) 1 Enable Chip operations Write Enable (WE) 1 Enable writing Output Enable (OE) 1 Enable Reading Address Bus (A) 17 8 MSB = column, 9 LSB = row Data Bus (Q) 8 Stores data to read or write Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica RC7C1024RHS has 512 x 256 positions, each containing 8 bits and thus storing 512 x 256 x 8 = 1 Mb of information.
  • 9. Multi-Chip Module Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica The RC7C4096MC integrates four SRAM in the same package, but is used as a single IC. CE and Data Buses are separated for each die, but other control signals are the same for all four integrated chips. As a result, the RC7C4096MC stores up to 4 Mb of information. RC7C1024RHST RC7C4096MCT RC7C1024RHSX RC7C4096MCX
  • 10. Integration Board – XEM3001 Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica XEM3001 Producer Opal Kelly Gate Count 400 000 Clock 1- 50Mhz Interface USB 2.0 A FPGA Xilinx Spartan-3 LEDs 8 Buttons 4
  • 11. GUI Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica Developed withVB based interface, used for: • Issuing algorithms to FPGA along with input parameters • Gather algorithms results from FPGA (log file) • Display result data
  • 12. Communication API Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica Software communications to the integration board are possible through a dedicated Opal Kelly C library. This library has the appropriate functions to interact with the USB module three primitives: • Wires: used for the single transfer of a 16bits data bus • Pipes: used to stream errors data from FPGA to aVB vector • Triggers: used to signal specific events, like algorithms ends, stream end signal, etc... Each of these must be first declared through HDL code during the FPGA programming.
  • 13. Index  Introduction  System Components  Algorithms  System Design  Experimental Results  Conclusions Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 14. Algorithms Three different algorithms: two for standard write and read procedures (used mainly in test under irradiation) and one for full memory scan (called march test, used mainly in electrical tests). Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica Write • Write a pattern on the memory Read • Check memory content • Detect errors • Save log file MarchTest • Full memory scan • Detect intrinsic faults • Save log file
  • 15. Pattern Standard write procedure works with an input pattern.A pattern is made by two bytes, which are written alternated on every memory position: Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica The AA-55 (or 55-AA) is a common pattern called checkerboard. With patterns, the user can specify the data to write on selected memory region. But is also used to compare read data in read algorithm.
  • 16. Log File Text file containing each found error. Every row stores information about a single error entry, saving its position and the XOR operation between the written and read data. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica Error position Pattern XOR read data
  • 17. Error size  Each die has 217 locations  Each Error Entry needs 25 = 17 (address) + 8(XOR) bits In worst case scenario (e.g. 217 errors) … 217 x 25 = 400KB (432KB for march test) too much for FPGA registers! Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica (plus 2 extra bits for march test entries) Errors are stored into the FPGA internal RAM (called XRAM). Each time a error is read, its data is saved into the XRAM until full capacity is reached; once that happens, the algorithm halts and wait for XRAM data to be streamed to PC before resuming operations.
  • 18. FPGA RAM (XRAM) XRAM Capacity 16Kb Ports 2 Word size 32 bits Maximum Errors 512 Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica The XRAM is a dual-port static RAM, with word size of 32 bits. Since an error entry needs 25(or 27) bits, it fits into a XRAM word with a waste of 7 (or 5) bits per error entry. This way up to 512 errors can be stored. After that, the XRAM data needs to be downloaded to PC before saving any other entry.
  • 19. March Test Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica  Scan all memory address in both ascending and descending order  Each address is checked for faults  Several state-of-the-art march tests, each with a specific sequence of actions  Actions syntax: Ascending addressing Descending addressing Either ascending or descending addressing W0 , W1 : write 0 or 1 at the current address R0 , R1 : check for 0 or 1 at the current address
  • 20. MATS++ Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica  MATS++ (Modified AlgorithmTest Sequence) is the chosen march test implementation  It is capable of detecting Stuck-at Faults (SAF),Transition Faults (TF) and Address Decoder Faults (AF) Its definition is: W0 R0W1 R1W0 R0 Faults are detected in three possible phases, knowing which phase generated the error entry is fundamental to understand how the fault generated. MATS++ log files error entries store two extra bits to indicate the phase.
  • 21. Log File Visualization Log files are visualized displaying a scaled graphic representation of the memory. Here errors are drawn based on the Log File type:  For read algorithm log files, memory content is drawn on the display area.While highlighting eventual errors in green. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 22. Log File Visualization  For march test log files, only error entries locations are drawn. Each with a specific colour based on the MATS++ phase (or phases) which detected a fault in that location. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica No error Phase 1 Phase 2 Phase 3 Phase 1+2 Phase 1+3 Phase 2+3 Phase 1+2+3
  • 23. Index  Introduction  System Components  Algorithms  System Design  Experimental Results  Conclusions Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 24. System Design Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica SRAM XEM3001 PC PLL USB Jumper Spartan-3 FSM Clock mana ger XRAM manager
  • 25. System Design Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica SRAM XEM3001 PC PLL USB Spartan-3 FSM logic Clock manager XRAM manager Control Selector J GUI XRAM
  • 26. FPGA Programming Red modules have been designed and implemented through HDL(Verilog) code (except for GUI). HDL defines FPGA behaviour by altering its internal circuit configuration FPGA is not a microcontroller! FPGA manages both algorithm logic and communications. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 27. FSM Logic Contains the FSMs that implement every algorithm logic.Write and read algorithms are simple FSM that cycle through memory positions. Write FSM simply goes through every address of the specified region, while selecting pattern byte in the same state as the address increase. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 28. FSM Logic The read FSM behave similarly to write, but incorporating three states for XRAM buffering whenever an error is found. When the XRAM is full, the whole algorithm is stopped until a PC trigger is received. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 29. FSM Logic The FSM implementing MATS++ algorithm is made to reflect its definition.The first step (the writing of 0 in all memory cells) is carried out with a standard write before starting the march test. Each read operation actually incorporates the three-state XRAM buffering, while also providing the current phase to the error entry. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 30. XRAM Manager The XRAM manager module is used to download XRAM data to PC when full capacity has been reached. It is synchronized with the USB clock, since it has to communicate with PC. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica When the trigger is off, the current XRAM address is reset. When the XRAM is full, the PC software activates xram_trigger, thus starting the download procedure: at each clock cycle the current address is increased, and its content is sent through the pipe_data bus.
  • 31. Clock Manager and Control Selector The Clock Manager receives the PLL clock directly from the XEM3001, it then divides it before feeding it to the main FSM module. The Control Selector module manage the different control signals and provides them to the SRAM according to user’s inputs. It uses an undivided clock from the Clock Manager in order to set each cotnrol signal between each main FSM clock cycle. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 32. Index  Introduction  System Components  System Design  Experimental Results  Conclusions Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 33. Radiation Test Tests under radioactive exposure were made at the University of Palermo. Here the memory has been exposed to gamma rays from a Cobalt-60 source. The XEM3001 – and therefore the FPGA – was protected in a lead container, while also shielding cables where possible. PC was located in an adjacent protected room. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 34. Radiation Tests Radiation test applied repeated write-read standard algorithms, usually alternating AA-55 and 55-AA patterns. This allows for every memory cell to assume both logic values at least one time while also preserving the checkerboard pattern. Random behaviour have been noted when certain write-read operation were issued. However, since we could not directly observe every system components during tests execution, it was impossible to determine whether the cause was a testing sytem defect or gamma rays infiltration beneath the shield. Tests are still ongoing for RC7C4096MCX and RC7C4096MCT Multi-Chip Module devices. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 35. March Test MATS++ was executed on different RC7C4096MC devices, although – at the current moment – still a small number of tests have been performed to verify its results. MarchTests are still ongoing and are being developed for other kinds of SRAM (whose functioning have already been tested) in order to ascertain the correctness of MATS++ results. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 36. March Test March Test produced different error entries for different chips. However, as mentioned before, their significance is still to be proved with further development and implementations on other devices. Additional validation processes may include MATS++ algorithm variations or different components set-up and environment. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 37. Index  Introduction  System Components  System Design  Experimental Results  Conclusions Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 38. Conclusions We developed a functioning testing system through FPGA and software programming – while at the same time implementing their communications – which was sucessfully deployed on actual in-development SRAM. While all tests are still undergoing development, the proposed design performed different tasks as expected, even though its results will have to be further validated through additional testing and confrontations. Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica
  • 39. Future Developments  MATS++ implementation for different devices (like single RC7C1024 SRAM)  Digitally controlled Power Supply  Higher frequence tests  New MarchTest versions to detect other fault types Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica