# US 7,613,263 B2 · Clock and data recovery method and apparatus

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,613,263 B2
- Document ID: US7613263B2
- Status: Granted
- Kind: B2
- Application number: 10/793,149
- Filed: 2004-03-04
- Published: 2004-12-30
- Granted: 2009-11-03
- Earliest claimed: 2003-03-04
- Assignees: Altera Corporation
- Inventors: Daniel J. Allen
- Web page: https://patentgrep.com/patent/US7613263B2

## CPC

- H03L 7/00: Automatic control of frequency or phase; Synchronisation
- H03L 7/087: using at least two phase detectors or a frequency and phase detector in the loop
- H03L 7/091: the phase or frequency detector using a sampling device (H03L7/087 takes precedence)
- H03L 7/093: using special filtering or amplification characteristics in the loop (H03L7/087 - H03L7/091 take precedence)
- H04L 7/0331: {with a digital phase-locked loop [PLL] processing binary samples, e.g. add/subtract logic for correction of receiver clock (H04L7/0337 takes precedence)}
- H04L 7/0338: {the correction of the phase error being performed by a feed forward loop}
- H03L 2207/50: All digital phase-locked loop
- H04L 7/0008: {Synchronisation information channels, e.g. clock distribution lines}
- H04L 7/0337: {Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals}
- H03L: AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES (generation of oscillations H03B)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method and circuit for processing a serial data stream carrying data at a rate established by an underlying clock signal, the method and circuit involving: time-stamping each of the transitions of a sequence of transitions within the serial data stream to thereby generate a sequence of time stamps; and based at least in part on the sequence of time-stamps, recovering the data from the serial data stream.

## Claims

### Claim 1

A method of processing a serial data stream carrying data at a rate established by an underlying clock signal, said method comprising:
generating a plurality of oscillatory signals that are the same frequency and are separated in phase by substantially equal amounts;
generating a lap count which is a count of the number of times that a particular one of the plurality of oscillatory signals has gone through a complete cycle;
time-stamping each of the transitions of a sequence of transitions within the serial data stream to thereby generate a sequence of time-stamps, wherein time-stamping of each of the transitions of the sequence of transitions within the serial data stream involves capturing the state of said plurality of oscillatory signals and the lap count at the time of that transition; and
based at least in part on the sequence of time-stamps, recovering the data from the serial data stream.

### Claim 2 (depends on 1)

The method of claim 1 further comprising parallelizing the recovered data from the serial data stream.

### Claim 3 (depends on 2)

The method of claim 2 wherein parallelizing the recovered data from the serial data stream involves clocking the recovered serial data into a shift register and outputting the clocked-in recovered data in parallel in groups of n bits where n is an integer greater than one.

### Claim 4 (depends on 1)

The method of claim 1 wherein recovering the data from the serial data steam involves, based at least in part on the sequence of time-stamps for the sequence of transitions within the serial data stream, synthesizing the underlying clock signal and using the synthesized clock signal to recover the data from the serial data stream.

### Claim 5

A method of processing a serial data stream carrying data at a rate established by an underlying clock signal, said method comprising:
time-stamping each of the transitions of a sequence of transitions within the serial data stream to thereby generate a first sequence of time-stamps;
supplying a reference clock signal;
time-stamping each of the transitions of a sequence of transitions within the reference clock signal to thereby generate a second sequence of time-stamps; and
based at least in part on the first sequence of time stamps and the second sequence of time stamps, recovering the data from the serial data stream and recovering the underlying clock signal.

### Claim 6 (depends on 5)

The method of claim 5, further comprising generating a plurality of oscillatory signals that are the same frequency and are separated in phase by substantially equal amounts, wherein time-stamping of each of the transitions of the sequence of transitions within the serial data stream involves capturing the state of said plurality of oscillatory signals at the time of that transition.

### Claim 7 (depends on 5)

The method of claim 5 further comprising generating a plurality of oscillatory signals that are the same frequency and are separated in phase by substantially equal amounts, wherein time-stamping of each of the transitions of the sequence of transitions within the serial data stream involves capturing the state of said plurality of oscillatory signals at the time of that transition.

### Claim 8 (depends on 7)

The method of claim 7, wherein time-stamping of each of the transitions of the sequence of transitions within the reference clock involves capturing the state of said plurality of oscillatory signals at the time of that transition.

