An equalizer is used to compensate for frequency dependant losses that occur over a transmission medium such as twisted pair, trace, or coax at high data rates. These losses introduce inter-symbol interference (ISI) that can make data recovery at the receiver end of the transmission medium impossible. Typically, an equalizer at the receiver end will compensate for these losses by applying frequency dependant gain so as to negate the transmission medium losses.
As well as being frequency dependant, the loss within a medium is also typically dependant upon the length of the transmission medium. For example, a 30-meter twisted pair cable will have more loss than a 5-meter twisted pair cable. An automatic equalizer typically includes some type of mechanism for determining and applying the correct amount of gain to compensate for these frequency dependant loses. Conventional techniques for carrying out this function include an Automatic Gain Control (AGC) loop for determining the ideal amount of gain to be applied to the signal. Most of these conventional techniques, however, are sensitive to variation in the transmitter-side launch amplitude, or other characteristics of the signal being propagated through the transmission medium. Known techniques for overcoming these types of signal-dependent characteristics, such as launch amplitude, often involve multiple feedback control loops that can cause system instability. Also, these techniques are bulky and can take up a significant amount of silicon area in an integrated circuit embodiment of the equalizer system.
Systems and method for controlling the gain of an equalizer are provided. In these systems and methods, bit errors in a serial data stream received by an equalizer are detected, and the gain of the equalizer is set in response to the detected bit errors in the serial data stream.
Operationally, the system of
After passing through the equalization circuit 14, the serial data 12 is then provided to the delay locked loop (“DLL”) 16. The DLL circuit essentially samples the serial data 12, preferably in the center of each received bit. Sampling at the center of each bit, as opposed to close to the rising or falling edge of the signal, is important to avoid phase noise or jitter in the sampled signal. The sampled output of the DLL 16 is then provided to the serial-to-parallel converter 18, which demultiplexes the multi-bit serial data stream into a parallel data bus or data channel. In the example of a 10-bit DVI or HDMI-type signal, the 10-bit serial data stream 12 would be converted into a parallel 10-bit data bus labeled “ch_aligned[9:0],” signifying that the 10-bit channel is aligned along its constitutent bits labeled 0 through 9. The purpose of the converter 18 is also to effectively slow down the data rate by a factor of 10, in this example, so as to ease the subsequent processing steps.
The channel-aligned 10-bit parallel data stream (“ch_aligned[9:0]”) is then processed by the error-detection sub-circuit comprising flip flops 20, decoder 22, encoder 24 and comparison logic 26. In this example system, the 10-bit signal is actually an encoded data signal having 8 bits of data and 2 bits of redundancy. The general purpose of the 2 redundant bits is to provide for a DC-balanced signal. So, if the data part of the signal includes many zeros, then the redundant bits may both be ones in order to DC balance the overall bitstream. Likewise, if the data part of the signal includes many ones, then the redundancy bits will typically be zeros.
Decode circuit 22 receives the 10-bit parallel data stream (“ch_aligned[9:0]”) and converts the signal back into its original 8-bit form that does not include the redundancy bits. This decoded signal (“dec[7:0]”) is then subsequently re-encoded by the encoder circuit 24 into two possible 10-bit signals labeled “possible1[9:0]” and “possible2[9:0].” The two possible encoded data outcomes are dependant upon the previously-processed data bits, and take into account the need to DC balance the signal using the two redundancy bits. So, for example, if the previously processed data bits included a large number of zeros, then one possible outcome may include extra ones as the redundancy bits. But if the previously processed data included a large number of ones, then another possible outcome may include extra zeros as the redundancy bits. In any event, the two posssible outcomes from the encoder circuit 24 are provided as one set of inputs to the comparison logic 26.
The other input to the comparison logic 26 is the ch_aligned[9:0] signal from the serial-to-parallel converter 18. This channel signal is buffered and delayed by the flip flops 20 in order to track the timing delay of the channel signal through the decode 22 and encode 24 circuits. This extra delay is provided (“ch_aligned_dl[9:0]”) so that the comparison logic 26 is comparing the raw and decoded/encoded versions of the received data signal at the same point in time. Comparison logic 26 then compares the ch_aligned_dl[9:0] signal with the encoded possible signals possible1[9:0] and possible2[9:0] to determine if either possible encoded signal matches the delayed raw channel signal ch_aligned_dl[9:0]. If the signals match, then there is no error detected in the signal at the current gain setting of the equalizer 14. If, however, the signals do not match in the comparison logic, then the ch_code_err output signal to the finite state machine 28 indicates that at this gain setting an error has been detected in the data signal 12.
The system 10 is operable in a training mode and a mission mode. During the training mode, the finite state machine 28 steps the equalizer through multiple gain settings and receives measurements of bit error detection (ch_code_err) from the error-detection sub-circuit. These measurements are used by the finite state machine 28 to select the optimal gain for the equalizer 14 which also minimizes detected bit errors. An example algorithm for implementation of this “training” mode by the finite state machine 28 is discussed further in reference to
Turning then to
At step 44, an initial gain is selected, typically either at the low or high end of the possible gain settings for the equalizer. Bit errors are then detected and counted at step 46 for a predetermined amount of time. The amount of time during which errors are counted is also refererred to herein as the error resolution, and may be initially set by a user of the system. The longer the amount of time for counting errors, the higher the probability that an error will be detected. Initially, the error resolution is preferably set to a low value, meaning that the amount of time during which errors are detected in step 46 is small. This initial check is relatively fast, however, as compared to later steps employing a higher resolution setting for the error detection, and thus overall minimizes the time spent in the training mode. In step 48, the algorithm checks whether all of the available gain settings for the equalizer have been checked. If all gain settings have been checked, then control passes to step 52. If not, then at step 50 the gain is stepped either up or down to the next available gain setting, the bit errors are measured at step 46, and this process continues until bit error measurements are completed at the initial error resolution of the system. These bit error measurements are then stored as a gain profile in step 52.
After the gain profile is built at step 52, the algorithm then checks the profile at step 54 to determine whether there are any “good” gain settings in the profile, which means that there are gain settings where the bit error measurement was either zero or very low. Preferably, an error threshold can be defined as the maximum number of errors acceptable to the user of the equalizer. This error threshold then dictates the difference between “good” and “bad” gain settings. If there are no “good” gain settings in the profile, then control passes to step 56 where the algorithm determines whether this was the first iteration through the training mode. If this was the first iteration, then the algorithm assumes that the system had not reached steady-state operation and loops back to step 42 to re-start the training mode. If, however, this was not the first iteration of the training mode, then control passes to step 58, in which the algorithm checks a memory for the previously-used gain profile and selects an optimum gain at step 64 from the previoulsy-used gain profile. The system then exits training mode and enters the mission mode 66 in which it normally operates.
Back in step 54, if one or more “good” gain settings were stored in the gain profile 52, then control passes to step 60 in which the algorithm determines whether or not all training iterations are complete. The algorithm may be programmed to iterate over multiple error resolutions in order to iteratively arrive at the optimum gain setting. In doing so, the initial error resolution is set low, meaning that the amount of time spent in the error measurement step 46 is relatively short. In subsequent iterations 60 of the training loop, the error resolution is then stepped up so that the amount of time spent in step 46 is increased. This effectively increases the probability of detecting a bit error and thus decreases the probability of maintaining the “good” gain settings that were previously detected. The system iterates the error resolution at step 62 and returns to step 44 to re-check the “good” gain settings, but now at the higher error resolution to determine if the previously detected “good” settings are still “good.”
After all of the error resolution settings are complete and the gain profile is finalized, the method then proceeds to step 64 in which the optimum gain setting is selected for the equalizer. This selection step 64 typically includes selecting the center of the highest good gain setting island. The “gain setting island” is an area or group of contiguous gain settings that all result in a “good” gain outcome from the training steps. So, for example, if the equalizer included 10 gain settings and gains 4, 5 and 6 were the only “good” settings located after the training iterations, then the optimum gain selection step 64 would select the “center” of the gain island formed by settings 4, 5 and 6, and thus would select gain setting 5 as the optimum setting. The training mode is then complete, and the system enters its mission mode 66 at the optimum gain setting selected at step 64.
The following examples further illustrate what is meant by the “center of the highest good gain setting island” from step 64 of
good
good
In the first example shown in Table 1, the highest “good” gain setting island is made up of settings 7, 8, and 9, and the center of this island is gain setting 8. Therefore, gain setting 8 is selected as the optimum gain setting. In the second example shown in Table 2, the highest good gain setting island is made up of settings 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, and the true center of this island is actually between gain settings 4 and 5. In this circumstance, however, the higher of the two middle gain settings is selected, which is gain setting 5. In the third example shown in Table 3, the highest good gain setting island is made up of setting 9, therefore gain 9 is selected.
The equalizer algorithm may also be optimized for even faster performance if a mechanism is provided that can determine the data rate of the signal applied to the equalizer. Due to lower clock rates, very low data rates take the longest for error measurement, and they also require the least amount of equalization. Therefore, when the equalizer control algorithm is aware of the input data rate, the algorithm described previously may be operated with the following differences between low data rates, medium data rates, and high data rates.
At low data rates the frequency-dependent cable attenuation is insignificant and the algorithm is bypassed and gain setting is set to minimum equalization. This will speed up system settling time significantly because the time it takes to measure errors is inversely proportional to the input data rate. At medium data rates, the equalizer performance is not noticeably dependent on the gain setting resolution. Therefore, coarser gain steps are taken. For example, all even gain settings are skipped during iterations of error measurement. This will speed up system settling time significantly because only half the gain settings are now being considered. Finally, at high data rates, the equalizer control algorithm proceeds as explained in connection with
The steps and the order of the steps in the methods and flowcharts described herein may be altered, modified and/or augmented and still achieve the desired outcome. Additionally, the methods, flow diagrams and structure block diagrams described herein may be implemented in the example processing devices described herein by program code comprising program instructions that are executable by the device processing system and/or subsystems. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and flow diagrams or implement the structure block diagrams described herein. Additionally, the methods, flow diagrams and structure block diagrams that describe particular methods and/or corresponding acts in support of steps and corresponding functions in support of disclosed software structures may also be implemented in software stored in a computer readable medium and equivalents thereof. The software structures may comprise source code, object code, machine code, or any other persistently or temporarily stored code that is operable to cause one or more processing systems to perform the methods described herein or realize the structures described herein.
This written description sets forth the best mode of the invention and provides examples to describe the invention and to enable a person of ordinary skill in the art to make and use the invention. This written description does not limit the invention to the precise terms set forth. Thus, while the invention has been described in detail with reference to the examples set forth above, those of ordinary skill in the art may effect alterations, modifications and variations to the examples without departing from the scope of the invention.
This patent application claims priority to U.S. Provisional Application Ser. No. 60/756239 titled “Equalizer Gain Control,” which was filed on January 3, 2006. The entirety of this prior application is hereby incorporated by reference into this patent document.
Number | Date | Country | |
---|---|---|---|
60756239 | Jan 2006 | US |