Anda di halaman 1dari 4

3/15/2014

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

The circles indicate


that the inputs are
inverted, i.e. ~A19,
~A18, etc.
Step 6: Determine the row enables (3 of 3)
Connect in the handshaking and
connect the row enables
E
A10 A11
BUS
E
E
E
E
E
E
E
DeMux Match
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
A12 up
Step 6: Determine the row enables (3 of 3)
No match no enables
E
A10 A11
BUS
E
E
E
E
E
E
E
DeMux Match
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
A12 up ME
0 0 0 0
3/15/2014
4
Step 6: Determine the row enables (3 of 3)
No ME no enables
E
A10 A11
BUS
E
E
E
E
E
E
E
DeMux Match
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
A12 up ME
0 0 0 0
Step 7: Create the ACK signal
A match where ME is active will
create the ACK signal. When ME
drops, so does ACK.
This assumes the memories respond
very quickly, otherwise a delay must
be introduced into the ACK output.
BUS
Match
Example problem: Make a 4K x 16 bit memory from memories that are 1Kx8 bits
A12 up ME ACK
And about the NIOSII
More complicated: The Byte Enable signals, BE0
BE3, must be used to enable only the columns that
deal with the enabled bytes of the word.
Example: Each column is for 1 byte
of the word. Individual Enables for Bytes of NIOSII Bus
A10 A11
BUS
E E
DeMux Match
A12 up ME
E E
BE3 BE2 BE1 BE0

Anda mungkin juga menyukai