Fifo depth calculation


Assuming,
  • F1 = frequency of the writing side.
  • F2 = frequency of the reading side.
  • D = data burst.

Burst duration = D/F1
Data Rec'd, Rx= (D/F1) * F2, assuming simultaneous read for the duration.
Extra storage during FULL condition, Backlog = D-Rx = D(F1-F2)/F1

To accommodate latency or response time in the receiver, T, we need additional T * F1 locations.
Receiver also needs time to read all this backlog, so the idle time between bursts must be long enough. So this minimum time is called mop-up time = backlog/F2 = D * (F1-F2)/(F1.F2)

Note: For bursts of data which are written for partial amount time for a given number of cycles and read that are happening continously "or" are also read for a partial amount of time for a given number of cycles, the calculation has to account for the next burst.


{ 3 Reactions ... read them below or write one }

Anonymous said on September 20, 2006 at 4:40 PM

Please explain more clearly sir
if i take f1=100 and f2=20
then if burst is 100
according to formula i get 4 ...
Please explain clearly
If i take f1=20 f2=100
then how to claculate f1-f2 is -ve...

a metastable logic said on September 20, 2006 at 9:41 PM

Hi Anonymous:
4 is wrong, 8 is correct.

If your reading side is faster than writing, then you get an underflow condition.... In this condition, why do you need to calculate fifo depth?

vikas said on June 21, 2008 at 3:43 PM

Please can anyone explain this logic with an example...........it would be helpful to me..

Post a Comment

Your comments will be moderated before it can appear here.