I am currently working on USB 3.0. I have finished some of the modules in the receiver, However I have stuck up in designing the Elastic Buffer of the type Full Empty.
Please guide me in knowing the design for the same. Your help would be much appreciated.
Ok let me give u a brief info regarding what a Elastic buffer is. Its basically a Asynchronous FIFO, where in the write and read frequencies vary in a order of parts per million (ppm). So due to the varying frequencies a FIFO can either near to an overflow condition or near an underflow condition. Lets deal with both the conditions
1) Nearing an underflow -- Means to say that the read frequency is faster, inorder to avoid the underflow, we add unwanted bits called as (SKIP) bits. By adding these unwanted information on the buffer, it would not underflow.
2) Nearing an Overflow -- Meaning that the write frequency is faster, inorder to avoid the overflow, we remove bits called as (SKIP) (which are unwanted data bits) which are present in the FIFO. So by removing these bits the FIFO becomes emptier than before and thus an overflow is avoided.
So to answer your question, there should be status such as almost full, almost empty, full, empty and also some kind of logic which determines when to add or delete the SKIP bits from the bufffer.