Expansion Bus I/O Port Operation
8-18
Figure 8–12. FIFO Read Mode – With Glue
XA1
XA2
XA3
XA4
D1
D2
D3
D4
XFCLK
XCEx
XBE[3:0], XA[5:2]
XWE
XRE
XOE
REN = XCEx + XRE
OE = XCEx + XOE
XD[31:0]
8.4.2.3
Programming Offset Register
The programmable offset registers of the FIFO are used to hold the offset val-
ues for the flags that indicate the condition of the FIFO contents.
The programmable offset registers of the FIFO must be programmed in con-
secutive cycles and read in consecutive cycles. In addition, the reader cannot
read from the FIFO until the writer has programmed the offset registers. This
should not be a problem, since the FIFO is not read until it has been written
to. The writer should not write to the FIFO until the offset registers have been
programmed.
For programming (or reading) the offset registers, back-to-back accesses
must be done. For example, the first XFCLK edge with the program input to
the FIFO low programs the PAE register, and then the second XFCLK edge
programs the PAF register. Also, for 9-bit or large 18-bit FIFOs, it is common
to require two or three write cycles to fully program each register. The first write
programs the LSB, the second write programs the middle bits and the third
write programs the high bits.
A general-purpose output (DMACx or TOUTx) can be used to control whether
FIFO reads/writes are done to the FIFO memory or to the programmable offset
register of the memory. Or the XA[5:2] signals can be decoded to control when
the FIFO offset register is accessed.