# Patent

## Title
Equalizing a signal for transmission

## Abstract

Equalizing a signal includes receiving a data sequence signal having an amplitude. An adjustment of the data sequence signal operable to equalize the data sequence signal is determined. A control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment is generated, where the control signal has an analog form. The amplitude of the data sequence signal is adjusted using the control signal in order to equalize the data sequence signal.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. application Ser. No. 10/357,691 filed Feb. 3, 2003 and entitled “Equalizing a Signal for Transmission”.


TECHNICAL FIELD OF THE INVENTION
This invention relates generally to the field of data communication and more specifically to equalizing a signal for transmission.
BACKGROUND OF THE INVENTION
A signal transmitted from a transmitter to a receiver typically experiences distortion. To compensate for expected distortion, the transmitter may perform a pre-emphasis on a signal by adjusting the amplitude of the signal. Known techniques of equalizing a signal, however, are generally slow and inefficient. Consequently, known techniques for equalizing a signal may be unsatisfactory in certain situations.
SUMMARY OF THE INVENTION
In accordance with the present invention, disadvantages and problems associated with previous techniques for equalizing a signal for transmission may be reduced or eliminated.
According to one embodiment of the present invention, equalizing a signal includes receiving a data sequence signal having an amplitude. An adjustment of the data sequence signal operable to equalize the data sequence signal is determined. A control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment is generated, where the control signal has an analog form. The amplitude of the data sequence signal is adjusted using the control signal in order to equalize the data sequence signal.
Certain embodiments of the invention may provide one or more technical advantages. A technical advantage of one embodiment may be that an equalizing filter utilizes an analog signal to adjust a signal to compensate for distortion. The analog signal may provide a faster and more efficient manner to adjust the signal.
Certain embodiments of the invention may include none, some, or all of the above technical advantages. One or more other technical advantages may be readily apparent to one skilled in the art from the figures, descriptions, and claims included herein.



BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention and its features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a block diagram illustrating one embodiment of a network having a transmitter that adjusts a transmitted signal to compensate for expected distortion;
FIG. 2 is a block diagram illustrating one embodiment of a system for equalizing a signal for transmission;
FIG. 3 is a block diagram illustrating one embodiment of an equalizing filter that adjusts the voltage of a signal for transmission;
FIGS. 4 and 5 are graphs illustrating how a control voltage may be used to adjust a swing between a high voltage and a low voltage;
FIG. 6 is a block diagram illustrating one embodiment of an equalizing filter that adjusts the current of a signal for transmission; and
FIG. 7 is a flowchart illustrating one embodiment of a method for equalizing a signal for transmission.



