Continue to Site

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.

Calculate depth or size FIFO

Status
Not open for further replies.
You need to calculate the bandwidth in and out, more specifically the arrival and consumption rate of new valid data (ignoring idle clocks). Of course on the long term there must be an equilibrium of the rate in and out, otherwise no FIFO will be ever able to hold the data. On the short term, the worst case arrival and least consumption determine the backlog of data you need to store. I.e. if your consumption unit can be stalled for 100 cycles and in this time there can be 100 data units arriving, your FIFO needs to be 100 entries. Unless this scenario can occur twice in a row (so before the processing unit has the chance to empty the FIFO, in which case the scenario is actually 200 incoming data to be stored. Etc...

This can be done either intuitively (estimating the worst worst worst case scenario, as I did above) or using formal mathematics (search for Google on "Queuing theory").

**broken link removed**
 

Have a look @
**broken link removed**

From: neelesh
Posted : 4/23/2004 4:37:57 AM some fact about selection of fifo depth

Consider an asynchronous fifo where in write to the fifo is at frequency of F1 and read from the fifo is at frequency of F2. F1 > F2 (write is faster than read)

Fifos are handy, when you have burst data transfers, In the above case, in order for the fifo not to overflow due to high write rate. We make calculations as shown below.

Think of a B burst of data written to the fifo at F1 frequency. read at F2 and F1> F2

Time taken to Write to the fifo = B/F1
Data read from the fifo in this time = (B/F1)*F2
Excess data remains in the fifo = Backlog =
B- (B/F1)*F2

Hence to have no loss of the data, fifo depth should be chosen long enough to accomodate the excess data. The read side may need extra time to read this excess data which is called mop-up time and is calculated as
mop-up time = Backlog/F2 = B.(F1-F2)/(F1*F2)

tut..
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top