• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Logic Design
  3. Asynchronous FIFO design

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 64
  • Views 20683
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Asynchronous FIFO design

abhinavpr
abhinavpr over 12 years ago

 Hi,

         I am new to logic design and trying to design an Asynchronous FIFO. can somebody suggest some good docs to read?

 

regards,

abhinavpr

  • Cancel
Parents
  • abhinavpr
    abhinavpr over 12 years ago
    Thanks for the response. The book is goond for understanding the aspects of asynchronous design but the FIFO presented in the book is somewhat peculiar and uses shift register and not a generic fifo. However i came across a paper by cliff cummings on FIFO design which was very basic and well explained.

    As it seems that paper is quite famous  i would like to ask some question regarding the design in the paper or Async FIFO design in general as the design is very basic

    1) In the design 2 FF synchronizer is used for both read pointer and write pointer . won't it depend on clock domain crossing?as from slow to fast CDC using a 2 FF synchronizer is fine but from fast to slow CDC the 2 FF design may not work. so should we be using different synchronizer at fast to slow CDC and slow to fast CDC.

    2)  Full and empty check :  He has written that the updation would be immediate but i think differently,
        assuming a situation where W_clk is faster than R_clk, two cases would arrive
         a) when w_clk is marginally faster than the R_clk then the Rpointer value in the write pointer domain would arrive 2 rclk cycles later
              and hence FIFO FULL would be asserted at FIFO depth -2.
        
         b) when W_clk is much faster than the R_clk then the Rpointer value in the write pointer domain would arrive 2 rclk cycles later
              and hence FIFO FULL would be asserted at FIFO depth - (some value).
            in both the case the FIFO FULL detection is not immediate. and same goes for empty check condition too (applying different set of conditions).

     plz enlighten me on the issue.

    regards,

    abhinavpr
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • abhinavpr
    abhinavpr over 12 years ago
    Thanks for the response. The book is goond for understanding the aspects of asynchronous design but the FIFO presented in the book is somewhat peculiar and uses shift register and not a generic fifo. However i came across a paper by cliff cummings on FIFO design which was very basic and well explained.

    As it seems that paper is quite famous  i would like to ask some question regarding the design in the paper or Async FIFO design in general as the design is very basic

    1) In the design 2 FF synchronizer is used for both read pointer and write pointer . won't it depend on clock domain crossing?as from slow to fast CDC using a 2 FF synchronizer is fine but from fast to slow CDC the 2 FF design may not work. so should we be using different synchronizer at fast to slow CDC and slow to fast CDC.

    2)  Full and empty check :  He has written that the updation would be immediate but i think differently,
        assuming a situation where W_clk is faster than R_clk, two cases would arrive
         a) when w_clk is marginally faster than the R_clk then the Rpointer value in the write pointer domain would arrive 2 rclk cycles later
              and hence FIFO FULL would be asserted at FIFO depth -2.
        
         b) when W_clk is much faster than the R_clk then the Rpointer value in the write pointer domain would arrive 2 rclk cycles later
              and hence FIFO FULL would be asserted at FIFO depth - (some value).
            in both the case the FIFO FULL detection is not immediate. and same goes for empty check condition too (applying different set of conditions).

     plz enlighten me on the issue.

    regards,

    abhinavpr
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information