DETAILED DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention and its advantages are best understood by referring to FIGS. 1 through 7 of the drawings, like numerals being used for like and corresponding parts of the various drawings.
FIG. 1 is a block diagram illustrating one embodiment of a network 10 having a transmitter that adjusts a transmitted signal to compensate for expected distortion. The transmitter uses feedback from a receiver to predict the distortion that will occur as the signal propagates through a channel to the receiver. To compensate for the expected distortion, the transmitter performs a pre-emphasis on the signal by adjusting the amplitude of the signal. The transmitter includes an equalizing filter that utilizes an analog signal to control the amplitude adjustment.
According to the illustrated embodiment, network 10 includes network elements 20a-b and a channel 22 coupled as shown in FIG. 1. A network element 20 may comprise an element that transmits and receives data such as a server system, a storage system, a network system, a routing system, or any combination of the proceeding. A server system may include one or more central processing units (CPUs) and one or more memory units. A storage system may include one or more channel adapters (CAs), one or more disk adapters (DAs), and one or more CPU modules (CMs). A routing system may couple network 10 to one or more other networks, which include one or more local area networks (LANs), wide area networks (WANs), or other networks.
Channel 22 may comprise a cable having a length in the range of ten to one hundred meters such as approximately twenty to forty meters. The speed of a signal traveling through channel 22 may be in the range of multi-gigabits per second such as approximately three gigabits per second. As an example, channel 22 may operate according to the 10 Gigabit Attachment Unit Interface (XAUI) standards, which require a fixed frequency of 3.125 gigabits and is used for 10 Gigabit Ethernet.
Signals traveling at high speeds are susceptible to distortion resulting from an impulse response of channel 22. A received signal may suffer from frequency dependent distortion due to the skin effect and dielectric loss. Frequency dependent distortion may result in interference such as inter-symbol interference (ISI). Multi-gigabit rate communication typically requires a high degree equalization over approximately twenty to forty dB to overcome inter-symbol interference.
Network element 20a includes a transmitter 24, and network element 20b includes a receiver 26. Transmitter 24 transmits a signal through channel 22 to receiver 26. Transmitter 24 includes an equalizing filter 30 and a feedback monitor 32. Equalizing filter 30 adjusts a transmitted signal to compensate for expected distortion occurring during transmission. The adjustment is determined according to feedback information received by feedback monitor 32 from receiver 26. Equalizing filter 30 utilizes an analog signal to control the amplitude, which may allow for more precise adjustment of the signal. Known techniques use multiple transistors to control the amplitude. Transistors, however, typically cannot provide fine resolution control. Known techniques may use digital signal processors (DSPs) to compensate for the distortion. Digital signal processors, however, are typically too slow and inefficient for multi-gigabit per second transmission.
Receiver 26 includes a filter 34 and a measurement circuit 36. Measurement circuit 36 estimates an error associated with the received signal. The error comprises an amplitude error, which may result from the distortion associated with transmission through channel 22. The error may be used to adjust equalizing filter 30, filter 34, or both to compensate for the error.
Elements may be modified, added, or omitted without departing from the scope of the invention. For example, filter 34 may be omitted, allowing for equalizing filter 30 to perform the equalization process. Additionally, functions may be performed using software embodied in a computer readable medium, hardware, other logic, or any suitable combination of the preceding. Examples of equalizing filters 30 are described with reference to FIGS. 2, 3, and 4. An example of method for equalizing a received signal is described with reference to FIG. 4. As used in this document, “each” refers to each member of a set or each member of a subset of a set.
FIG. 2 is a block diagram illustrating one embodiment of a system 50 for equalizing a signal for transmission. System 50 adjusts the amplitude of a data sequence signal in order to compensate for expected distortion that the signal may experience during transmission through channel 22. System 50 includes an analog source that provides a control signal that adjusts the amplitude of the signal. The analog control signal may provide for more precise adjustment of the amplitude.
System 50 includes an input 51, one or more delays 52a-c, one or more filter coefficient circuits 54a-d, a mixer 58, and an analog source 60 coupled as shown in FIG. 2. System 50 receives a data sequence signal comprising a data sequence. Delay circuits 52a-c perform a delay operation on the signal to generate a signal delayed by, for example, a one bit time delay. In the illustrated example, delay circuit 52a performs a delay on signal D0 to generate signal D1. The received signal is transformed into segments Di, where each segment comprises one or more bits of the received signal. In the illustrated example, the received signal is transformed into segments D0, D1, D2, and D3, where each segment comprises one bit.
Filter coefficient circuits 54a-d adjust the amplitude of signals according to filter coefficients. Each filter coefficient circuit 54 adjusts the amplitude of a corresponding signal. For example, filter coefficient circuit 54a adjusts signal D0 according to filter coefficient A0, and filter coefficient circuit 54b adjusts the amplitude of signal D1 according to filter coefficient A1. In the illustrated example, segments D0, D1, D2, and D3 are filtered according to corresponding filter coefficients A0, A1, A2, and A3. Each combination of a signal Di adjusted by a filter coefficient circuit 54 forms a tap. In the illustrated example, system 50 includes four taps. System 50, however, may include any suitable number of taps.
Analog source 60 generates a control signal having an analog form that controls the amplitude adjustment performed by filter coefficient circuits 54a-d. Analog source 60 may generate a voltage control signal that adjusts the voltage of the signals, or may generate a current control signal that adjusts the current of the signals. Since the length of channel 22 generally remains constant, the adjustment for the distortion also typically remains unchanged. Accordingly, filter coefficients also may remain relatively constant.
Known techniques for adjusting the signal amplitude involve using multiple transistors to control the filter coefficients. Multiple transistors, however, are typically slow. Additionally, more transistors are needed to improve the resolution with which the filter coefficients may be controlled.
Mixer 58 sums the adjusted signals to generate an output. In the illustrated example, the output comprises A0D0+A1D1+A2D2+A3D3. The output is transmitted through channel 22 to receiver 26. As a signal travels through channel 22, it may experience distortion. The equalization performed by equalizing filter 30, however, may adjust the signal such that the signal received at receiver 26 is usable by receiver 26.
FIG. 3 is a diagram illustrating one embodiment of an equalizing filter 70 that adjusts the voltage of a signal for transmission. Equalizing filter 70 includes a voltage source 72, multiplexers 74 and 78, and transistors 80 and 82 coupled as shown in FIG. 3. Voltage source 72 generates a control signal Vc that is used to adjust the voltage of signals D0. Voltage source 72 may comprise, for example, a digitally controlled voltage source such as a digital-to-analog converter.
Voltage source 72 may generate the control signal Vc in response to instructions received from feedback monitor 32. The instructions typically include coefficient parameters used to adjust the voltage of the control signal Vc, which in turn controls the amplitude of the signal. The control signal Vc may operate in a range of approximately zero to one volt. Receiver 26, transmitter 24, or both may generate the instructions in response to a determination of distortion at receiver 26.
Multiplexer 74 multiplexes signals D0-0, D0-1, D0-2, and D0-3 to generate a data stream. Multiplexer 74 includes transistors 84a-d. Transistors 84a-d switch on and off with respect to the characters of signal Di. For example, a transistor 84 may switch on if the data segment includes a character having a one, and may switch off if the data segment includes a character having a zero.
Multiplexer 78 multiplexes the inverse of the signals D0-0, D0-1, D0-2, and D0-3 to generate an inverse data stream. Multiplexer 78 includes transistors 86a-d that operate in a manner substantially similar to that of transistors 84a-d, but perform their functions on the inverse of the signals to yield an inverse output. That is, transistors 86a-d switch on and off with respect to the characters of the inverse of signal Di.
Multiplexers 74 and 78 may be used to reduce the circuit operation frequency of equalizing filter 30. An m-to-1 multiplexer, where m is any suitable integer, may be used to decrease the circuit operation frequency by 1/m. For example, if a line speed of 3.2 gigahertz is used in combination with a 4-to-1 multiplexer, then equalizing filter 30 may only need to operate at a frequency of 800 megahertz.
Transistor 80 switches on and off in response to the control signal Vc and the data sequence signal. If the gate voltage is zero, then transistor 80 is switched off. If the gate voltage reaches the control voltage Vc, then transistor 80 is switched on. If transistor 80 is switched off, then an output voltage 84 is a high voltage Vd. Conversely, if transistor 80 is switched on, then output voltage 84 is a low voltage.
The high voltage is typically constant, but the low voltage is determined by the control voltage Vc. Accordingly, changing control voltage Vc changes the low voltage. Since the low voltage is adjustable, the swing between the low voltage and the high voltage is also adjustable. Accordingly, voltage source 72 may adjust the swing between high voltage and low voltage by adjusting control voltage Vc. Transistor 82 operates in a manner similar to that of transistor 80, but performs its functions on the inverse of the signal to yield an inverse output voltage 86. Output voltage 84 and inverse output voltage 86 are used to form a differential output.
FIGS. 4 and 5 are graphs 90 and 100 illustrating how control voltage Vc may be used to adjust the swing between a high voltage and a low voltage. FIG. 4 includes a graph 90 illustrating an example of voltages received at transistor 80 with respect to time t. A graph 92 represents the voltage received at transistor 80 if the control voltage is Vc1. A graph 94 represents the voltage received at transistor 80 if the control voltage is Vc2.
FIG. 5 is a diagram 100 illustrating examples of output voltages of transistor 80 associated with different control voltages Vc with respect to time t. A graph 102 represents the voltages received if the control voltage is Vc1, and a graph 104 represents the output voltage if the control voltage is Vc2. Graphs 102 and 104 illustrate that the output voltage may be adjusted by changing control voltage Vc.
FIG. 6 is a diagram illustrating one embodiment of an equalizing filter 110 that adjusts the current of a signal for transmission. Equalizing filter 110 includes a current source 120, transistors 122, 124, 148, and 150, inverters 126a-b, and multiplexers 128a-b and 130a-b. Current source 120 generates a control signal having an analog form that is used to adjust the amplitude of a data sequence signal. Current source 120 may comprise a digitally controlled current source such as a digital-to-analog converter. Transistors 122, 124, 148, and 150 form a current mirror. For example, if current source 120 generates a control current Ic and transistor 150 is turned on, the current through transistor 148 is (Ic*n), where the size ratio of transistors 122 and 148 is 1:n. Transistors 122, 124, 142, and 144 operate in a similar manner.
Inverters 126a-b and multiplexers 128a-b operate to send only positive values of the data sequence and the inverse data sequence to multiplexers 130a-b. Inverters 126a-b invert the incoming data sequence. Multiplexers 128a-b select positive values of the data sequence or the inverse data sequence, respectively. Multiplexers 130a-b multiplex data segments into a data stream. An m-to-1 multiplexer, where n is any suitable integer, that multiplexes m data segments into one data stream may be used to decrease the circuit operation frequency by a factor of 1/m.
Equalizing filter 110 also includes current sources 140 and 146 and out nodes 152 and 154 coupled as shown in FIG. 6. Current sources 140 and 146 provide a constant current. The amount of current is determined by the BIAS, which is adjusted according to the sum of the current sources 120 for the taps. According to the illustrated example, current sources 140 and 146 operate as a (1⁄2*Ic*n) current source. Out nodes 152 and 154 transmit currents to and from a transmission channel.
In operation, if transistor 144 is turned off in response to data sequence Di and if transistor 150 is turned on in response to the inverse of data sequence Di, a current (1⁄2*Ic*n) goes out through out node 152 to the transmission channel, and a return current (1⁄2*Ic*n) from the transmission channel returns through inverse out node 154. The current (1⁄2* Ic*n) from current source 146 and the current (1⁄2*Ic*n) from inverse out node 154 yields a current (Ic*n) that flows through transistor 148. Additionally, if transistor 144 is turned on and if transistor 150 is turned off, the currents through out node 152 and inverse out node 154 are reversed. Accordingly, the current waveform follows data sequence Di, and the amplitude of the current is determined by current source 120.
FIG. 7 is a flowchart illustrating one embodiment of a method for equalizing a signal for transmission. The method begins at step 170, where equalizing filter 30 at transmitter 24 receives a data sequence signal. Equalizing filter 30 determines an adjustment to compensate for expected distortion at step 172. The determination may be made in response to instructions received from feedback monitor 32. The instructions describe how the data sequence signal may be adjusted in order to compensate for expected distortion.
Equalizing filter 30 generates a control signal for performing the adjustment at step 174. The control signal may have an analog form and may adjust either a current or voltage of the data sequence signal to be transmitted. The data sequence signal is adjusted using the control signal at step 176, and the data sequence signal is transmitted through channel 22 to receiver 26 at step 178.
Receiver 26 receives the data sequence signal at step 180. Receiver 26 processes the data sequence signal in order to obtain a recovered data sequence from the received data sequence signal at step 182. Measurement circuit 36 estimates the distortion of the received data sequence at step 184. The estimated distortion may be used to generate instructions for adjusting the signal to compensate for distortion. If there is a next data sequence at step 186, the method returns to step 170, where equalizing filter 30 receives the next data sequence. If there is no next data sequence at step 186, the method terminates.
Steps may be modified, added, or omitted without departing from the scope of the invention. Additionally, steps may be performed in any suitable order without departing from the scope of the invention.
Although an embodiment of the invention and its advantages are described in detail, a person skilled in the art could make various alterations, additions, and omissions without departing from the spirit and scope of the present invention as defined by the appended claims.

