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.

[FIFO] Almost-Full/Almost-Empty - why needed?

Status
Not open for further replies.

ivlsi

Advanced Member level 3
Joined
Feb 17, 2012
Messages
887
Helped
17
Reputation
32
Reaction score
16
Trophy points
1,298
Activity points
6,861
H All,

Why Almost-Full and Almost-Empty signals are needed? How are they related to Asynchronous FIFO?

Thank you!
 

barry

Advanced Member level 5
Joined
Mar 31, 2005
Messages
5,264
Helped
1,127
Reputation
2,266
Reaction score
1,135
Trophy points
1,393
Location
California, USA
Activity points
28,815
If you are asking why ALMOST FULL in addition to FULL it's because in some systems, due to latency or other considerations, you may need to know if the FIFO is near its limit before it actually gets there.
 

ivlsi

Advanced Member level 3
Joined
Feb 17, 2012
Messages
887
Helped
17
Reputation
32
Reaction score
16
Trophy points
1,298
Activity points
6,861
Is it only a latency issue?

- - - Updated - - -

Is it not related to synchronization of data between SLOW and FAST domains using FIFO?
 

abhiverma812

Member level 2
Joined
Jan 14, 2008
Messages
48
Helped
3
Reputation
6
Reaction score
3
Trophy points
1,288
Activity points
1,602
Hey,

I will divide the answer into 2 parts, synchronous and asynchronous FIFOs.

Synchronous FIFO:
This is the case where both producer and consumer are working on same clock frequency. Consider the EMPTY condition in a 8 location FIFO. Write pointer (WP) and read pointer (RP) are at same location (say 000). Now consider FULL case. Let us say that producer has written to all 8 locations and WP has rolled back to location 000 after writing to 111. At the same time RP is still at 000. FIFO is FULL and WP=RP. As you can see that WP=RP (or Wp-RP= 0)is condition for both FULL and EMPTY. Thus, to differentiate the 2 we need to know if it was almost full or almost empty some clocks before. Let us say WP-RP=6, at this point it is almost full and when WP-RP=0 occurs we know that it is FULL. You can think of vica versa.

ASYNCHRONOUS FIFO:
Both producer and consumer are working on different clock frequency. Here we never use almost full and almost empty. Using them might result in deadlock situation. Rather we use n+1 bit WP and RP pointers.

Best Regards,
Abhishek
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top