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?

 

Answer:

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:

 

                                                                         
   

     Asynchronous

  
   

     Synchronous/Clocked

  
   

     simple operation

  
   

     more complex operation

  
   

     no clock used

  
   

     clock used

  
   

     slower cycle times

  
   

     faster cycle times

  
   

     legacy systems

  
   

     newer systems