## Claims

1. A method for equalizing a signal, comprising:
receiving a data sequence signal, the data sequence signal having an amplitude;
receiving a previous error from a receiver, the receiver configured to estimate the previous error from a previously transmitted data sequence signal;
determining an adjustment of the data sequence signal operable to equalize the data sequence signal, the adjustment determined in accordance with the previous error from the receiver;
generating an analog control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment and with the previous error from the receiver; and
adjusting the amplitude of the data sequence signal using the control signal to equalize the data sequence signal in order to substantially compensate for expected transmission distortion, the adjusting comprising:
adjusting a swing between a high voltage and a low voltage by adjusting the low voltage in response to the control signal generated in accordance with the previous error from the receiver;
outputting a low output signal in response to receiving a first character of the data sequence signal, the first character comprising a zero, the low output signal having a low amplitude determined according to the control signal; and
outputting a high output signal in response to receiving a second character of the data sequence signal, the second character comprising a one, the high output signal having a high amplitude determined according to the control signal.

2. The method of claim 1, wherein generating a control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment comprises generating the control signal at a digital-to-analog converter.

3. The method of claim 1, further comprising:
determining an error associated with the data sequence signal; and
determining a next adjustment of a next data sequence signal in response to the error, the next adjustment operable to equalize the next data sequence signal.

