Asynchronous vs Synchronous(Clocked) FIFOs

Question: - What is the difference between clocked and synchronous FIFO's? - What different types of FIFO's are there? - Why should one prefer one type over another?



Cypress' asynchronous FIFOs can be classified as the "first" generation FIFO's. None of their ports have a clock and the device itself has no reference clock. READs and WRITEs are based on the assertion of read and write signals, and are asynchronous (not tied to any clock signal).

Clocked and synchronous FIFOs are essentially the same, except that clocked FIFOs were the first FIFOs with 2 clock interfaces released by Cypress. Later generations of clocked FIFOs were named "synchronous" FIFOs. Synchronous FIFOs have a clock on each port with its associated enable signals. Read and write operations occur on the rising edge of the clock if the respective signals are enabled. Each port, however, can run independently from the other so different clock rates are acceptable.

Below is a partial list of trade-offs of using asynchronous or synchronous FIFO's:







     simple operation


     more complex operation


     no clock used


     clock used


     slower cycle times


     faster cycle times


     legacy systems


     newer systems