8-Bit 32-Word SRAM - ECE 421L
Created and edited by Michael Parker
Email : parkem3@unlv.nevada.edu
Last updated : November 23, 2021
The
objective of this project was to design a register file (RF) that uses
an 8-bit word and has 32 words. The RF uses a 5-bit address to access
the
32
8-bit words. Other inputs to to the RF are 8 IO lines for reading and
writing, a control signal for indicating either a read or write to the
RF, and
VDD/ground.
Inverter
My
first objective for this project was to create an inverter for use
throughout my design. The schematic below creates a 12u/6u inverter
from which
the symbol below was created.
A
layout of the inverter will be needed later for instantiation. This
layout was the beginning of creating a standard cell. The creation of
this cell will
allow better allignment later in the design. Upon
finishing the layout, a DRC, LVS and simulation were run to ensure
propper opperation.
Bit Cell
Once
the inverter was completed, it could be instantiated twice in the
bit cell. The bit cell uses the Row_Line input to turn on the NMOS at
the
beginning and end of the circuit. This allows for reading and writing to the bit cell.
After
creating the schematic and the symbol for the bit cell I drafted a
layout and further created a standardized cell for instantiation. A
DRC, LVS,
and a simulation were run to ensure that the cell was properly writing and holding data.
Word Cell
Now that the bit cell was finished I was able to instatiate it 8 times creating and 8-bit word cell.
The
Layout of the cell was made easier by the use of a standardized cell
and linking the instantiations together on the M3 layer. This Layout
passed
DRC and LVS.
Array
Word cells could now be instantiated to create a 32 word array.
This array was linked through the use of two running M2 layers, one for VDD and one for ground.
NAND Gate
The next step was to draft the schematic for the needed 5 input nand gate. The schematic and symbol are shown below.
The
layout of the NAND gate was a slightly smaller cell size which through
off the allignment later in the project, but its design allowed for
easier
instantiation. The Layout passed both DRC and LVS.
Row Decoder
The
Row decoder was the next design to be tackled. This design uses
instantiations of 5-input NAND gates connected to inverters previously
drafted
to select our desired word.
In
the layout I chose to use a bus configuration in order to efficiently
distribute my address information to the rest of the decoder. The
decoder
passed DRC and LVS.
A
simulation was run to ensure that the decoder was properly selecting
the desired word line. This was accomplished by holding A<4:1>
constant and
toggling A<0>. This caused the enable on words 16 and 32 to toggle.
Final RF
With
all of the independant elements complete I was able to combine the row
decoder and the memmory array into the final RF. This layout passed
DRC and LVS.
A simulation was done that shows writing and holding on bit 3 of words 16 and 32.
Design files can be downloaded here.