4. The method of claim 1, wherein:
the amplitude of the data sequence signal comprises an electrical current amplitude of the data sequence signal; and
the control signal comprises a control current operable to adjust the electrical current amplitude of the data sequence signal.

5. The method of claim 1, wherein:
the amplitude of the data sequence signal comprises a voltage amplitude of the data sequence signal; and
the control signal comprises a control voltage operable to adjust the voltage amplitude of the data sequence signal.

6. The method of claim 1, wherein adjusting the amplitude of the data sequence signal using the control signal comprises:
outputting a high inverse output signal in response to receiving a third character of the data sequence signal, the third character comprising a zero, the high inverse output signal having a high amplitude determined according to the control signal; and
outputting a low inverse output signal in response to receiving a fourth character of the data sequence signal, the fourth character comprising a one, the low inverse output signal having a low amplitude determined according to the control signal.

7. A system for equalizing a signal, comprising:
an input operable to:
receive a data sequence signal, the data sequence signal having an amplitude; and
receive a previous error from a receiver, the receiver configured to estimate the previous error from a previously transmitted data sequence signal;

an analog source operable to:
determine an adjustment of the data sequence signal operable to equalize the data sequence signal, the adjustment determined in accordance with the previous error from the receiver; and
generate an analog control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment and with the previous error from the receiver; and

