Patent ID: 7454537

Claim:
A method of using a single set of first-in-first-out buffers on an integrated circuit to synchronize and deskew data received from multiple serial data streams, comprising: deskewing the multiple serial data streams by writing data from each of the multiple serial data streams into a respective one of the first-in-first-out buffers only after an alignment character has been detected in that serial data stream; dynamically partitioning at least a given one of the first-in-first-out buffers into a deskew space and a synchronization space by writing the data from the serial data stream associated with that given first-in-first-out buffer into one or more slots in the given first-in-first-out buffer while all remaining slots in the given first-in-first-out buffer are allocated to the synchronization space; dynamically partitioning the synchronization space between underflow space and overflow space; synchronizing the multiple serial data streams by reading deskewed data from each of the respective first-in-first-out buffers using a common clock; decoding the multiple serial streams with 8B/10B decoder circuitry that receives the synchronized and deskewed versions of the multiple serial data streams from the single set of first-in-first-out buffers, wherein the integrated circuit comprises programmable logic; and providing the synchronized, deskewed, and decoded data from the multiple serial data streams to the programmable logic on the integrated circuit.