Lably
Skip to content

FIFO (electronic)

  • 14 min read
  • 8 chapters

Related on Lably

Through Electrical network, Word (computer architecture) and Circular buffer

A FIFO primarily consists of a pair of counters that serve as read and write memory address registers, an addressable memory array, and status and control logic.

The data stored in a FIFO typically have a fixed word size (number of bits), which is commonly referred to as the FIFO width. The maximum possible number of stored datums is known as the FIFO depth. Together, the width and depth determine the storage capacity of a FIFO.

FIFOs are used to exchange data between two hardware devices or between a hardware device and software. They are commonly used to exchange data between circuits that operate in different clock domains, and for buffering and flow control between data producers and consumers which, over finite intervals, operate at different data rates.

Interface ports

A FIFO has two electrical interfaces known as the write port and read port, through which it exchanges data and status information with external circuits.

Write and read agents

The external circuits connected to a FIFO's ports consist of a data producer (variously referred to as data source or write agent) that stores data in the FIFO and a data consumer (also known as data sink or read agent) that fetches the stored data. More specifically, the producer sends data to and receives status information from the write port, and the consumer receives both data and status from the read port.

Clock domain

Each port operates in the clock domain of the external circuit it is connected to, meaning that the port and external circuit share a common clock signal. The write port operates in the producer's clock domain and thus all write port signals are synchronized to the producer's clock. Similarly, the read port operates in the consumer's clock domain.

Sign in to keep reading

7 more chapters are free with a Lably account.

More in Computing and communication