• 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 20680
  • 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
  • grasshopper
    grasshopper over 12 years ago

    Here goes a suggestion

     

    Principles of Asynchronous Circuit Design: A Systems Perspective (European Low-Power Initiative for Electronic System Design) [Paperback]
    Jens Sparsø (Editor), Steve Furber (Editor)
     
    gh-

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • 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
  • glennramalho
    glennramalho over 12 years ago

    Also if you are interested, there is a famous paper on asynchronous FIFOs.

     

    http://www.sunburst-design.com/papers/CummingsSNUG2002SJ_FIFO2.pdf

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • abhinavpr
    abhinavpr over 12 years ago

     I have gone through that paper too but even there it is not explained.

    Plz somebody help me.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Paul Bibin
    Paul Bibin over 12 years ago

     FIFO is nothing but a set of registers.Normally used in highthroughput requirement systems.Data read /write when FIFO empty /full creates issues ,so we need to design additional control logic for the same.My suggestion is to understand syncronous FIFO first ,then undestand the problem of metastability and CDC reconvergence ,followed by grey code solution.Plenty of materials are available in the internet.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Preethi sam
    Preethi sam over 11 years ago

    Im also having a task of desigining Asyn. FIFO.. i have gone through that paper. please explain me about the gray pointer comparision.

    Thanks. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • KennyWylies
    KennyWylies over 11 years ago
    Hi, You should view video tutorial about that topice you should found excellent tutorial on it.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

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