Patent ID: 7684478

Claim:
A method for determining an eye diagram suitable for analyzing performance of a data channel, comprising the steps of: a) receiving over the data channel and at a first circuitry in an integrated circuit (IC), a sequence of voltage samples asynchronously acquired from a data signal with period TD using a sample clock in the integrated circuit with period TS, wherein values of TD and TS may not be known, the data channel being an electrical data communication pathway between the IC and second IC; b) setting using a second circuitry, an initial value of an effective time period TSE for the sample clock; c) generating using a third circuitry, a sequence of time values TB in response to the value of TSE, wherein the sequence of time values TB has a correspondence with the sequence of voltage samples over a time period T; d) formulating using a fourth circuitry, an eye diagram by locating the sequence of voltage samples within the time period T at a corresponding one of the sequence of time values TB; e) determining using a fifth circuitry, a timing jitter for the eye diagram and saving a minimum determined value of the timing jitter as TJ(min) and the sequence of time values TB corresponding to TJ(min); and f) adjusting using a sixth circuitry, the value of TSE and repeating selected of the steps c)-e) until the value of TSE is greater than a predetermined value; wherein the sequence of voltage samples comprises a sequence of number K voltage samples V[K] where [K] is the number sequence 1, 2, 3, . . . K and V[K] =V( 1 ), V( 2 ), V( 3 ), . . . V(K) and the sequence of time values TB comprise a sequence of K time values TB[K]; wherein the initial value of TSE is set to a predetermined value DT and the value of TSE is incremented by DT if TSE is adjusted to be within a value T/K of a selected integer fraction of T; wherein generating the sequence of time values TB[K] comprises the steps of: multiplying the value of TSE by the sequence [K] thereby generating the sequence TSE[K]=(1·TSE), (2·TSE), (3·TSE), . . . (K·TSE); and setting TB[K]=TSE[K] modulo T; wherein formulating the eye diagram suitable for analyzing the performance of the one or more data channel comprises the steps of: g) inputting the set of values V[K] and TB[K] corresponding to the TJ(min); h) modifying the values of TB[K] using a correction function DC[K] thereby forming TBC[K], wherein each term of TBC[K] corresponds to each term of TB[K] modified by adding a corresponding term of DC[K]; i) formulating a new eye diagram using a set of values V[K], TBC[K]; j) determining a timing jitter of the new eye diagram; and k) saving the set of values V[K], TBC[K] if the timing jitter of the new eye diagram is less than TJ(min); and adjusting the correction function DC[K] and repeating from step h).