What's the difference between an elastic buffer and an asynchronous FIFO? Are those just two different names for the same circuit?
Electronic – What’s the difference between an elastic buffer and an asynchronous FIFO
digital-logic
Related Topic
- VGA controller using FIFO memory, discrete ICs and Arduino Uno/Mega
- Electrical – the difference between excitation table and truth table
- Electronic – What’s the difference between 74LVC1G74 and 74LVC2G74, finally
- Electronic – What’s the difference between chip families
- Electronic – the main difference between a decoder and a demultiplexer
- Electronic – Asynchronous FIFO design with PULSE synchronizer
Best Answer
Yes, they pretty much describe the same thing. There might be some nuances implied by context.
An "elastic buffer" is usually found in bit-serial communications circuits, so they are often of limited width (e.g., just one bit) and limited depth. They are never intended to be completely empty or completely full. They are used to align incoming data with a separate reference signal, or align multiple separate data channels with each other.
An asynchronous FIFO is usually used to transfer multiple-bit words from one clock domain to another, and so are typically more than one bit wide and may be considerably deeper as well.
Because of these differences, the implementation technology might be different, too. They both require some memory with "write" and "read" pointers, but small elastic buffers might be built entirely with flip-flops rather than using a block of static RAM.