5
Introduction
Steady increases in microprocessor operating frequencies and bus widths over recent years have challenged system designers to
find FIFO memories that meet their needs. To assist the designer, new FIFOs from Texas Instruments (TI) are available with
features that complement these microprocessor trends.
Higher data-transfer rates have dictated the need for FIFOs to evolve into clocked architecture wherein data is moved in and out
of the device with synchronous controls. Each synchronous control of the clocked FIFO uses enable signals that synchronize the
data exchange to a free-running (continuous) clock.
Since the continuous clocks on each port of a clocked FIFO can operate asynchronously to each other, internal status signals
indicating when the FIFO is empty or full can change with respect to either clock. To use a status signal for port control, it is
synchronized to the port’s clock on a clocked FIFO. Synchronization of these signals with flip-flops introduces metastability
failures that increase with clock frequency. TI uses two-stage flag synchronization to greatly improve reliability.
Higher clock frequencies augment raw speed, but greater bandwidth is also achieved by increasing the data width. Wider
datapaths can have the associated cost of large board area due to increased package sizes. New compact packages for TI’s FIFOs
reduce this cost.
Clocked FIFOs
Clocked FIFOs have become popular for relieving bottlenecks in high-speed data traffic. Data transfers for many systems are
synchronized to a central clock with read and write enables. These free-running clocks can be input directly to a clocked FIFO
with the same enables controlling its data transfer on the low-to-high transition of the clock.
Reducing the number of clocks keeps the interface simple and easy to manage. Extra logic is needed to produce a gated pulse
when using a FIFO that accepts a clock only for a data transfer request. The generated clock signal is a derivative of the master
clock with a margin of timing uncertainty. At high clock frequencies, this timing uncertainty is not tolerable and costly
adjustments are needed.
Additional logic also is conserved by implementing flag synchronization on the clocked FIFO. Tracking is done to generate flags
that indicate when the memory is empty or full. In many applications, the input and output to the FIFO are asynchronous and the
flag signals must be synchronized for use as control. A read is not completed on the FIFO if no data is ready , so the EMPTY signal
is synchronized to the read clock. This synchronous output-ready (OR) flag is useful for controlling read operations. Likewise,
the FULL signal is synchronized to the write clock, producing the input-ready (IR) flag.
Flag Synchronization
As previously explained, one of the advantages of the clocked FIFO is the on-board synchronization of the EMPTY and FULL
status flags when the input and output are asynchronous. In one method of synchronization, a single flip-flop captures the
asynchronous flag’ s value (see Figure 1). W ith this method, the rising transition of data can violate the flip-flop’ s setup time and
produce a metastable event (metastability is a malfunction of a flip-flop wherein the latch hangs between high and low states for
an indefinite period of time).