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/Post a Comment/Comments

Your comments will be moderated before it can appear here.

  1. 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...

    ReplyDelete
  2. 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?

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

    ReplyDelete

Post a Comment

Your comments will be moderated before it can appear here.

Previous Post Next Post
ads1
Ads2