a plurality of filter coefficient circuits coupled to the input and the analog source, each filter coefficient circuit operable to adjust the amplitude of the data sequence signal using the control signal to equalize the data sequence signal in order to substantially compensate for expected transmission distortion, the adjusting comprising:
adjusting a swing between a high voltage and a low voltage by adjusting the low voltage in response to the control signal generated in accordance with the previous error from the receiver;
outputting a low output signal in response to receiving a first character of the data sequence signal, the first character comprising a zero, the low output signal having a low amplitude determined according to the control signal; and
outputting a high output signal in response to receiving a second character of the data sequence signal, the second character comprising a one, the high output signal having a high amplitude determined according to the control signal.

8. The system of claim 7, wherein the analog source comprises a digital-to-analog converter.

9. The system of claim 7, further comprising:
a transmitter operable to transmit the data sequence signal; and
a receiver operable to:
determine an error associated with the data sequence signal; and
determine a next adjustment of a next data sequence signal in response to the error, the next adjustment operable to equalize the next data sequence signal.

10. The system of claim 7, wherein:
the amplitude of the data sequence signal comprises an electrical current amplitude of the data sequence signal; and
the control signal comprises a control current operable to adjust the electrical current amplitude of the data sequence signal.

11. The system of claim 7, wherein:
the amplitude of the data sequence signal comprises a voltage amplitude of the data sequence signal; and
the control signal comprises a control voltage operable to adjust the voltage amplitude of the data sequence signal.

12. The system of claim 7, wherein each filter coefficient circuit is operable to adjust the amplitude of the data sequence signal using the control signal by:
outputting a high inverse output signal in response to receiving a third character of the data sequence signal, the third character comprising a zero, the high inverse output signal having a high amplitude determined according to the control signal; and
outputting a low inverse output signal in response to receiving a fourth character of the data sequence signal, the fourth character comprising a one, the low inverse output signal having a low amplitude determined according to the control signal.

13. Logic for equalizing a signal, the logic embodied in a computer readable medium encoded with a computer program and when executed by a computer operable to:
receive a data sequence signal, the data sequence signal having an amplitude;
receive a previous error from a receiver, the receiver configured to estimate the previous error from a previously transmitted data sequence signal;
determine an adjustment of the data sequence signal operable to equalize the data sequence signal, the adjustment determined in accordance with the previous error from the receiver;
generate an analog control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment and with the previous error from the receiver; and
adjust the amplitude of the data sequence signal using the control signal to equalize the data sequence signal in order to substantially compensate for expected transmission distortion, the adjusting comprising:
adjusting a swing between a high voltage and a low voltage by adjusting the low voltage in response to the control signal generated in accordance with the previous error from the receiver;
outputting a low output signal in response to receiving a first character of the data sequence signal, the first character comprising a zero, the low output signal having a low amplitude determined according to the control signal; and
outputting a high output signal in response to receiving a second character of the data sequence signal, the second character comprising a one, the high output signal having a high amplitude determined according to the control signal.

