Patent ID: 7515664

Claim:
A method of recovering data in an asynchronous environment using two programmable delay modules receiving input data, the delay modules having taps with outputs providing ascending delay values, the method comprising: selecting a monitoring window size covering a number of the taps; selecting one of the taps as a center tap of the monitoring window; designating a first one of the delay modules as a data delay module for providing output data and initializing the data delay module to have an output provided from the center tap; designating a second one of the delay modules as a monitor delay module; determining clock drift by varying the tap outputs from the monitor delay module within the monitor window and comparing an output of the monitor delay module output with the data delay module output; compensating for clock drift by adjusting the center tap location; choosing first breakpoints located a number of the taps from the center tap of the monitoring window greater than one half of a size chosen for the monitoring window; scanning a tap point of the monitor delay module through tap locations within the monitoring window and if an edge from the input data is detected from a given one of the taps, comparing the given tap output with the output from the data delay module to determine if a mismatch occurs, and if there is a mismatch identifying presence of an edge within the monitoring window; shifting the center tap for the monitor delay module and the data delay module one tap in a direction away from the monitor delay device tap point when the mismatch is identified; and determining if the monitor window center tap reaches a first breakpoint after the shifting step and if not returning to the scanning step.