FIFO - Electronics

Electronics

FIFOs are used commonly in electronic circuits for buffering and flow control which is from hardware to software. In hardware form a FIFO primarily consists of a set of read and write pointers, storage and control logic. Storage may be SRAM, flip-flops, latches or any other suitable form of storage. For FIFOs of non-trivial size a dual-port SRAM is usually used where one port is used for writing and the other is used for reading.

A synchronous FIFO is a FIFO where the same clock is used for both reading and writing. An asynchronous FIFO uses different clocks for reading and writing. Asynchronous FIFOs introduce metastability issues. A common implementation of an asynchronous FIFO uses a Gray code (or any unit distance code) for the read and write pointers to ensure reliable flag generation. One further note concerning flag generation is that one must necessarily use pointer arithmetic to generate flags for asynchronous FIFO implementations. Conversely, one may use either a "leaky bucket" approach or pointer arithmetic to generate flags in synchronous FIFO implementations.

Examples of FIFO status flags include: full, empty, almost full, almost empty, etc.

The first known FIFO implemented in electronics was done by Peter Alfke in 1969 at Fairchild Semiconductors. Peter Alfke was a Director at Xilinx.

Read more about this topic:  FIFO

Famous quotes containing the word electronics:

    We live in a highly industrialized society and every member of the Black nation must be as academically and technologically developed as possible. To wage a revolution, we need competent teachers, doctors, nurses, electronics experts, chemists, biologists, physicists, political scientists, and so on and so forth. Black women sitting at home reading bedtime stories to their children are just not going to make it.
    Frances Beale, African American feminist and civil rights activist. The Black Woman, ch. 14 (1970)