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.

Async FIFO full generation when read and write frequencies are different

Status
Not open for further replies.

biju4u90

Full Member level 3
Joined
Dec 10, 2014
Messages
172
Helped
3
Reputation
6
Reaction score
3
Trophy points
18
Activity points
1,437
Hi,

https://www.edaboard.com/showthread...e-pointer-synchronising-for-asynchronous-FIFO

The mentioned link in this forum explains how read pointer comparison with write pointer in an async FIFO will not create any problem even if the read pointer is incremented continuously.

I think this is true when both read and write pointers are of same frequency. But what if the read clock is faster than the write clock, say 13 times faster? Suppose that FIFO write and read pointers are of 10 bit width. Since read pointer changes with every read clock, even if grey coding is used for the read and write pointer comparisons, multiple bit changes will be there for read pointer for every write clock cycles. Won't this result in wrong full signal generation?
 

Hi,

But what if the read clock is faster than the write clock, say 13 times faster?
Obviously the FIFO becomes empty.
Read needs to be disabled as long as the FIFO is empty.
As soon as there was a WRITE to the FIFO --> the FIFO is not empty anymore and reading is enabled.

-->
Read side:
12 clocks reading is disabled
then 1 clock reading is enabled.

--> resulting in equal READ and WRITE data rate.

Klaus
 

Hi,


Obviously the FIFO becomes empty.
Read needs to be disabled as long as the FIFO is empty.
As soon as there was a WRITE to the FIFO --> the FIFO is not empty anymore and reading is enabled.

Klaus

Suppose I write 700 datas initially and then starts reading so that FIFO will not become empty. I continue writing datas along with read too. Then?
In such a situation, there is a possibility that my read pointer - write pointer comparison will go wrong, right?
 

Hi,

OK.
You have a box.
Start with 700 eggs in it.
Put 5 eggs into the box every minute.
Take one egg out of the box every second = 60 eggs per minute.

Do you think the box will never become empty?

--> Then take a couple of boxes and start selling the eggs. You will become rich ;-)

Klaus
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top