Tài liệu Đề tài A soft error tolerant sram design in 130nm cmos technology - Lê Thị Linh An: VIETNAM NATIONAL UNIVERSITY – HO CHI MINH CITY
UNIVERSITY OF SCIENCE
LÊ THỊ LINH AN
A SOFT ERROR TOLERANT SRAM DESIGN
IN 130NM CMOS TECHNOLOGY
Specialization: Electronic Engineering – Microelectronics Major
Code: 60 52 70
MASTER DEGREE THESIS
ELECTRONICS ENGINEERING – MICROELECTRONICS
SUPERVISOR
Dr. BÙI TRỌNG TÚ
Ho Chi Minh City, 2010
ACKNOWLEDGEMENTS
It is my pleasure to thank all the people who made this thesis possible.
First of all, I would like to sincerely express my appreciation to my advisor, Dr.
Bui Trong Tu, for his tremendous support, valuable guidance and constant
encouragement during my studies. His technical advice made my master’s studies
a meaningful learning experience.
I am also grateful to Prof. Dang Luong Mo, Prof. Nguyen Huu Phuong, and Dr.
Huynh Huu Thuan, who are the managers of this Microelectronics Master
program. This is really an interesting course with enthusiastic and devoted
professors, who are the experts in the I...
89 trang |
Chia sẻ: hunglv | Lượt xem: 1102 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài A soft error tolerant sram design in 130nm cmos technology - Lê Thị Linh An, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
VIETNAM NATIONAL UNIVERSITY – HO CHI MINH CITY
UNIVERSITY OF SCIENCE
LÊ THỊ LINH AN
A SOFT ERROR TOLERANT SRAM DESIGN
IN 130NM CMOS TECHNOLOGY
Specialization: Electronic Engineering – Microelectronics Major
Code: 60 52 70
MASTER DEGREE THESIS
ELECTRONICS ENGINEERING – MICROELECTRONICS
SUPERVISOR
Dr. BÙI TRỌNG TÚ
Ho Chi Minh City, 2010
ACKNOWLEDGEMENTS
It is my pleasure to thank all the people who made this thesis possible.
First of all, I would like to sincerely express my appreciation to my advisor, Dr.
Bui Trong Tu, for his tremendous support, valuable guidance and constant
encouragement during my studies. His technical advice made my master’s studies
a meaningful learning experience.
I am also grateful to Prof. Dang Luong Mo, Prof. Nguyen Huu Phuong, and Dr.
Huynh Huu Thuan, who are the managers of this Microelectronics Master
program. This is really an interesting course with enthusiastic and devoted
professors, who are the experts in the IC industry.
I also wish to thank my colleagues in TCAM team for all helpful discussion and
valuable advice during my study. Appreciation is expressed for Silicon Design
Solutions Company who have supported me about financial and let me join in this
Master course during my work.
Finally, my special thanks to my family who have always been with me
throughout the difficulties and challenges of my master study.
Ho Chi Minh City, November 2010
Le Thi
LinhAn
ABSTRACT
Soft error is a great concern for microelectronics circuits today. With the advanced
development in CMOS technologies, VLSI circuits are becoming more sensitive to
external noise sources, especially radiation particle strikes, which are the cause of
soft error. Soft errors are random and do not cause the permanent failure.
However, it causes the corruption of stored information, which could turn to the
failure in functionality of the circuits.
Meanwhile, the demand for a higher reliability of electronics applications is
always a non-stop requirement. There are a lot of critical applications that need the
extreme exactly in circuit functionality, such as the circuits used in space or
biomedical equipment, as well as the military electronics and so on.
Generally, soft errors in memories attracted more attention than soft errors in logic
circuit. In addition, memories play an important part in modern system. Because of
the high integration of storage cells, a large memory is more sensitive to particle
strikes than logic. Due to that motivation, this thesis focuses to study about soft
errors in memories.
The thesis goes through the background knowledge of soft errors and its
mitigation techniques. Then, a SRAM design with additional soft error tolerant
feature will be presented. The SRAM is designed in 130nm CMOS technology,
using circuit hardening and error correcting code techniques to mitigate the soft
error effect. The soft error tolerant level is verified by some simulations. Not only
focus on the soft error tolerant circuits, a whole SRAM architecture will be shown
in detail, from circuit to physical implementation. The verification and simulation
results are also included.
TABLE OF CONTENTS
Acknowledgement
Abstract
Table of contents
Abbreviations
List of tables
List of figures
CHAPTER 1 - INTRODUCTION .................................................................................... 1
1.1. Problem and motivation ............................................................................................. 1
1.2. Contribution of the thesis ........................................................................................... 2
1.3. Thesis organization .................................................................................................... 2
CHAPTER 2 - BACKGROUND ....................................................................................... 4
2.1. Soft errors in semiconductor device ........................................................................... 4
2.1.1. Radiation sources ................................................................................................. 4
2.2. Soft errors occurrence mechanism ............................................................................. 5
2.3. Soft errors mitigation techniques ............................................................................... 6
2.3.1. Device level techniques ....................................................................................... 6
2.3.2. Circuit level techniques ....................................................................................... 7
2.3.3. Block level techniques ......................................................................................... 7
CHAPTER 3 – SOFT ERROR TOLERANT SRAM DESIGN ................................... 10
3.1. SRAM specification ................................................................................................. 10
3.1.1. General information ........................................................................................... 10
3.1.2. Floorplan ............................................................................................................ 11
3.1.4. Operation brief description ................................................................................ 12
3.2. SRAM detail design ................................................................................................. 14
3.2.1. SRAM cell architecture ..................................................................................... 14
3.2.2. Replica path for Read operation ........................................................................ 15
3.2.3. Internal clock generator ..................................................................................... 17
3.2.4. Write circuit ....................................................................................................... 19
3.2.5. Decoder .............................................................................................................. 19
3.2.6. Input/output latches .......................................................................................... 21
3.3. Error detecting and correcting (EDC) block ............................................................ 22
3.3.1. Hamming code algorithm .................................................................................. 23
3.3.2. EDC block implementation ............................................................................... 24
3.3.3. EDC detail architecture ...................................................................................... 26
CHAPTER 4 – DESIGN SIMULATION AND VERIFICATION .............................. 37
4.1. SRAM cell simulation .............................................................................................. 37
4.1.1. SRAM cell simulation to find device size ......................................................... 37
4.1.2. SRAM cell characteristic summary ................................................................... 42
4.1.3. Static noise margin comparison ......................................................................... 43
4.1.4. SRAM cell capacitance ...................................................................................... 43
4.2. Soft error tolerant simulation ................................................................................... 44
4.2.1. Verification methodology .................................................................................. 44
4.2.2. Critical charge simulation .................................................................................. 45
4.2.3. Simulation results .............................................................................................. 46
4.2.4. Conclusion ......................................................................................................... 49
4.3. Post-layout simulation .............................................................................................. 50
4.3.1. Simulation setup ................................................................................................ 50
4.3.2. Cycle time definition and simulation result ....................................................... 52
4.3.3. Access time ........................................................................................................ 55
4.3.4. Setup time .......................................................................................................... 56
4.3.5. Timing delay of some critical paths................................................................... 57
4.3.6. Simulation results summary .............................................................................. 61
4.4. SRAM and EDC functional verification .................................................................. 61
4.4.3. Simulation setup ................................................................................................ 65
4.4.4. Functional verification result ............................................................................. 67
4.5. Physical verification ................................................................................................. 70
CHAPTER 5 – CONCLUSION AND FUTURE WORK ............................................. 75
ABBREVIATIONS
VLSI Very large scale integration
CMOS Complementary Metal-Oxide Semiconductor
SEU Single Event Upset
DRC Design Rule Check
LVS Layout versus Schematic
SRAM Static Random Access Memory
ECC Error Correcting Code
EDC Error Detecting and Correcting
SNM Static noise margin
LPE Layout Parasitic Extraction
LIST OF TABLES
Table 3.1: Pin description ................................................................................................... 12
Table 3.2: Hamming code for 22 bits ................................................................................. 24
Table 4.1: Read current ...................................................................................................... 38
Table 4.2: Read leakage current ......................................................................................... 38
Table 4.3: Effect of leakage on read current ...................................................................... 38
Table 4.4: Write current ..................................................................................................... 40
Table 4.5: Static noise margin ............................................................................................ 41
Table 4.6: SRAM cell characteristic summary .................................................................. 43
Table 4.7: SNM comparison ............................................................................................... 43
Table 4. 8: SRAM cell capacitance .................................................................................... 44
Table 4.9: Critical charge result of hardened SRAM cell .................................................. 46
Table 4.10: Critical charge result for normal SRAM cell .................................................. 48
Table 4.11: Performance result (SS_125_1.35) ................................................................. 61
Table 4.12: Timing delay between nodes ........................................................................... 61
Table 4.13: Design fault model .......................................................................................... 62
LIST OF FIGURES
Figure 2.1: Redundancy ........................................................................................................ 8
Figure 2.2: Concurrent error detection ................................................................................. 8
Figure 3.1: SRAM floorplan ............................................................................................... 11
Figure 3.2: Write operation ................................................................................................ 13
Figure 3.3: Read operation ................................................................................................. 13
Figure 3.4: SRAM cell architecture .................................................................................... 15
Figure 3.5: Timing scheme for read operation ................................................................... 16
Figure 3.6: Reference IO cell and read circuit ................................................................... 17
Figure 3.7: Read clock generator circuit ............................................................................ 18
Figure 3.8: Write clock generator ....................................................................................... 19
Figure 3.9: Write circuit and sequential waveform ............................................................ 19
Figure 3.10: Row decoder block diagram .......................................................................... 20
Figure 3.11: Xdec circuit .................................................................................................... 21
Figure 3.12: Hardened latch architecture ........................................................................... 22
Figure 3.13: EDC block diagram ........................................................................................ 25
Figure 3.14: Write encoder schematic ................................................................................ 27
Figure 3.15: Parity comparison schematic ......................................................................... 28
Figure 3.16: Syndrome decoder schematic ........................................................................ 29
Figure 3.17: Bit flipper block ............................................................................................. 30
Figure 3.18: Input select ..................................................................................................... 31
Figure 3.19: Output select and output latch........................................................................ 32
Figure 3.20: Top level layout view ..................................................................................... 33
Figure 3.21: SRAM cell layout with only device layers shown ......................................... 34
Figure 3.23: Xdec cell layout ............................................................................................. 34
Figure 3.22: SRAM cell layout .......................................................................................... 34
Figure 3.24: Xdec array 1x256 ........................................................................................... 35
Figure 3.25: Control block .............................................................................................. 35
Figure 3.26: IO array 1x22 ................................................................................................. 36
Figure 4.1: Read current ..................................................................................................... 37
Figure 4.2: Write current .................................................................................................... 39
Figure 4.3: Inject a current source to an off NMOS drain ................................................. 45
Figure 4.4: The injected SEU current for hardened SRAM cell ........................................ 47
Figure 4.5: IBL waveform of hardened SRAM cell ........................................................... 47
Figure 4.6: The exchange state between IBL and IBLX .................................................... 47
Figure 4.7: The injected SEU current for normal SRAM cell............................................ 48
Figure 4.8: IBL waveform of normal SRAM cell .............................................................. 48
Figure 4.9: The exchange state between IBL and IBLX .................................................... 49
Figure 4.10: A part of LPE netlist containing capacitance value ....................................... 50
Figure 4.11: A part of LPE netlist containing resistor value .............................................. 51
Figure 4.12: A part of input waveform for performance simulation .................................. 51
Figure 4.13: Hspice option ................................................................................................. 52
Figure 4.15: Delay from clk rise to resetx rise ................................................................... 53
Figure 4.14: Cycle time must cover the internal clock ....................................................... 53
Figure 4.17: Delay from clk rise to dmrbl rise ................................................................... 54
Figure 4.16: Cycle time must make sure all RBL be precharged fully .............................. 54
Figure 4.18: Cycle time must cover PWH of input latch plus for max setup time ............ 55
Figure 4.19: PWH of input latch ........................................................................................ 55
Figure 4.20: Access time definition.................................................................................... 56
Figure 4.21:Access time ..................................................................................................... 56
Figure 4.22: Address input path delay ................................................................................ 57
Figure 4.23: Clock path delay ............................................................................................ 57
Figure 4.24: Delay from CLKA to intckx fall .................................................................... 58
Figure 4.25: Delay from intclk fall to rhcpx fall ................................................................ 58
Figure 4.26: Delay from rhcpx fall to latch rise ................................................................. 58
Figure 4. 27: Delay from rhcpx fall to echo rise ................................................................ 59
Figure 4.28: Delay from echo rise to resetx fall ................................................................. 59
Figure 4.29: Delay from resetx fall to intclk rise ............................................................... 59
Figure 4.30: delay from intclk rise to rhcpx rise ................................................................ 60
Figure 4.31: Delay from rhcpx rise to latch fall ................................................................. 60
Figure 4.32: Delay from intclk rise to resetx rise ............................................................... 60
Figure 4.33: Netlist of top level .......................................................................................... 66
Figure 4.34: A part of full test vector ................................................................................. 66
Figure 4.35: Hsim option .................................................................................................... 67
Figure 4.37: Waveform of SRAM functional simulation ................................................... 68
Figure 4.36: Hsim log file .................................................................................................. 68
Figure 4.38: Waveform of EDC functional simulation ...................................................... 69
Figure 4.39: LVS Calibre report for hierachical checking ................................................. 71
Figure 4.40: Detail LVS report for top level ...................................................................... 72
Figure 4.41: DRC report ..................................................................................................... 74
CHAPTER
1
INTRODUCTION
P a g e | 1
CHAPTER 1
INTRODUCTION
1.1. Problem and motivation
Reliability is the key challenge facing the modern VLSI system. The advanced
development of CMOS technologies has resulted in the lower supply voltages,
higher clock frequencies, and the increasing of transistor integration densities.
Consequently, VLSI circuits are becoming more vulnerable to various noise
sources. It can be listed here some well-known noise effects such as: the power
and ground noise, capacitive coupling noise, radiation particle strikes …
With the rapid scaling of technology, integrated circuits (ICs) are turned to be very
sensitive to the radiation particles strikes. When a radiation particle strike at a
sensitive region in a semiconductor device, the charges generated could corrupt
the stored information in the memory element, resulting in an erroneous data at the
output, or so called soft error. Soft errors are incidental and do not destroy the
device. They just cause the temporary functional failure and the system still works
well after that. The radiation particle striking is a random natural phenomenon;
therefore they cannot be predicted or controlled by the designers.
The charge particles could be the alpha particles, neutron induced 10B fission and
high energy cosmic ray neutrons. The source of charge particles can be from the
radioactive material or cosmic rays. In addition, it could also be the result of high
energy particle interaction with semiconductor itself.
Electronics applications nowadays always require a higher reliability level. Many
critical applications such as biomedical circuits, as well as space and military
electronics devices demand extreme high reliable circuit functionality. That means
soft errors are becoming more and more unacceptable, even in the commercial
CHAPTER
1
INTRODUCTION
P a g e | 2
applications [1]. Therefore, soft error elimination is a major consideration of all
VLSI circuits today.
Memories always have a high density integration of storage elements. Hence, they
are more sensitive to soft errors than in logic circuit. The soft errors in memories
(SRAM and DRAM) were widespread studied from the end of the twentieth
century [2]. However, it is still problematic up to now. Due to that motivation, this
thesis focuses to study the soft errors on memories (specific in SRAM) and applies
some mitigation techniques to design a SRAM with soft error tolerant feature.
1.2. Contribution of the thesis
The thesis presents the detail design of a synchronous two-port SRAM in 130nm
CMOS technology, with additional soft error tolerant feature. The design was
applied two soft error mitigation techniques; those are circuit hardening and error
correcting code (ECC) techniques.
For the first technique, only some special parts of the design are selected to be
hardened. They are the memory cell, the address input latches, data input and
output latches, keeper circuits… These are parts that most easily suffer from soft
error of a memory because they are storage elements.
The second technique helps to recover the design if unfortunately the soft error
occurred. It is a built-in error detecting and correcting (EDC) block for the SRAM.
This block was applied the ECC techniques, used the Hamming code to detect if
there is a single bit or double bit error in a memory array. And it will also function
as a correcting circuit if there is a single bit upset.
1.3. Thesis organization
The rest of thesis is organized as follows:
Chapter 2 introduces the background knowledge of soft error, its mechanism as
well as the mitigation techniques.
CHAPTER
1
INTRODUCTION
P a g e | 3
Chapter 3 describes detail about the SRAM design, including the SRAM
specification, SRAM architecture, specific design for soft error tolerant feature
and the physical implementation.
Chapter 4 focuses on the verification methodologies and the simulations result.
These simulations include the soft error tolerant level simulation, memory cell
characteristic, post layout simulation, functional verification and physical
verification.
Finally, chapter 5 shows the conclusion and some discussions to improve this
SRAM design.
CHAPTER
2
BACKGROUND
P a g e | 4
CHAPTER 2
BACKGROUND
2.1. Soft errors in semiconductor device
Soft errors, also called Single Event Upset (SEU), are the errors in
microelectronics circuit caused when the radiation particles strike at sensitive
regions of the silicon devices. Soft errors are incident and no breakage of the
device occurs [3]. They only flip the stored state of a memory element and will
generate an erroneous value at output. Soft errors cause no permanent faults; the
system still work well after suffering from an SEU. Therefore, they are named as
soft error. This background section will help to get an overview of radiation
sources which are the cause of soft errors and the mechanism of soft errors
occurrence in semiconductor devices.
2.1.1. Radiation sources
Radiation is kinetic energy in the form of high speed particles and
electromagnetic waves [4]. Typically, three main sources of radiation causing
soft errors in semiconductor device could be summarized as following:
· Alpha particles: are the nuclei of helium atoms consisting of 2 protons and
2 neutrons. Alpha particles are generated from the radioactive decay
process and when they collide with other atoms. Because of alpha particles
cannot travel a long path in material, atmosphere therefore is not the main
source of alpha particles, but an integrated circuit itself. Packaging and
soldering contain traces of radioactive isotopes, which lead to release the
alpha particles as well as other particles such as gamma and beta particles,
as they decay to lower state. Alpha particles contain the kinetic energy in
the range of 4 to 9 MeV [5]
CHAPTER
2
BACKGROUND
P a g e | 5
· High energy neutrons: when the cosmic radiation reacts with the
atmospheres, it will cause the generation of secondary particles, includes
protons, electrons, neutron … All of them can cause soft errors; however,
charge generation property of neutron for the same energy is more than
proton or electron. Neutron does not contain charge; therefore, the
ionization in material cannot be caused by itself. However, when a neutron
with energy above 1 MeV interacts with the silicon atoms, it will cause a
nuclear reaction which generates charged particles. These charged particles
cause ionization, lead to the soft error in the device.
· Thermal neutrons: thermal neutrons are low energy neutrons with a
kinetic energy of about 0.025 eV. The interaction of low energy cosmic
neutrons and doping boron (isotope 10B and 11B) in semiconductor material
generates the secondary radiation particles (the lithium atom and alpha
particle). Both these particles can cause soft errors in the device
2.2. Soft errors occurrence mechanism
In semiconductor device, there are some sensitive nodes which are easily to suffer
from SEU. Those are the drain of the off NMOS and off PMOS transistors.
Consider an off NMOS transistor, its source, gate and substrate terminals are
connected to VSS. The drain is connected to VDD. The drain and substrate of this
OFF transistor form a reverse-biased junction. Therefore, a strong electric field
from drain to substrate exists in the depletion region of this junction. Because
radiation particles generate the free electron hole pairs, this electric field will cause
the collection of electron at drain and of hole at the substrate. That’s why these
reverse-biased junctions are the most sensitive nodes to the particle strikes.
When the particles strike at these sensitive nodes, due to the electric field of the
reversed-biased junction, the generated charges are collected at the opposite
voltage terminals (drain and substrate) of the reverse-biased junction. Electrons
move towards the positive voltage while holes move toward the negative voltage.
CHAPTER
2
BACKGROUND
P a g e | 6
This event will cause a current pulse, flow from the n type diffusion to the p type
diffusion in a very short duration. When the charge collection exceeds the critical
charge, the storage value will be changed. Critical charge (Qcrit) is the minimum
charge required to flip the cell. The Qcrit depends on the characteristic of the
circuit, especially the supply voltage and the nodal capacitance of the drain [6].
When a particle strike discharges the charge stored at the drain of the OFF-NMOS
transistor, it will flip from 1 to 0. Similarly for a 0 to 1 flip when it strikes the
drain of the OFF-PMOS transistor.
As technology scales down, to adapt the higher requirement for constraining the
power and making the circuit transient faster, the supply voltage and nodal
capacitance is decreasing swiftly. That makes the charge stored at the sensitive
nodes of the device is reduced because Qnode = Cnode×Vdd, resulted in the more
and more vulnerable to soft errors of SRAM.
2.3. Soft errors mitigation techniques
In general, the soft error mitigation techniques could be classified into three
categories: device level techniques, circuit level techniques and block level
techniques
2.3.1. Device level techniques
At this level, some methods were given out to edit the traditional fabrication
process to make the device resistant to soft error. The manufacturers and
designer could choose the appropriate material, package, as well as the better
device geometries. For example, soft errors can be caused by alpha particles
which are emitted by the materials or compounds used in packaging.
Therefore, choosing the appropriate material which has the less probability of
alpha particles could minimize the soft error rate. Or to reduce the soft error
induced by the interaction of low energy cosmic neutrons and doping boron
CHAPTER
2
BACKGROUND
P a g e | 7
10B, BPSG (boron phosphor silicate glass) is replaced by other insulators that
do not contain boron.
2.3.2. Circuit level techniques
The technique that is mostly used at this level to make the circuit resistant to
SEU is radiation hardening technique [7]. With this technique, some special
parts of the design are chosen to be hardened. Basic circuits element such as
Inverter, Nand, Nor, flip-flop or latches are made SEU resistant by adding
extra transistor than normal. Normally, this technique is often applied to the
memory cell, keeper circuits, latches or flip-flops which are data storage
element, thus are easily suffer from soft errors. It will help to increase the
critical charge at sensitive nodes, making those nodes less susceptible to the
SEU. This technique is widely used because the designer can predict which
nodes are sensitive to protect them from the SEU. However, this technique
causes the overhead in area and power consumption [8].
2.3.3. Block level techniques
Different with two approaches above, the block level techniques are used to
detect the error and recover the design after being suffered from SEU, while
the two approaches above mainly protect and enhance the design. There are
two main mitigation techniques at this level:
2.3.3.1. Redundancy
The redundancy techniques often clone to create the redundant circuit.
However, this result the area and performance overhead, also higher
power consumption. Triple modular redundancy is a classical method
which has the high soft error reliability. Three identical copies of a circuit
compute on the same data in parallel. The three outputs are then evaluated
CHAPTER
2
BACKGROUND
P a g e | 8
by the majority voting logic. It will return the value that occurred in at
least two of three cases. By using this technique, the soft error will be
detected if it occurs at one of the three circuits, assuming the other two
circuits operated correctly.
Figure 2.1: Redundancy
Another example of redundancy is using concurrent error detection, from
which, only a selected parts of the design are chosen to be duplicated.
Figure 2.2: Concurrent error detection
In these techniques, selecting the parts to be duplicated is very important. If
the particle strike happens in the non-duplicated region, it cannot be
detected. In contrast, if it occurs at the duplicated portion of the circuit, the
checker could detect it. Therefore, must be careful to select the cutset logic
in which the nodes have highest soft error susceptibility [9].
2.3.3.2. Error correcting code and parity
CHAPTER
2
BACKGROUND
P a g e | 9
Due the soft error doesn’t destroy the device, if soft errors occur, we can
remove them by rewriting the correct data to it, or we can get the correct
output data by fixing the error bits before it comes to the output. This
technique incorporates redundant data into each word to create an error
correcting code (ECC), which used to detect and correct the soft error
[10]. Normally, the redundant data are the parity bits generated during
write operation. These parity bits are stored in memory array. Each time to
data is read, they will be used to detect the error and correct the error bit.
Used ECC can be Hamming code, Turbo code …
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 10
CHAPTER 3
SOFT ERROR TOLERANT SRAM DESIGN
3.1. SRAM specification
3.1.1. General information
· Two-ports synchronous SRAM 22kbit memory
· Built-in Error Detecting and Correcting (EDC) block to mitigate soft error.
The EDC block could detect single bit/double bit error and only fix single
bit error.
· This SRAM was designed in 130nm CMOS technology.
· Operating voltage range is from 1.35V to 1.65V
· Operating frequency is 200MHz (at worst case)
· Hand-crafted layout
· 22 bit data in/out for SRAM
· Only 16 bit data in/out for EDC block interface because the remaining 6 bit
data of SRAM were used as parity bit check.
· 8 row addresses input and 2 column addresses IO
· Two independent clocks for read and write operations as well as two
independent data in/out ports and address buses.
· Some parts of the design were selected to be radiation hardened
· There is also the memory enable control for read and write.
· EDC enable pin allows to operate with or without error detection and
correction task
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 11
3.1.2. Floorplan
MEMORY ARRAY
R
E
F
C
O
L
U
M
N
ROW DECODER
CONTROL BLOCK
R
E
F
I
O
C
E
N
A
REF ROW
BUILT-IN EDC BLOCK
C
E
N
B
A
A
[0
:9
]
A
B
[
0
:9
]
C
E
N
A
C
E
N
B
C
E
N
A
C
E
N
B
A
A
[0
:9
]
A
B
[
0
:9
]
C
E
N
A
C
E
N
B
BUILT-IN EDC BLOCK
Q
A
[0
:2
1
]
D
B
<
0
:2
1
]
B
W
E
N
L
A
T
C
H
Q
I[
0
:2
1
]
Q
I[
0
:2
1
]
R
A
M
_
M
O
D
E
L
A
T
C
H
S
E
D
E
P
E
R
A
M
_
M
O
D
E
D
I<
0
:1
5
]
Q
O
[0
:1
5
]
A
B
[
0
:9
]
A
A
[0
:9
]
C
E
N
B
C
E
N
A
C
E
N
B
C
E
N
A
COLUMN MUX
SENSE AMPLIFIER - OUTPUT BUFFER
Figure 3.1: SRAM floorplan
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 12
3.1.3. Interface pin description
Table 3.1: Pin description
Pin Name Description
CLKA Read port clock input
CLKB Write port clock input
CENB Write enable
CENA Read enable
AA Read address
AB Write address
DI Data in
QO Data output
RAM_MODE EDC block disable pin
· RAM_MODE = 0: the SRAM will work with error detecting
and correcting tasks
· RAM_MODE = 1: the SRAM will work in normal mode,
without error detecting and correcting tasks.
DE Double bit error flag
SE Single bit error flag
PE Parity bit error flag
3.1.4. Operation brief description
3.1.4.1. SRAM operation
A write operation is started at the rising edge of CLKB signal. The write
enable control input, data input and address input are latched at the
beginning of each cycle. During a write operation, data will be written
into the memory, and the data will not propagate to the memory output.
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 13
The memory output will remain at the value determined by the last
memory read.
Figure 3.2: Write operation
Similarly, a read operation is started at the rising edge of CLKA signal. The
read enable control input and address input are latched at the beginning of
each cycle. The data output latch is latched following each read access,
controlled by the track path.
Figure 3.3: Read operation
3.1.4.2. Built-in EDC operation
In each write operation, the 16 bit data input DI of EDC will be
encoded to 6 parity bits following the Hamming code. After that, 16 bit
data input and 6 parity bits will propagate to 22-bit data in ports
DB of the SRAM. That means, in the memory array, only 16 bit is
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 14
data information, the other 6 bits contain the error correcting code, which
used to detect and fix the data information if there are errors.
In each read operation, the 22 bit data output from SRAM QAwill
propagate to the QI of EDC block. EDC will decode 16 bit data
output read from the SRAM to six check bits. These six checked bit will
be compared with the parity bits read from the memory. If single bit error
occurred, EDC would detect and fix. The SE flag will be on and the data
output is correct data. If double bit error occurred, EDC would detect but
not fix. The DE flag will be on to indicate there is a double bit error. The
detail functional of the EDC block will be discussed in EDC architecture
section.
3.2. SRAM detail design
3.2.1. SRAM cell architecture
This SRAM cell was applied the circuit hardening technique [11, 12]. Some
extra transistors were adding to the classic 8 transistors SRAM cell. In detail,
two additional inverters and a control transistor are included as in figure
below. The control transistor is ON when both RWL and WWL are low.
Therefore, this extra protection circuit is only turned on in standby mode.
During the standby mode, the extra transistors will be used to enhance the
charge value of IBL and IBLX, which lead to increase the critical charge value
of these nodes. That means, the soft error tolerant level of this SRAM cell is
improved. The level of soft error tolerant depends a lot on the physical
parameter and characteristic of the extra transistors.
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 15
Figure 3.4. SRAM cell architecture
Because the protection circuit is OFF during normal mode (read/write), it will
not affect a lot the read and write performance. The level of soft error tolerant
depends a lot on the physical parameter and characteristic of the extra
transistors. Increasing width of extra transistor could enhance the tolerance
level; however, this will trade off with the area overhead.
3.2.2. Replica path for Read operation
WWL WWL
RWL RWL
PENX PENX
WBL
WBL RBL
RBL
WBLX
WBLX
IBLX
IBL
Figure 3.4: SRAM cell architecture
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 16
This design uses the inverter sense; the output latch is enabled by the signal
obtained from the reference column and reference row. Reference column is
an additional column used to generate the enabling signal for the output latch.
It has 256×1 bits and the same bitline capacitance as that in the cell array.
Reference row is an additional row used to generate the reference read
wordline signal which reads the cells in reference column. This additional row
makes the reference read wordline have the same capacitance as that for
wordlines in cell array.
The reference row and column are configured to model the furthest path of the
array. Therefore, ensure that the output latch is opened after the data read from
memory valid. The reference column cell, reference row cell, reference
feedback row cell are the edition of the memcell. In the reference column cell,
the “pull up” pmos transistors are disconnected from the IBL because these
cells are just used to model the bitline capacitance. In the reference row cell,
IBL, IBLX and DMWWL are shorted together while DMWWL is tied to VSS
at XDEC block. The reference feedback row cell is put at the middle of the
array. The DMRWLFB signal is enabled when DMRWL reaches to the
feedback cell. In the reference memcell, IBL and IBLX are tied to high.
DMXDEC
XDEC
CTL
XDEC
REFMEM REFROW REFROWFB REFROW … …
…
REFCOL MCELL MCELL MCELL … …
REFCOL MCELL MCELL MCELL … …
…
IOREF IO IO IO
CPGEN
VC
P
LATCH
DMRWL
DMRWLFB
D
M
RB
L
ECHO
CLKA
Out
latch
Out
latch
Out
latch
QA[0] QA[21] QA[n]
Figure 3.5: Timing scheme for read operation
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 17
During the read operation, both the accessed RWL and the reference RWL go
high. The reference_row_feedback cell enables the DMRWLFB, leads to a
read 0 operation at the reference memcell. The DMRBL is discharged, opens
the output latch, and also sends the echo signal back to reset internal clock.
Figure 3.6 above shows the schematic of reference IO cell and the read circuit
in IO cell. In the cycle low, the DMRBL is pre-charged. When the read
operation is initiated, a read 0 from reference memcell will discharge the
DMRBL. Therefore, send the signal to open the output latch of the read circuit
in the IO cells, the read data then propagate to output port. The output latch is
closed by the falling edge of internal read clock to keep the value of data out.
3.2.3. Internal clock generator
3.2.3.1. Read clock generator circuit
LATCH
Mux
select
RMSE RMSE
RB
L<
0:
3>
RHCPX
Output
latch
Figure 3.6: Reference IO cell and read circuit
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 18
A read operation is starting by the rising edge of CLKA. Signal
PULDOWN is delayed from CLKA to pull the INTCLKX down to VSS.
Rising edge on LCP pulse is sent to IO block to start a read operation. As
mention in the 3.2.2 section, when the DMRBL is discharged, an echo
signal will be sent back to read clock generator circuit, indicate that the
high level duration of read clock is enough for a read operation, then the
LCP signal will be reset (RESETX goes low). This will be sent to the IO
block to close the output latches. After when the LCP is reset, the
feedback signal (HCPFB) will come back to disable the reset signal
(RESETX goes high). Then it is ready to start a new read cycle.
HCPFB
RESETX
Figure 3.7: Read clock generator circuit
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 19
3.2.3.2. Write clock generator circuit
There are two main control
pulses generated from write
clock generator circuit. One is
the WVCP which goes to
XDEC block to open the
WWL. The other is WHCPX
which goes to IO block to
control the write operation.
3.2.4. Write circuit
Figure 3.9 below is the write
circuit and its sequential
waveform. The data will be written to the memory array when both write
clock (WCP) and mux select (WMSE) enable. A write 0 operation will pull
down the WBL while a write 1 will pull down the WBLX. Both the read
and write circuit are included in the IO cell.
e
3.2.5. Decoder
· Row Decoder
Figure 3.9: Write circuit and sequential
waveform
Figure 3.8: Write clock generator
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 20
An 8-256 decoder which decodes the higher 8 address inputs (A2-A9) to
select the accessed row. There are two decoding outputs for each row,
Write WordLine (WWL) and Read WordLine (RWL), active during write
and read operation respectively. The decoder is implemented as following
block diagram to improve area and performance.
Figure 3.11 below shows the circuit of XDEC bloc. The TGATE is enabled
when this row is selected by the 2_to_8 decoder. When the read or write
control pulse goes high (RVCP/WVCP), the read or write word line will be
opened. The PENX which enable the protection circuit in SRAM cell will
go low (PENX active low) when both RWL and WWL is disabled.
2_dec_4
A<
2>
A<
3>
PA
0
PA
1
PA
2
PA
3
2_dec_4
A<
4>
A<
5>
PB
0
PB
1
PB
2
PB
3
2_dec_4
A<
6>
A<
7>
PC
0
PC
1
PC
2
PC
3
2_dec_4
A<
8>
A<
9>
PD
0
PD
1
PD
2
PD
3
WWL
RWL XDEC_0
PA0
PB0
PC0
PD0
A
B
C
D
WWL
RWL XDEC_1
PA1
PB0
PC0
PD0
A
B
C
D
WWL
RWL XDEC_255
PA3
PB3
PC3
PD3
A
B
C
D
..…
Figure 3.10: Row decoder block diagram
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 21
The TGATE is enabled when this row is selected by the 2_to_8 decoder.
When the read or write control pulse goes high (RVCP/WVCP), the read or
write word line will be opened. The PENX which enable the protection
circuit in SRAM cell will go low (PENX active low) when both RWL and
WWL is disabled.
· Column Decoder: A 2-4 decoder which decodes the lower 2 address inputs
(A0-A1) to select the accessed column.
3.2.6. Input/output latches
Just like the SRAM cell, the latches are parts that easily suffer from SEU.
Latches are used at address input, data input and data output. Opening latch
will let data go through, however, when closed; data will be stored in latch. A
SEU could flip the state of data stored in latch, lead to an erroneous data.
Therefore, in this SRAM design, latches are hardened to duplicate some
sensitive nodes. All the latches in the design, include address input latch, data
input latch and output latch are applied this techniques.
WWL
RWL
PENX
Figure 3.11: Xdec circuit
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 22
Figure 3.12: Hardened latch architecture
The hardened latch architecture is shown in the figure 3.12 above. In this latch
architecture, each sensitive node is strengthened by adding more transistors.
For example, node DX1 is the duplication of node DX2. This is done by the
two additional transistors, N2 and P2, similarly for node Q1 and Q2. So, if a
SEU occurred at the DX2 branch, then the data will be saved by the DX1
branch. The feedback circuit which is enabled when closing latch is also
divided in two, the above one is used to feedback the ‘1’ value while the
below one is used to feedback the ‘0’ value. With this latch architecture, the
soft error tolerant level could be increased significantly.
3.3. Error detecting and correcting (EDC) block
The EDC block used the Hamming code algorithm[10, 13] to implement the error
correcting code. The EDC block encodes all data bits into parity bits to be written
N2
P2
Q1
Q2
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 23
into memory during write operation. During the read operation, it evaluates these
parity bits to detect if the data bits are erroneous. For single bit error detected,
EDC can flag and correct while it can only flag if there is a double bit error.
3.3.1. Hamming code algorithm
Do the following step to have a visual view about the Hamming code
algorithm:
· Step 1: Number the bits starting from 1: bit 1, 2, 3, 4, 5, etc.
· Step 2: Write the bit numbers in binary. 1, 10, 11, 100, 101, etc.
· Step 3: All bit positions that are powers of two (have only one 1 bit in the
binary form of their position) are parity bits.
· Step 4: All other bit positions, with two or more 1 bits in the binary form of
their position, are data bits.
· Step 5: Each data bit is included in a unique set of 2 or more parity bits, as
determined by the binary form of its bit position.
o Parity bit P0 covers all bit positions which have the least significant
bit set: bit 1 (the parity bit itself), 3, 5, 7, 9…
o Parity bit P1 covers all bit positions which have the second least
significant bit set: bit 2 (the parity bit itself), 3, 6, 7, 10, 11, …
o Parity bit P2 covers all bit positions which have the third least
significant bit set: bits 4–7, 12–15, 20–23 …
o Parity bit P3 covers all bit positions which have the fourth least
significant bit set: bits 8–15, 24–31, 40–47 …
o Parity bit P4 covers all bit positions which have the fifth least
significant bit set:
o The parity bit P5 is the special bit which covers all bit position, the
purpose is to distinguish the error is single bit or double bit
Following table is the example of 22 encoded bits which were applied for 22k
SRAM.
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 24
Table 3.2: Hamming code for 22 bits
Bit position
Bit position
in binary
Encoded
data bits
Parity bit coverage
P0 P1 P2 P3 P4 P5
1 001 P0 x
2 010 P1 x
3 011 D0 x x x
4 100 P2 x
5 101 D1 x x x
6 110 D2 x x x
7 111 D3 x x x x
8 1000 P3 x
9 1001 D4 x x x
10 1010 D5 x x x
11 1011 D6 x x x x
12 1100 D7 x x x
13 1101 D8 x x x x
14 1110 D9 x x x x
15 1111 D10 x x x x x
16 10000 P4 x
17 10001 D11 x x x
18 10010 D12 x x x
19 10011 D13 x x x x
20 10100 D14 x x x
21 10101 D15 x x x x
It can be seen from the table that any given data bit is included in a unique set
of parity bits. To check for errors, check all of the parity bits. The parity bit P5
will indicate whether it is a single or double bit error. The remaining parity bit
will determine the bit position if it is a single bit error. For example, D0 is
included in the unique set of P0 and P1, so if D1 is the erroneous bit, then the
parity bit P5, P0 and P1 value will be different with the original. Parity P5
shows that there is a single bit error and P0 and P1 identify the erroneous bit is
D0.
3.3.2. EDC block implementation
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 25
3.3.2.1. Block diagram
3.3.2.2. EDC operation using Hamming code algorithm
The Hamming code algorithm is implemented for 22 k SRAM as
following:
· During the write operation, 16 data input bit are encoded to 6 parity bits
P by XOR operator with the checkpoint in the table 3.2. Then the
W
RI
TE
E
N
CO
D
ER
RE
A
D
D
EC
O
D
ER
P
AR
IT
Y
CO
M
PA
RA
TO
R
SY
N
D
RO
M
E
D
EC
O
D
ER
BI
T
FL
IP
PE
R
EDC BLOCK
DI
<0
:1
5>
P<
0:
5>
D
I<
0:
15
>
D
E PE
SE
Q
O
<0
:1
5>
Q
I<
0:
21
>
Q
I<
0:
15
P<
0:
5>
Q
I<
0:
15
>
Q
I<
16
:2
0
> Q
I<
16
:2
1
>
P<
0:
5>
PD PO
FEN
D
I<
0:
21
>
READ and PARIRY DECODER
Q
I<
0:
15
>
D<
0:
15
>
O
U
TP
U
T
SE
LE
CT
O
U
TP
U
T
SE
LE
CT
Q
<0
:1
5>
LATCH LATCH
VSS
RAM_MODE RAM_MODE
RA
M
_M
O
DE
RA
M
_M
O
DE
LA
TC
H
Figure 3.13: EDC block diagram
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 26
total 22 bit (data and parity bits) are written to the memory array (the six
right bits of the memory array used to store the parity bit information)
· During the read operation, 16 data output bit will be decoded to 6 check
bits PD by XOR operator like in write operation. Note that the
PD is the XOR operation of all data output bit and parity bit P
read from memory.
· Compare P and PD by XOR operator: PO =
XOR{P, PD}
o If PO = 1, single bit error occurred, SE flag will be ON
§ If PO=0, the single bit error is one of the parity bit
from P0 to P4. The PE flag will be ON
§ Otherwise, the single bit error is one of the data bit. The
error bit position is determined by equation
Error Bit position = PO x 24 + PO x 23 + PO x 22 + PO x
21+ PO x 20
o If PO = 0 and PO result in a non zero value, then the
double bit error occurred, DE flag will be on
o If single bit error occurred, the error bit will be flipped.
o If P = 0, there are no error.
3.3.3. EDC detail architecture
3.3.3.1. Write encoder
The write encoder block uses the XOR operation to encode 16 data bit
inputs to six parity bits following the Hamming code algorithm
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 27
Following the Hamming code algorithm in table 3.2, the parity bits are
encoded as below:
P0 = XOR{ D0, D1, D3, D4, D6, D8, D10, D11, D13, D15}
P1 = XOR{ D0, D2, D3, D5, D6, D9, D10, D12, D13}
P2 = XOR{ D1, D2, D3, D7, D8, D9, D10, D14, D15}
P3 = XOR{D4, D5, D6, D7, D8, D9, D10}
P4 = XOR{D11, D12, D13, D14, D15}
P5 = XOR{D, P}
3.3.3.2. Read decoder
The read decoder decodes 16 data output to 6 check bits PD by
XOR operator like in write encoder. Note that the PD is the XOR
operation of all data output bit and parity bit P read from memory,
which are now the QI output from the memory. Please refer to
figure 3.13. The read decoder schematic is also similar to the write
encoder schematic.
D0, D1, D3, D4, D6, D8, D10, D11, D13, D15
SRAM_XOR10
D Y P0
SRAM_XOR7
D Y P3 D
D0, D2, D3, D5, D6, D9, D10, D12, D13
SRAM_XOR9
D Y P1
SRAM_XOR5
D Y P4 D
D, D, D
SRAM_XOR9
D Y P2
SRAM_XOR21
D Y P5 D, P
Figure 3.14: Write encoder schematic
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 28
3.3.3.3. Parity comparator
It could be summarized as following:
· P is the XOR operation of all data input bit and parity bit P
before being written to memory.
· PD is the XOR operation of all data output bit and parity bit
P read from memory
In which parity bits P are encoded from data input bit
Therefore, comparing the P and PD will help determine the error
is single or double bit. The comparison of the remain bits indicate the
single bit error position
PO = XOR{P, PD}
Figure 3.15: Parity comparison schematic
3.3.3.4. Syndrome decoder
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 29
Figure 3.16: Syndrome decoder schematic
· If PO = 1, single bit error occurred, SE flag will be ON, the FEN
signal will be sent to enable the flipping bit task.
o If PO=0, the single bit error is one of the parity bit from P0 to
P4. The PE flag will be ON
o Otherwise, the single bit error is one of the data bit.
· If PO = 0 and PO result in a non zero value, then the double
bit error occurred, DE flag will be on
3.3.3.5. Bit flipper
As can be seen in the table 3.2, any given data bit is included in a unique
set of parity bits. Therefore, a 3to8 decoder and a 2to4 decoder are used to
decode the comparison bits to find the erroneous bit position. The
erroneous bit will be then flipped the state (0 to 1 or 1 to 0) by the bit
flipper block.
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 30
3.3.3.6. EDC input/output select and output latch
a. Input select
RAM_MODE is the EDC block disable pin. If RAM_MODE = 0,
the SRAM will work with error detecting and correcting tasks.
Otherwise, the SRAM will work in normal mode, without error
detecting and correcting tasks. Therefore, during the write operation,
RAM_MODE pin acts as the bit write enable pin for six right data
input bits. If RAM_MODE = 0, all 22 data bit (16 bit data and 6 bit
parity encoded from the write encoder of EDC block) will be written
to the memory array. If RAM_MODE = 1, the bit write pin for six
right input bits of SRAM is disabled, and only 16 bit data are written
BIT FLIPPER
3_DEC_8 P2
P1
P0 PS2
PS1
PS0
PS5
PS4
PS3
PS7
PS6
2_DEC_4 P1
P0
PS2
PS1
PS0
PS3
PO2
PO1
PO0
PO3
PO4
BIT_FLIPPER_0
Q
PS1
PS2
FEN
DO
D
FEN
D
BIT_FLIPPER_15
Q
PS1
PS2
FEN
DO
D
FEN
D
…
..
Figure 3.17: Bit flipper block
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 31
to memory array, the six right column of the memory array are then
not affected.
b. Output select and output latch
Each data output bit (QO and notification flags SE, PE, DE)
must go through an output select circuit and output latch before
going to the output ports. Depending on the RAM_MODE pin
status, the output select circuit will select which data can go to the
output port.
For the notification flags, if RAM_MODE = 1, means no correction
tasks occur, all the flags will be tied to VSS. In contrast, when
RAM_MODE = 0, the flags will get the value returned from the
syndrome decoder block.
For the output data, if RAM_MODE = 1, means no correction tasks
occurred, the output data will be got directly from the SRAM output.
In contrast, when RAM_MODE = 0, the output data is the data
which are decoded and corrected.
IO cells for six
right bits with
bitwrite enable pin
Figure 3.18: Input select
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 32
Figure 3.19: Output select and output latch
All the output bits are also latched by LATCH signal. This LATCH
signal is obtained from the output latch signal of SRAM, however,
plus a delay to model the delay of data output when passing through
the EDC block. This latch is also the hardened latch mentioned in
section 3.2.6.
Out_latch
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 33
3.4. Physical implementation
3.4.1. Top level design layout view
The memory top layout view is partitioned just like the floorplan presented in
section 3.1.2. All the input pins are placed at the bottom of the memory.
EDC block
Memory Array
IO Control
Xdec
RR
ee f
f ee
rr ee
nn
cc ee
ii
oo
RR
ee f
f ee
rr ee
nn
cc ee
cc oo
ll uu
mm
nn
Figure 3.20: Top level layout view
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 34
3.4.2. Memory cell layout
Figure 3.21: SRAM cell layout with only device layers shown
The SRAM cell has been drawn to minimize the area and try to have smoothly
shapes for all layers. There is no strap cell included in SRAM cell to save the
area. The strap cell is inserted in each 36 rows. Two SRAM cell will share the
same power line. The wordline and protection enable signal are drawn in
metal 3 while the bitline signals are drawn in metal 2. This SRAM cell area is
10.35 um2.
3.4.3. Layout view of other block
Figure 3.23: Xdec cell layout
RWL
PENX
RB
L
VS
S
VD
D
W
BL
W
BL
X
Width = 5.75 um, Height = 1.8um, Area = 10.35 (um2)
WWL
Layer Panel
The share power line in m3
Figure 3.22: SRAM cell layout
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 35
Figure 3.24: Xdec array 1x256 Figure 3.25: Control block
CHAPTER
3
SOFT ERROR TOLERANT SRAM DESIGN
P a g e | 36
Figure 3.26: IO array 1x22
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 37
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
4.1. SRAM cell simulation
4.1.1. SRAM cell simulation to find device size
To find the best size for the SRAM cell’s transistors, some simulations about
read, write current and static noise margin were conducted.
4.1.1.1. Read current (find size of two serial down Nmos N0 and N1)
In read operation, the current through the two serial down Nmos is defined
as read current. It represents for the speed of read operation. The bigger
the read current is, the faster the bit cell can be read. During Read0
operation, there is a current going from RBL through N0 and N1 to
ground. It will move the voltage of RBL down. This value must be smaller
than the trip-point voltage of the sense inverter during Read0 Operation.
During Read1 operation, RBL is not discharged and is kept to ensure
V(RBL) is higher than the trip-point voltage of the sense inverter.
Therefore, the read current is measured in Read0 operation
Measurement method:
· Tie IBLX = VDD
· Tie RBL = VDD
· Sweep V(RWL) from 0 to
VDD
· Iread = I(N0) when V(RWL) =
Figure 4.1: Read current
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 38
VDD
Varying the size of N0 and N1 and measuring the read current, we have the
following results:
Table 4.1: Read current
ff -40 1.65 ff 125 1.65 fs 125 1.35 sf 125 1.35 tt 25 1.5 ss 125 1.35 ss -40 1.35
0.3u 155.93 122.64 67.648 49.748 88.844 43.936 54.998
0.45u 219.07 174.89 95.048 72.697 127.35 64.656 80.716
0.6u 283.29 227.99 122.73 95.731 166 85.182 106.12
0.75u 357.9 286.15 157.21 122.57 212.48 109.96 137.36
0.9u 429.84 343.47 190.56 148.72 257.36 134.11 167.46
READ CURRENT (uA)PTV
Width N0/N1
To choose the appropriate size for N0 and N1, we must consider the effect
of leakage on read current
Table 4.2: Read leakage current
ff -40 1.65 ff 125 1.65 fs 125 1.35 sf 125 1.35 tt 25 1.5 ss 125 1.35 ss -40 1.35
0.3u 0.76564 871.31 565.89 19.497 0.48766 17.538 0.011769
0.45u 1.1177 891.13 582.29 30.947 0.62219 28.282 0.012704
0.6u 1.4742 1005.5 650.45 42.717 0.77379 38.663 0.013636
0.75u 1.8426 1383.8 894.41 68.68 1.27 62.307 0.014671
0.9u 2.2114 1727 1122.4 95.431 1.7931 86.92 0.015745
LEAKAGE CURRENT (pA)
Width N0/N1
PTV
Table 4.3: Effect of leakage on read current
ff -40 1.65 ff 125 1.65 fs 125 1.35 sf 125 1.35 tt 25 1.5 ss 125 1.35 ss -40 1.35
0.3u 795545.64 549.82 466.96 9967.08 711657.46 9785.89 18254391.83
0.45u 765627.80 766.63 637.62 9176.10 799532.20 8930.15 24818708.67
0.6u 750645.48 885.71 737.05 8754.11 838001.91 8606.22 30399768.99
0.75u 758735.96 807.76 686.60 6971.30 653543.31 6893.79 36573001.16
0.9u 759275.80 776.88 663.20 6087.51 560656.13 6027.00 41545927.28
I_READ/(256*I_LEAK)
PTV
Width N0/N1
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 39
The worst case of leakage effect is at fs_125_1.35 because at this corner,
the ratio is the smallest comparing with other PTVs. At this PTV, if we
vary size of N0/N1, we’ll see that at 0.6u, the ratio is biggest, that mean
this size has the minimum effect of leakage compare to other size.
Therefore, we chose 0.6u is the size of the two serial down Nmos.
4.1.1.2. Write current
During Write0 operation, there is a current going from VDD through PU1
(pull up) and PG1 (pass gate). It will move the voltage of IBL down. This
value must be smaller than the trip-point voltage of the feedback inverter
to ensure that the value stored in the bit cell can be changed during Write
operation. The write current represent for the hard of write operation. The
smaller the write current is, the easier the Write operation is
Measurement
method:
· Tie IBLX = 0V,
WWL = VDD
· Sweep V(WBL)
from VDD to
0V
· Iwrite = I(PG1)
when V(WBL)
= 0V
Figure 4.2: Write current
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 40
Varying the size of pull up and pass gate transistors, measuring the write
current, we have the following results:
Table 4.4: Write current
PG PU ff -40 1.65 ff 125 1.65 fs 125 1.35 sf 125 1.35 tt 25 1.5 ss 125 1.35 ss -40 1.35
0.15u 51.230 42.797 16.877 24.875 29.023 15.033 16.698
0.16u 53.600 44.862 17.957 26.154 30.587 16.028 17.784
0.17u 55.992 46.936 19.042 27.430 32.162 17.026 18.877
0.18u 58.398 49.015 20.128 28.699 33.744 18.024 19.974
0.19u 60.815 51.096 21.215 29.958 35.331 19.022 21.073
0.2u 63.240 53.176 22.303 31.204 36.919 20.018 22.174
0.15u 51.273 42.849 16.887 24.927 29.050 15.049 16.711
0.16u 53.649 44.921 17.969 26.215 30.618 16.047 17.799
0.17u 56.047 47.002 19.055 27.502 32.197 17.047 18.894
0.18u 58.460 49.090 20.143 28.785 33.784 18.049 19.994
0.19u 60.884 51.180 21.233 30.060 35.375 19.051 21.096
0.2u 63.317 53.271 22.323 31.325 36.970 20.052 22.200
0.15u 51.313 42.896 16.896 24.972 29.074 15.063 16.722
0.16u 53.694 44.973 17.980 26.269 30.645 16.063 17.812
0.17u 56.096 47.061 19.067 27.565 32.228 17.067 18.910
0.18u 58.515 49.156 20.157 28.858 33.819 18.072 20.012
0.19u 60.946 51.255 21.249 30.146 35.416 19.078 21.117
0.2u 63.385 53.355 22.341 31.427 37.015 20.083 22.224
0.15u 51.349 42.938 16.905 25.012 29.096 15.076 16.733
0.16u 53.734 45.021 17.990 26.316 30.670 16.079 17.825
0.17u 56.141 47.115 19.079 27.619 32.257 17.085 18.924
0.18u 58.565 49.216 20.170 28.922 33.851 18.093 20.028
0.19u 61.001 51.322 21.263 30.220 35.452 19.102 21.135
0.2u 63.447 53.431 22.357 31.513 37.055 20.110 22.245
0.15u 51.381 42.975 16.913 25.048 29.115 15.088 16.742
0.16u 53.770 45.063 17.999 26.357 30.693 16.092 17.836
0.17u 56.181 47.163 19.089 27.667 32.282 17.101 18.937
0.18u 58.610 49.270 20.182 28.977 33.880 18.111 20.043
0.19u 61.051 51.383 21.277 30.284 35.484 19.123 21.152
0.2u 63.502 53.498 22.372 31.587 37.092 20.134 22.264
0.15u 51.410 43.010 16.920 25.080 29.133 15.099 16.751
0.16u 53.803 45.102 18.007 26.393 30.713 16.105 17.846
0.17u 56.218 47.206 19.099 27.709 32.305 17.115 18.948
0.18u 58.651 49.319 20.193 29.026 33.906 18.128 20.056
0.19u 61.096 51.437 21.289 30.340 35.513 19.142 21.167
0.2u 63.552 53.558 22.386 31.651 37.125 20.156 22.281
0.19u
0.20u
0.17u
0.18u
WRITE CURRENT (uA)
0.15u
0.16u
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 41
4.1.1.3. Static noise margin
Static noise margin is an important parameter to evaluate the bitcell's
stability.
Consider the circuit above, when DC noise source V= 0V, it’s the model
of static memory bitcell. If V is big enough, it’ll make the two inverter
change state. And from this, static noise margin (SNM) is defined as the
maximum DC voltage value of V that the 2 inverters can endure to keep
their logical values.
Varying the size of pull up and pull down transistors, we run simulation to
measure the SNM for this SRAM cell.
Table 4.5: Static noise margin
PD PU ff -40 1.65 ff 125 1.65 fs 125 1.35 sf 125 1.35 tt 25 1.5 ss 125 1.35 ss -40 1.35
0.15u 0.3430 0.2578 0.2046 0.3237 0.3316 0.3020 0.3345
0.16u 0.3452 0.2618 0.2081 0.3254 0.3336 0.3045 0.3359
0.17u 0.3474 0.2656 0.2114 0.3271 0.3356 0.3068 0.3371
0.18u 0.3495 0.2693 0.2146 0.3288 0.3375 0.3090 0.3383
0.19u 0.3515 0.2728 0.2176 0.3303 0.3393 0.3111 0.3395
0.2u 0.3535 0.2762 0.2205 0.3318 0.3411 0.3130 0.3405
0.15u 0.3811 0.2917 0.2351 0.3398 0.3594 0.3210 0.3484
0.16u 0.3831 0.2952 0.2384 0.3415 0.3613 0.3234 0.3498
0.17u 0.3850 0.2986 0.2415 0.3431 0.3632 0.3257 0.3510
0.18u 0.3868 0.3020 0.2444 0.3446 0.3649 0.3278 0.3520
0.19u 0.3886 0.3051 0.2472 0.3461 0.3665 0.3297 0.3529
0.2u 0.3904 0.3082 0.2498 0.3475 0.3682 0.3315 0.3538
STATIC NOISE MARGIN
0.15
0.20u
low
I1
I2
high
high
low
+ V -
+ V -
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 42
0.15u 0.4004 0.3087 0.2499 0.3490 0.3738 0.3315 0.3574
0.16u 0.4023 0.3121 0.2532 0.3507 0.3758 0.3339 0.3585
0.17u 0.4041 0.3154 0.2562 0.3523 0.3776 0.3360 0.3597
0.18u 0.4058 0.3185 0.2590 0.3539 0.3793 0.3381 0.3608
0.19u 0.4075 0.3215 0.2617 0.3553 0.3809 0.3401 0.3618
0.2u 0.4092 0.3244 0.2642 0.3566 0.3824 0.3419 0.3626
0.15u 0.4074 0.3149 0.2553 0.3526 0.3792 0.3354 0.3611
0.16u 0.4092 0.3182 0.2585 0.3543 0.3811 0.3378 0.3622
0.17u 0.4110 0.3215 0.2615 0.3558 0.3829 0.3400 0.3632
0.18u 0.4127 0.3245 0.2643 0.3574 0.3846 0.3420 0.3643
0.19u 0.4144 0.3275 0.2669 0.3588 0.3862 0.3439 0.3652
0.2u 0.4161 0.3303 0.2694 0.3602 0.3878 0.3458 0.3661
0.15u 0.4267 0.3319 0.2700 0.3629 0.3943 0.3466 0.3719
0.16u 0.4285 0.3351 0.2732 0.3646 0.3961 0.3490 0.3730
0.17u 0.4303 0.3382 0.2761 0.3662 0.3979 0.3512 0.3740
0.18u 0.4319 0.3411 0.2789 0.3677 0.3997 0.3533 0.3749
0.19u 0.4336 0.3440 0.2815 0.3691 0.4013 0.3552 0.3757
0.2u 0.4351 0.3467 0.2839 0.3704 0.4028 0.3570 0.3765
0.25u
0.3u
0.235u
Through the simulation results about write current and static noise
margin, we could choose the appropriate size for PG, PU, PD
transistor. To archive the small write current, the PU and PG transistor
should be chosen with small width. 0.15u is the smallest, however to
obtain a better SNM, the 0.16u will be the decision. The PD transistor
was chosen based on the desired SNM. As can be seen from table 4.5,
the bigger width of PD transistor, the better SNM it gets. However,
this will be traded off with the SRAM cell area. Therefore, 0.235u
was chosen to get the SNM about 0.4.
4.1.2. SRAM cell characteristic summary
The table 4.6 below summarizes the characteristic of SRAM cell with fixed
size of transistors
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 43
Table 4.6: SRAM cell characteristic summary
SRAM CELL CHARACTERISTIC
PTV iread (uA) iwrite (uA) SNM ileak read (pA) ileak total (pA)
ss_125_1.35 85.182 16.047 0.334 38.663 65.377
ss_-40_1.35 106.120 17.799 0.359 0.014 0.127
ff_-40_1.65 283.290 53.649 0.402 1.474 7.195
ff_125_1.65 227.990 44.921 0.312 1005.500 2915.000
tt_25_1.5 166.000 30.618 0.376 0.774 2.294
fs_125_1.35 122.730 17.969 0.253 650.450 1900.500
sf_125_1.35 95.731 26.215 0.351 42.717 72.761
4.1.3. Static noise margin comparison
A static noise margin simulation was also conducted on the normal 8T SRAM
cell to see the difference with the hardened 8T SRAM cell. Obviously, the
hardened SRAM cell has the bigger SNM in all PTVs (about 1.5 times). This
proves that the hardened SRAM cell has the higher stability than the normal
8T SRAM cell.
Table 4.7: SNM comparison
SNM COMPARISON
SRAM cell
type
ff-40 1.65 ff 125 1.65 fs 125 1.35 sf 125 1.35 tt 25 1.5 ss 125 1.35 ss-40 1.35
Normal 8T
SRAM cell 0.2823 0.2215 0.1794 0.2844 0.2812 0.2617 0.3008
Hardened
SRAM cell 0.402 0.312 0.253 0.351 0.376 0.334 0.359
4.1.4. SRAM cell capacitance
The table 4.8 below shows the capacitance value of the signals in SRAM cell.
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 44
Table 4. 8: SRAM cell capacitance
Total Capacitance (fF)
Signal Name Max Typ Min
RBL 0.5414 0.5149 0.4904
WBLX 0.6703 0.6368 0.6049
WBL 0.7701 0.7289 0.6902
RWL 1.4668 1.3958 1.3284
WWL 1.2814 1.2235 1.1694
PENX 1.6804 1.599 1.5209
4.2. Soft error tolerant simulation
To verify the tolerant level of the SRAM cell, a critical charge simulation was
carried out to measure the critical charge of normal 8T SRAM cell and the harden
8T SRAM cell in this design.
4.2.1. Verification methodology
The region that is most sensitive to ion strikes are reverse-biased junctions,
because of the electric field present across the large space charge region,
hence efficiently collecting any charge generated in their vicinity.
In the 8T SRAM designs, the off-NMOS drain is the most sensitive region of
the cell (in addition to the off-PMOS) as mentioned in section 2.2.
To measure the critical charge for 8T SRAM cell, a current source will be
injected to the off NMOS drain [14, 15], applied across the drain terminal and
the ground as in figure 4.3 below
A radiation particle strike can be modeled by a current pulse as
(4.1)
where: Qcoll is the amount of charge collected
)(
)(
)( // ba tt
ba tt
ttcoll
seu ee
Q
ti -- -
-
=
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 45
tα is the collection time constant.
tβ is the ion track establishment constant
The time constants tα and tβ depend upon process related parameters. For
each technology, we must determine (tα, tβ) to make sure the current
model that we used is correct. In this 130nm process, tα is 164 ps and tβ
is 50 ps
Figure 4.3: Inject a current source to an off NMOS drain
4.2.2. Critical charge simulation
Iseut
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 46
· Define the following line in the spice deck file to insert the current pulse
iseu xi0.ibl 0 PWL (time,'((charge/(tanpha-tbeta))*((exp((tdelay-
value)/tanpha))-exp((tdelay-value)/tbeta)))')
This is the same equation with the equation 4.1, but in the correct syntax
that Hspice can understand
· Initialize:
o V(IBL) = VDD
o V(IBLX) = 0
o V(WWL) = V(RWL) = 0
o V(RBL) = V(WBL) = V(WBLX) = 1
· Using Hspice to transient analyze with data that was generated from iseu(t)
· Varying Q to determine the maximum of Q automatically when the stored
data flip, that Q is called critical charge (Qcrit).
4.2.3. Simulation results
4.2.3.1. Hardened SRAM cell
Table 4.9: Critical charge result of hardened SRAM cell
Hardened SRAM cell
RC condition Critical charge (fC)
FF_-40_1.65 16.4062
TT_25_1.5 11.5019
SS_125_1.35 6.2705
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 47
Figure 4.4: The injected SEU current for hardened SRAM cell
Figure 4.5: IBL waveform of hardened SRAM cell
Figure 4.6: The exchange state between IBL and IBLX
4.2.3.2. Normal SRAM cell
Q= 3 fC
Q= 6 fC
Q= 9 fC
Q= 11.502 fC
Q= 3 fC
Q= 6 fC
Q= 9 fC
Q= 11.502 fC
IBL flip when Q= 11.502 fC
TYPICAL CONDITION
TYPICAL CONDITION
IBLX IBL
TYPICAL CONDITION
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 48
Table 4.10: Critical charge result for normal SRAM cell
Normal SRAM cell
RC condition Critical charge (fC)
FF_-40_1.65 8.8945
TT_25_1.5 6.2167
SS_125_1.35 4.5329
Figure 4.7: The injected SEU current for normal SRAM cell
Figure 4.8: IBL waveform of normal SRAM cell
TYPICAL CONDITION
Q= 1.5 fC
Q= 3 fC
Q= 4.5 fC
Q= 6.217 fC
Q= 1.5 fC
Q= 3 fC
Q= 4.5 fC
Q= 6.217 fC
IBL flip when Q= 6.217 fC
TYPICAL CONDITION
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 49
Figure 4.9: The exchange state between IBL and IBLX
4.2.4. Conclusion
By injecting the same current pulse to both SRAM cell, varying the charge
and transient analysis, we found the critical charge for hardened SRAM cell
and normal SRAM cell. As the result, the SRAM cell which used circuit
hardening techniques has the larger critical charge value in all RC condition,
which means it has the higher tolerant level compare with normal 8TSRAM
cell.
TYPICAL CONDITION
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 50
4.3. Post-layout simulation
After finishing the physical implementation for the design, a layout parasitic
extracted (LPE) netlist is extracted and then is used to simulate to evaluate the
performance of the design. The simulations were conducted to measure the cycle
time, access time, setup time and the delay of some critical paths.
4.3.1. Simulation setup
Hspice was invoked to run the simulation. The necessary data for this
simulation includes:
· LPE netlist
The LPE netlist contains the connectivity of the design, also the full
resistor and capacitor information.
Figure 4.10: A part of LPE netlist containing capacitor value
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 51
Figure 4.11: A part of LPE netlist containing resistor value
· Input waveform
To model the worst case and to save the runtime, only the furthest row
(max address) will be written and read.
Figure 4.12: A part of input waveform for performance
simulation
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 52
· Spice option
This file contains the Hsim option, the paths to necessary data, path to
model file and defines some necessary parameters
Figure 4.13: Hspice option
4.3.2. Cycle time definition and simulation result
The cycle time is the minimum period that CLK could be activated again and
make sure that the design has been reset and ready for new data.
Cycle time must cover all below conditions:
· Covering the cycle of internal clock and be ready for starting new
cycle
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 53
CYCLE1 = CLK rise to RESETX rise 90%VDD
From the simulation output waveform, measuring the delay from clk rise
to resetx rise 80%VDD, we obtained the CYCLE1 = 4.15 ns
Figure 4.15: Delay from clk rise to resetx rise
· Make sure all RBL be pre-charged fully
CLK
LCP
RCP
ECHO
HCPFB
RESET
RESETX
CYCLE 1
Figure 4.14: Cycle time must cover the internal clock
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 54
CYCLE2 = CLKA rising-to-DMRBL rising to 90% of VDD
From the simulation output waveform, measuring the delay from clk rise
to dmrbl rise 90%VDD, we obtained the CYCLE2 = 4.93 ns
Figure 4.17: Delay from clk rise to dmrbl rise
· Cover the pulse width high of input latch (from latch close to latch
open again) plus to max setup time of all input pins
CLKA
INTCLKX
RHCPX
RBL
CYCLE 2
Figure 4.16: Cycle time must make sure all RBL be precharged fully
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 55
Figure 4.18: Cycle time must cover PWH of input latch plus for max setup
time
CYCLE3 = PWH {LATCLK} + Setup_max {Input pin/bus}
From the simulation output waveform, we got the pulse width high of
latch is 3.53 ns, plus for the max setup time 385ps, we obtained CYCLE3
= 3.915ns
Figure 4.19: PWH of input latch
The cycle time for this design is the maximum value of the CYCLE1,
CYCLE2, CYCLE3. Therefore:
CYCLE = max{CYCLE1, CYCLE2, CYCLE3}
= max {4.15ns, 4.93ns, 3.915ns} = 4.93ns
4.3.3. Access time
CYCLE 3
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 56
Access time is maximum delay from clock to output validation.
Figure 4.20: Access time definition
The access time measured from output waveform has the value 4.22 ns. This is
the delay from the rising edge of clk to the rising edge of the furthest data
output
Figure 4.21:Access time
4.3.4. Setup time
Setup time is a minimum period that the signal must be valid before the
activation of CLK. Setup time is measured for all input signals. In this design,
the max measured setup time is the setup time of address signals. The setup
time of address input is measured as below:
SETUP_TIME = address_input_path_delay - clock_path_delay
In which
D_OUT valid
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 57
· The address_input_path_delay is the delay from the rising edge
of address signal to the falling edge of node dx1 in the input latch
(the period for address signal to travel to input latch)
· The clock_path_delay is the delay from the rising edge of clock
to the rising edge of latch signal (the period for clock to active
the latch signal to open input latch)
The equation to measure setup time is given based on the worst case: input latch
opens at the same time when input data arrives. Therefore, the difference between
these two delays will determine the minimum period that the signal must be valid
before clock. The figure 4.22 and 4.23 below show the delay of
address_input_path_delay and clock_path_delay
Figure 4.22: Address input path delay
Figure 4.23: Clock path delay
From the simulation result, we got the max setup time is: 735-350 = 385 ps
4.3.5. Timing delay of some critical paths
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 58
· Delay from CLKA rises to intclkx fall: delay from external clock to
internal clock generation
Figure 4.24: Delay from CLKA to intckx fall
· Delay from intclkx fall to rhcpx fall: the period in which read
internal clock are sent to IO to start the read operation
Figure 4.25: Delay from intclk fall to rhcpx fall
· Delay from rhcpx fall to latch rise: the period from internal read
clock active to data output latch open
· Delay from rhcpx fall to echo rise: the period from internal read
clock active to echo active to be sent back to reset internal clock
Figure 4.26: Delay from rhcpx fall to latch rise
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 59
Figure 4. 27: Delay from rhcpx fall to echo rise
· Delay from echo rise to resetx fall: the period from echo active to
reset active
Figure 4.28: Delay from echo rise to resetx fall
· Delay from resetx fall to intclk rise: the period from reset active to
internal clock disable
Figure 4.29: Delay from resetx fall to intclk rise
· Delay from intclk rise to rhcpx rise: disable clock is sent to IO
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 60
Figure 4.30: delay from intclk rise to rhcpx rise
· Delay from rhcpx rise to latch fall: period from internal clock is
reset to output latch is closed
Figure 4.31: Delay from rhcpx rise to latch fall
· Delay from intclk rise to resetx rise: reset signal is disabled to start a
new read cycle
Figure 4.32: Delay from intclk rise to resetx rise
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 61
4.3.6. Simulation results summary
4.3.6.1. Performance
Table 4.11: Performance result (SS_125_1.35)
Parameters Description Value (ns)
Cycle time Clock cycle time 4.93
Access time Clock high to read data valid 4.22
Setup time Max input setup time 0.385
4.3.6.2. Timing delay of some critical paths
Table 4.12: Timing delay between nodes
Timing delay between nodes
Delay Timing Between Nodes Value (ns) Description
CLKA rise -- intclkx fall 0.167 Generate internal clock
intclkx fall -- rhcpx fall 0.232 Internal clock is sent to IO
rhcpx fall -- latch rise 3.31 Open output latch
rhcpx fall -- echo rise 3.16 Send echo signal back
echo rise -- resetx fall 0.093 Echo signal enables the reset
signal
resetx fall -- intclkx rise 0.112
Reset signal will reset internal
clock
intclkx rise -- rhcpx rise 0.2
Reset internal clock will be
sent to IO
rhcpx rise -- latch fall 0.688 Close the output latch
Intclkx rise -- resetx rise 0.354 Off reset to start a new cycle
4.4. SRAM and EDC functional verification
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 62
To verify to functional of this design, firstly we must define a set of test vectors
which can cover all possible faults such as: cannot read/write, cannot operate the
detection and correction task.... Then, Hsim jobs are conducted to simulate for all
test cases. With input are the test vectors, we will expect the correct output data. If
all data output are as expected then the design functional are correct.
4.4.1. Fault model
The test vectors must be defined to cover all possible faults as below:
Table 4.13: Design fault model
# Item Fault
1 SRAM function
1.1 Cannot store a value in each SRAM cell
1.2 Cannot write/read in each SRAM cell
1.3 A certain address results in no cell accessed
1.4 A certain address accesses multiple cells
1.5 A certain cell can be accessed by multiple
addresses
2 EDC function
2.1 Cannot encode the input data to parity bit
2.2 Cannot decode the output data to check bit
2.3 Cannot detect single bit or double bit error
2.4 Cannot fix single bit error
4.4.2. Test vector definition
4.4.2.1. Vector sram_00_01
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 63
· Purpose: Test the write/read operation of SRAM
· Cover fault model: all SRAM function fault model
· Description: This test vector includes checking for the write and
read operation. First, write 0 to all word, and then read 0 at the max
word. After that, we write 1 and read 0 simultaneously at two adjacent
addresses, from max word to min word. For example, write 1 at word
255th and read 0 at word 254th, then write 1 at word 254th and read 0 at
word 253th, then continue to the min word. Similarly for case write 1
but with the invert direction from min word to max word. This
method can cover all possible faults of SRAM functionality such as: a
certain address accesses multiple cell, a certain address accesses no
cell, cannot read/write from SRAM...
The detail vector is as following:
4.4.2.2. Vector sram_00_02
· Purpose: Test the ability to detect and correct error of EDC block
> For AB in 0 . . nw1
+ write 0
> For AA = nw1
+ read 0
> For AB in nw1..1 (step 1), AA = AB - 1
+ write 1, read 0
> For AB = 0
+ write 1
> For AA = 0
+ read 1
> For AB = 0..(nw-2), AA = AB + 1
+ write 0, read 1
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 64
· Cover fault model: all EDC function fault model
· Description: The function of EDC block can be done by first
writing the correct data to the memory with RAM_MODE=0, then
write the incorrect data to the memory with RAM_MODE =1 (the six
left parity bits are not affected). Then read with RAM_MODE=0 to
check whether the incorrect bit is fixed. The pattern would be defined
to check for all bit error positions. The detail vector is as following:
> AB = 0, RAM_MODE = 0
+ write 0
> AA = 0, RAM_MODE = 0
+ read 0
> AB = 0, RAM_MODE =1
+ write 10000000000000
> AA = 0, RAM_MODE =1
+ read 100000000000000
> AA = 0, RAM_MODE = 0
+ read 0
+ SE flag is ON
(The data has been fixed)
.... Continue to write incorrect data with changing the incorrect bit 1
position and read the fixed data to test the ability to detect and correct all
bit position...
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 65
4.4.3. Simulation setup
> AB = 0, RAM_MODE = 0
+ write 1
> AA = 0, RAM_MODE = 0
+ read 1
> AB = 0, RAM_MODE =1
+ write 0111111111111111
> AA = 0, RAM_MODE =1
+ read 01111111111111111
> AA = 0, RAM_MODE = 0
+ read 1
+ SE flag is on
(The data has been fixed)
.... Continue to write incorrect data with changing the incorrect bit 0
position and read the fixed data to test the ability to detect and correct all
bit position...
> AB = 0, RAM_MODE = 0
+ write 1
> AA = 0, RAM_MODE = 0
+ read 1
> AB = 0, RAM_MODE =1
+ write 0011111111111111
> AA = 0, RAM_MODE =1
+ read 00111111111111111
> AA = 0, RAM_MODE = 0
+ read 00111111111111111
+ DE flag is on
.... Continue to write incorrect data with changing the incorrect double bit
00 positions to test the ability to detect double bit error.
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 66
To run Hsim simulation, some below data must be prepared:
· Netlist of full design
Figure 4.33: Netlist of top level
· Full vectors as described above in section 4.4.2
Figure 4.34: A part of full test vector
· The spice setup file which contains the Hsim option, the paths to
necessary data, path to model file, some necessary parameters...
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 67
Figure 4.35: Hsim option
After preparing all necessary data, invoke the Hsim command to run
simulation for two defined test vectors.
4.4.4. Functional verification result
All the output data are as expected and no error is produced. Below is the
simulation log file:
path_to_model_file
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 68
The simulation waveform for test vector sram_00_01 is shown in figure 4.37
below. Because the full waveform is too large, this figure only captured one
part of the full waveform.
Figure 4.37: Waveform of SRAM functional simulation
Figure 4.36: Hsim log file
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 69
The simulation waveform for test vector sram_00_02 is shown in figure 4.38
below. The waveform in figure below only captured the error at max
significant bit.
Figure 4.38: Waveform of EDC functional simulation
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 70
4.5. Physical verification
The physical verification for this design includes LVS (layout versus schematic)
and DRC (design rule check) verification. The Calibre tool was used to perform
LVS and DRC checking for the design.
Figure 4.23 below shows the LVS report of a hierarchical checking from top level.
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 71
Figure 4.39: LVS Calibre report for hierachical checking
As can be seen from figure 4.23, all layout cells has passed the LVS checking
The next figure 4.24 also show the detail LVS report for top cell ecc_chip. The
report list the mapping of ports and nets between layout and schematic.
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 72
Figure 4.40: Detail LVS report for top level
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 73
Figure 4.25 shows the DRC report for this design. The report contains the design
rule check information and list the total result count for each checking. As shown
in the report, there are no DRC errors. The design has passed the DRC verification
by Calibre tool
CHAPTER 4
DESIGN SIMULATION AND VERIFICATION
P a g e | 74
Figure 4.41: DRC report
CHAPTER 5
CONCLUSION AND FUTURE WORK
P a g e | 75
CHAPTER 5
CONCLUSION AND FUTURE WORK
A 1Kx22 bits SRAM chip was designed and simulated in 130nm CMOS
technology. This SRAM has the additional soft error tolerant level. The critical
charge simulation results indicated that the hardened SRAM cell has the higher
tolerant level than the normal SRAM cell. The functional verification for SRAM
and EDC block also demonstrated the correct functionality of the design and the
ability to detect and correct single bit error of EDC block. The performance of the
design was also evaluated through the post layout simulation.
With the soft error tolerant feature, this SRAM design could be used for the
applications which required the high reliability functionality. However, the two
techniques that were applied for this design also cause the area and performance
overhead. The radiation technique requires adding extra transistors; therefore it
leads to increase the area. The timing is also affected by the built-in EDC block.
For instances, the access time has increased because the data output from SRAM
must be processed by the EDC block to detect and correct error before coming to
the output ports.
Beside some drawbacks, this thesis has finished well a SRAM design which can
be applied for some critical applications. This SRAM is still need to be developed.
Some more work should be invoked to study how to minimize the effect on area
and timing. For example, study to reduce the extra transistors in the hardened
SRAM cell architecture or in the latches, also optimize the EDC architecture to
obtain a better timing.
REFERENCES
P a g e | 76
REFERENCES
[1] R. Baumann, "Soft Errors In Commercial Integration Integrated Circuits,"
International Jour. High Speed Electronics and Systems, vol. 14, no. 2, pp.
299–309, 2004.
[2] F. W. S. P. E. Dodd, G. L. Hash, M. R. Shaneyfelt, B. L. Draper, A. J.
Farino, and a. R. S. Flores, "Impact of Technology Trends on SEU in
CMOS SRAMs," IEEE Trans. Nuclear Science, vol. 43, no. 6, pp. 2797–
2804, Dec. 1996.
[3] E. S. C. Claeys, Radiation Effects in Advanced Semiconductor Materials
and Devices: Springer, 2002.
[4] T. K. Gaisser, "Cosmic Rays and Particle Physics," Cambridge University
Press 1990.
[5] T.Heijmen, "Radiation-Induced Soft Errors in Digital Circuits - A
Literature Survey," 2002.
[6] R. D. S. Daniel M. Fleetwood, Radiation Effects And Soft Errors In
Integrated Circuits And Electronic Devices World Scientific, 2004.
[7] W. R. Dawes, "Radiation Effects Hardening Techniques," IEEE NSREC
Short Course, Monterey, CA, 1985.
[8] M. Nicolaidis, "Circuit-Level Soft-Error Mitigation," in Soft Errors in
Modern Electronic Systems. vol. 41, M. Nicolaidis, Ed., ed: Springer US,
2011, pp. 203-252.
[9] N. A. T. Kartik Mohanram, "Cost-Effective Approach for Reducing Soft
Error Failure Rate in Logic Circuits," Test Conference, 2003. Proceedings.
ITC 2003. International 2003.
REFERENCES
P a g e | 77
[10] T. K. Moon, Error Correction Coding: Mathematical Methods and
Algorithms: John Wiley & Sons, Inc, 2005.
[11] F. W. Yuriy Shiyanovskii, Chris Papachristou, "SRAM Cell Design Using
Tri-state Devices for SEU Protection," 2009 15th IEEE International On-
Line Testing Symposium (IOLTS 2009).
[12] M. J. Barry, "Radiation resistant SRAM memory cel," U.S. Patent Number
5,157,625, Oct. 1992.
[13] A. M. Rino Micheloni, R. Ravasio, Error Correction Codes for Non-
Volatile Memories: Springer, 2008.
[14] P. E. D. a. L. W. Massengill, "Basic mechanisms and modeling of single-
event upset in digital microelectronics," IEEE Trans. Nuclear Science, vol.
50, no. 3, pp. 583–602, 2003.0018-9499.
[15] R. S. Shigeo Satoh, Hiroko Tashiro, Naoshi Higaki, and Noriaki
Nakayama, "CMOS-SRAM Soft-Error Simulation System," IEEEARPS,
1994.
Các file đính kèm theo tài liệu này:
- le_thi_linh_an_435.pdf