### Claim 9 (depends on 7)

The method of claim 7 further comprising generating a lap count which is a count of the number of times that a particular one of the plurality of oscillatory signals has gone through a complete cycle.

### Claim 10 (depends on 9)

The method of claim 9 wherein capturing the state of said plurality of oscillatory signals at each of the transitions of the sequence of transitions within the serial data stream also involves capturing the lap count at the time of that transition.

### Claim 11 (depends on 10)

The method of claim 10 wherein capturing the state of said plurality of oscillatory signals at each of the transitions of the sequence of transitions within the serial data stream also involves capturing the lap count at the time of that transition.

### Claim 12

A circuit for processing a serial data stream carrying data at a rate established by an underlying clock signal, said serial data stream including a sequence of transitions at locations in time determined by the underlying clock signal and data within the serial data stream, said circuit comprising:
a free-running loop oscillator for generating a plurality of oscillatory signals that are the same frequency and are separated in phase by substantially equal amounts, said free-running loop oscillator also including a lap counter for generating a lap count which is a count of the number of times that a particular one of the plurality of oscillatory signals has gone through a complete cycle;
a serial data stream capture module which during operation receives the serial data stream and for each of the transitions of the sequence of transitions captures a corresponding state of the free-running loop oscillator and the lap count as a time-stamp of that transition; and
a data recovery module which during operation recovers the data within the serial data stream based, at least in part, on the captured state for the sequence of transitions, said data recovery module including a processor component which analyzes the captured state for the sequence of transitions.

### Claim 13 (depends on 12)

The circuit of claim 12 further comprising a reference clock capture module which during operation receives a reference clock that is a sequence of reference clock transitions and which for each of the reference clock transitions of the sequence of reference clock transitions captures a state of the free-running loop oscillator, wherein the processing module uses the captured state for the sequence of reference clock transitions along with the captured state for the sequence of transitions within the serial data stream to recover the data within the serial data stream.

### Claim 14 (depends on 13)

The circuit of claim 13 wherein the data recovery module further comprises a shift register arranged to receive the serial data stream and output parallel data, and a clock generator that generates a synthesized clock for the shift register in response to instructions received from the processor component.

### Claim 15 (depends on 14)

The circuit of claim 14 wherein the data recovery module further comprises a second shift register arranged to receive a second the serial data stream and output corresponding parallel data, and a delay element which introduces a predetermined phase shift into the synthesized clock and provides the phase-shifted synthesized clock to the second shift register.

### Claim 16 (depends on 12)

The circuit of claim 12 wherein the free-running loop oscillator comprises a plurality of buffer stages connected in series to form a loop, wherein each of the buffer stages of the plurality of buffer stages introduces a substantially equal amount of delay into a signal which circulates around the loop when it is oscillating, said oscillator further comprising a plurality of taps each of which is associated with a different one of the buffer stages and outputs a signal that indicates the state of that buffer.

### Claim 17

A circuit for processing a serial data stream carrying data at a rate established by an underlying clock signal, said serial data stream including a sequence of transitions at locations in time determined by the underlying clock signal and data within the serial data stream, said circuit comprising:
a free-running loop oscillator;
a serial data stream capture module which during operation receives the serial data stream and for each of the transitions of the sequence of transitions captures a corresponding state of the free-running loop oscillator as a time-stamp of that transition;
a reference clock capture module which during operation receives a reference clock that is a sequence of reference clock transitions and which for each of the reference clock transitions of the sequence of reference clock transitions captures a state of the free-running loop oscillator; and
a data recovery module which during operation recovers the data within the serial data stream based, at least in part, on the captured state for the sequence of transitions within the serial data stream and the sequence of reference clock transitions, said data recovery module including a processor component which analyzes the captured state for the sequence of transitions,
wherein the data recovery module further comprises a first shift register arranged to receive the serial data stream and output parallel data, and a clock generator that generates a synthesized clock for the shift register in response to instructions received from the processor component, and
wherein the synthesized clock is a sequence of synthesized clock transitions, and said circuit further comprises a synthesized clock capture module which during operation receives the synthesized clock and for each of the transitions of the sequence of synthesized clock transitions captures a state of the free-running loop oscillator, wherein the data recovery module uses the captured state for the sequence of synthesized clock transitions to correct for undesired changes in the synthesized clock.
