IDT Device Controller
Theory of Operation
79RC32438 User Reference Manual
6 - 3
November 4, 2002
Notes
The endianess of the RC32438 is selected during boot configuration. Regardless of the selected endi-
aness, devices are connected to the RC32438 data bus in a right aligned manner, as shown in Figure 6.1.
8-bit device data is read and written on MDATA[7:0] and 16-bit device data is read and written on
MDATA[15:0].
Figure 6.1 Connecting Devices to the RC32438 Data Bus (Right Aligned)
The width of a device, 8-bits or 16-bits, is configured in the device size (DS) field of the device [0..5]
control register (DEV[0..5]C). The RC32438 performs byte gathering during read transactions and byte
scattering during write transactions, allowing word and half-word read and write operations to any size
device. The RC32438’s address bus is always driven with a byte address. 8-bit devices use MADDR[25:0],
and 16-bit devices use MADDR[25:1]. During write transactions to 16-bit, the byte write enable (BWEN[1:0])
signals are used to select byte lanes to be written.
The RC32438 supports four transaction types: a device read transaction, a burst device read transac-
tion, a device write transaction, and a burst device write transaction. Transaction parameters for each
device are programmed in the corresponding device [0..5] control register (DEV[0..5]C) and device [0..5]
timing control (DEV[0..5]TC) register. In particular, the wait/ack mode (WAM) bit in the DEVxC register
controls whether the WAITACKN signal operates as an Intel style wait signal or as a Motorola style
acknowledge signal. Although WAITACKN is classified as an asynchronous input, to support systems that
use master clock to generate it, asynchronous input setup and hold times are provided.
If the setup and
hold times are met for the assertion of WAITACKN, then the RC32438 is guaranteed to recognize it
on a specific rising edge of the clock.
By configuring the programmable parameters in the DEVxC and DEVxTC registers, Intel and Motorola
style bus transactions may be generated. Burst read transactions to devices which do not support burst
reads may be disabled by clearing the burst read enable (BRE) bit in the corresponding DEVxC register.
Burst write transactions to devices which do not support burst writes may be disabled by clearing the burst
write enable (BWE) bit in the corresponding DEVxC register. All writes to a device may be disabled by
setting the write protect (WP) bit in the corresponding DEVxC register.
Address decoding for each device chip select is controlled by the device [0..5] base (DEV[0..5]BASE)
and device [0..5] mask (DEV[0..5]MASK) registers. The device mask register is used to select which bits
are used for address decoding. When a bit in this register is a one, the corresponding address bit is active
in address comparisons. If a bit in this register is a zero, then the corresponding address bit does not partic-
ipate in address comparisons. All of the active address bits not masked by the device mask register are
compared to the value in the device base register. If they all match, then the corresponding device chip
select is asserted.
The device controller provides the control signals necessary to control external buffers, such as
74FCT245s, on the data bus (MDATA[15:0]). The buffer output enable (BOEN) pin is the enable for such
buffers, while the external buffer direction (BDIRN) pin controls the direction. During device transactions,
the BDIRN output is always in the opposite state of the RWN pin. The BOEN output is asserted during
device transactions if the buffer enable (BE) bit is set in the DEVxC register.
bit 0
0
1
bit 15
16-bit Device
bit 0
0
bit 7
8-bit Device
Big Endian
bit 0
1
0
bit 15
16-bit Device
bit 0
0
bit 7
8-bit Device
Little Endian