REFERENCE Kintex 7 Rad Complete Report
REFERENCE Kintex 7 Rad Complete Report
1 Golden readback bitfile - a bitfile used for initial programming of the FPGA.
2 Mask file - it is a file that containts the information about bits which must be excluded from the
comparison, because these can correspond to user memory, such as block or distributed RAM, SRLs, or
DRP memories, or null memory locations [3].
6 Chapter 1. Measurement of CRAM cross-section of Kintex-7 325 FPGA
Figure 1.1: Procedure for measuring the number of errors in the configuration memory
of the FPGA.
Table 1.1: Number of SEUs induced to the configuration memory of FPGA by the proton
beam.
1.3. Calculation of the cross-section 7
Where:
E - total number of errors in each test
F - flux
T - time
Φ FT - fluence
Bits
Table 1.2: Number of BRAM and CRAM bits in Kintex-7 325T FPGA [3, 4].
The measured cross-section (using 30 MeV beam of protons) of the Kintex-7 325T equals
3.07 · 10−15 cm−2 bit−1 . This value is consistent with other tests carried out in [5–8].
Chapter 2
Testing firmware
generator, an array of logic test structures (called STEPs), a triplicated pattern checker
and a discriminator. The logic test structure is replicated 64 times, forming an array
which shifts the test vectors. The STEP consists of a hard-coded LUT transfer function
(combinational logic) and an output register. Combinational logic increments the input
data by 1. The pattern generator generates 6 bits1 test vectors (from 0 to 63). After 64
clock cycles after reset, the data at the output of the array of STEPs will be a copy of
the data generated by the pattern generator. The pattern checker compares the output
from the array of STEPs to the output from the pattern generator. If a discrepancy is
found, an error pulse is generated and an error counter is incremented. Also, when a
discrepancy is found, in voting in the hardened pattern generator, pattern checker, or
discriminator, a warning signal is asserted. During the test, the values stored in the
error counters are periodically read out via the USB interface and saved for analysis.
To test different redundancy schemes of the combinational logic and output register
in the STEP, it is possible to replicate either the combinational logic, the output register, or
both (Figure 2.3, 2.4, 2.5, 2.6). Also, the full array of STEPs (Figure 2.7) can be triplicated.
In the STEP, it takes approximately 126 CRAM bits to configure the combinational logic,
8 to configure the output register, and 48 to configure the 6-bit voter.
The testing firmware was compiled in five different variants. In the first one, nothing
was replicated. In the second variant, the output register of each STEP is triplicated and
a voter selects the correct output data. In that scheme, the number of configuration
bits required to configure the voter (≈ 48 bits) is approximately 2 times higher than the
number of bits necessary to configure the triplicated output register (≈ 24 bits). In the
third variant, the combinational logic is triplicated, and the correct data are selected by
voting before storing in the output register. In this case, the number of configuration bits
required to configure the triplicated combinational logic (≈ 378 bits) is approximately 8
times higher than the number to configure the voter (≈ 48 bits). In the forth variant,
both the combinational logic and output register were triplicated and voted. In the last
variant, each lane was triplicated and the correct data were selected by voting before
comparing by the pattern checker. In this scenario, the ratio between the number of bits
necessary to configure the triplicated array of STEPs (≈ 24,192 bits) to the number of
bits necessary to configure the voter (≈ 48 bits) is the highest.
1 A width of test pattern was set to 6 bits because the input of an LUT in Kintex-7 is 6 bits [9].
2.2. Testing firmware of FPGA fabric elements 11
Depending on the selected redundancy scheme, the designs with 256, 160, 128 or 64
lanes have been implemented to utilize as many FPGA resources as possible, and to
maximize the area susceptible to radiation. In Table 2.1, the utilization of resources by
different variants of the testing firmware is presented. In the variant of the firmware
where nothing was triplicated, utilization of the essential bits2 per lane is the lowest.
On the other hand, in the firmware where the full array of STEPs was triplicated, the
utilization of essential bits per lane is the highest. In section 2.2.3, a cross-section of the
lane in different variants is presented and a dependence between the amount of used
essential bits and performance is discussed.
2 Essential bits are utilized CRAM bits that are responsible for the correct configuration of the circuit
implemented in the FPGA device.
12 Chapter 2. Testing firmware
Figure 2.6: STEP block where both combinational logic and output register are triplicated.
Table 2.1: Utilisation of the resources, in the Kintex-7 325T, by the testing firmware with
different schemes of replication (values presented as percentages of the total amount of
resources in the device).
2.2.2. Estimation of number of Single Event Upsets during irradiation and fault
injection tests
Irradiation tests can be repeated in table-top tests by fault injection. Knowing the
cross-section of the FPGA σCRAM , a beam intensity (flux F), an exposure time T and
number of configuration bits of the CRAM memory NCB , a number of SEUs induced
during an irradiation test can be estimated (equation 2.1).
E σCRAM ΦNCB σCRAM FTNCB (2.1)
2.2. Testing firmware of FPGA fabric elements 13
Then, an irradiation test can be repeated in a table-top test by injecting the same number
of faults to the CRAM memory. The following is the calculation of the number of errors
to inject for different fluencies used during conducted tests:
— T 120 s, F 7.4 · 106 cm−2 s−1
Φ FT 0.888 · 109 cm−2
E σCRAM ΦNCB 3.07 · 10−15 · 0.888 · 109 · 75144416 ≈ 205
— T 120 s, F 107 cm−2 s−1
Φ FT 1.2 · 109 cm−2
E σCRAM ΦNCB 3.07 · 10−15 · 1.2 · 109 · 75144416 ≈ 277
— T 480 s, F 106 cm−2 s−1
Φ FT 0.48 · 109 cm−2
E σCRAM ΦNCB 3.07 · 10−15 · 4.8 · 108 · 75144416 ≈ 111
14 Chapter 2. Testing firmware
2.2.3. Results
In this section results from beam and table-top fault injection tests are presented and
discussed.
Faulty lanes
Fluence Lanes Mean Std. dev. Lane σ Error δσ
−1
−2 cm2 lane cm2 lane−1
cm
Fault injection
Nothing triplicated 0.89 · 109 256 12.08 3.75 5.31 · 10−11 1.72 · 10−12
Registers triplicated 0.89 · 109 160 10.60 2.93 7.46 · 10−11 2.12 · 10−12
Logic triplicated 0.89 · 109 128 3.38 1.61 2.97 · 10−11 1.47 · 10−12
Logic and registers triplicated 1.2 · 109 64 1.73 1.21 2.26 · 10−11 1.33 · 10−12
Full lane triplication with voter 1.2 · 109 128 0.56 0.87 0.37 · 10−11 0.19 · 10−12
Beam test measurements
Nothing triplicated 0.89 · 109 256 12.71 3.76 5.59 · 10−11 2.10 · 10−12
Registers triplicated 0.89 · 109 160 11.74 3.13 8.26 · 10−11 3.03 · 10−12
Logic triplicated 0.89 · 109 128 2.65 1.84 2.33 · 10−11 2.27 · 10−12
Logic and registers triplicated 1.2 · 109 64 2.32 1.04 3.02 · 10−11 2.90 · 10−12
Full lane triplication with voter 1.2 · 109 128 1.00 0.97 0.65 · 10−11 1.25 · 10−12
Table 2.2: Comparison of the lane cross-sections obtained from the beam and fault
injection tests (a CRAM scrubber was not employed).
2.2. Testing firmware of FPGA fabric elements 15
Figure 2.8: Visualisation of operation of the testing firmware with fully triplicated lanes
(T 120 s, F 107 cm−2 s−1 , a CRAM scrubber was not employed).
16 Chapter 2. Testing firmware
3 CRC error - this is a global CRC error calculated from all configuration frames of the FPGA.
2.2. Testing firmware of FPGA fabric elements 17
Table 2.3: Data obtained during beam tests with active scrubber employed (run dura-
tion 480 s).
18 Chapter 2. Testing firmware
Table 2.4: Data obtained during beam tests with active scrubber employed (run dura-
tion 480 s) (cont.).
2.2. Testing firmware of FPGA fabric elements 19
Figure 2.9: Visualisation of operation of the testing firmware utilizing basic STEP test
structure with a custom active scrubber employed (T 480 s, F 106 cm−2 s−1 ).
20 Chapter 2. Testing firmware
Figure 2.10: Visualisation of operation of the testing firmware utilizing basic STEP test
structure with a custom active scrubber employed. Xilinx SEM IP reports a CRC error
and suspends its operation (T 480 s, F 106 cm−2 s−1 ).
2.2. Testing firmware of FPGA fabric elements 21
Affected
Firmware Lanes Flux Time Fluence
lanes
Hz cm−2 cm−2
(s)
Nothing triplicated 256
TEST_0, run_0 1 · 106 480 0.48 · 109 10
TEST_1, run_0 1 · 106 480 0.48 · 109 12
TEST_1, run_1 1 · 106 480 0.48 · 109 10
TEST_1, run_2 1 · 106 480 0.48 · 109 11
TEST_2, run_0 1.02 · 106 480 0.49 · 109 19
TEST_2, run_1 1.02 · 106 480 0.49 · 109 14
TEST_2, run_2 1.02 · 106 480 0.49 · 109 14
TEST_2, run_3 1.02 · 106 480 0.49 · 109 13
TEST_2, run_4 1.02 · 106 480 0.49 · 109 11
TEST_3, run_0 1.05 · 106 480 0.5 · 109 17
Full lane triplication 128
TEST_0, run_0 1.15 · 106 480 0.55 · 109 0
TEST_0, run_1 1.15 · 106 480 0.55 · 109 0
TEST_0, run_2 1.15 · 106 480 0.55 · 109 0
TEST_0, run_3 1.15 · 106 480 0.55 · 109 0
TEST_1, run_0 9.5 · 105 480 0.46 · 109 0
TEST_1, run_1 9.5 · 105 480 0.46 · 109 0
TEST_1, run_2 9.5 · 105 480 0.46 · 109 0
TEST_1, run_3 9.5 · 105 480 0.46 · 109 0
TEST_1, run_4 9.5 · 105 480 0.46 · 109 0
TEST_2, run_0 1 · 107 240 2.4 · 109 0
TEST_2, run_1 1 · 107 240 2.4 · 109 0
TEST_2, run_2 1 · 107 240 2.4 · 109 0
TEST_3, run_0 1 · 107 240 2.4 · 109 0
TEST_3, run_1 1 · 107 240 2.4 · 109 0
Table 2.5: Data obtained during beam tests with JCM scrubber employed.
22 Chapter 2. Testing firmware
Figure 2.11: Visualisation of operation of the testing firmware with a full lane triplication
with the JCM scrubber employed (T 480 s, F 106 cm−2 s−1 ).
2.2. Testing firmware of FPGA fabric elements 23
Figure 2.12: Visualisation of operation of the testing firmware with a full lane triplication
with the JCM scrubber employed (T 480 s, F 107 cm−2 s−1 ).
24 Chapter 2. Testing firmware
FIFO_192 firmware
In Figure 2.13 achitecture of the testing firmware, with 192 test lanes, is presented.
Each lane utilises a single FIFO consisting of two 36 kbit BRAM blocks. Usage of
resources is shown in Table 2.6. SBITERR and DBITERR signals are connected to a
single OR gate which output is read out by a single error counter. During beam or fault
injection tests the following errors are expected:
— the single-bit BRAM error repaired by the ECC mechanism (I) - only while testing in
radiation environment,
— the multi-bit BRAM error not repaired by the ECC mechanism (II) - only while
testing in radiation environment,
— the error in the readout counter of the ECC mechanism (III),
— the error in the output FIFO routing (IV),
— the error in the input FIFO routing (V),
— the error in the comparator counter (VI).
FIFO_4 firmware
In Figure 2.14 architecture of the testing firmware, with 4 lanes, is presented. Each
lane utilises a chain of 48 FIFOs, each consisting of two 36 kbit BRAM blocks. Usage
of resources is shown in Table 2.6. SBITERR and DBITERR signals of each FIFO are
2.3. FIFO testing firmware 25
connected to a error counter. Also, the warning signal signalising the error while voting
in the data generator (Smart FIFO writer) is monitored.
Table 2.6: Utilisation of the resources, in the Kintex-7 325T, by the FIFO testing firmware
(values presented as percentages of the total amount of resources in the device).
2.3.2. Results
Built-in block memory and the Hamming Error Injection and Correction Checking
mechanism have been tested without a CRAM scrubber, with the custom active scrubber,
and the JCM scrubber. Tests were carried out with 30 MeV proton beam at the isochronous
cyclotron located at the Nuclear Physics Institute of the Academy of Sciences of the
Czech Republic in Řež near Prague.
The Kintex-7 BRAM cross-section was measured using formula 2.2.
N
Í N
Í
Ei Ei
i1 i1 cm 2
σBRAM 5.07 · 10−15 (2.2)
N
Í N
Í bit
NBB Φi NBB F i Ti
i1 i1
Where:
E - total number of errors in each test
F - flux
T - time
26 Chapter 2. Testing firmware
Φ FT - fluence
NBB 2 · 36 · 1024 · 48 · 4 14155776 - number of used BRAM bits
FIFO_192 firmware
In Table 2.7 data obtained during beam test for the FIFO_192 testing firmware are
presented. A CRAM scrubber was not employed. Each run was 120 s and the flux was
set to 107 Hz cm−2 .
In Table 2.8 data obtained during beam test of the FIFO_192 testing firmware with
active scrubber employed are presented. Each run was 480 s and the flux was set to
106 Hz cm−2 .
In Table 2.9 data obtained during beam test of the FIFO_192 testing firmware with
JCM scrubber employed are presented. Tests were carried out with the following
parameters 480 s and 106 Hz cm−2 or 240 s and 107 Hz cm−2 .
FIFO_4 firmware
In Table 2.10 data obtained during beam test for the FIFO_4 testing firmware are
presented. A CRAM scrubber was not employed. Each run was 120 s and the flux was
set to 107 Hz cm−2 .
In Table 2.11 data obtained during beam test of the FIFO_4 testing firmware with
active scrubber employed are presented. Each run was 480 s and the flux was set to
106 Hz cm−2 .
In Table 2.12 data obtained during beam test of the FIFO_4 testing firmware with JCM
scrubber employed are presented. Tests were carried out with the following parameters
480 s and 106 Hz cm−2 or 240 s and 107 Hz cm−2 .
2.3. FIFO testing firmware 27
Errors
Test Flux Time Ia IIb IIIc IVd Ve
Hz cm−2
(s)
TEST_0, run_0 1 · 107 120 90 0 0 5 6
TEST_3, run_2 1 · 107 120 85 0 1 12 7
TEST_5, run_0 1 · 107 120 94 0 0 6 14
TEST_7, run_0 1 · 107 120 87 0 0 9 7
TEST_7, run_1 1 · 107 120 82 0 0 7 10
TEST_8, run_0 1 · 107 120 85 0 1 1 10
TEST_8, run_1 1 · 107 120 80 0 0 6 15
TEST_9, run_1 1 · 107 120 96 0 0 9 1
TEST_10, run_1 1 · 107 120 78 0 1 6 10
TEST_11, run_0 1 · 107 120 89 0 0 5 9
TEST_13, run_2 1 · 107 120 75 0 1 4 8
TEST_13, run_4 1 · 107 120 77 0 0 5 6
TEST_14, run_4 1 · 107 120 87 0 0 9 7
a The single-bit BRAM error repaired by the ECC mechanism
b The multi-bit BRAM error not repaired by the ECC mechanism
c The error in the readout counter of the ECC mechanism
d The error in the FIFO routing
e The error in the comparator counter
Table 2.7: Data obtained during beam test for the FIFO_192 testing firmware (a CRAM
scrubber was not employed).
28 Chapter 2. Testing firmware
Table 2.8: Data obtained during beam test of the FIFO_192 testing firmware with active
scrubber employed.
2.3. FIFO testing firmware 29
Errors
Test Flux Time Ia IIb IIIc IVd Ve
Hz cm−2
(s)
TEST_3, run_0 1 · 106 480 41 0 0 6 5
TEST_3, run_1 1 · 106 480 40 0 1 4 5
TEST_3, run_2 1 · 106 480 45 0 0 3 5
TEST_3, run_3 1 · 106 480 33 0 0 2 4
TEST_3, run_4 1 · 106 480 40 0 0 4 4
TEST_3, run_5 1 · 106 480 37 0 0 1 2
TEST_3, run_6 1 · 106 480 38 0 0 2 1
TEST_3, run_7 1 · 106 480 36 0 0 3 5
TEST_3, run_8 1 · 106 480 37 0 0 1 4
TEST_3, run_9 1 · 106 480 35 0 0 3 1
TEST_4, run_1 1 · 107 240 169 0 2 8 9
TEST_4, run_2 1 · 107 240 161 0 1 9 10
a The single-bit BRAM error repaired by the ECC mechanism
b The multi-bit BRAM error not repaired by the ECC mechanism
c The error in the readout counter of the ECC mechanism
d The error in the FIFO routing
e The error in the comparator counter
Table 2.9: Data obtained during beam test of the FIFO_192 testing firmware with JCM
scrubber employed.
30 Chapter 2. Testing firmware
Errors
Test Flux Time Ia IIb
Hz cm−2
(s)
TEST_2, run_0 1 · 107 120 91 0
TEST_2, run_1 1 · 107 120 72 0
TEST_2, run_2 1 · 107 120 77 0
TEST_2, run_3 1 · 107 120 80 0
TEST_2, run_4 1 · 107 120 82 0
TEST_2, run_8 1 · 107 120 71 0
TEST_2, run_9 1 · 107 120 68 0
TEST_2, run_10 1 · 107 120 83 0
TEST_2, run_13 1 · 107 120 65 0
TEST_2, run_14 1 · 107 120 43 0
TEST_2, run_16 1 · 107 120 79 0
TEST_2, run_17 1 · 107 120 100 0
TEST_2, run_19 1 · 107 120 96 0
TEST_2, run_20 1 · 107 120 96 0
TEST_2, run_21 1 · 107 120 88 0
TEST_2, run_22 1 · 107 120 85 0
TEST_2, run_23 1 · 107 120 74 0
TEST_2, run_24 1 · 107 120 68 0
a The single-bit BRAM error repaired by the ECC mecha-
nism
b The multi-bit BRAM error not repaired by the ECC mech-
anism
Table 2.10: Data obtained during beam test for the FIFO chain testing firmware without
CRAM scrubber employed.
2.3. FIFO testing firmware 31
Table 2.11: Data obtained during beam test of the FIFO chain testing firmware with
active scrubber employed.
32 Chapter 2. Testing firmware
Errors
Test Flux Time Ia IIb
Hz cm−2
(s)
TEST_1, run_0 1 · 106 480 32 0
TEST_1, run_1 1 · 106 480 45 0
TEST_1, run_2 1 · 106 480 27 0
TEST_1, run_3 1 · 106 480 35 0
TEST_1, run_4 1 · 106 480 29 0
TEST_1, run_5 1 · 106 480 33 0
TEST_1, run_6 1 · 106 480 35 0
TEST_1, run_7 1 · 106 480 27 0
TEST_1, run_8 1 · 106 480 31 0
TEST_1, run_9 1 · 106 480 42 0
TEST_2, run_0 1 · 107 120 85 0
TEST_2, run_0 1 · 107 120 75 0
TEST_2, run_0 1 · 107 120 88 0
TEST_3, run_1 1 · 107 120 116 0
a The single-bit BRAM error repaired by the ECC mecha-
nism
b The multi-bit BRAM error not repaired by the ECC
mechanism
Table 2.12: Data obtained during beam test for the FIFO chain testing firmware with
JCM scubber employed.
Chapter 3
CRAM scrubbers
5 BATCHFILE=temp_load.impact
6
7 if [ ${#} != 1 ]
8 then
9 echo ’Specify the bitfile!’
10 exit 1
11 fi
12
13 BITFILE=${1}
14
15 rm -f ${BATCHFILE}
16
Symposium on Field Programmable Gate Arrays, FPGA ’10, pages 249–258, New York, NY,
USA, 2010. ACM.