Abstract:
A method and apparatus for equalizing a reflection in a reflective high speed serial link. The method involves obtaining an amplitude and delay time of a compensating pulse that is transmitted in response to a pulse transmitted on the serial link. The apparatus comprises a programmable delay element and a driver stage configured to transmit a delayed and amplitude adjusted version of a pulse transmitted on the serial link. A method for equalizing a plurality of reflections in a reflective high speed serial link. The method involves obtaining an amplitude and delay time of a first compensating pulse and an amplitude and delay time of a second compensating pulse. The method further involves transmitting the first compensating and second compensating pulses in response to a pulse transmitted on the serial link.

Description:
FIELD OF THE INVENTION  
       [0001]    Aspects of the present invention relate to high speed serial data links. More particularly, aspects of the present invention relate to equalization of a high speed serial data link by transmitting compensating pulses to cancel out the effects of reflections caused by impedance discontinuities in the high speed link. 
       BACKGROUND  
       [0002]    A receiver of a high speed serial data link may be subject to noise caused by impedance discontinuities caused by connectors, amongst other things. Such noise may limit the data rate of the link. As data rates continue to increase, the impedance discontinuities may cause reflections that occur many unit intervals after an initial transition occurs (e.g. when a pulse is transmitted). These reflections may result in significant inter-symbol interference to later transmitted bits, which interference may be difficult to compensate for at the receiver. 
         [0003]    The prior art includes techniques to deal with interference. For example, decision feedback equalization (DFE) is one current receiver technique for removing such inter-symbol interference. However, DFE typically requires a significant amount of integrated circuit die area and power. Current DFE techniques require one tap for each unit interval of time to be compensated. Hundreds of taps may be required to equalize a 10 Gbps link having 3.5 ns of delay between the transmitter and receiver. In addition, current DFE techniques result in a significant latency hit because a bit must be equalized before its value is determined. Moreover, conventional equalization techniques at the transmitter side of the data link typically make use of the first few bits after the transmitted bit for equalization. That is, transmitter equalization typically cannot handle impedance discontinuities that cause reflections many unit intervals after a bit transition occurs. Hence, there is a need in the art for improved techniques to deal with noise, inter-symbol interference, reflections, and other problems encountered when using high speed serial data links. 
       SUMMARY  
       [0004]    One aspect of the present invention involves a method for equalizing a reflection in a reflective high speed serial link. The method involves obtaining a delay time T for a compensating pulse, obtaining an amplitude A for the compensating pulse, and transmitting the compensating pulse, having an amplitude A, at a time T after a pulse is transmitted on the data link. 
         [0005]    Another aspect of the present invention involves an apparatus for equalizing a reflection in a reflective high speed serial link. The apparatus includes a programmable delay element having an input port and an output port, the input port in electrical communication with a transmitter output of a transmitter of a high speed serial link. The apparatus further includes a driver stage having a driver input and a driver output, the driver input in electrical communication with the output port of the programmable delay element and the driver output in electrical communication with a channel input of a channel of the high speed serial link. The programmable delay element is configured to delay a pulse transmitted by the transmitter and forward the delayed pulse to the driver stage. The driver stage is configured to transmit a compensating pulse over the channel by adjusting an amplitude of the delayed pulse. 
         [0006]    Another aspect of the present invention involves a method for equalizing a plurality of reflections in a reflective high speed serial link. The method involves obtaining a first delay time T 1  for a first compensating pulse, obtaining a first amplitude A 1  for the first compensating pulse, and transmitting the first compensating pulse, having an amplitude A 1 , at a time T 1  after a pulse is transmitted on the data link. The method further involves obtaining a second delay time T 2  for a second compensating pulse, obtaining a second amplitude A 2  for the second compensating pulse, and transmitting the second compensating pulse, having an amplitude A 2 , at a time T 2  after the pulse is transmitted on the data link. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0007]      FIG. 1  depicts one embodiment of a high speed serial data link employing a programmable delay element and a driver stage to implement a floating tap finite impulse response equalizer. 
           [0008]      FIG. 2  depicts a flowchart illustrating one method for setting the programmable delay and amplitude of a compensating pulse generated by the high speed serial data link of  FIG. 1 . 
           [0009]      FIG. 3  depicts a flowchart illustrating one method for determining the optimal delay of a compensating pulse generated by the floating tap finite impulse response equalizer. 
           [0010]      FIG. 4  depicts a flowchart illustrating one method for determining the optimal amplitude of a compensating pulse generated by the floating tap finite impulse response equalizer. 
           [0011]      FIG. 5  depicts a flowchart illustrating one method for determining the optimal delay and pulse amplitude for a floating tap FIR equalizer with multiple floating taps. 
       
    
    
     DETAILED DESCRIPTION  
       [0012]    One embodiment of the present invention may employ a programmable delay element and a driver stage to equalize reflected energy of a linear, time-invariant high speed serial data link. This equalization technique is relatively inexpensive to implement and typically does not add latency to the link. By transmitting waveforms designed to cancel unwanted reflected energy (equalizing the reflected energy), the high speed serial link may operate at higher data rates. 
         [0013]      FIG. 1  depicts one embodiment of a high speed serial data link  10  employing a programmable delay element  12  and a driver stage  14  to implement a floating tap finite impulse response (FIR) equalizer  16 . The high speed serial data link  10  typically includes a transmitter  18 , a channel  20  and a receiver  22 . The high speed serial data link  10  typically obeys the fundamental laws governing linear, time-invariant systems. That is, the channel  20  may be modeled as a linear, time-invariant system. Channel linearity means that the relationship between the input and output of the channel  20  satisfies the superposition property. This means that if x(t), the input to the channel, is the sum of two component signals: 
         [0000]        x ( t )= a*x   1 ( t )+ b*x   2 ( t ), 
         [0000]    then y(t), the output of the channel, will be: 
         [0014]    y(t)=a*y 1 (t)+b*y 2 (t), where a and b are constants and y n (t) is the output resulting from the sole input x n (t). 
         [0015]    Time invariance means that whether an input is applied to the channel now or T seconds from now, the output will be identical, except for a time delay of T seconds. That is, if the output due to input x(t) is y(t), then the output doe to input x(t-T) is Y(t-T). 
         [0016]    Thus, for a linear, time-invariant channel, a pulse transmitted at any time over the channel will behave exactly the same as any other pulse transmitted over the channel, independent of prior pulses which have been transmitted over the channel. One embodiment makes use of the linear, time-invariant properties of channel  20  to send pulses at certain times to effectively cancel out the effects of reflections and noise in the high speed serial data link  10 . 
         [0017]    High speed signals traveling over the high speed serial data link  10  may be subject to signal reflections caused by impedance discontinuities. Such impedance discontinuities may be caused by various elements such as vias, connectors, trace impedance variations, cables and packages. Each impedance discontinuity typically results in reflected energy that may result in noise at the receiver  22 . As data rates continue to increase, these impedance discontinuities may result in reflections that occur many bit times after an initial bit transition. These, reflections may cause significant inter-symbol interference that may be difficult to remove at the receiver. 
         [0018]    One embodiment equalizes reflected energy by transmitting waveforms designed to cancel unwanted energy, allowing the link to operate at higher data rates. Because the channel is linear, time-invariant, a reflected pulse due to a discontinuity retains the basic shape of the initial transmitted pulse. That is, the reflected pulse is time delayed and is of lower amplitude due to loss in the channel but the basic shape remains the same. Therefore, a compensating pulse may be aligned with the reflected pulse at the transmitter to cancel out the reflected pulse so that no reflection is received at the receiver to cause inter-symbol interference. 
         [0019]    It is to be appreciated that for a linear data link, the compensation may be determined based on bit transitions or based on when logic ones are sent. Even though certain channels (e.g., a channel employing differential signals) may send a logic zero with a certain waveform pattern, that pattern is contained in the waveform shape when a logic zero, logic one, and logic zeros are sent forever after the logic one on the channel. Thus, certain embodiments will be described based on bit patterns by way of illustration and not limitation. 
         [0020]    Referring again to  FIG. 1 , the programmable delay element  12  and inverting gain stage  14  may be employed to create the floating tap  16  of a FIR equalizer  24 . It is to be appreciated that multiple floating taps  16  may be employed to compensate for multiple reflections. The programmable delay element allows the compensating pulse to be delayed for many bit time periods (or unit intervals) after a logic one is sent, resulting in a floating tap FIR equalizer. 
         [0021]    In one embodiment, the programmable delay element  12  may be programmed in unit intervals. That is, compensating pulses may be sent at bit intervals. At very high data rates, sending compensating pulses at bit intervals typically provides sufficient time delay resolution to cancel the reflected energy. Other embodiments may provide higher or lesser programmable delay resolution. The programmable delay may cover a delay range sufficient to compensate multiple reflections (i.e., a sufficient length of time to allow the channel  20  to reach a quiescent state after a pulse is sent). For example, a programmable delay of up to ten nanoseconds may be employed by one embodiment to equalize a channel twenty inches long with a channel delay of 175 picoseconds per inch that operates at a data rate of 10 Gbps. The channel has a typical delay of about 3.5 ns from the transmitter to the receiver. More generally, the maximum delay may be determined as T Dmax =t d *L*R, where t d =channel propagation delay per inch, L=length of the channel (in inches) and R=number of reflections to be compensated. In some embodiments, the programmable delay may be determined in increments of unit intervals. Note that other embodiments may provide more or less overall delay. 
         [0022]      FIG. 2  depicts a flowchart illustrating one method to set the delay and amplitude of a compensating pulse to equalize a reflection in a reflective high speed serial data link. Initially, operation  30  is performed. Operation  30  determines the optimal time delay T for the compensating pulse. Then, operation  32  is performed. It is to be appreciated that because the high speed serial data link is approximately a linear, time-invariant system, changing the amplitude of the compensating pulse generally does not affect the optimal time delay of the pulse and changing the time delay of the pulse generally does not affect the optimal pulse amplitude. Accordingly, the time delay and amplitude of the compensating pulse may be determined independently of each other and in any order. 
         [0023]    Operation  32  determines the optimal pulse amplitude for the compensating pulse. In one embodiment, the gain may be adjustable in increments of 10 millivolts up to a maximum of about ten percent of the amplitude of the pulse transmitted on the data link. 
         [0024]    Finally, operation  34  is performed. Operation  34  sets the programmable delay of delay element  12  to the optimal delay T and the gain of the gain stage  14  to the optimal amplitude. It is to be appreciated that because the channel is approximately linear and time-invariant, once the delay and gain have been set, data may be transmitted over the high speed serial data link without further adjustment. The equalizer automatically transmits a compensating pulse T seconds after a logic one is transmitted. (i.e., every time a logic one is transmitted, a compensating pulse is transmitted T seconds later to cancel out the reflected energy caused by an impedance discontinuity). 
         [0025]      FIG. 3  depicts a flowchart illustrating one method for determining the optimal delay of a compensating pulse (operation  30  of  FIG. 2 ). Initially, operation  40  is performed. Operation  40  sets the compensating pulse amplitude to a nominal value. In one embodiment, the nominal amplitude may be set to five percent of the amplitude of the pulse transmitted on the data link. 
         [0026]    Then, operation  42  is performed. Operation  42  sets the delay value to a starting delay. In one embodiment, the starting delay is zero seconds. Then, operation  44  is performed. Operation  44  sets the programmable delay element to the desired compensating pulse delay time. 
         [0027]    Next, in operation  46 , the transmitter repeats a test pattern a sufficient number of times so that an eye pattern of the inter-symbol interference may be observed at the receiver. In one embodiment, the test pattern may be to send a single pulse (i.e., a bit pattern of 0000 . . . 0001000 . . . 000). The length of the test pattern may be set to allow multiple reflections to occur. For example, the channel being compensated may have a channel delay of about 175 picoseconds/inch and employ a test pattern with a length of about 525 picoseconds/inch to allow for three reflections (i.e., for a 20 inch channel, the test pattern would have a duration of about 10 nanoseconds). 
         [0028]    An eye pattern is a multi-valued function that displays voltage as a function of time. The time window spanning the x axis is typically less that two unit intervals of a serial data stream. Subsequent data transitions are superimposed. An eye pattern may be used to determine both horizontal signal characteristics (e.g., eye width, jitter, rise time) and vertical attributes (e.g., eye height, eye amplitude, vertical noise). That is, the eye opening may be used in one embodiment to determine optimal delay and amplitude values. Alternatively, other embodiments may use pulse response metrics obtained from signal patterns to determine optimal delay and amplitude values. This may be done by using the receiver to capture an oversampled version of a pulse response ( e.g., the output of the channel when a 0000 . . . 0001000 . . . 000 pattern is transmitted). That is, oversampled pulse responses may be captured by skewing the sampling time by a programmable amount. These responses may be overlaid at unit intervals to determine worst case jitter and eye opening parameters. 
         [0029]    Once an eye pattern has been generated, operation  48  is performed. Operation  48  determines various eye pattern parameters for the eye pattern generated by the test pattern and the specified compensating pulse delay. One embodiment may determine the eye pattern width, height and amplitude. Other embodiments may determine more or fewer eye pattern parameters. These parameters may be stored. 
         [0030]    Next, operation  50  determines if the current compensating pulse delay is equal to the maximum delay of the delay element. If the current compensating pulse delay is less than the maximum delay value, operation  52  is performed. Operation  52  increments the delay value. In one embodiment the delay increment may be equal to one unit interval (i.e., one bit period). Then, operation  44  is performed again. 
         [0031]    If operation  50  determines that the current compensating pulse delay value is equal to the maximum delay value, operation  54  is performed. In operation  54  the eye pattern for each delay value is analyzed and a figure of merit is determined for each delay value. 
         [0032]    Finally, operation  56  is performed. In operation  56  the optimal delay time is selected to maximize the figure of merit for the eye pattern observed at the receiver. 
         [0033]      FIG. 4  depicts a flowchart illustrating one method for determining the optimal amplitude of the compensating pulse (operation  32  of  FIG. 2 ). Initially, operation  60  sets the programmable delay of the delay element to the optimal delay determined by operation  56  of  FIG. 3 . It is to be appreciated that other embodiments may determine the optimal amplitude first. This may be done by setting the delay element to a nominal delay rather than to the optimal delay (e.g., the time delay for a pulse to travel from the transmitter to the receiver, be reflected, and travel back to the transmitter). 
         [0034]    Then, operation  62  is performed. Operation  62  sets the compensating pulse amplitude to an initial starting value. In one embodiment, the initial pulse amplitude may be set to zero volts. 
         [0035]    Next, operation  64  is performed. Operation  64  sets the amplitude of the compensating pulse to the selected value. Then, operation  66  is performed. In operation  66 , the transmitter repeats a test pattern a sufficient number of times to generate an eye pattern of the inter-symbol interference at the receiver. In one embodiment, the test pattern may be a single pulse (i.e., the test pattern may be the same test pattern used to determine optimal delay). In one embodiment the test pattern may be repeated 100 times. In other embodiments, a different test pattern and/or different number of repetitions may be used to determine optimal pulse amplitude. 
         [0036]    Then, operation  68  is performed. Operation  68  determines various eye pattern parameters for the current compensating pulse amplitude. Typically, the eye pattern parameters determined are the same eye pattern parameters as determined for pulse delay. The eye parameters for each pulse amplitude may be stored. 
         [0037]    Then, operation  70  is performed. Operation  70  determines if the maximum compensating pulse amplitude has been reached. If operation  70  determines that the maximum pulse amplitude has not been reached, operation  72  is performed. Operation  72  increments the compensating pulse amplitude value. In one embodiment a pulse amplitude increment of 10 mV may be used. Then, operation  64  is performed. 
         [0038]    If operation  70  determines that the maximum compensating pulse amplitude has been reached, operation  74  is performed. Operation  74  analyzes the parameters of the eye pattern generated for each compensating pulse amplitude and determines a figure of merit for each pulse amplitude. 
         [0039]    Finally, operation  76  is performed. Operation  76  selects the compensating pulse amplitude so that the figure of merit of the eye pattern observed at the receiver is maximized. Then, the method exits. 
         [0040]    It is to be appreciated that certain embodiments may employ more than one floating tap to compensate for multiple impedance discontinuities in the high speed serial data link. The delay and amplitude setting for each floating tap may be determined as described above.  FIG. 5  depicts a flowchart illustrating one method for determining the optimal delay and pulse amplitude of each floating tap of a floating tap FIR equalizer with multiple floating taps. 
         [0041]    Initially, operation  80  sets all floating tap delay values and pulse amplitude values to zero (i.e., all floating taps are disabled). Next, operation  82  determines the optimal delay for a floating tap. In one embodiment, the delay of the floating taps is optimized starting with the first floating tap. The optimal delay for the chosen floating tap may be determined as described above. 
         [0042]    Then, operation  84  determines the optimal pulse amplitude for the compensating pulse generated by the floating tap. The optimal pulse amplitude may be determined as described above. 
         [0043]    Following operation  84 , operation  86  determines if the optimal delay and optimal pulse amplitude determined for the floating tap are both zero. If the delay and pulse amplitude are both zero, then there are no more impedance discontinuities (reflected energy) requiring another compensating pulse and the method ends. That is, the remaining reflected energy in the high speed serial data link channel does not produce enough noise at the receiver to make a detectable difference in the eye pattern observed at the receiver. 
         [0044]    If operation  86  determines that the optimal delay and optimal pulse amplitude are not zero, operation  88  is performed. Operation  88  determines if another floating tap is available for compensation of another potential impedance discontinuity. If operation  88  determines that another floating tap is available, operation  82  is performed (to optimize the delay and amplitude settings of the next floating tap of the equalizer). 
         [0045]    If operation  88  determines that all available floating taps have been utilized, the method ends. It is to be appreciated that when multiple floating taps are utilized, the first tap generally compensates the impedance discontinuity causing the largest amount of noise (inter-symbol interference) at the receiver. The next floating tap will generally be optimized to remove the reflective energy of the next impedance discontinuity causing the next largest contribution to noise at the receiver, and so forth. That is, the floating taps may be utilized to compensate other impedance discontinuities that result in sufficient noise at the receiver to cause a measurable eye degradation. Once the optimal delay and optimal pulse amplitude for a floating tap have been determined to be zero, there are no additional impedance discontinuities requiring compensation. 
         [0046]    It is to be appreciated that process variations during manufacturing may result high speed serial data links having delay variations of ten picoseconds/inch or more. That is, the trace delay may vary from printed circuit board to printed circuit board and from trace to trace on the same printed circuit board due to manufacturing tolerances. Such variability in delay time may cause the optimal pulse delay to shift by one unit interval or more. Thus, in one embodiment, the optimal delay may be determined for each high speed serial data link. 
         [0047]    As will recognized by those skilled in the art from the foregoing description of example embodiments of the invention, numerous variations of the described embodiments may be made without departing from the spirit and scope of the invention. Further, while the present invention has been described in the context of specific embodiments and processes, such descriptions are by way of example and not limitation. In methodologies directly or indirectly set forth herein, various steps and operations are described in one possible order or operation, but those skilled in the art will recognize that steps and operations may be rearranged, replaced, or eliminated without necessarily departing from the spirit and scope of the present invention. Accordingly, the proper scope of the present invention is specified by the following claims and not by the preceding examples.