Calculation of Asynchronous FIFO depth


I have to design an Asynchronous fifo. the specifications are as follows: Write Clock = 250MHz, Read Clock = 125MHz. Data Bus width = 32bits. Data is written in to the fifo in 2 write cycles ie. 64 bits. Data read out of the fifo is in 4 clocks ie. 8 bits. How will i calculate the depth of the fifo if the width is 32bits.

Asked By: aishwarya
On: Jan 25, 2007 5:41:33 AM

Comments(11)



explain briefly difference between that.... 1.reading freq > writing freq 2.writing freq > reading freq and consider some data width....... give some example too.......
hello sir i have a one doubt.........how to calculate fifo depth......if writing freq is greater than reading frequency and reading freq is greater than the writing freq......
Hi guys , Two cycles of input frequncy is equal to four cycles of output frequency. input side can write 2 * 32 bits. in two cycles of input frequency. Output side can able to read only 4 * 8 bits in 4 cycles of output frequency. so one 32 bit data remained in FIFO . From the above observation, IS FIFO DEPTH is one? Since the FIFO is asynchronous, we need extra one byte i.e 32bit + 1 byte . There in no one byte space is left in FIFO , WE need 32 bit + 32 bit . The Final solution is FIFO DEPTH 2
I think,fifo depth of 3 is enough,if write and read occurs simultaneously.
Halo Aishwarya or lingraj7vlsi I have a doubt in your fifo depth calculation. u said that the width of the data bus is 32bits(4 bytes).So for each and every 250Mhz clock cycle,u can transfer 4 bytes of data. So for every 4ns time period,we can transfer 4 bytes of data.And as a whole for 8 bytes of data, it takes only 8ns of time period to transfer the data.But ur calculation says that it will take 32ns.How come that. If am anything wrong,explain me clearly plz
Hi Aishwarya Ur understanding is correct. You r Welcome
Hi Aishwarya Consider an asynchronous FIFO, where in, write to the FIFO frequency is F1 and read from the FIFO frequency is F2. F1 > F2 (write is faster than read) FIFOs may be used for burst data transfers. In the above case, in order for the FIFO not to overflow due to high write rate, we have to have a FIFO of sufficient depth. The depth of FIFO is calculated as follows. If B is the burst of data written to the FIFO at F1 frequency, read at F2 and (remember) F1 > F2. Time taken to Write to the FIFO = B/F1 Data read from the FIFO in this time = (B/F1)*F2 Excess data remained un-read 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. So whatever the Backlog we get that is the required FIFO depth. 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) Ihope I answered your question. Have a nice day
Hi aishwarya, Thanks for u r reply. Can u give me an example for calculation of fifo depth for synchronous operation ? i.e given write and read clocks how do we calculate the depth? Regards, santhosh.
Mostly the criticality is in the asynchronous fifo operation. In the synchronous fifo, since both the write and the read clocks are same there is no much emphasis on the depth.
Hi In the earlier I have asked a question? How do we calculate the fifo depth for an application? Is fifo depth is same for synchronous and asysnchronous applications?
depth x by total time taken for read the data........ i hope u got????????
You have to be logged in to be able to post a comment. To login Click Here. First time? Signup It just takes a few minutes to sign up.
Members with Most Replies
Find Job Openings