1
*
Step 1: Match the data width you need
Small
Small
Small
Small
Small
Small
Small
Small
Small
Small
Big
Step 1: Match the data width you need
Small Small
Big
Example:
If small are 8 bits wide and need a
16 bit wide bus, then 2 small will
give the data width needed.
One small will supply the most
significant bits of the data. The
other small will supply the least
significant bits of the data.
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
Step 2: Match the data depth you need
Big
Example:
If small are 1K and need 4K, then we
will need 4 rows to get the depth
needed.
One small will supply the first 1K,
the second the second 1K, the third
the third 1K and the fourth the
fourth 1K.
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
3/15/2014
2
Step 3: Connect the data
We will set up the enables so
only one small memory from
each column is enabled at a
time.
Continuing the example, we want 16
bits of data, half from each column.
The right column supplies data D0-D7
to the bus and the left column
supplies data D8-D15 to the bus.
D0-D7
D0-D7
D0-D7
D0-D7
D0-D7
D0-D7
D0-D7
D0-D7
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
BUS
Step 4: Connect the R/W
The R/~W controls whether the
memory will output data or store
data when enabled. The memory
will do nothing if it is not
enabled.
The single R/~W line connects to all
the small memories.
R/~W
R/~W
R/~W
R/~W
R/~W
R/~W
R/~W
R/~W
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
BUS
Step 5: Connect the low address lines
Each of our small memories holds 1K
entries. To address 1K takes 10 bits
of address, since 2
10
=1K
A0-A9
A0-A9
A0-A9
A0-A9
A0-A9
A0-A9
A0-A9
A0-A9
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
BUS
Step 6: Determine the row enables (1 of 3)
We have 4 rows, so we will need the
next 2 address lines to pick a row,
since 2
2
= 4
E
BUS
E
E
E
E
E
E
E
The DeMultiplexor will activate one
different output only for each
combination of the inputs.
Here: 00, 01, 10 and 11.
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
3/15/2014
3
Step 6: Determine the row enables (2 of 3)
Next we match the remaining
address lines to set the base address
of the memory system.
E
A10 A11
BUS
E
E
E
E
E
E
E
DeMux
Extending our example, if we wanted
to start the memory at 0, then all
the remaining address lines would
have to be zero. We disregard the
address lines weve already used.
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
1 = match of 0x___________
A31
A20
A19 A12