Sram Part1
Sram Part1
Sram Part1
Part I
Fully Custom 512-bit SRAM Design
Report
Name: Chaitanya Amin
Email: [email protected]
Date: 03/06/15
1|Page
Sr.
No.
Topic
Topic
Page No.
Page No.
Schematic, Symbol
Schematics,
Brief Explanation
& Layout ofof1-Bit
Design
Full Adder
12
13
18
32
Summary
36
2|Page
1.
Schematics:
Brief Description:
The given schematic of SRAM was first analyzed and sizing was done.
The sizes had to be carefully decided as per the discussions in the lecture.
The decoder had to be carefully designed so as to reduce the delay. I have
used NOR based array for the decoder logic.
The Schematic was then simulated using cadence SPECTRE simulator to test
the functionality.
After verifying the functionality, I proceeded to create the layout, which
required effective routing so as to ensure that the instance of SRAM cells can
be placed adjacent cells without any DRC violations.
3|Page
1.
Circuit Schematics:
This is the basic SRAM cell. Sizes of the basic cell are kept as per the one
given in the assignment question.
4|Page
Sizing has been done after careful analysis of the circuit and
functionality test of SRAM cell.
5|Page
Sizing has been done after careful analysis of the circuit and
functionality test of SRAM cell.
6|Page
Sizing has been done after careful analysis of the circuit and
functionality test of SRAM cell.
7|Page
Here, to simplify the layout, the both the adjacent columns of a single bank
have been connected so as to make them columns of different banks.
That helped in area reduction and also in less routing complexity.
So, every mux is directly connected to each flip flop.
8|Page
9|Page
Sizing has been done after careful analysis of the circuit and
functionality test of SRAM cell.
Inverters are added at the output to improve the drive strength.
10 | P a g e
11 | P a g e
2.
This is the waveform for simulation of a single SRAM cell for Writing
a 1, Reading it, then writing a 0, Reading it and finally Writing a 1.
First, before every Read and Write operation, we need to pre-charge
the SRAM cell, so an active low signal of Pre-Charge enable is given
as shown in the waveform.
Then we enable the word-line, give the data to be written and give
the Write_Enable Signal.
We see the variation in the Bit and Bit_B lines at this point and
finally the cells flip and the corresponding output can be verified by
a read operation at the same location.
For read, we have to first pre-charge, then enable word-line, give
read enable signal and wait for the sense amplifier to produce the
results.
12 | P a g e
3.
A[4]-A[0]
data[15]-data[0]
01010
9F44
00111
FF83
01000
18D7
11011
1A2B
10111
80FE
10101
9BD5
10110
7713
10101
4C56
10011
E15C
11111
BA6C
Now, as per my USC ID, I have given the sequence of Write and Read
of the above mentioned data in the corresponding address.
This vector file was used to simulate the design and verify the
functionality.
My USC ID: 9384-0644-56
Sequence
9
3
8
4
0
6
4
4
5
6
A[4]A[0]
11011
10101
01000
10011
10111
01010
10011
10011
11111
01010
data[15]-data[0]
1A2B
4C56
18D7
E15C
80FE
9F44
E15C
E15C
BA6C
9F44
Result
0001-1010-0010-1011
0100-1100-0101-0110
0001-1000-1101-0111
1110-0001-0101-1100
1000-0000-1111-1110
1001-1111-0100-0100
1110-0001-0101-1100
1110-0001-0101-1100
1011-1010-0110-1100
1001-1111-0100-0100
13 | P a g e
Set A
14 | P a g e
Set B
#Note: Set A and Set b are identical. It is just for more clarity, I have
attached both snapshots.
15 | P a g e
Set A
16 | P a g e
Set B
17 | P a g e
4.
18 | P a g e
b) Write Circuitry
19 | P a g e
c)Flip Flop
d) Multiplexer
20 | P a g e
e) Pre-charge Circuit
21 | P a g e
f) Row Decoder
22 | P a g e
g) Sense Amplifier
23 | P a g e
24 | P a g e
25 | P a g e
26 | P a g e
nets
terminals
1606
pmos
2694
nmos
nets
terminals
1542
pmos
2630
nmos
N103
A<0>
N1531
N105
A<1>
N1523
N106
A<2>
N1517
N107
A<3>
N1575
N108
A<4>
N1571
N104
A_B<0>
N1564
N109
A_B<1>
N1558
N110
A_B<2>
27 | P a g e
N1550
N111
A_B<3>
N1541
N112
A_B<4>
N1516
N48
Data<0>
N1536
N55
Data<10>
N1528
N16
Data<11>
N1522
N15
Data<12>
N1515
N71
Data<13>
N1573
N74
Data<14>
N1566
N14
Data<15>
N1574
N50
Data<1>
N1567
N49
Data<2>
N1560
N51
Data<3>
N1554
N67
Data<4>
N1544
N68
Data<5>
N1534
N72
Data<6>
N1526
N13
Data<7>
N1520
N54
Data<8>
N1513
N73
Data<9>
N1552
N95
Data_B<0>
N1511
N80
Data_B<10>
N1569
N79
Data_B<11>
N1562
N75
Data_B<12>
N1556
N81
Data_B<13>
N1547
N78
Data_B<14>
N1539
N77
Data_B<15>
N1542
N94
Data_B<1>
N1532
N93
Data_B<2>
N1524
N92
Data_B<3>
N1519
N91
Data_B<4>
28 | P a g e
N1512
N90
Data_B<5>
N1570
N89
Data_B<6>
N1563
N88
Data_B<7>
N1557
N82
Data_B<8>
N1548
N76
Data_B<9>
N1510
N12
Decoder_en_active_low
N1535
N34
Out_Mux<0>
N1568
N24
Out_Mux<10>
N1561
N23
Out_Mux<11>
N1555
N22
Out_Mux<12>
N1546
N21
Out_Mux<13>
N1537
N20
Out_Mux<14>
N1530
N19
Out_Mux<15>
N1527
N33
Out_Mux<1>
N1521
N32
Out_Mux<2>
N1514
N31
Out_Mux<3>
N1572
N30
Out_Mux<4>
N1565
N29
Out_Mux<5>
N1559
N28
Out_Mux<6>
N1553
N27
Out_Mux<7>
N1543
N26
Out_Mux<8>
N1533
N25
Out_Mux<9>
N1549
N3
Precharge_en
N1529
N86
Read_en
N1545
N4
Write_en
N1551
N5
clk
N1518
N0
gnd!
N1525
N87
rst
N1538
N1
vdd!
29 | P a g e
rewired
size errors
pruned
active
4300 4172
total
4300 4172
nets
un-matched
merged
pruned
active
1576 1576
total
1576 1576
terminals
un-matched
matched but
different type
total
66
66
30 | P a g e
31 | P a g e
5.
Set C
32 | P a g e
Set D
33 | P a g e
Set C
34 | P a g e
Set D
#Set C is identical to Set D. The two different background
images are given just for extra clarity.
#For comparing Schematic with Layout, We may compare
Set A and B (Schematic) with Set C and D (Extracted).
#The waveforms in the schematic match completely with
the waveforms in the extracted view.
35 | P a g e
6. Summary:
36 | P a g e