MEMORY INTERFACING
The
number
of
wait states for same-bank accesses applies only to back-to-back cycles
(without intervening idle bus time) to the same bank of DRAMs. Because the controller
must allow the DRAMs to precharge before starting the access, address pipelining does
not speed up the same-bank cycle; the number
of
wait states
is
identical with
or
without
address pipelining.
The
numbers in Table 6-2 are affected
by
DRAM
refresh cycles. All DRAMs require
periodic refreshing of each data cell to maintain the correct voltage levels. An access to
a memory cell, called a refresh cycle, accomplishes the refresh. During
one
of
these
periodic refresh cycles, the
DRAM
cannot respond to processor requests.
Although the distributed
DRAM
refresh cycles occur infrequently, they can delay the
current access so that the current access requires a total of up to four wait states (for the
cases marked with an asterisk
(*»
or
eight wait states (for the
other
cases).
6.3.3 DRAM Controller
The
design in this chapter
is
a 3-CLK pipelined
DRAM
controller. The timing analysis is
done
at
20
MHz.
The
design can
be
scaled to match the speed
of
your design.
Other
variations for
DRAM
control are discussed following the sample system.
6.3.3.1
3-ClK
DRAM
CONTROllER
Figure
6-6
shows a schematic
of
the 3-CLK
DRAM
controller. The
DRAM
array con-
tains two banks of 32-bit-wide DRAMs. The top and bottom halves of the pictured array
represent the two banks, which
are
each divided vertically along the four bytes for each
doubleword.
The
DRAM
chips used to create
the
DRAM
banks can be
of
any length (N), and they
can
be
one, four
or
eight bits wide.
If
Nx1
DRAM
chips are used,
64
chips are required
for the two banks; if
Nx4
DRAM
chips are used,
16
chips are required; if
Nx8
DRAM
chips are used, only 8 chips are required. The banks in Figure 6-6 are made from eight
256x8
DRAM
modules,
but
another type of
DRAM
can be substituted easily.
Two Row Address Strobe (RAS) signals are generated by the controller, one for each
bank.
The
top bank
is
activated by RASO# and contains the
DRAM
memory locations
for which the Inte1386
DX
microprocessor address bit A2
is
low. The bottom bank is
activated by
RAS1#,
which corresponds to Intel386
DX
microprocessor addresses for
which A2
is
high.
Each
of
the 32
data
lines
of
the
Intel386
DX
microprocessor are connected to one
DRAM
data
bit from each bank.
If
Nx1
DRAMs are used, the corresponding data line
is
connected to both the Din and
Dout
pins.
If
Nx4
or
Nx8
DRAMs are used, each
data
line is connected only to the corresponding I/O pin.
Each bank has four Column Address Strobes
(CAS#);
one for each byte of the Intel386
DX
microprocessor
data
bus.
The
Intel386
DX
microprocessor Byte Enable Signals
(BE3#-BEO#)
map to
the
active bank's CAS signals. CASO# is generated by OR-ing
6-14