14. The logic of claim 13, operable to generate a control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment by generating the control signal at a digital-to-analog converter.

15. The logic of claim 13, further operable to:
determine an error associated with the data sequence signal; and
determine a next adjustment of a next data sequence signal in response to the error, the next adjustment operable to equalize the next data sequence signal.

16. The logic of claim 13, wherein:
the amplitude of the data sequence signal comprises an electrical current amplitude of the data sequence signal; and
the control signal comprises a control current operable to adjust the electrical current amplitude of the data sequence signal.

17. The logic of claim 13, wherein:
the amplitude of the data sequence signal comprises a voltage amplitude of the data sequence signal; and
the control signal comprises a control voltage operable to adjust the voltage amplitude of the data sequence signal.

18. The logic of claim 13, operable to adjust the amplitude of the data sequence signal using the control signal by:
outputting a high inverse output signal in response to receiving a third character of the data sequence signal, the third character comprising a zero, the high inverse output signal having a high amplitude determined according to the control signal; and
outputting a low inverse output signal in response to receiving a fourth character of the data sequence signal, the fourth character comprising a one, the low inverse output signal having a low amplitude determined according to the control signal.

19. A system for equalizing a signal, comprising:
means for receiving a data sequence signal, the data sequence signal having an amplitude;
means for receiving a previous error from a receiver, the receiver configured to estimate the previous error from a previously transmitted data sequence signal;
means for determining an adjustment of the data sequence signal operable to equalize the data sequence signal, the adjustment determined in accordance with the previous error from the receiver;
means for generating an analog control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment and with the previous error from the receiver; and
means for adjusting the amplitude of the data sequence signal using the control signal to equalize the data sequence signal in order to substantially compensate for expected transmission distortion, the adjusting comprising:
adjusting a swing between a high voltage and a low voltage by adjusting the low voltage in response to the control signal generated in accordance with the previous error from the receiver;
outputting a low output signal in response to receiving a first character of the data sequence signal, the first character comprising a zero, the low output signal having a low amplitude determined according to the control signal; and
outputting a high output signal in response to receiving a second character of the data sequence signal, the second character comprising a one, the high output signal having a high amplitude determined according to the control signal.

20. A system for equalizing a signal, comprising:
an input operable to:
receive a data sequence signal, the data sequence signal having an amplitude, the amplitude of the data sequence signal comprising an electrical current amplitude or a voltage amplitude of the data sequence signal; and
receive a previous error from a receiver, the receiver configured to estimate the previous error from a previously transmitted data sequence signal;

an analog source comprising a digital-to-analog converter and operable to:
determine an adjustment of the data sequence signal operable to equalize the data sequence signal, the adjustment determined in accordance with the previous error from the receiver; and
generate an analog control signal operable to adjust the amplitude of the data sequence signal in accordance with the adjustment and with the previous error from the receiver, the control signal comprising a control current operable to adjust the electrical current amplitude or the voltage amplitude of the data sequence signal;

a plurality of filter coefficient circuits coupled to the input and the analog source, each filter coefficient circuit operable to adjust the amplitude of the data sequence signal using the control signal to equalize the data sequence signal in order to substantially compensate for expected transmission distortion, each filter coefficient circuit is operable to adjust the amplitude of the data sequence signal using the control signal by:
outputting a low output signal in response to receiving a first character of the data sequence signal, the first character comprising a zero, the low output signal having a low amplitude determined according to the control signal;
outputting a high output signal in response to receiving a second character of the data sequence signal, the second character comprising a one, the high output signal having a high amplitude determined according to the control signal;
outputting a high inverse output signal in response to receiving a third character of the data sequence signal, the third character comprising a zero, the high inverse output signal having a high amplitude determined according to the control signal; and
outputting a low inverse output signal in response to receiving a fourth character of the data sequence signal, the fourth character comprising a one, the low inverse output signal having a low amplitude determined according to the control signal;
adjusting a swing between a high voltage and a low voltage by adjusting the low voltage in response to the control signal generated in accordance with the previous error from the receiver;

a transmitter operable to transmit the data sequence signal; and
a receiver operable to:
determine an error associated with the data sequence signal; and
determine a next adjustment of a next data sequence signal in response to the error, the next adjustment operable to equalize the next data sequence signal.