Home  ›  Hardware Design  ›  Hardware Design Site Archives  ›  Peripheral Components  ›  82355 BMIC: FIFO Implementation of 82355 Transfer Buffer
82355 BMIC: FIFO Implementation of 82355 Transfer Buffer

This document describes the issue associated with interfacing an external FIFO to the Transfer Buffer Interface (TBI) and outlines a software and hardware work-around solution.

Functional behavior

The 82355 incorporates two independent state machine to control the transfer protocol of the EISA interface and the Transfer Buffer Interface (TBI). During a transfer, the current transfer byte count information is only available to the EISA interface state machine. The EISA interface state machine is responsible for signaling the Transfer Buffer Interface's state machine to stop reading/writing when the terminal count is reached. The EISA interface will stop with the last byte (word or double word) of transfer.

During EISA READ's, the TBI state machine receives the "STOP" signal from the EISA interface state machine while transferring data out of the 82355 internal 24-byte FIFO. The "STOP" signal is synchronized with the last word to be transferred and the TBI state machine turns off with the last word transfer.

During EISA WRITE's, the TBI state machine receives the "STOP" signal after it has read data beyond the number of bytes specified (overreads by a maximum of 28 bytes). The overread bytes are flushed from the BMIC's internal FIFO when the next transfer is initiated.

FIFO Overhead problem

As described, the TBI during an EISA Write cycle will overread the transfer buffer memory. In applications which uses FIFO's to implement transfer buffer memory and perform back-to-back transfers, the TBI overread issue can cause valid data to be lost.

FIFO Implementation solution

The TBI overread issue can be defused by both software and hardware. The 82355 device software can be written to complete the current transfer before initiating the next transfer. This way, only data for one transfer is in the FIFO at any given time. This solution may have a performance impact for some applications.

The Hardware solution would require an external 22-bit Byte Counter and a Flip-Flop. The terminal count of the byte Counter is used to set the Flip-Flop which will disable the 82355 from reading to the external FIFO. The TREQ# line will need to be asserted for the 82355 to read (overread) "stale" data. The 82355 TEOP# (output) signal is used to RESET the Flip-Flop which enables 82355 reads to the FIFO.