Replacing asynchronous FIFO's with synchronous FIFO's

Question: - What design considerations are there when converting from an asynchronous FIFO to a synchronous one?  - What is different about designing with synchronous FIFOs?  - Can you operate a synchronous FIFO as an asynchronous one?

 

Answer:

Synchronous FIFO's must include clocks, but the clocks do not have to be free-running. This means that you are allowed to drive RCLK or WCLK only when you want to read or write into the FIFO. This is similar to the way /R and /W strobes work in an asynchrous FIFO. So, yes, it is possible to run a synchronous FIFO as asynchronous one. What you need to be aware of is that the Empty Flag (/EF) and Full Flag (/FF) are both synchronous to one of the clocks. They depend on the rising edge of their respective clocks to be updated. /EF waits until the next rising edge of RCLK in order to be updated while /FF waits for the next rising edge of WCLK. This concept is explained in more detail on page 7 of the application note "Understanding Synchronous FIFOs" (Understanding Sychronous FIFOs). Please refer to this application note for further information.