Claims
- 1. A receiver for deserializing a stream of consecutive data bits, comprising:
a single clock which is adapted to generate a first plurality of clock phases; a sample generator which is adapted to sample the stream so as to generate initial data values of each of the consecutive data bits at times defined by the first plurality of clock phases; and digital circuitry which is adapted to:
group the initial data values into a second plurality of sampling phase sets, according to the clock phases at which the values were sampled, assign each of the sampling phase sets a respective grade responsive to at least some of the initial data values, select a decoding phase set from the sampling phase sets responsive to the respective grades, and decode the stream responsive to the initial data values of the decoding phase set to generate decoded values of the consecutive bits.
- 2. A receiver according to claim 1, wherein the single clock comprises a free-running clock driving a phase locked loop (PLL) oscillator having a period of oscillation substantially independent of the period of the consecutive data bits.
- 3. A receiver according to claim 1, wherein the first plurality of phases have a substantially equal separation in time from each other.
- 4. A receiver according to claim 3, wherein the separation in time is an integral sub-multiple of a period of the data.
- 5. A receiver according to claim 1, wherein the digital circuitry comprises a second plurality of initial grading modules which each assign the respective sampling phase sets the respective grade.
- 6. A receiver according to claim 5, wherein the digital circuitry comprises a second plurality of integrator blocks which each receive an output from the respective initial grading modules, and which integrate the output over time.
- 7. A receiver according to claim 5, wherein the digital circuitry comprises a main phase selector which selects the decoding phase set as the sampling phase set having a highest value of the grade.
- 8. A receiver according to claim 5, wherein the initial grading module comprises a third plurality of substantially similar circuits, each circuit being implemented to determine a partial sum of the respective grade.
- 9. A receiver according to claim 8, wherein the partial sum is evaluated by a predetermined function receiving values generated by three or more consecutive bits comprised in the stream of consecutive bits.
- 10. A receiver according to claim 8, wherein the initial grading module sums the partial sum of each circuit to generate a temporal grade as an output of the module.
- 11. A receiver according to claim 1, wherein the digital circuitry comprises a single bit corrector which overwrites the decoded value of one of the consecutive bits responsive to the decoded value and to at least one of the decoded values of the consecutive bit preceding the one of the consecutive bits and the consecutive bit following the one of the consecutive bits.
- 12. A receiver according to claim 11, wherein the single bit corrector overwrites the decoded value responsive to a comparison between the decoded value and the initial data value of the one of the consecutive bits determined at a phase different from the sampling phase set of the one of the consecutive bits.
- 13. A receiver according to claim 1, wherein the digital circuitry comprises a symbol alignment block which receives the decoded values of the consecutive bits and which is adapted to generate a symbol from the decoded values and to determine boundaries of the symbol.
- 14. A method for deserializing a stream of consecutive data bits, comprising:
sampling each of the consecutive data bits at times defined by a first plurality of clock phases generated by a single receiver clock so as to generate initial data values of each of the consecutive data bits; grouping the initial data values into a second plurality of sampling phase sets, according to the clock phases at which the values were sampled; assigning each of the sampling phase sets a respective grade responsive to at least some of the initial data values; selecting a decoding phase set from the sampling phase sets responsive to the respective grades; and decoding the stream responsive to the initial data values of the decoding phase set to generate decoded values of the consecutive bits.
- 15. A method according to claim 14, wherein the single receiver clock comprises a free-running clock driving a phase locked loop (PLL) oscillator having a period of oscillation substantially independent of the period of the consecutive data bits.
- 16. A method according to claim 14, wherein the first plurality of phases have a substantially equal separation in time from each other.
- 17. A method according to claim 16, wherein the separation in time is an integral sub-multiple of a period of the data.
- 18. A method according to claim 14, wherein assigning each of the sampling phase sets a respective grade comprises providing a second plurality of initial grading modules which each assign the respective sampling phase sets the respective grade.
- 19. A method according to claim 18, and comprising receiving an output from each of the respective initial grading modules and integrating the output over time.
- 20. A method according to claim 14, wherein selecting the decoding phase set from the sampling phase sets comprises selecting the decoding phase set as the sampling phase set having a highest value of the grade.
- 21. A method according to claim 14, and comprising determining a partial sum of the respective grade.
- 22. A method according to claim 21, wherein determining the partial sum comprises receiving values generated by three or more consecutive bits comprised in the stream of consecutive bits and evaluating the partial sum by a predetermined function responsive to the received values.
- 23. A method according to claim 21, and comprising summing the partial sums to generate a temporal grade.
- 24. A method according to claim 14, and comprising overwriting the decoded value of one of the consecutive bits responsive to the decoded value and to at least one of the decoded values of the consecutive bit preceding the one of the consecutive bits and the consecutive bit following the one of the consecutive bits.
- 25. A method according to claim 24, wherein overwriting the decoded value comprises overwriting the decoded value responsive to a comparison between the decoded value and the initial data value of the one of the consecutive bits determined at a phase different from the sampling phase set of the one of the consecutive bits.
- 26. A method according to claim 14, and comprising determining boundaries between symbols comprised in the decoded values.
- 27. A receiver for deserializing data conveyed on a first plurality of channels, comprising:
a single clock which is adapted to generate a second plurality of clock phases; and a first plurality of deserializers, respectively coupled to the first plurality of channels so as to receive a respective data stream as consecutive data bits, each deserializer comprising:
a sample generator which is adapted to sample the respective data stream so as to generate initial data values of each of the consecutive data bits at times defined by the second plurality of clock phases; and digital circuitry which is adapted to:
group the initial data values into a third plurality of sampling phase sets, according to the clock phases at which the values were sampled, assign each of the sampling phase sets a respective grade responsive to at least some of the initial data values, select a decoding phase set from the sampling phase sets responsive to the respective grades, and decode the respective data stream responsive to the initial data values of the decoding phase set to generate decoded values of the consecutive bits.
- 28. A receiver according to claim 27, wherein at least two of the first plurality of data streams have different clocks.
- 29. A receiver according to claim 27, wherein one of the deserializers comprises the single clock.
- 30. A receiver according to claim 27, wherein each of the first plurality of deserializers is adapted to generate a first plurality of symbols from the decoded values.
- 31. A method for deserializing data conveyed on a first plurality of channels, comprising:
generating a second plurality of clock phases from a single clock; conveying the second plurality of clock phases to a first plurality of deserializers; and coupling the first plurality of deserializers to the first plurality of channels so as to receive therefrom a respective data stream as consecutive data bits, each deserializer comprising:
a sample generator which is adapted to sample the respective data stream so as to generate initial data values of each of the consecutive data bits at times defined by the second plurality of clock phases, and digital circuitry which is adapted to:
group the initial data values into a third plurality of sampling phase sets, according to the clock phases at which the values were sampled, assign each of the sampling phase sets a respective grade responsive to at least some of the initial data values, select a decoding phase set from the sampling phase sets responsive to the respective grades, and decode the respective data stream responsive to the initial data values of the decoding phase set to generate decoded values of the consecutive bits.
- 32. A method according to claim 31, wherein at least two of the first plurality of data streams have different clocks.
- 33. A method according to claim 31, wherein one of the deserializers comprises the single clock.
- 34. A method according to claim 31, and comprising each of the first plurality of deserializers generating a first plurality of symbols from the decoded values.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Applications Nos. 60/341,525, filed Dec. 17, 2001 and 60/345,483, filed Jan. 3, 2002, which are incorporated herein by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60341525 |
Dec 2001 |
US |
|
60345483 |
Jan 2002 |
US |