FIFO memory are integrated circuits (ICs) that buffers and stores data. All memory chips have input and outputs. FIFO chips store this data in a memory stack with a "First-In First-Out" style. This means that the data that is stored first is removed first. FIFO depth is the term given to the amount of memory that can be stored.
FIFO memory is used for buffering applications or when data needs to be stored temporarily. This is ideal for high speed communications which could lose data.
FIFO inputs and outputs can be unidirectional or bidirectional. This will depend on the device. They can also feature programmable flags.
FIFO memory chips come in a standard semiconductor package, such as an LQFP, PLCC or SOIC.
A synchronous FIFO is where the reading and writing function is carried out by the same clock. Therefore an asynchronous FIFO uses different clocks for reading and writing.