Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

FIFO depth for async FIFO

Status
Not open for further replies.

sun_ray

Advanced Member level 3
Joined
Oct 3, 2011
Messages
772
Helped
5
Reputation
10
Reaction score
5
Trophy points
1,298
Activity points
6,828
How to calculate the FIFO depth of a FIFO when we use the FIFO to transfer data from one clock domain to another? Is there any minimum depth that is required?
 

sun_ray

Advanced Member level 3
Joined
Oct 3, 2011
Messages
772
Helped
5
Reputation
10
Reaction score
5
Trophy points
1,298
Activity points
6,828

binliu

Newbie level 4
Joined
Jan 27, 2012
Messages
7
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,339
It really depends on 1, the clock frequency different between the wrclk and rdclk, 2, package size ( meaningful data length between idles).

There are two extreme scenarios
1, with clock frequency difference to be infinity big ( one clock with f=0, and the other one is f=infinity), then no matter how big the fifo is, the fifo will filled up immediately

2, with clock frequency difference to be zero, (same clock frequency, i know we are talking about async case now), we just need a fifo with depth of 1 to absorb the phase difference

However, the package size should be considerate in the case that there are finite frequency difference between to two clocks. And the fifo size matters when data transfer from fast clock domain to slow clock domain. fifo should be big enough to swallow all the data coming from the fast clock domain before the slow clock domain take them out. there will be idle deleting on the slow clock domain. therefore, the fifo size is related to the package size, i.e., how many entries before the fifo see the next idle...

Hope this answer your question.



How to calculate the FIFO depth of a FIFO when we use the FIFO to transfer data from one clock domain to another? Is there any minimum depth that is required?
 

sun_ray

Advanced Member level 3
Joined
Oct 3, 2011
Messages
772
Helped
5
Reputation
10
Reaction score
5
Trophy points
1,298
Activity points
6,828
However, the package size should be considerate in the case that there are finite frequency difference between to two clocks. And the fifo size matters when data transfer from fast clock domain to slow clock domain. fifo should be big enough to swallow all the data coming from the fast clock domain before the slow clock domain take them out. there will be idle deleting on the slow clock domain. therefore, the fifo size is related to the package size, i.e., how many entries before the fifo see the next idle...

binliu

Your point number 1 and point number 2 is good. But your last but one passage that is quoted above describes the depth calculation in general and at a top view. I am looking for mor elaboratie description in detail and also if possible include some examples please.
 

alaparthi

Junior Member level 3
Joined
Jun 19, 2010
Messages
28
Helped
7
Reputation
12
Reaction score
3
Trophy points
1,283
Location
Irvine
Activity points
1,455
As mentioned by sun_ray, the general FIFO depth calculation is described many places.
But the minimum depth for async FIFO is little tricky.
The trick here is, the synchronization part of full/empty signals across rd and wr clk domains.
Take the case of FIFO depth = 2 or 4 and draw the waveforms for FIFO full/empty conditions assertion and de-assertion. Once FIFO is full, it stalls the wr side more than the required time as there will be delay in de-asserting the full condition notification to wr side.
You can notice that the same is eliminated when the FIFO depth is 8. The min FIFO depth for Async FIFO is 8.
 
Last edited:

sun_ray

Advanced Member level 3
Joined
Oct 3, 2011
Messages
772
Helped
5
Reputation
10
Reaction score
5
Trophy points
1,298
Activity points
6,828
alaparthi

Can you please answer of my following question
How to calculate the FIFO depth of a FIFO when we use the FIFO to transfer data from one clock domain to another?

I am looking for a detailed and more elaborate answer.
 

Ashik Ghona

Newbie level 5
Joined
Jan 9, 2012
Messages
8
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Bangalore
Activity points
1,325
Probabltl this will help you..

https://chipverification.blogspot.in/2008/04/depth-of-asynchronous-fifo.html#uds-search-results


alaparthi

Can you please answer of my following question
How to calculate the FIFO depth of a FIFO when we use the FIFO to transfer data from one clock domain to another?

I am looking for a detailed and more elaborate answer.

- - - Updated - - -

Probabltl this will help you..

http://chipverification.blogspot.in/2008/04/depth-of-asynchronous-fifo.html#uds-search-results


alaparthi

Can you please answer of my following question
How to calculate the FIFO depth of a FIFO when we use the FIFO to transfer data from one clock domain to another?

I am looking for a detailed and more elaborate answer.
 

sun_ray

Advanced Member level 3
Joined
Oct 3, 2011
Messages
772
Helped
5
Reputation
10
Reaction score
5
Trophy points
1,298
Activity points
6,828
This link is again a preliminary discussion in this regard.

- - - Updated - - -

Sorry to write that it does not serve my purpose.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top