Abstract:
A technique for pre-compensating a digital bit stream for distortion imposed by a transmission path includes adjusting the level of the digital bit stream on a bit-by-bit basis in a manner that simulates the effects of a filter having a transfer function that is substantially the inverse of that of the transmission path. The technique includes generating a plurality of reference levels that correspond to correcting levels of the digital bit stream and switching these levels to the transmission path at high speed in response to the current bit of the digital bit stream and at least one previous bit. When used in an automatic test system, the technique improves signal transmission and reduces jitter, therefore allowing jitter of devices under test to be measured more accurately.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS  
         [0001]    Not Applicable.  
         STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT  
         [0002]    Not Applicable.  
         REFERENCE TO MICROFICHE APPENDIX  
         [0003]    Not Applicable  
         BACKGROUND OF THE INVENTION  
         [0004]    1. Field of the Invention  
           [0005]    This invention relates generally to high-speed signal delivery, and, more particularly, to techniques for compensating for distortion suffered by high-speed digital signals transmitted through band-limited channels.  
           [0006]    2. Description of Related Art  
           [0007]    With the advent of high-speed technologies such as SerDes and SONET, which operate at speeds above 1 GBit/s, the interconnections between devices have assumed an important role in limiting overall system speed. Transmission paths between devices or portions of electronic systems impose losses. These losses can attenuate digital signals to a point where they cannot reliably be received. They can also induce timing variations, or jitter.  
           [0008]    [0008]FIG. 1 shows a conventional circuit for transmitting and receiving a digital bit stream, here a serial bit stream. A memory  110  stores N-bit digital data. The N-bit data is clocked out of the memory  110 , and a serializer  112  converts the N-bit data into a serial bit stream “SIG IN” having a bit rate that is N times the memory clocking rate. A driver  114  buffers the serial bit stream to generate “SIG TR,” and sends SIG TR down a transmission path  116 . The transmission path generally attenuates or otherwise distorts SIG TR, so that the output “SIG REC” of the transmission path  116  is a distorted version of SIG TR. A comparator  118  receives SIG REC and compares it with a threshold level to generate an output signal, “SIG OUT.” 
           [0009]    As shown in FIG. 2, SIG OUT may not accurately represent SIG IN, depending on the losses in the transmission path  116  and the speed of signals transmitted. Short pulses may be attenuated to a point where they are not received at all. Assuming they are received, they may be significantly shortened in width and are subject to increased jitter. Longer pulses also suffer from timing errors, because they are delayed by the distorting characteristics of the transmission path  116 . In addition, pulsewidths of both long and short pulses are distorted, owing to differences between risetimes and falltimes of signals passed through the transmission path.  
           [0010]    We have recognized, as shown in FIG. 3, that the distortion imposed by the transmission path  116  can be described by a transfer function H(s). To pre-compensate for the distortion induced by H(s), we observe that one need only pass the bit stream through a filter  310  having a transfer function H −1 (s). The effects of the filter  310  then balance the distortion of the transmission path  116 , to produce a receiver signal SIG REC that accurately resembles SIG IN.  
           [0011]    Realizing this type of filter tends to be difficult in practice, however. Analog filters for high frequency signals tend to be physically large. In addition, optimal characteristics are often difficult to establish or change to accommodate different transmission paths. Although they are usually smaller and more flexible, digital filters present drawbacks as well. Because they involve mathematical operations, such as addition and multiplication, they tend to be ill suited for extremely fast signals that change faster than a digital filter&#39;s mathematical circuits can handle.  
           [0012]    What would be desirable is a compensation technique that could be realized in a small area, could be readily adapted for different transmission paths, and could be operated on extremely fast digital bit streams.  
         BRIEF SUMMARY OF THE INVENTION  
         [0013]    With the foregoing background in mind, it is an object of the invention to compensate, at least partially, for distortion in high-speed bit streams imposed by band-limited transmission paths.  
           [0014]    To achieve the foregoing object, as well as other objectives and advantages, the signal level of a digital bit stream to be inputted to a distorting transmission path is effectively pre-compensated for distortion by correcting the bit stream&#39;s amplitude on a bit-by-bit or less frequent basis. A plurality of signal levels are established. One of these signal levels, or a combination of them, is selected at a time for establishing an input to the transmission path, based on the current bit and at least one previous bit of the digital bit stream. The selected levels of the pre-compensated bit stream effectively counteract the distortion imposed by the transmission path and yield a significantly improved signal at the output of the transmission path.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]    Additional objects, advantages, and novel features of the invention will become apparent from a consideration of the ensuing description and drawings, in which— 
         [0016]    [0016]FIG. 1 is a simplified schematic of a circuit for transmitting and receiving a digital bit stream;  
         [0017]    [0017]FIG. 2 is a timing diagram showing electronic signals from the circuit of FIG. 1;  
         [0018]    [0018]FIG. 3 is a simplified schematic of the circuit of FIG. 1 equipped with an adjusting circuit for compensating distortion imposed by the transmission path;  
         [0019]    [0019]FIG. 4 is a simplified schematic of a circuit according to the invention for compensating distortion in response to a current bit and at least one previous bit;  
         [0020]    [0020]FIG. 5 is a flowchart of a process according to the invention for compensating for distortion of a digital bit stream through a particular transmission path;  
         [0021]    [0021]FIG. 6 is a table showing relationships between output values and bits as used in the circuit of FIG. 4;  
         [0022]    [0022]FIG. 7 is a simplified schematic of a first embodiment of an adjusting circuit suitable for use in the circuit of FIG. 4;  
         [0023]    [0023]FIG. 8 is a simplified schematic of a second embodiment of an adjusting circuit suitable for use in the circuit of FIG. 4; and  
         [0024]    [0024]FIG. 9 is a flowchart of a process according to the invention for adjustably compensating for distortion of digital bit streams through transmission paths in general.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0025]    [0025]FIG. 4 shows an illustrative embodiment of the invention. As with the prior art, a memory  110  provides N-bit parallel data to a serializing circuit, which converts the N-bit parallel data to 1-bit serial data. The serializing circuit  412  differs from the serializer  112  of FIGS. 1 and 3, however, in that it provides output not only for the current bit (D 0 ), but also for a plurality of immediately preceding bits (D −1 , D −2 , D −3 ). Illustrative examples of the serializing circuit  412  include shift registers and cyclic latching multiplexors.  
         [0026]    The output bits D −3 -D 0  from the serializing circuit  412  are applied to an adjusting circuit  414 . The role of the adjusting circuit  414  is preferably to approximate the behavior of a filter having a transfer function H −1 (s). The adjusting circuit produces an output signal SIG ADJ, which generally (but not necessarily) is buffered to provide SIG IN, the input signal to the transmission path  116 .  
         [0027]    The adjusting circuit  414  approximates H(s) by applying predetermined and pre-established reference levels to its output. The reference levels can be voltages, currents, or combinations of voltages and currents. We have observed that, for a digital signal that alternates between discrete levels, a finite and relatively small number of reference levels can be used to pre-compensate a digital bit stream.  
         [0028]    [0028]FIG. 5 shows a process whereby the adjusting circuit  414  accomplishes its filtering operation. At step  510 , the transfer function H(s) of the transmission path  116  is determined. H(s) can be measured directly (e.g., using a spectrum analyzer) or can be estimated or otherwise deduced. The desired transfer function, H −1 (s), of the adjusting circuit is then computed, estimated, or otherwise deduced at step  512 .  
         [0029]    At step  514 , we determine the value of each reference level V R . In general, a unique reference level V R  is associated with each unique combination of bits inputted to the adjusting circuit  414  (see FIG. 6). If we let x(t) be the input to the adjusting circuit as a function of time (i.e., the serial bit stream, or D 0 ), and we let y(t) be the output (SIG ADJ) of the adjusting circuit, then  
           y ( t )= x ( t )* h   −1 ( t )  (EQ. 1)  
         [0030]    where h −1 (t) is the inverse Laplace transform of H(s), and “*” denotes convolution. Using signal processing software, manual techniques, or other means, each value of x(t)*h −1 (t), and thus V R , can be computed for each combination of the current bit and preceding bits.  
         [0031]    With the values of V R  determined, different reference circuits can be provided to establish the different reference levels. The adjusting circuit  414  then accomplishes its filtering operation simply by matching reference levels to input codes in real time, and then outputting the matching reference levels (step  518 ). Since the dynamics H(s) of the transmission path are likely to remain stable over time, the values of V R  can be determined once and then permanently designed into the adjusting circuit  414 .  
         [0032]    Although a unique reference level will generally correspond to each code combination, the number of reference circuits actually implemented can be varied. Circuits generally operate faster when they are kept smaller and simpler. Therefore, the number of reference circuits is preferably reduced by grouping together reference levels that approximately equal one another, and then providing a single reference level to represent each group. This aspect of implementation is shown in step  516 . Each representative level may be one of the references V R  within the respective group, an average of the levels within the group, or some other value that fits the different levels of the group.  
         [0033]    The adjusting circuit  414  preferably includes logic for ensuring that the representative level for each group is selected whenever an input code arises that corresponds to any member of the respective group. The number of groups implemented is thus a matter of design choice and depends upon a balancing of various factors, including circuit size, complexity, desired filtering accuracy, and timing performance of the requisite logic.  
         [0034]    [0034]FIGS. 7 and 8 show two illustrative implementations of the adjusting circuit  414 . In FIG. 7, reference levels are provided as voltages, and the voltages are switched to the output of the adjusting circuit  414  via analog switches, shown collectively as an analog mux  710 . A logic circuit  712  selects from among different reference voltages V A -V X , based on the input codes D −3 -D 0  from the serializing circuit  412 . Depending on the implementation, the logic circuit  712  may select from references that correspond to specific codes, references that correspond to representatives of groups, or combinations of the two.  
         [0035]    In FIG. 8, reference levels are provided as currents, which are switched to the output of the adjusting circuit  414  via devices shown collectively as current switches  810 . The individual devices from which the current switches  810  are comprised can be analog switches, transistors implemented as switches, current mirrors, or any suitable circuits for producing an output current in response to a selected input current. The outputs of the current switches  810  are preferably tied together and to a resistor  814 , which converts the selected current into a voltage to be buffered and inputted to the transmission path  116 .  
         [0036]    In many instances, current switching can attain higher speeds than voltage switching. In these instances, it is preferable to omit the resistor  814  and the transmitter  11  (see FIG. 1) and provide the current reference level directly to the transmission path  116 . To convert the output current to a voltage, a termination resistor (not shown) can be provided at the input of the receiver  118 .  
         [0037]    The pre-compensation technique described herein is preferably used in an automatic test system (i.e., a “tester”) for testing newly manufactured semiconductor devices, or for testing devices at various stages of the manufacturing process. The technique can compensate for path losses between a digital transmitter circuit and a DUT (device under test), thereby delivering test signals to the DUT with improved signal integrity. Gains in signal integrity allow a tester to discern the characteristics of DUTs more accurately. This is particularly the case for measuring timing characteristics such as jitter. Although the technique described herein is well suited for automatic test systems, it can be applied in any application in which signal delivery can be improved by pre-compensation of digital bit streams.  
         [0038]    Alternatives  
         [0039]    Having described one embodiment, numerous alternative embodiments or variations can be made. For instance, as shown and described herein, reference values for the adjusting circuit  414  are determined once and then permanently implemented with voltage and/or current reference circuits. The reference circuits can be made adjustable, however, for accommodating transmission paths with different characteristics. This variation is shown in FIG. 9. After H(s) and the compensating values V R  are determined (steps  910  and  912 ), digital-to-analog converters (DACs) can generate these values (step  914 ). The references generated by the DACs can then be outputted based on input code, as described above (step  916 ). Significantly, these DACs can be programmed to correct for distortion in situ. Thus, a circuit that embodies the adjusting circuit  414  can be made portable for adapting to different transmission paths in different environments. Programmable logic can manage grouping of reference circuits to reduce component count, if desired. Alternatively, separate reference circuits can be provided for each input code to the adjusting circuit  414 .  
         [0040]    Another way of reducing component count is to form certain reference levels from combinations of other reference levels. For example, voltage references can be added by connecting voltage sources in series. Likewise, current references can be added by connecting together the outputs of individual current sources.  
         [0041]    As shown and described herein, the adjusting circuit  414  receives a total of three preceding bits, D −3 , D −2 , and D −1 , in addition to the current bit D 0 . It should be noted that this choice of three preceding bits is merely illustrative. In any particular implementation, the optimal number of preceding bits can be determined by considering a variety of factors, including the transfer function H(s) of the transmission path, the bit rate of the output data stream, and the desired level of correction. Given the same bit rate, transmission paths with longer time constants generally benefit more from greater numbers of preceding bits, because they take longer to settle and thus require correction over longer periods of time. In general, the greater the number of preceding bits, the greater the accuracy of correction. Adding more bits involves diminishing returns, however, because the number of reference levels, if each reference level is to be implemented separately, goes up exponentially with the number of bits. Therefore, we believe that optimal results can be attained by setting the number of bits to a value that spans a period of time equivalent to about two or three time constants of H(s). For accurate DC performance, it is desirable that the bit stream be allowed to settle to stable high and low logic levels. For example, if the total number of bits is four and D −3 -D 0  equals “1111,” then the output of the adjusting circuit  414  should be the signal level that corresponds to a logic level “1.” Similarly, if D −3 -D 0  equals “0000,” then the output of the adjusting filter should be the signal level that corresponds to a logic level “0.” To do otherwise would cause the adjusting circuit never to provide proper voltage levels.  
         [0042]    Correction need not be perfect. Although the reference values V R  are preferably obtained through an accurate measurement of H(s), this is not required. Some correction is generally better than no correction, and simply estimating the values V R  can often provide adequate results.  
         [0043]    Pre-compensation need not be aimed merely at restoring the shape of the original bit stream. It may also be used to produce a desired shape that differs from that of the original bit stream. To illustrate, one could design the adjusting circuit  414  with a transfer function H −1 (s)D(s), where D(s) is a desired transfer function by which the data stream is to be tailored.  
         [0044]    We have described above how the adjusting circuit  414  compensates for distortion imposed by the transmission path  116 . The pre-compensation technique can be used to correct for distortion imposed by the transmitter  114 , receiver  118 , or any other elements in the circuit.  
         [0045]    The form of compensation described, i.e., approximating H −1 (s), performs an approximately linear, time invariant correction on the bit stream. Circuit behavior can include significant non-linear effects, however, particularly at high speeds. These may include asymmetries between risetimes and falltimes of the transmitter  114  and receiver  118  that last for longer than one bit, skin effect, and hysteresis. By appropriately setting the reference levels, the adjusting circuit  414  can be tailored to compensate these and other non-linear effects.  
         [0046]    In addition, the actions of the adjusting circuit  414  can be used to optimize particular characteristics of the transmitted data stream. For example, one may wish to provide the lowest jitter, or the smallest common mode error, even at the expense of increased errors in other areas. Appropriate settings of the reference levels allow the adjusting circuit  414  to be tailored for optimizing a variety of these characteristics.  
         [0047]    As shown and described herein, the adjusting circuit  414  provides its output as a single level, based on the combination of the current bit and the previous bits. Alternatively, the adjusting circuit can provide its output in two parts—a first part for the current bit and a second part for the correction, which would then be added or subtracted from the current bit. The approach we have chosen appears to be simpler, but this is a matter of design choice.  
         [0048]    In the illustrative embodiment described herein, the adjusting circuit  414  selects a reference for each bit of the digital bit stream, i.e., at the bit rate. Where output data and corrections are provided separately, as described above, it may be permissible to skip correction for certain bits. Thus, for instance, the adjusting circuit can be constructed to correct every second bit, every third bit, or, more generally, every M th  bit. Bits between corrections simply hold previous correction values. Data continues to be outputted at the bit rate, but corrected values are updated at one-M th  the bit rate.  
         [0049]    In some instances, it may be desirable to base a correction not only on the current and previous bits, but on one or more fixture bits as well. The adjusting circuit  414  is readily adaptable for this purpose. For example, bits D −3 -D −1  can be renamed as bits D −2 -D 0 , and bit D 0  can be renamed as bit D + 1. The correction levels V R  can then be recomputed to achieve the desired balance of correction between past, present, and future bits.  
         [0050]    Although the embodiment disclosed herein applies to serial bit streams, the correction technique is also applicable to individual data lines of parallel bit streams. In addition, although binary logic has been assumed herein, the correction technique can also be extended to digital systems having three or more discrete levels. Also, although the invention has been shown and described for single-ended signals, the pre-compensation technique can be readily applied to both single-ended and differential signals.  
         [0051]    Therefore, while the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.