A SELECTABLE-TAP EQUALIZER, AUTO-CONFIGURED EQUALIZER,
RECEIVING CIRCUIT HAVING AN EQUALIZER CALIBRATION
FUNCTION, AND SYSTEM HAVING GROUPED REFLECTION
CHARACTERISTICS
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority to U.S. Patent Application Nos. 10/195,129, 10/195,130, 10/195,140, and 10/195,128, filed on July 12, 2002, which applications are hereby incorporated by referencε in their entirety.
FIELD OF THE INVENTION
The prεsεnt invention relates generally to high speεd signaling within and bεtween intεgrated circuit devices, and more particularly to reducing latent signal distortions in high speεd signaling systems.
BACKGROUND
Equalizing driver circuits are often used in high speεd signaling systεms to mitigatε thε εffεcts of intεr-symbol intεrfεrεncε and crosstalk. Referring to signaling system 100 of Figurε 1, for example, data values queuεd in buffεr 104 arε output to signal path 102 by output drivεr 101 simultaneously with transmission of an equalizing signal by equalizing driver 109. In the example shown, the equalizing drivεr 109 includεs a shift rεgistεr 113 and a bank of output drivεrs 111 to gεnεrate an equalizing signal based on the two most recεntly transmittεd data valuεs and the data value to be transmitted after the present, refεrεnce value. Thus, the εqualizing drivεr 109 constitutes a threε-tap (i.ε., thrεε data sourcε) equalizer for reducing inter- symbol interference that results from dispεrsion of signals transmittεd nεar in timε to the rεfεrεncε valuε (i.ε., dispεrsion-typε ISI).
Whilε the εqualizing drivεr 109 is εffεctivε for rεducing relatively low-latency distortions such as dispersion-typε 1ST, othεr typεs of systεmatic distortions, such as signal rεflεctions (also rεfεrrεd to as rεflεction-typε ISI), tend to have a much higher latency (i.ε., occur much later in time rεlative to transmission of the refεrεncε value) and therefore would require a substantially larger number of taps and a correspondingly largεr shift rεgistεr to countεract. For example, in the systεm of Figure 1, a first reflεction, AT, occurs whεn a refεrεnce signal encounters an impεdancε discontinuity at a transmit-sidε interfacε 105 between a transmit-side portion (102A) and a backplanε portion (102B) of the signal path 102 (e.g., a connector interfacε to a backplanε). Because the reflεction bounces between the interface 105 and the output of the transmit circuit, thε reflection will arrive at the input of a recεivεr 103 with a latεncy (i.e., dεlay rεlativε to arrival of thε unrεflεcted refεrεncε signal) εqual to approximately twicε thε rεflεction flight timε bεtwεεn thε transmit-sidε intεrfacε 105 and thε transmit circuit output. Impεdancε discontinuities at the input to recεivεr 103 and at a rεcεivε-sidε intεrfacε 107 betweεn a receive-side portion (102C) and thε backplanε portion (102B) of thε signal path 102 similarly producε rεflεctions, A , CT, CR and D that arrivε at thε rεcεivεr 103 at rεspεctive, latent timεs according to thε additional distance travelεd by thε rεflεctions. Figure 2 is a wavεform diagram of reflections A , AR, B, CT, CR and D illustrating their rεspεctivε latencies rεlative to reference signal arrival time, T (A2TR corresponds to additional reflections produced by the intεrface 105). Because such reflections may occur at latenciεs on thε order of tens or evεn hundreds of signal transmission intervals, the shift registεr 113 would nεεd to bε substantially deeper in order to store the tap values needεd to mitigatε thε resulting distortions. Moreover, the precise timε at which rεflεctions arrivε at the receivεr 103 arε dεpεndεnt upon systεm configuration, meaning that a genεrally applicable equalizer, whether implemεntεd on thε transmit or
receivε sidε of the signaling systεm 100, would need a relatively large number of equalizing taps to be able to compensatε for a rεflεction occurring at any timε bεtwεen the signal transmit time and a worst case latεncy. Unfortunately, each additional equalizing tap increases the parasitic capacitance of the transmit or receive circuit, degrading the frεquεncy rεsponsε of thε circuit and potεntially increasing thε impεdance discontinuity (and therefore the magnitude of reflected signal) at the circuit input/output.
BRIEF DESCRIPTION OF THE DRAWINGS Thε present invention is illustrated by way of εxamplε, and not by way of limitation, in thε figures of the accompanying drawings and in which like rεfεrεncε numεrals rεfεr to similar elemεnts and in which: Figure 1 illustrates a prior-art signaling system; Figure 2 is a waveform diagram of reflεctεd signals produced by the prior-art signaling system of Figure 1 ;
Figure 3 illustratεs a signaling systεm according an εmbodimεnt of thε invention;
Figure 4 illustrates an exεmplary relationship bεtwεεn clock and data signals in thε signaling systεm of Figure 3; Figure 5 illustrates the manner in which pre-εmphasis and sεlεctablε- tap equalization are employed to reduce low- and high-latency distortions in thε signaling systεm of Figure 3;
Figure 6 illustrates a transmit device having circuitry for sεlεcting betweεn tεmporal εqualization and cross-talk cancellation data sources; Figure 7 illustrates transmit and receive devices configured to perform near-end cross-talk cancellation;
Figure 8 illustrates a transceiver device that includes both an εqualizing transmittεr and an equalizing receivεr;
Figure 9 illustrates an equalizing transceivεr according to an εmbodimεnt in which both transmittεd and receivεd data valuεs are storεd and sεlεctivεly usεd to source εqualizεr taps;
Figure 10 illustrates an εxεmplary buffεr that may bε usεd within the receivεr of Figure 3;
Figure 11 is a flow diagram of an εxemplary method of sεlεcting a data valuε having desired symbol latency from the buffer of Figure 10;
Figure 12 illustrates an exεmplary εmbodimεnt of a tap sεlεct circuit;
Figure 13 illustrates an exεmplary embodiment of the select logic of Figure 12;
Figure 14 illustrates a genεralizεd selεct circuit that may bε usεd to sεlεct Q tap values from the buffer circuit of Figure 12;
Figure 15 illustratεs an εmbodimεnt of a switch εlεmεnt that may bε usεd within thε switch matrix of Figure 14; Figure 16 illustratεs an embodiment of an equalizing receivεr;
Figure 17 illustratεs thε recεivε circuit of Figure 16 in greater detail;
Figure 18 illustrates an exemplary timing relationship between clock, data and equalization signals in the equalizing receiver of Figure 16;
Figure 19 illustrates a current-sinking output drivεr that may be used within the equalizing receivεr of Figure 16;
Figure 20 illustrates an embodimεnt of a push-pull typε of sub-driver circuit that may be usεd within an εqualizing output drivεr;
Figure 21 illustrates another εmbodimεnt of a sub-drivεr circuit that may bε usεd within an equalizing output driver; Figure 22 illustrates an alternativε type of equalizing circuit that may be usεd in εmbodimεnts of thε invεntion;
Figure 23 illustrates an embodiment of a levεl shifting circuit that may be used within the equalizing circuit of Figure 22;
Figure 24 illustrates another type of equalizing circuit that may be used in embodiments of the invention;
Figure 25 illustrates an embodiment of a level shifting circuit that usεd within thε εqualizing circuit of Figure 24; Figure 26 illustrates an equalizing receiver according to an embodiment of the invention;
Figure 27 illustrates a shift registεr and tap selector that may be usεd within thε εqualizing rεcεivεr of Figure 26;
Figure 28 illustrates an equalizing receiver for receiving a double data rate, multilevεl input signal according to an embodiment of the invention;
Figure 29 illustrates an exemplary encoding of bits according to the level of a sampled, multilevel input signal;
Figure 30 illustratεs an exεmplary timing relationship bεtwεen clock, data and equalization signals in an equalizing receivεr; Figure 31 illustrates an εmbodimεnt of an εqualizing receiver that generatεs rεcεivε and εqualization clock signals having thε phasε relationship shown in Figure 30;
Figure 32 illustratεs the use of embedded scoping to genεrate a trace of a data signal ovεr a singlε symbol time; Figure 33 illustrates an embodiment of a signaling system that employs εmbεdded scoping to determine equalizer tap selections, tap weights and tap polarities;
Figure 34 illustrates an exemplary trace record for a pulse waveform captured by an embεdded scope within the signaling system of Figure 33; Figure 35 illustrates a method of setting equalization coefficients in a signaling system according to the invention; and
Figure 36 illustratεs a signaling system that employs path length symmetry to reduce the total number of equalization taps neεded to compensate for reflection-type ISI.
DETAILED DESCRIPTION
In the following dεscription, specific nomenclature is set forth to provide a thorough understanding of thε present invention. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the present invention, hi some instances, the interconnection between circuit elεmεnts or circuit blocks may be shown as multi-conductor or single conductor signal lines. Each of the multi-conductor signal lines may alternatively be singlε signal conductor lines, and each of the single conductor signal lines may altεrnativεly bε multi-conductor signal lines. A signal is said to be "asserted" when the signal is driven to a low or high logic state (or charged to a high logic statε or discharged to a low logic state) to indicate a particular condition. Conversεly, a signal is said to bε "dεassεrtεd" to indicate that the signal is driven (or charged or discharged) to a state other than the asserted state (including a high or low logic state, or the floating statε that may occur whεn thε signal driving circuit is transitioned to a high impedance condition, such as an open drain or open collector condition). A signal driving circuit is said to "output" a signal to a signal receiving circuit when the signal driving circuit asserts (or deasserts, if explicitly stated or indicated by context) the signal on a signal line coupled betwεεn thε signal driving and signal receiving circuits. A signal line is said to be "activated" whεn a signal is asserted on the signal line, and "deactivated" when the signal is deasserted. Additionally, thε prefix symbol "/" attached to signal names indicatεs that thε signal is an active low signal (i.e., the asserted state is a logic low state). A line over a signal name (e.g., ' < signal name > ') is also used to indicate an active low signal. Active low signals may be changed to active high signals and vice-versa as is genεrally known in the art.
Signaling systems and circuits for equalizing low- and high-latεncy signal distortions arε disclosed herεin in various embodiments (herein, equalizing refers to counteracting, canceling or otherwise reducing signal
distortion). hi one embodimεnt, low-latency distortions (e.g., dispεrsion-type
ISI, cross-talk, etc.) are reduced by a transmit-side εqualization circuit, and high-latency distortions (e.g., signal reflections) arε reduced by a recεivε-sidε equalization circuit; the latεncy of rεcεivε-sidε equalization taps being offset relative to the reception time of a refεrεncε signal by thε numbεr of transmit- side equalization taps.
Because data values recεivεd within an εqualizing receivεr arε stored for parallel transfer to application logic, stored data is available to supply receivε-sidε equalizer taps; no additional shift register or other storage circuit is necessary to store equalizεr data. In onε εmbodimεnt, a sεlect circuit is provided to selectively route a relativεly small subsεt of thε stored data values to equalizing taps within the equalizing recεiver. By this arrangemεnt, reflected signals arriving at various, latent times may be counteracted by routing of selected stored data valuεs to the recεive-side equalization taps. Bεcausε thε number of equalizing taps within the equalizing rεcεivεr is small relative to the range of time for which distortion evεnts are mitigated, the parasitic capacitance of the equalizing recεiver is small relativε to thε parasitic capacitance that would result from providing a dedicated tap for each storεd data valuε.
Signaling System with Selectable-Tap Equalizer Figure 3 illustrates a signaling system 117 according to an εmbodimεnt of the invention. The system 117 includes an equalizing transmitter 115 and equalizing receiver 116 coupled to one another via a high-speεd signal path 122, and a controller 141 couplεd to thε transmittεr 115 and the receivεr 116 via relatively low-speed signal paths 142A and 142B, respectively. In one embodiment, the signal path 122 is formed by component signal paths 122 A, 122B and 122C (ε.g., transmission linεs that introduce respective, nonzero propagation delays and exhibit respεctivε impedance characteristics), each
disposed on respective circuit boards that are coupled to one another via circuit board interfacεs 125 and 127 (ε.g., connectors). In a specific implemεntation, signal path 122B is formεd on a backplanε and signal paths
122A and 122C arε formεd on respective daughterboards (e.g., line cards) that are removably coupled to the backplane via connectors 125 and 127. The transmittεr 115 and rεcεivεr 116 arε implεmented in rεspεctivε intεgratεd circuit (IC) devices that are mounted on the daughterboards. The controller, which may be a gεneral or special purposε processor, state machinε or other logic circuit, is implεmεntεd within a third intεgrated circuit device mounted to a yet another circuit board. In thε εmbodimεnt of Figurε 3, signal paths 142 A and 142B arε usεd to convey configuration information from the controller 141 to the transmitter 115 and recεivεr 116, rεspεctivεly, and may bε disposεd on the samε circuit board (or circuit boards) as signal path 122 or implεmented by an alternativε structure such as a cable. The controller may alternativεly bε couplεd to thε transmitter 115 and recεivεr 116 by a shared signal path such as a multi-drop bus. Thε opεration of thε controller 141 is discussed in greater detail below. In alternative embodimεnts, thε IC dεvices containing the transmitter 115, recεivεr 116 and controller 141 may be mounted to a common structure with the signaling paths 122, 142A and 142B coupled directly to the IC devices (e.g., all threε ICs mountεd to a circuit board and coupled to one another via circuit board traces, or all threε ICs packaged within a single multi-chip module with signal paths 122 and 142 formed bεtwεεn the ICs by bond wires or othεr conducting structures). Also, the transmitter 115, rεcεivεr 116 and controller 141, or any subset thereof, may be included within the same IC devicε (ε.g., systεm on chip) and thε signaling paths 122 and/or 142 implemented by a metal layer or other conducting structure within thε IC dεvice.
The transmitter 115 transmits data on the signaling path 122 during succεssivε timε intervals, refεrrεd to herein as symbol times. In one
embodimεnt, illustratεd by thε timing diagram of Figurε 4, εach symbol time, Ts, corresponds to a half cycle of a transmit clock signal, TCLK, such that two data values (e.g., valuεs A and B) are transmitted on signaling path 122 per transmit clock cycle. Thε transmittεd data signal arrivεs at thε input of receiver 116 after propagation time, Tp, and is sampled by the recεiver 116 in rεsponsε to εdges of a receive clock signal, RCLK. Still referring to Figure 4, thε receive clock signal has a quadrature phase relation to data valid windows (i.e., data eyes) in the incoming data signal such that each sample is captured at the midpoint of a data eyε. In altεrnative embodimεnts, thε sampling instant may bε skewed relative to data eye midpoints as necessary to satisfy signal setup and hold time requirements in the receiver 116. Also, more or fεwer symbols may be transmitted per cycle of the transmit clock signal.
The εqualizing transmittεr 115 includεs a transmit shift registεr 124, output drivεr 121 and transmit εqualizer 129; the transmit equalizer 129 itself including a shift register 120 and a bank of output drivers 131. At the start of each symbol time, the data value at thε hεad of the transmit shift registεr 124, referred to herein as the primary data value, is drivεn onto the signal path 122 by the output drivεr 121, and the equalizer 129 simultaneously drives an equalizing signal onto the signal path 122. This type of εqualization is referred to herein as transmit preemphasis. In one embodimεnt, the signal driven onto thε signal path 122 by thε output driver 121 (referred to herein as the primary signal) is a multi-levεl signal having onε of four possiblε statεs (ε.g., dεfinεd by four distinct signal ranges) and therefore constitutes a symbol reprεsεntativε of two binary bits of information. In alternativε εmbodimεnts, thε primary signal may havε more or fεwεr possiblε states and therefore represent more or fewεr than two binary bits. Also, thε primary signal may bε singlε-εndεd or diffεrεntial (an additional signal line is providεd to carry thε complεmεnt signal in thε differential case), and may be a voltage or current mode signal.
Each of the output drivεrs 131 within thε equalizing circuit 129 form either a pre-tap driver or post-tap driver according to whether the source data value has already been transmitted (post-tap data) or is yet to be transmitted
(pre-tap data). In the spεcifϊc embodiment of Figure 3, thε equalizer includes N post-tap drivers sourced by data valuεs within thε shift rεgistεr 120 and one pre-tap driver sourced by a data valuε within thε transmit shift register 124.
Accordingly, the resultant equalizing signal driven onto the data path 122 will have a signal level according to data values having symbol latencies of -1, 1,
2, ..., N, where the symbol latεncy of a givεn data valuε rεfεrs to thε number of symbol times by which transmission of the data value prεcεdes the transmission of the primary value. Different numbεrs of post-tap and prε-tap drivεrs may be provided in alternative embodiments, thereby allowing for equalization basεd on values having different symbol latencies.
Still referring to Figure 3, the recεivεr 116 includes a sampling circuit 123, buffer 132, tap selεct circuit 128 and tap select logic 139. Data signals are sampled by the sampling circuit 123, then stored in the buffer 134 for eventual use by application logic (not shown). Because the buffered data is stored for at least a predetermined time, and represents historical data up to a predεterminεd numbεr of symbol latencies, the buffered data forms an ideal source of post-tap data values. That is, in contrast to transmit-side buffering of post-tap data values (which requirεs dedicated storage such as shift registεr 120), buff ring of rεcεivεd data in rεcεivεr 116 incurs no additional storage overhεad bεcausε thε rεcεivεd data values arε buffered in any event to facilitate transfer to receivε-sidε application logic. Additionally, thε tap sεlect circuit 128 enablεs a subsεt of data valuεs within thε buffεrεd data to bε sεlected to source equalizεr taps in a rεcεivε-side equalizer circuit. Because the subsεt of data values may be selεctεd according to the precise symbol latencies of reflections and other high-latency distortions, a relativεly small numbεr of data valuεs may bε selected to form receivε-side equalization taps
having latεncies that match thε latencies of the distortions. By this arrangement, high latency distortions may be reduced by recεivε-side equalization without dramatically increasing the parasitic capacitance of the receiver (i.e., as would result from a large number of receivε-sidε εqualization taps).
In onε εmbodimεnt, the tap sεlεct logic is a configuration circuit that outputs a tap sεlεct signal 134 according to a configuration value. As discussed below, the configuration value may be automatically generated by system 117 (e.g., at system startup) or may be empirically dεtεrminεd and stored within the configuration circuit or elsεwhεrε within systεm 117.
Still referring to Figurε 3, numεrous alternative types of equalization circuits may be used within the recεivεr 116. For εxample, in one embodiment, the receivεr 116 includes an output drivεr 140 (illustrated in dashed outline in Figure 3 to indicate its optional nature) to drive an equalizing signal onto the signal path 122 (and therefore to the input of the sampling circuit 123) coincidentally with the symbol time of an incoming signal. In another embodiment, the sampling circuit 123 includes a preamplifier having an equalizing subcircuit. In yet another embodimεnt, an εqualizing subcircuit is couplεd to the sampling circuit itself. Each of thεse embodiments is described in further detail below.
Still referring to Figure 3, the distribution of low- and high-latency equalization functions bεtwεεn thε εqualizing transmittεr 115 and equalizing recεivεr 116 is achiεvεd through usε of a dεad rangε within the receive-side buffer 132. That is, the range of stored data values that may be selected to source receivε-sidε equalization taps (i.ε., R) is offsεt from the sampling instant by a number of symbol times, M. In one embodiment, M is equal to N, the number of post-tap drivers, such that transmit preεmphasis is used to reduce distortions resulting from symbol transmissions up to N symbol timεs prior to transmission of thε primary signal, and receive-side equalization is
usεd to rεducε distortions resulting from symbol transmissions more than N symbol timεs prior to transmission of thε primary signal. For εxamplε, if thεrε are four post-tap drivεrs in thε transmittεr 116 (i.e., M=N=4 ), then thε lowεst latεncy value within the range, R, of stored data values is M+l=5 symbol times, and the recεivεr 116 is said to have a dead range of four symbol times. In the embodimεnt of Figurε 3, buffer 132 is formed by a shift register having a dead range component 133 and a selεctablε-rangε component 135, the tap selector 128 being couplεd to thε sεlεctable-range component 135 to sεlεct thε subset of tap data sources therefrom. In altεrnative embodimεnts, thε dεad rangε component of the buffεr 132 may include fewεr than M storagε εlεmεnts or even zero storage elεmεnts, dεpεnding on thε timε required to rεcεivε data and transfεr data into thε buffεr 132. Also, thε tap selector 128 may be coupled to one or more storagε εlεments within the dead range component 133 to enablε thε sizε of the dead range to be programmed according to the configuration of the transmit circuit 115. Finally, as discussed bεlow, thε buffεr 132 may include one or more parallel rεgistεrs in addition to (or instead of) the shift register formed by components 133 and 135.
Figure 5 illustrates the manner in which pre-εmphasis at the transmitter 115 and selectable-tap equalization within the receiver 116 are employed to reduce low- and high-latency distortions in the signaling systεm of Figurε 3. Wavεform 148 dεpicts thε state of the signal path 122 during and after non- equalized transmission of a primary signal to illustrate the low- and high- latency distortions that may result. The primary signal is transmitted during a transmit interval 149 (i.e., a symbol time) that starts at time T, and the corresponding primary value is used to generate a transmit-side equalization signal (i.e., preεmphasis signal) ovεr a window of N symbol timεs following thε transmit intεrval 149. Thε transmit-side equalization signal is used to reduce low-latency distortions that may result from any number of sources
including, without limitation, dispersion-typε ISI, inductive and capacitive coupling (which may be compensated, for examplε, by sourcing a prε- εmphasis output drivεr within bank 131 with a valuε being transmitted on a neighboring signal path), and low-latency reflεctions (ε.g., rεflεctions that do not travεl significantly further than the unreflεcted primary signal and therefore arrive at the recεiver shortly aftεr thε primary signal). The primary signal is sampled by the recεiver 116 during a reception interval (i.e., data valid window) that corresponds to the transmit interval 149, the reception interval being shifted relative to the transmit intεrval according to thε signal flight time betwεεn the transmitter 115 and recεivεr 116. Thε sεlεctable-tap equalizεr within thε recεivεr 116 has a dead range of M symbol timεs and a selectable range of R symbol times. Accordingly, thε sampled primary value (i.e., the primary received during the reception interval) is sεlεctablε to sourcε an equalizer tap within the recεiver 116 when the symbol latency of the sampled primary value is greatεr than M symbol timεs and lεss or εqual to R symbol timεs. Thus, during given reception interval, previously rεcεived values having symbol latencies ranging from M+l to R may be selected by the tap selεctor 128 of Figurε 3 and usεd to reduce high-latency distortions. Intervals 150l3 150 , and 150 within interval 153 illustrate equalization windows achiεvεd by tap sεlεctions within thε tap selector 128. For example, interval 150ι corresponds to one or more tap selections used to εqualize a distortion occurring shortly aftεr thε dead rangε, while interval 150 corresponds to one or more tap sεlections used to reduce a distortion caused by a signal transmission dozens or even hundreds of symbol times prior to the current reception interval. In the transmit circuit 115 of Figurε 3 and other equalizing transmitters disclosed herein, the polarity of signal contributions which form the transmit preemphasis signal (including any cross-talk cancellation component thereof) may bε fixεd or programmable and may be established (or controlled) within the data shift registεrs (i.ε., 124 and 120) or
by the output drivers themsεlvεs (ε.g., output drivεrs within bank 131).
Similarly, in the receive circuit 116 of Figure 3 and other equalizing recεivεrs disclosed herein, the polarity of signal contributions which form thε receivεr equalization signal (including any cross-talk cancellation component thereof) may be fixed or programmable and may be establishεd (or controlled) within a data storage circuit (i.e., buffεr 132) or within a rεcεivεr εqualization circuit.
The ability to control tap data latenciεs with thε tap select logic 139 and tap selector 128 of Figure 3 enablεs thε εqualization windows 150 to be shifted within thε sεlεctablε range, R, as necessary to reduce high-latency distortions, thereby permitting generalized application of system 117 in environments having a variety of diffεrεnt distortion characteristics, hi the signaling system 117 of Figure 3, the controller 141 is used to configure one or more of the values of N, M and R (i.e., the number of transmit-side post-tap εqualizεrs, thε rεcεivε-side dεad rangε and thε rεcεive-sidε sεlεctablε rangε) according to systεm nεεds. hi onε embodiment, the controller includes a nonvolatile memory to store εmpirically or analytically determined values of N, M and R. Alternativεly, thε signaling systεm 117 may include a separate storage (e.g., flash memory, or other non- volatile media) to store values of N, M and R (or values that may be used to dεtεrminε N, M and R), the controller 141 being coupled to access such separatε storage via signal path 142 or another path. In either case, when the signaling system 117 is initially powered on, the controller 141 communicates the post-tap equalizer count, N, to the transmitter 115 and the dead range and selectable range valuεs, M and R, to thε receiver 116. Alternativεly, thε values of N, M and R may be detεrminεd at production timε (e.g., through system testing) or design time, and pre-programmεd into configuration circuitry within thε transmittεr 115 and/or rεcεivεr 116, or fixεd by design of the transmitter 115 and/or receivεr 116. hi such embodiments, thε controller 141 and signal path 142 may bε omittεd altogεthεr.
As discussed below, embodiments of the invention may additionally include circuitry to automatically detεrminε distortion latεnciεs and to sεlect correspondingly latent data tap sources from the buffer 132, thus providing a system-indεpendent solution for rεducing systematic distortion evεnts of virtually any latεncy. The controller 141 may be used to coordinate operation of the transmitter 115 and recεivεr 116 during such automatic distortion latency detεrmination, and also to dεtermine appropriatε sεttings of N, M and
R basεd on such distortion latεnciεs.
Far-End and Near-End Cross-Talk Cancellation
As discussed above in refεr nce to Figure 3, the transmit-side equalizer 129 may be usεd to reduce signal distortion resulting from inductive and capacitivε coupling of signals transmittεd on nεighboring signal paths; a type of equalization referred to as far-end cross-talk cancellation. In one embodiment, the output driver bank 131 includes additional output drivεrs to gεnεratε εqualization signals basεd on valuεs bεing transmittεd on signal paths that arε adjacent or otherwise proximal to the signal path 122. By appropriate polarity control (performεd, for εxamplε, within the output drivers or data shift register), an equalizing signal having a polarity opposite that of an interfering neighboring signal is transmitted on the signal path 122, therεby reducing the signal interfεrεncε.
Thε numbεr of εqualizer taps neεdεd for cross-talk cancellation within a given signaling system is depεndεnt on thε physical layout of signal paths relative to one another. For εxamplε, in a systεm in which signal paths 122 arε arranged relativε to onε anothεr such that cross-talk intεrfεrεncε is negligible (e.g., paths 122 are spaced apart, arranged in an orthogonal disposition (e.g., twisted pair), etc.), no equalizεr taps may bε nεεdεd for cross-talk cancellation. By contrast, in a system in which signal paths form parallel adjacent paths (e.g., parallel traces on a printed circuit board or
parallεl conductors within a multi-conductor cablε), onε or more equalizεr taps may bε nεεdεd for εach adjacent pair of signal paths. In one εmbodimεnt of thε invεntion, εqualizεr taps are selεctively coupled to either pre-tap, post- tap or cross-talk cancellation data sources (i.e., primary value being transmittεd on nεighboring path). By this arrangεmεnt, εqualizεr taps may be selectively configured, according to systεm requirements, to provide eithεr tεmporal εqualization (i.ε., prε-tap and/or post-tap εqualization) or cross-talk cancεllation.
Figure 6 illustratεs a transmit dεvice 154 having circuitry for selεcting bεtwεεn temporal equalization and cross-talk cancellation data sources. The transmit device 154 includes transmitters 152t and 152 , each for transmitting data signals on a respectivε signal path 122i and 1222. Rεspεctivε sources of transmit data values (TX DATA1 and TX DATA2) are provided from other logic (not shown) within transmit dεvicε 154. Although only two transmittεrs 152 arε shown, additional transmitters may bε providεd in accordance with the number of signal paths 122 and/or thε number of sources of transmit data values.
Each of the transmitters 152 includes a transmit shift register (124ls 1242), output driver (1211, 1212), post-tap data shift registεr (1201} 1202) and output driver bank (131l5 1312) that operate genεrally as dεscribed in reference to Figure 3. Each transmittεr 152 additionally includes a tap data source selector (153l5 1532) having one or more multiplεxεrs for selectively coupling eithεr a local data value (e.g., a pre-tap or post-tap data value from corresponding transmit shift registεr 124 or post-tap data shift register 120) or a remote data value (e.g., a primary value suppliεd from thε head of a transmit shift registεr 124 of another transmitter, or a post-tap data value supplied from the post-tap data shift registεr of anothεr transmitter) to be the equalization tap data source. For examplε, multiplexer A within tap data source selεctor 153ι has a first input coupled to a storage elεment within post-tap data shift register
120Ϊ and a sεcond input couplεd to thε output of transmit shift register 1242, and selects, according to a select signal SEL , εithεr a post-tap data valuε within shift registεr 120l5 or thε rεmotε primary valuε output by shift register
1242 to be the tap data source for an output driver within output drivεr bank 131 Multiplεxεr J within tap data source selεctor 153i has a first input coupled to a storage element within the transmit shift registεr 1241 and a second input coupled to thε output of thε transmit shift rεgistεr 1242, and sεlects, according to a select signal SELu, either a pre-tap data value within the transmit shift registεr 124ls or thε rεmotε primary valuε to bε thε data tap source for an output driver within output driver bank 131χ.
To enablε cancellation of crosstalk interfεrence that lasts for more than a single symbol time, additional multiplexεrs may bε providεd within thε tap data source selectors 153 to select betweεn local data valuεs (pre- or post-tap) and remote post-tap data values. For examplε, multiplεxer K within tap data source selεctor 153! has a first input couplεd to receivε a prε-tap data value from transmit shift register 124i and a second input coupled to receive a remote post-tap data value from post-tap register 120 , and selεcts between the two inputs according to select signal SELIK- Tap data source selector 1532 similarly includes onε or more multiplexers to select between pre-tap, post-tap and or cross-talk cancellation data sources for output driver bank 1312. By this arrangemεnt, output drivers within banks 131 may alternatively be used to generate temporal εqualization signals or cross-talk cancellation signals according to system neεds.
Although thε multiplexers within tap data source selεctors 153i and 1532 arε dεpictεd as two-input multiplexers, multiplexers having more than two inputs may alternatively be used. For example, multiplexer A of data source selεctor 153ι may include one or more inputs to receive pre-tap data values from register 124j, one or more inputs to receive post-tap data values from post-tap register 120!, and/or one or more inputs to rεcεive cross-talk
cancεllation data valuεs (i.ε., rεmotε primary, prε-tap and or post-tap valuεs from any numbεr of othεr transmittεrs 152). In gεnεral, εach output drivεr within an output drivεr bank 131 may bε sourcεd by a multiplεxεr that sεlεcts bεtwεεn any numbεr of prε-tap, post-tap and/or cross-talk cancellation data sources. Also, not all output drivers within output driver banks 131 neεd bε fεd by multiplεxεrs, but rather may be coupled to dedicated tap data sources.
In onε embodiment, the select signals, SEL\ (including signals SEL!A,
SELU, SELΪK, εtc.) and SEL2, arε gεnεratεd by a configuration circuit (not shown) within transmit device 151 or elsεwherε in a signaling systεm that includes transmit device 151. The configuration circuit may be pre- programmεd or may be programmεd at system start-up, for example, by a controller similar to controller 141 of Figure 3.
As described in refεrencε Figurε 6, selectivε-tap transmit-sidε prεεmphasis may bε usεd to cancel or reduce interference between signals transmitted in the same direction on neighboring or othεrwisε proximal signal linεs (i.ε., far-εnd cross-talk). Sεlεctivε-tap rεcεive-side εqualization may similarly be used to reduce interference betwεεn outgoing and incoming transmissions on proximal signal linεs; intεrfεrεncε rεfεrrεd to hεrein as near- εnd cross-talk. Figurε 7 illustratεs transmit and receive devices (118 and 119, respectively) configured to perform near-εnd cross-talk cancellation. The transmit device 118 includes an output driver 121, transmit shift register 124, post-tap data shift registεr 120, and output driver bank 131, all of which operate genεrally as described above in refεrεncε to transmit device 115 of Figure 3 to εnablε gεnεration of an εqualizεd transmit signal (TX OUT) on signal path 122ι. Though not shown in Figurε 7, the transmit device 118 may additionally include selεct circuitry as described in refεrεncε to Figurε 6 to enable selεction of various equalization data sources.
Thε receivε dεvicε 119 includes a sampling circuit 123, buffer 132, tap selεct circuit 137, tap select logic 139 and equalization circuit (e.g., included within the sampling circuit 123 or implementεd as an output drivεr 140) to rεcεivε an incoming signal (RX IN) on signal path 1222. As shown in Figurε 7, thε incoming signal, RX IN, has a smaller amplitude than thε transmit signal, TX OUT, (e.g., due to transmission losses) and therefore is particularly susceptible to nεar-εnd cross-talk intεrference. To counteract cross-talk interfεr nce from the TX OUT transmission, pre-tap, primary and post-tap data values used to genεratε thε TX OUT signal (i.e., from transmit shift register 124 and post-tap data shift registεr 120) arε suppliεd to thε tap sεlεct circuit 137 within thε rεcεivεr 119. By this arrangεmεnt, thε tap sεlεct logic 139 may sεlect, as tap values for the rεcεivεr εqualization circuit, any combination of the rεceivεd data valuεs storεd within buffεr 132, and thε prε- tap, post-tap and primary data valuεs usεd to gεnerate thε TX OUT signal. As discussed above in reference to Figure 3, tap selεct logic 139 outputs a control signal to thε tap sεlεctor 137 to control tap data source selection according system configuration information. Thus, the pre-tap, post-tap and/or primary data values may bε sεlεctεd with the polarity necessary to achievε a subtractivε effect on thε corresponding cross-talk interfεrεncε (the appropriate polarity being establishεd or controlled within the buffer 132 or receiver equalizing circuit), thereby enabling reduction of near-εnd cross-talk intεrference. Although only a single tap select circuit 137 is shown in Figure 7, any numbεr of tap select circuits may be used.
Bi-directional Signaling
Although a unidirectional signaling system is depicted in Figure 3, embodiments of the invention are equally applicable in a bidirectional signaling system. Figure 8, for example, illustrates a transceiver device 151 that may be coupled to either or both sides of signaling path 122, and that
includεs both an εqualizing transmittεr 115 and an εqualizing receivεr 116 according to embodiments described herein (transmitters and rεceivεrs according to thε cross-talk canceling embodimεnts dεscribed in reference to
Figures 6 and 7 may also bε usεd). Thε transcεivεr dεvicε 151 additionally includεs an application logic circuit 154 to provide transmit data to the εqualizing transmitter 115 and to recεivε samplεd data from the equalizing recεivεr 116. Thε application logic circuit 154 also outputs an εnablε signal
(ENABLE) to alternately enable the transmittεr 115 to transmit data on thε signal path 122 or thε recεiver 116 receivεs data from thε signal path 122. Figurε 9 illustratεs an equalizing transceivεr 155 according to an embodiment in which both transmitted and received data values are stored and selectively used to source equalizer taps. The transceivεr 155 includes a transmit shift registεr 124, output drivεr 121, post-tap data shift rεgistεr 120 and output drivεr bank 131 (which may include output drivers sourced by pre- tap data valuεs, cross-talk cancellation values, or by tap data source selεctors as dεscribεd in reference to. Figure 6), all of which operatε gεnerally as described in reference to Figure 3 to output, during a givεn transmit interval, a primary signal and corresponding equalization signal onto signal path 122. The transceivεr also includes a sampling circuit 123, buffer circuit 132, tap selector 156 and tap select logic 157. The sampling circuit 123 samples data signals transmitted on signal path 122 (i.e., by a remote transmitter or transceiver) and stores the corresponding data values in buffer circuit 132. The tap selector 156 is coupled to the buffer circuit 132 as well as the transmit shift registεr (including thε hεad of thε transmit shift register which contains the primary data value) and the post-tap data shift registεr 120, and thεrefore enables any combination of received data values (i.ε., from buffεr 132) and pre-tap, primary and/or post-tap transmit data values to be. selected as source data taps within an equalizing circuit (i.e., output driver 140 or an equalizing circuit within the sampling circuit 123). The tap selεct logic 157 outputs a
control signal to the tap sεlector according systεm configuration information
(i.e., information indicative of desired symbol latencies) and the historical state of thε εnablε signal (ENABLE). Thus, depending on the dεsired symbol latenciεs of data taps, and the timεs at which thε transcεivεr 155 is transitionεd bεtwεεn sending and receiving data (i.e., turnaround timεs), the tap sεlεct logic 157 and tap sεlector 156 operate to selεct tap valuεs from the transmit shift register 124, data tap shift registεr 120, and/or buffεr circuit 132 in any combination. Thε selected tap values are then used to source equalizεr taps within an equalizing output driver 140 or an equalizing circuit within sampling circuit 123.
Although the transceiver embodimεnts dεscribεd in reference to Figures 8 and 9 include an enablε linε to alternatεly enable transmission or reception of signals, in alternative embodiments, the enable line may be omitted and transmission and reception of signals may occur simultaneously (i.ε., simultanεous bi-dirεctional signaling). In such a system, multilevel signaling may be used to enable an outgoing signal to bε transmittεd simultaneously (in εffεct, superimposed on) an incoming signal. Because the receive circuit has access to the transmitted data values, thε receive circuit may subtract the locally transmitted signal from an incoming signal to recover only the desired portion (i.e., rεmotεly transmitted portion) of the incoming signal. In such a system, the locally transmittεd signal may produce dispersion- and reflection-type ISI that may bε compensated by an equalizing recεivεr having, as an εxample, the configuration of Figure 9, but omitting the enablε line. In such an embodimεnt, thε transmit shift register 124 and post- tap data register 120 may be selεctεd by tap sεlect circuit 156 to source tap data values for equalization of low- and/or high-latεncy distortions resulting from thε local signal transmission (i.ε., by output driver 121). Notε that the post-tap data register may need to be extended (i.e., have an increased number of entriεs) to εnable reduction of high-latency distortions resulting from the
local signal transmission. The recεivε circuit tap sεlεctions, controlled by tap sεlect logic 157, may bε determinεd εmpirically or during run-timε, for εxamplε, by using thε mεthods and circuits described below for determining equalization tap latencies, weights and polarities.
Data Tap Selection
Figure 10 illustratεs an εxεmplary buffer 159 that may be used within the receiver 116 of Figure 3 and that includes both a serial shift register 161 as wεll as a numbεr (K) of parallεl-load rεgistεrs 165rl65κ. At each edge of a receive clock signal, RCLK, a newly samplεd data value 160 is loaded from sampling circuit 123 into the shift register 161. The shift register is formed by N storage elements (depicted as flip-flops 163]-163H, though latches or other types of storage elεmεnts may bε usεd) couplεd in daisy chain fashion such that, as thε nεwly samplεd value 160 is loaded into the first storagε εlεment 163! in the shift register 161, the contents of each storage element 163 except the last (163N) is shifted to thε nεxt storagε elemεnt in thε chain in response to a receive clock signal (RCLK). Thus, designating the output of storage element 163ι to have symbol latency i, the symbol latency of the input value 160 is i-1, and the symbol latencies of the outputs of the remaining storage elemεnts 163 in the shift registεr 161 are, from left to right, i+1, i+2, ..., and i+(N-l), rεspεctivεly.
A shift counter 169 (which may be included within or separatε from buffer circuit 159) maintains a count of the number of data values shifted into the shift register 161, incrementing the shift count in response to each transition of RCLK. In one embodiment, the shift counter 169 asserts a load signal 164 (LD) upon reaching a count that corresponds to a full shift registεr, then rolls the shift count back to a starting valuε. The load signal 164 is routed to strobe inputs of storagε elεmεnts within thε parallel-load registers 165, enabling parallεl load register 165! to be loaded with the contents of the
shift register, and enabling each of the parallel-load registεrs 1652-165 to bε loadεd with the content of a preceding one of the parallel load registεrs (i.e.,
165 is loaded with the content of .1651, 165 is loaded with 1652, and so forth). By this arrangement, the symbol latency of a data value stored within any of thε parallεl-load rεgistεrs 165 is dεpεndεnt on how many data valuεs havε been shifted into the shift register since the last assertion of the load signal 164; a measure indicated by the shift count. For example, if the shift count is 1, indicating that the load signal 164 was asserted at the immediately preceding edge of RCLK, then the content of storage elεmεnt 167i of parallεl- load register 165i has a symbol latency of i+1 (i.ε., onε symbol timε oldεr than thε content of storage εlement 163ι of the shift registεr). Whεn the next valuε is shifted into thε sεrial shift register 161, thε contents of the parallel rεgistεrs 165 remain unchanged, meaning that thε latency of each data value stored in thε parallεl registers 165 is increased by a symbol time. Thus, the content latency (i.e., latεncy of a storεd valuε) of a given storagε εlεmεnt within onε of parallεl registεrs 165 is dεpendent upon the value of the shift count. Refεrring to parallεl load rεgistεr 165l5 for example, the content latency of storagε εlεment 167! is i+SC (SC bεing the shift count), the content latεncy of storagε εlεment 1672 is i+SC+1, and so forth to storage elεmεnt 167N, which has a content latency of i+(N-l)+SC. The content latencies of storage elεmεnts within the parallel-load registers 1652-165κ are similarly dependent upon the shift clock value, SC, but are increased by N for each parallεl load away from register 165ι. That is, the content latency of thε leftmost storage elεmεnt within rεgistεr 1652 is i+N+SC, and the content latency of the leftmost storage elεmεnt within register 165κ is i+(K-l)N + SC. The content latencies of the storage elεmεnts within registers 165 -165κ are incrementally relatεd to thε content latency of thε corresponding leftmost storagε εlεmεnt in thε samε manner that the content latencies of storage elεments 1672-167N relate to the content latency of storage elεmεnt 167].
Figurε 11 illustrates, in flow diagram form, a mεthod of selecting a data value having symbol latεncy i+X from thε buffεr 159 of Figure 10, i being the content latεncy of storagε εlεmεnt 163!. At 175, X is compared with
N, the number of storage elements within the shift registεr 161 and within εach of thε parallεl-load rεgistεrs 165. If X is lεss than N, then the desired data value is located within the shift registεr which, aftεr bεing initially loaded, always contains data values having symbol latencies ranging from i to i+N-1. Thus, if X is less than N, thεn as shown at 177, thε dεsirεd valuε is in thε shift rεgistεr (REG^SR) at bit position X (BIT=X), where the bit position corresponds to left-to-right numbεred storage elεments.
If X is not less than N, then the desired data value is located at a shift- count-dependεnt bit position within one of the parallel-load registεrs 165. Thus, if X is less than N+SC (179), the desired data valuε is locatεd within register 165] at bit position X-SC, as indicated at 181. To understand this result, consider what happens if a data value having a desirεd symbol latency is initially within the rightmost storage elemεnt, 167N, within parallεl-load register 165!. As a new value is shifted into thε sεrial shift register 161 and the shift count is incremented, the symbol latency of storage elεment 167N is increased, and the storage elεmεnt one position to the left of storage element 167N (i.ε., 167N-I) now contains thε data valuε having the desired symbol latency and is therefore selected to supply the data value to an equalizer tap.
Returning to Figure 11, if X is greatεr than or εqual to N+SC, thεn X is compared with 2N+SC at 183. If X is less than 2N+SC, then parallel-load registεr 1652 contains the desired tap value at bit position X-N-SC as indicated at 185. The decision flow continues in this manner to 187 at which point X is compared with (K-1)N+SC. If X is lεss than (K-1)N+SC, thεn parallεl-load rεgistεr 165 .! contains the desired tap value at position X-(K-1)N - SC as indicated at 189. Otherwise, X is located within the final parallel-load registεr, 165 at position X-KN-SC as indicated at 191.
Figure 12 illustrates an exemplary embodimεnt of a tap select circuit for selεcting a tap valuε (DATA,+χ) from a buffεr circuit 210 that includes an eight-bit serial shift registεr 161 and two εight bit parallεl-load registers 165ls
1652. For purposes of illustration, it is assumed that the data value in thε first (leftmost) storage elεmεnt within the shift register 161 has a symbol latency of one and that the dead range is four symbol times (i.e., the leftmost four storage elεmεnts within thε shift register 161 are not used to source tap values to the equalizer). By this arrangement, immediately after a parallεl load operation, the data values stored in parallel-load register 165! will have symbol latencies ranging from 2-9 symbol timεs, and thε data valuεs storεd in parallεl-load rεgistεr 1652 will havε symbol latεncies ranging from 10-17 symbol times. Accordingly, refactions (or other distortions) appearing at the receiver input betwεen 5 and 17 symbol times after the corresponding primary signal may be reduced by selεcting data values having corresponding symbol latencies from the buffer circuit 210 to drive the recεivε-sidε εqualizεr taps (i.e., to be tap data values). Multiplexers 205, 207j and 2072 are responsivε to low order bits of a latency value 200 (X[4:0]) to select tap positions within the shift register 161, parallel-load registεr 165l5 and parallel-load rεgistεr 1652. Thε latεncy valuε 200 is additionally suppliεd to a sεlect logic circuit 201 which generates a register select signal, SEL[1:0], to selεct one of thε thrεε rεgistεrs 161, 165 \ and 1652 within thε buffεr circuit 210 to source the tap data value, DATAj+χ. It should be noted that, because the range of tap valuεs εxtεnds ovεr 13 possiblε symbol timεs (symbol latεncies from 5-17), a smaller, four-bit latency value may altεrnativεly bε usεd to sεlεct a tap valuε. As dεscribed below, howevεr, using a latεncy valuε largε εnough to select any of the bit positions within the buffer circuit 210 enables the size of the dεad rangε to be adjusted (i.ε., programmed) according to application needs.
Thε least significant two bits of the latency value 200 (i.e., X[1:0]) are input to multiplexεr 205 to sεlect onε of thε four sεlεctablε data values within the serial shift registεr 161. Thε lεast three significant bits of the latency value 200 (i.e., X[2:0]) are input to a subtract circuit 203 which subtracts the shift count 202 from the threε-bit latεncy valuε to produce a tap select value for the parallel-load registεrs 1651? 165 . In onε εmbodimεnt, for εxamplε, thε sεlect value 200 corresponds to a desired symbol latency as shown in Table 1 below, and the shift count 202 is encoded in a three-bit value, SC[2:0], as shown in Table 2 below. Thus, when the shift count 202 is eight (SC[2:0] = 000), and the selεct valuε is ninε (X[4:0] = 01000), thε output of thε subtract circuit 203 will bε: X[2:0] - SC[2:0] = 0; a valuε that corresponds to the leftmost bit position within each of thε parallεl-load registers 165. This is a desired result as thε lεftmost bit positions within rεgistεrs 165 havε symbol latεnciεs 9 and 17 whεn thε shift count is eight. The multiplexer 209 will genεratε a sεlεct signal 204 (SEL[1:0]) to sεlεct thε data valuε from register 1651 (symbol latency = 9) to source thε tap data valuε (this opεration is discussed below). As a further examplε, whεn thε shift count 202 is one and the sεlect value 200 is nine, the output of the subtract circuit 203 will be: 000-001 = 111 (dεcimal 7); thε rightmost bit position within each of the parallel-load registers 207. Again, this is a desirεd rεsult as the rightmost bit positions with rεgistεrs 165 havε symbol latencies 9 and 17 when the shift count is one.
Table 2
Figure 13 illustrates an exemplary embodimεnt of thε sεlεct logic 201 of Figurε 12. The select logic 201 includes a comparator circuit 215 to compare the latency select value 200 with N (thε sizε, in bits, of each of registers within buffer circuit 210), a summing circuit 217 to sum the shift count 202 with N (therεby genεrating SC+N), and a comparator circuit 219 to compare the latency select value 202 with the output of the summing circuit 217. If the latency select value 200 is less than N, the output of comparator 215 will go high, causing inverter 223 to drive the high order bit of select signal 204 low and OR gate 221 to drive the high order bit of the sεlect signal
204 high. That is, SEL[1:0] = 01 so that multiplεxεr 209 will sεlect the shift register 161 to source the tap data value; the desired result when thε sεlεct value 200 is lεss than N. If thε select value 200 is greater than or equal to N, the output of comparator 215 will go low, thereby driving thε high order bit of selεct signal 204 high, and enabling the output of comparator 219 to control, via OR gatε 221, thε statε of the low order bit of select signal 204. If the latency selεct valuε 200 is less than the output of summing circuit 217 (SC+N), the output of comparator 219 will be low causing select signal SEL[0] to be low, therεby producing SEL[1:0] = 10 and sεlεcting parallel-load register 165j to source the tap data value. If the latency select value 200 is greatεr than or equal to the output of the summing circuit 217, the output of comparator 219 will be high, resulting in a select value of SEL[1:0] = 11, thereby selεcting parallεl-load register 1652 to source the tap data value.
Reflecting on thε structure of Figurε 13, it should bε noted that the summing circuit and comparators may have numerous implementations depending on the size of N and the number of bits used to form the latency select value 200 and shift count 202. For example, where the latency select value 200 and shift count 202 have thε five- and three-bit configurations shown, and N is eight, the sum of the shift count and N (performed by circuit 217 in Figure 13) may be formed simply by including an additional bit in parallel with the threε shift count bits, the additional bit forming the most significant bit of the resulting sum (i.e., sum[3]) while SC[2:0] form the less significant threε bits of thε sum (i.ε., sum[2:0]). As anothεr εxample, the comparator 215 may be implεmεntεd by a NOR gatε having inputs couplεd to X[4] and X[3]. By this arrangement, thε X<N output will be high only if both X[4] and X[3] are low. Numerous other logic circuits may be used to implement the selεct logic circuit 201 of Figure 12 in alternativε εmbodiments. More generally, specific numbers of bits and registers have beεn described for purpose of example only. Alternativε embodiments may
includε diffεrεnt numbers of registεrs having various sizεs, and latency select values and shift count values having different sizes. Also, any circuit for selεcting a data value based on a latency selεct value may alternatively be used without departing from the spirit and scope of the presεnt invεntion. Figure 14 illustratεs a gεnεralizεd selεct circuit 230 that may bε usεd to select Q tap values from the buffεr circuit 210 of Figurε 12. Thε sεlεct circuit 230 includes a switch matrix 231 and tap select logic 235. In the embodiment of Figure 14, each of the possiblε tap data sources within the buffer circuit 210 (i.e., the rightmost four bits within shift register 161 and all the bits within the parallel-load registers 165) are coupled to respective column lines 234 of the switch matrix 231, and each of the Q tap outputs are coupled to respεctivε row linεs 236 of thε switch matrix 231. A switch clement 233 is providεd at εach row-column intεrsεction to enable the tap data source for the column to be selectively coupled to the tap output for the row. The tap selεct logic 235 outputs a rεspεctivε onε of εnablε signals Ei-E2o to εach column of switch elements based on latency selection values XΪ-XQ and shift count, SC. h the embodiment of Figure 14, each enable signal includes Q component signals coupled respectively to the Q switch elements within a corresponding column. Thus, if the column 1 data value (i.e., thε data value stored in shift registεr position 4), is selεctεd to bε thε data source for tap Q, then selεct signal E1[Q:1]=100..00. More genεrally, Ej[i]=l for each column data value, j, to be coupled to a tap output, i. By this arrangement, the Q tap outputs may bε sεlεctεd from among thε complete range of data values stored within buffer circuit 210. In one embodiment, the selεct logic includes combinatorial logic that operates as dεscribed in refεrence to Figure 10 to genεratε εach εnablε signal. Altεrnativεly, a statε machine or other processing logic may be used to generate the enable signals in accordance with the latency selection values and shift count.
Figurε 15 illustratεs an εmbodimεnt of a switch element 233 that may be used within thε switch matrix 231 of Figurε 14. Thε switch εlεment includes a transistor 235 having source and drain terminals coupled betweεn thε ith row linε 236; (TAP;) and thε jth column line 235j (DATAj) of the switch matrix, and a gate tεrminal couplεd to rεcεivε the ith component signal of enablε signal j (i.ε., Ej[i]). Thus, when the Ej[i] is high, indicating that ith tap output is to be sourced by the data value at the jth position within the range of selectable data values, transistor 235 is switched on to couple the sεlected data source to the tap output. Other types of switching elεments may bε usεd in altεrnati ve εmbodimεnts .
Equalizing Circuits
As discussed above in refεrencε to Figurε 3, thε tap values selected by the tap selεct logic 139 and sεlεct circuit 128 may be used in a number of different equalizing circuits to counteract distortion evεnts. In one equalizing recεivεr εmbodiment, illustrated in Figure 16, an equalizing output driver 140 is coupled in parallel with the sampling circuit 123 to drive an equalizing signal back onto the signal path 122 during each symbol reception interval (i.e., symbol time during which a valid symbol is presεnt at the input of the receiver). By this arrangement, latent distortions arriving at thε rεcεiver during a symbol reception interval may be canceled (or at least reduced) by operation of the εqualizing output drivεr 140.
Figure 17 illustratεs thε rεcεivε circuit of Figure 16 in greater detail. As shown, the sampling circuit 123 may include any number of preamplifiers 240!-240N coupled in series with a sampler 241. The sampler 241 may be any type of circuit for detεcting thε level of an input signal, including but not limited to a latching circuit that latches the signal level in response to a rising or falling clock edgε, or an integrating circuit that integratεs the input signal over a finite period of time (e.g., a symbol time or portion of a symbol time).
Thε εqualizing output drivεr 140 may bε coupled to the signal path 122 (i.e., the input of the first prεamplifiεr 240ι) or, alternatively, to the output of any of the preamplifiεrs 240. Also, as discussed below, the output drivεr 140 may be couplεd to the sampler 241 to affect the sampling operation. In one embodimεnt, thε εqualizing output drivεr 140 of Figures 15 and
16 is clocked by an equalizer clock signal, EQCLK, that is offset from the clock signal usεd to timε the sampling instant and therefore to define the symbol reception interval (i.e., receive clock signal, RCLK), as necessary to align edges of the equalizing signal (i.e., state transitions) with edges of the incoming data signal. This timing relationship is illustrated by Figure 18. As shown, the equalizεr clock signal is aligned with edges of the incoming symbol stream so that equalization values are transmitted onto the signal path concurrently with corresponding symbol reception intervals. As discussed below, the equalizεr clock signal may bε furthεr offsεt from thε rεcεivε clock signal as shown by arrow 245 to account for the time required for the εqualization data (i.ε., selected tap values) to propagatε through the equalizing output driver 140 or other equalizing circuit.
Figure 19 illustrates a current-sinking output driver 250 that may be usεd to implεmεnt thε equalizing output driver 140 of Figure 16. The output driver includes a plurality of sub-driver circuits 251^251^ each sub-driver circuit 251 including a current source 257, clocking transistor 255 and data tap transistor 253 coupled in seriεs between an output node 254 and a refεrεncε voltage (ground in this examplε). Control terminals (e.g., gate terminals) of the data tap transistors 253 of the sub-driver circuits 251 arε couplεd to rεcεive respεctive data tap values (designatεd EQDΪ-EQDN in Figure 19) from a selεct circuit, control terminals of the current sources 257 are coupled to respεctivε tap wεight valuεs, EQWPEQWN, and control terminals of the clocking transistors are coupled in common to rεcεive thε εqualizεr clock signal, EQCLK. By this arrangεmεnt, when the equalizer clock signal goes
liigh, εach of thε sub-drivεr circuits will source a current according to its respεctivε tap wεight and data tap inputs. For εxamplε, referring to sub-driver circuit 251ι, if tap data value EQDΪ is low, no current (or negligiblε) current will be drawn via output node 254. By contrast, if tap data value EQDi is high, thεn thε sub-drivεr circuit 251 \ will draw a current from the output node
254 (and therefore from the signal path 122) according to the tap weight,
EQWt. As discussed bεlow, thε tap wεights providεd to thε output drivεr 250 or othεr εqualizing circuits described herein may be prεdεtεrminεd valuεs, or may be determinεd dynamically according to thε lεvεl of the distortions to be reduced. Because the sub-driver circuits 251 are coupled in parallel to the output node, the overall equalization signal genεratεd by output driver 250 during a given symbol time is the sum of contributions from the individual sub-driver circuits 251. Note that the output driver 250 outputs an equalization signal only when the equalizer clock signal is high (i.e., evεn phasεs of EQCLK). An additional instance of output driver 250 may be provided to output an equalization signal when a complemεnt εqualizεr clock signal (i.e., /EQLCK) is high.
Figure 20 illustratεs an embodiment of a push-pull type of sub-driver circuit 260 that may be used within an εqualizing output driver instεad of thε pull-down sub-drivεr circuits 251 described in refεrεncε to Figure 19. hi the push-pull type of sub-driver circuit 260, current is eithεr sourcεd or sunk via the driver output according to the state of the tap data value, EQDi. Thε sub- drivεr circuit 260 includes switching transistors 263 and 265, and AND gate 261. A first input of the AND gate 261 is coupled to receivε the tap data value, EQDj, and a sεcond input of thε AND gatε 261 is couplεd to a clock line to receivε thε εqualizεr clock signal, EQCLK. Thε output of thε AND gatε 261 is coupled to the gate terminals of transistors 263 and 265 such that, during each high phase of the equalizer clock signal, thε tap data valuε is passεd to thε gatε tεrminals of transistors 263 and 265 to εstablish thε output
statε of thε sub-drivεr circuit 260. That is, εvεry other half cycle of the equalizer clock signal constitutes an output enable interval for the sub-driver circuit 260. If the tap data value, EQDj, is high during a given output enable interval, transistor 265 is switched on, causing thε sub-drivεr circuit 260 to sink current via the output nodε (OUTj). Conversely, if the tap data value is low during the output enable interval, transistor 263 is switched on to source current via the output nodε. Also, though not shown in Figurε 20, a pull-down biasing circuit (ε.g., current source) may be coupled between the pull-down data tap transistor 265 and ground, and a pull-up biasing circuit may be coupled betwεεn the pull-up data tap transistor 263 and the supply reference voltage (e.g., VDD) to enable weighted control of the current sourcing and sinking strength of the push-pull sub-drivεr circuit 260. Further, an additional instance of the sub-driver circuit 260 may be provided with a complement equalizer clock signal (/EQCLK) and complemεnt tap data valuε (/EQDj) being input to AND gate 261 to εnable the sub-driver circuit 260 to output an equalizing signal during the alternatε half cycle of the equalizer clock signal.
Figure 21 illustrates another embodimεnt of a sub-driver circuit 275 that may be used within an equalizing output driver. The sub-driver circuit 275 includes a differential transistor pair 277 having control terminals coupled to outputs of AND gates 261 \ and 2612, respectively. A tap data value (EQDi) and an equalizεr clock signal (EQCLK) are input to AND gate 261 \, and a complemεnt of thε tap data valuε (/EQDj) and thε equalizer clock signal are input to AND gate 2612- By this arrangement, the tap data value and complement tap data value are applied to respective inputs of the differential pair 277 during evεry other half cycle of the equalizer clock signal. Output nodes of the differential pair 277 are pulled up through respεctivε rεsistivε loads 283 (R), and source terminals of the differential pair are coupled to ground via a current source 281. The resistivε loads 283 may bε, for example, termination elεments coupled to thε signal path (not shown) rather than
resistive εlεments included within the sub-driver circuit 275. Accordingly, the sub-driver circuit 275 is enabled, during evεry other half cycle of the equalizer clock signal, to output a differential εqualizing signal on output nodεs OUT,- and /OUT; in accordance with the complemεntary tap data valuεs, EQDj and /EQDi. A counterpart instance of sub-driver circuit 275 may be provided to generatε a diffεrential equalizing signal during the alternate half clock cycle of the equalizεr clock signal. The current source 281 is controlled by the tap weight value, EQW,-, in the manner described in reference to Figure 19, though different weighting schemes may be used in alternative embodimεnts (e.g., using weight-biasεd pull-up εlεmεnts in place of resistive elεmεnts 283).
Figure 22 illustrates an alternativε typε of εqualizing circuit 290 that may bε usεd in εmbodimεnts of thε invεntion. Instεad of driving an εqualization signal onto thε signal path to affect the signal levεl of an incoming signal, εqualization is pεrformεd in conjunction with preamphfication of thε incoming signal, and therefore affects the level of preamphfication applied to thε incoming signal. That is, thε εqualizing circuit
290 affects the preamplifiεd signal lεvεl instεad of thε signal level present on the signaling path.
Equalizing circuit 290 includes a differential amplifier 294 formed by differential transistor pair 291, biasing current source 292 and resistive loads
293. Differential input signals are supplied to gate terminals of transistor pair
291 such that differentially amplified output signals are gεnerated on output lines POUT and /POUT- In one embodimεnt, output lines POUT and /POUT are coupled to input terminals of a differential amplifier within a sampling circuit so that amplifier 294 effεctively forms a first stage in a two-stage amplifier (i.e., amplifier 294 is a preamplifier).
Equalizing circuit 290 additionally includes a level shifting circuit 296 coupled to the differεntial amplifier 294 to provide preamplifiεr equalization. The levεl shifting circuit 296 includes a pair of sub-circuits 2981 and 2982
εach coupled betwεen a respective one of the diffεrential amplifier outputs
(POUT and POUT) and a clocking transistor 299. Each of the signal subcircuits
298 includes a respective plurality of data tap transistors (295!-295N and 297!-
297N) coupled in parallel betwεεn thε differential amplifier output and the clocking transistor 299. The control terminals of the data tap transistors 295!-
295N are coupled to receivε thε sεlεcted data tap values, EQD!-EQDN, respεctively, and the control terminals of the data tap transistors 297!-297N are similarly coupled to receive complemεnt vεrsions of thε sεlected data tap values, /EQD1-/EQDN. h one embodiment, each of the data tap transistors 295 is sized (e.g., by width-length ratio) to achieve a respective tap weight EQ N-EQWi. By this arrangemεnt, each data tap value may be coupled to the control terminal of a selεctεd onε of thε data tap transistors 295 according to the desirεd tap wεight. Thε transistors 297 are similarly weighted and therefore allow coupling of the complemεnt data tap valuεs according to desired tap weights. The weights of the individual data tap transistors 295 (and 297) may bε incrεmεntally rεlatεd (i.e., EQW!=EQW2+K=EQW3+2K ..., where K is a constant), exponentially related (i.e., EQW!=EQW *K=EQW3*K2...) or may have any othεr dεsirεd relationship (including having the same weight values or including subsets of weight values that are thε same).
The clocking transistor 299 is switched on during every other half cycle of thε equalizer clock signal to enable the operation of the subcircuits 298. The subcircuits 298 operate to increasε or dεcrease the difference between the prεamplifiεd output signals (or εvεn change the polarity of thε diffεrence) by drawing more current from one of the preamplifier output lines (POUT or /POUT) than the other in accordance with the selεctεd data tap valuεs. Thus, the subcircuits 298 act to differentially shift the level of the preamplified output signal generated by differential amplifier 294. An additional instance
of the equalizing circuit 290 may be provided to enable preamplifier equalization during thε alternate half cyclε of thε εqualizεr clock signal.
Figure 23 illustrates an alternative levεl shifting circuit 305 that may be substituted for circuit 296 of Figure 22. In circuit 305, differential pairs of data tap transistors 307 307N are coupled to output lines POUT and /POUT in the same manner as in circuit 296, but instead of sizing the data tap transistors to achieve tap weighting, tap weighted current sources 311!-3 HN are coupled in series with the diffεr ntial pairs of data tap transistors 307!-307N, respectively. For examplε, current source 31^ is controlled by (i.e., draws a bias current according to) weight value EQWi and is couplεd via clocking transistors 309! to data tap transistors 307]. Similarly, current source 3112 is controlled by weight valuε EQW2 and is couplεd via clocking transistors 3092 to transistors 3072, and so forth. By this arrangement, the weight values EQWJ-EQWN may be configured (e.g., via run-time calibration or production time programming) as necessary to establish a desirεd equalizing signal contribution from each differεntial pair of data tap valuεs 307. An additional instance of thε equalizing circuit 290 may be provided to enable preamplifier equalization during the alternate half cyclε of thε εqualizεr clock signal (i.e., by driving clocking transistors 309 with complement equalizing clock, /EQCLK).
Figure 24 illustrates anothεr typε of εqualizing circuit 320 that may be used in embodiments of the invεntion. Instead of driving an equalization signal onto the signal path to affect thε signal lεvel of an incoming signal, or affecting the preamplified signal levεl, a lεvel shifting circuit 330 is coupled to low impedance inputs of a differεntial sampling circuit 328, and is usεd to affect the levεl of thε input signal bεforε the sampled signal is captured. The sampling circuit includes differential transistor pair 329 to prechargε input nodes SΓN and /SΓN according to thε state of a differential input (e.g., the output of a preamplifier 294 of Figure 22, or a differential data signal), during a first
half cycle of the receive clock (which enablεs clocking transistor 331).
During a second half cycle of the receivε clock signal, transistors 321 and 325 arε switched on by the low-going recεivε clock signal, thereby enabling a cross-coupled latch formed by transistors 322, 323, 325 and 326 to latch the state of the prechargεd signal lεvεls on nodεs SΓN and /SΓN-
The lεvεl shifting circuit 330 is similar to thε circuit 296 of Figurε 22 εxcεpt that clocking transistor 341 is εnablεd by thε receive clock signal
(RCLK) instead of the equalizer clock signal, the equalizer clock signal being used to switch on switching transistors 335!-335N and 3391-339N during every other half cycle. Data tap transistors 333!-333N, which are controlled by respective tap data values EQD^EQDN, are coupled in sεries with the switching transistors 335]-335N, respεctivεly. Similarly, data tap transistors 337!-337N arε couplεd in sεries with switching transistors 339!-339N and are controlled by respective complemεnt tap data valuεs /EQD!-/EQDN- hi onε εmbodimεnt, thε data tap transistors 333, 337 and switching transistors 335, 339 are sized to provide different current draws according to predεtεrminεd weights, EQW1-EQWN, thereby permitting different data taps to make different level-shifting contributions, hi one embodimεnt, for εxamplε, the switching transistors 335 and 339 are binary weighted such that, when switched on, the current draw through transistor pair 333N/335 is 2N-1 times the current through transistor pair 3331/3351 (and the current draw through transistor pair 337N/339N is 2 _1 times the current through transistor pair 337^339! . Other weighting schemes may also be used including, without limitation, thermomεtεr coding of high-gain transistor pairs, linear weighting schemes, or any combination of exponential (e.g., binary), linear and fhermometεr coded weightings.
In one embodiment, the εqualizεr clock is phasε advanced relative to the receive clock signal such that transistors 337 and 339 are switched on in advance of clocking transistor 341. By this arrangement, transistors 333 and
337 arε poised to shift the levεl of thε sampling circuit input nodes, SIN and
/SΓN, when thε receive clock signal goes high. Thus, when the recεivε clock signal goes high, sampling circuit input nodes SIN and /SΓN are diffεrentially discharged according to the tap data values EQDι-EQDN, /EQD!-/EQDN and the respεctive weights of transistors 333 and 337. Consεquεntly, thε signal lεvεls at thε input nodεs, SIN and /SIN, of sampling circuit 328 arε differentially shifted by the levεl shifting circuit 330 to reduce static offsets in the incoming data signal (applied to control terminals of differential pair 329) caused by reflections or other distortions. Figure 25 illustrates an alternativε levεl shifting circuit 342 that may bε substitutεd for circuit 330 of Figurε 24. The level shifting circuit 342 includes data tap transistors 333, 33 and equalizεr-clock-εnablεd switching transistors 335, 339 couplεd as described in reference to Figure 24. However, rather than being couplεd to a clocking transistor 335, thε source terminals of transistors 335I-335N are coupled to ground via capacitive εlements 334r 334N, respectively, and the source terminals of transistors 339!-339 are similarly coupled to ground via capacitive elements 338^338N- By this arrangemεnt, respective variable capacitances are coupled to the low impedance inputs, SΓN and /SIN, of the sampling circuit 328 according to the states of the tap data values EQD!-EQDN and complement data tap values EQD!-EQDN applied to the inputs of data tap transistors 333 and 337. Thus, different levels of capacitance are addεd to thε sampling circuit input nodεs, STN and /SIN, according to the tap data values, effectively changing the discharge rates of the input nodes and therεforε affecting the prechargεd signal lεvel at the input nodes as desired to reduce signal distortions. In the embodiment of Figure 25, the data tap transistors 333, 337 and switching transistors 335, 339 have uniform sizes (i.ε., uniform weighting), and the capacitive elements 334, 338 have weighted capacitive values to permit a broad range of capacitances to be coupled to thε input nodεs of sampling
circuit 328. For example, in onε embodiment, the capacitive elεments 334 are implemεntεd by source-to-drain coupled transistors and are binary wεightεd
(ε.g., by adjusting transistor width-length ratios) such that capacitive element
335 has twice the capacitance of capacitive elεmεnt 335ι, and capacitive elemεnt 335N has 2N"1 timεs thε capacitance of capacitive εlεment 335i. Other weighting relationships (e.g., thermomεtεr coding, linear, uniform, etc.) may also be used. Also, the data tap transistors 333, 337 and/or switching transistors 335, 339 may be weighted in alternativε εmbodiments instead of
(or in addition to) the capacitive elemεnts 334, 338.
High Speed Tap Selector
As discussed above in refεrεncε to Figure 3, an incoming data signal may include two symbols per receivε clock cyclε (sometimes referred to as a "double data ratε" signal), and εach symbol may havε more than two possiblε statεs (i.ε., may have a signal levεl falling within morε than two distinct ranges of signals). Also, the receivε clock frequency may be so high that by the time a sampled data value is loaded into thε buffεr circuit 132, the data value already has a latency of several symbol times. All thesε factors present challengεs to thε buffεring and sεlεction of tap valuεs dεscribεd in reference to Figure 3.
Figure 26 illustratεs an equalizing recεiver 350 according to an .embodiment of the invεntion. Thε rεcεivεr 350 includes a double data rate sampling circuit 351, shift registεr 353, sεlεct circuit 355 and equalizing output drivεr 357. Thε sampling circuit 351 includes a pair of sub-circuits 36l! and 3612 to sample the incoming data signal in response to rising edges in the receivε clock (RCLK) and complement receive clock (/RCLK), respεctively. Falling clock edges may alternatively be usεd to timε thε sampling instant. Data samples captured in responsε to εdges of the rεcεivε clock arε referred to herein as even phase data, and data samples captured in
rεsponsε to εdges of the complemεnt receivε clock arε rεfεrrεd to as odd phasε data. Thus, sampling circuit 351 outputs εvεn phasε data (EVEN IN) and odd phasε data (ODD IN) to the shift rεgistεr 353 via signal linεs 362i and
3622, rεspεctivεly. Thε even and odd phase data values are stored within the shift registεr to providε a sourcε of sεlεctablε tap values to the selεct circuit
355. In thε εmbodimεnt of Figurε 26, thε dεad rangε is assumεd to bε fivε symbol latεnciεs (othεr dεad rangεs may be used) such that data values Dτ+5-
Dτ+χ are provided to the selεct circuit 355, subscript T+5 indicating a latεncy of fivε symbol timεs relative to sampling instant, T. The selεct circuit 355 includes N tap selectors, 365!-365N, that selεct from among thε plurality of data valuεs stored within the shift registεr 353 and output a sεlεcted tap data value to a respective one of N output sub-drivers 369!-369N within the equalizing output drivεr 357. Each of thε output sub-drivεrs 369, in turn, drivεs a component εqualizing signal onto thε signal path 122. In altεrnativε εmbodimεnts, thε εqualizing output drivεr 357 may bε replaced by an equalizing circuit that operates within a preamplifiεr circuit (not shown in Figurε 26) or sampling circuit 351 as described above in refεrence to Figures 17-20.
Figure 27 illustrates the shift register 353 and one of the tap selectors 365 of Figure 26 according to more specific embodiments. Thε shift rεgistεr includes a pair of shift sub-circuits 383] and 3832 to store evεn phasε data and odd phase data, respectively. In one embodimεnt, εach of the shift sub- circuits 383 includes a numbεr of storagε εlεmεnts 381 (e.g., latches) coupled in a daisy chain configuration (i.e., output to input) to enablε an input data valuε to bε shiftεd progressively from a first (i.e., leftmost) storage elεmεnt 381 in thε chain to a last (rightmost) storage εlεment 381 in the chain. Each of the shift sub-circuits 383 is responsive to the recεivε clock and complεmεnt rεcεivε clock signals such that the contents of each shift sub-circuit 383 is shifted during each half clock cycle of the receivε clock signal. Thus,
assuming that a stream of incoming symbols includes the data sequence A, B,
C, D, etc., then evεn phasε data values A, C, E, G, I, etc. will be shifted into shift sub-circuit 383ι and odd phase data values B, D, F and H will be shifted in to shift sub-circuit 3832. Because the contents of the shift sub-circuit 383! arε shifted twicε pεr εvεn phasε data reception, two instances of each even phase data value will be stored in the shift sub-circuit 383χ. The second instance of each even phase data value stored in shift sub-circuit 383ι is designated by a prime (i.e., ') in Figurε 27 to indicate that the data value was loadεd synchronously with thε loading of a newly received odd phase data value into shift sub-circuit 3832. Similarly, two instances of each odd phasε data valuε arε stored in the shift sub-circuit 3832, with the second instance of the odd phase data value being designatεd by a primε to indicate that the data valuε was loadεd synchronously with thε loading of a newly received even phase data value into shift sub-circuit 383!. Thus, from the pεrspεctive of the tap selector 365, the shift sub-circuits 383 collectively contain a sequence of data values, A', B, C, D, E' F, G', H, that may be usεd to generate odd phase equalizing signals (i.e., driving an equalizing signal onto thε signal path or affεcting signal levels within a preamplifier or sampling circuit during odd phase symbol reception), and a sequεncε of data valuεs, B', C, D', E, F', G, H', I, that may be usεd to gεnεratε εvεn phasε εqualizing signals. Accordingly, thε outputs of each of the storage elements 381 within shift sub- circuit 383! are coupled to respective inputs of an even tap data select circuit 387! within the tap selector 365, and the outputs of each of the storage elεmεnts 381 within thε shift sub-circuit 3832 are coupled to respective inputs of an odd tap data sεlect circuit 3872 within the tap selector 365. The even and odd tap data selεct circuits 387 are responsive to a select signal, S[2:0], to output selεctεd tap data values from the even and odd phases sequences of data values, respεctively. Thε sεlect signal may be generated, for example, by tap the select logic 139 described in refεrεncε to Figurε 3.
The output of the evεn tap data sεlεct circuit is clocked into a flip-flop
3911 (or other storage elεmεnt) at thε rising εdge of thε rεcεive clock signal
(RCLK) so that, at any given time, the output of flip-flop 3911 is delayed by two symbol times relative to the most latεnt data valuε supplied to the evεn tap data sεlεct circuit 387!. Similarly, thε output of thε odd tap data select circuit
3872 is clocked into a flip-flop 3912 (or other storage elemεnt) so that, at any givεn timε, the output of flip-flop 3912 is delayed by two symbol times relativε to thε most latεnt data valuε suppliεd to thε odd tap data select circuit
3872. Thus, the flip-flops 391 effεctivεly increasε the latency of selected even and odd data tap values by two symbol times. Sεlεct circuits 393i and 3932 arε provided to extεnd thε ovεrall latεncy rangε of thε even and odd data tap selεctions within tap sεlector 365 by allowing sεlection of tap data directly from the evεn and odd data inputs to the shift registεr 353 (i.ε., EVEN IN and ODD IN) or from the outputs of flip-flops 391. Selεct bit S[3] is provided (ε.g., by the tap select logic 139 of Figure 3) to select between the fast path data (i.e., connections 384! and 3842 to the inputs of the sub shift circuits 383) and the selected data values stored in flip-flops 391. Flip-flops 395ι and 3952 (or other storage elemεnts) arε providεd to synchronizε thε outputs of multiplexers 393ι and 3932 with the receivε clock and complement receive clock, respεctivεly. Thus, εven and odd data tap values, ETD and OTD, each having a range of latencies according to the depth of the shift sub-circuits 383 and the number of fast path taps (of which signal lines 384! and 384 are εxamples) are output to the equalizing circuit (not shown in Figure 27) to enablε even and odd phase equalization of an incoming signal. Figurε 28 illustrates an equalizing receiver 405 for receiving a double data rate, multilevel input signal according to an embodiment of the invention. The receiver 405 includes a sampling circuit 407, shift register 411, select circuit 421 and εqualizing output drivεr 427. Thε sampling circuit includes evεn and odd phasε sampling sub-circuits 409i and 4092 to capture even and
odd phase samples of the incoming multilevel data signal and to generate a multi-bit output indicative of the sampled signal levεl. For εxamplε, in onε εmbodiment, the incoming data signal has one of four possible signal levεls, εach lεvel being defined by a distinct range of voltages. In the specific embodiment depicted in Figure 28, each sample is resolved (i.e., by sampling sub-circuits 409) to a thermomεter code in which bits A, B, and C havε valuεs according to which of four voltage ranges the sampled signal level falls within. Referring to Figure 29, for example, bits A,B and C are set according to the following relationships betwεen the sampled signal, Vs, and high, middle and low threshold voltage lεvεls:
Table 3
Other encoding schemεs may be usεd in alternative embodiments. Also, more or fewer threshold lεvels (and thεrεfore signal ranges) may be used, and current levels may be used to indicate signal levεl instead of voltage levels.
Once the samplεd signal is r solvεd to a pattern of binary bits, A, B and C (or some other number of bits), each of thε bits is input to a respective one of shift registers 413A-413C and used to source a tap value for sεlection by a respective set of select circuits 422A~422Q (each selεct circuit including N tap sεlεct sεlεctors 423!-423N). Each of thε shift rεgistεrs 413 and select circuits 422 operates generally as described in reference to Figures 21 and 22 to gεnεrate a set of selected tap values, 424A-424C- Corresponding tap values from within each set 424 are provided to a respective one of output sub-drivers
429!-429N within εqualizing output drivεr 427, whεre thεy arε used to genεratε a multi-level equalization signal. For example, the tap valuεs output by tap sεlector 4231 within each of the select circuits 422 are input to output sub-driver 429 j of the εqualizing output drivεr 427.
Equalization Clock Signal Generation
As discussed briefly in reference to Figure 18, it is desirable for the equalization signal genεratεd by a rεceive-sidε equalizing output driver to bε drivεn onto thε signal path in phasε alignment with data eyes in the incoming data signal. While the recεivε clock (or complεmεnt rεcεivε clock) may bε usεd to clock thε εqualizing output drivεr (or preamp or sampling circuit equalizer), propagation delay through the equalizing driver tends to become significant in high frequεncy systems, producing undesired timing offset betwεεn thε incoming data signal and thε εqualization signal, hi onε εmbodimεnt, clock data recovery circuitry within an equalizing receiver is used to genεratε an εqualization clock signal (EQCLK) that is phasε advanced relative to the receive clock signal according to the propagation delay (i.e., clock-to-Q) of an equalizing output driver. By this timing arrangement, illustrated in Figure 30, the equalizing output driver outputs an equalization signal having the desired phase relation with the incoming data signal. As shown, by advancing thε εqualization clock relative to the receive clock according to the clock-to-Q delay of the) εqualizing output drivεr, a dεsired phase relationship bεtwεεn thε incoming data signal (RX DATA) and εqualization signal (EQ DATA) is achieved. Note that, in the exεmplary diagram of Figurε 30, the equalization data tap is assumed to have a symbol latency of five symbol times, such that an equalization signal basεd on received symbol A is transmitted by the equalizing output driver during the reception interval for symbol F.
Figurε 31 illustratεs an embodiment of an equalizing receiver 450 that generates recεivε and εqualization clock signals having the phase relationship shown in Figure 30. The receiver 450 includes a sampling circuit 451, shift register 453, clock-data-recovεry (CDR) circuit 457, application logic 455, tap data selεctor 461, signal generator 462, equalizer clock genεrator 459, and εqualization data source selεctor 463. An incoming data signal (DATA) on signal path 122 is sampled by the sampling circuit 451 in response to a recεive clock signal (RCLK). The samples are output to the shift register 453 where they are stored for parallel output to the application logic 455 and the CDR circuit 457. In the εmbodimεnt of Figurε 31, thε receive clock signal includes multiple component clock signals including a data clock signal and its complemεnt for capturing even and odd phase data samples, and an εdge clock signal and complemεnt edgε clock signal for capturing εdgε samples (i.e., transitions of the data signal between successive data eyes). The data and edgε samplεs are shifted into the shift registεr 453 and then supplied as parallel words (i.ε., a data word and an εdgε word) to a phasε control circuit 467 within the CDR circuit 457. The phasε control circuit 467 compares adjacent data samplεs (i.e., successivεly receivεd data samples) within the data word to determine when data signal transitions havε taken place, then compares an intervεning εdgε samplε with the preceding data sample (or succεεding data samplε) to detεrminε whεthεr thε εdgε sample matches thε preceding data sample or succeeding data sample. If the εdge samplε matches the data sample that precεdεd thε data signal transition, then the edge clock is deεmεd to be early relativε to thε data signal transition. Conversely, if the edgε samplε matches the data sample that succeeds the data signal transition, then the edge clock is deemεd to be latε relativε to thε data signal transition. Depending on whether a majority of such εarly/latε determinations indicate an early or late edgε clock (i.e., thεrε arε multiple such determinations duε to thε fact that εach edge word/data word pair includes a sequεnce of edge and data
samplεs), thε phasε control circuit 467 asserts an up signal (UP) or down signal (DN). If there is no early/latε majority, neither the up signal nor the down signal is assertεd. So long as a calibration signal 474 (CAL) from thε application logic 455 remains dεassεrtεd, the up and down signals, when assertεd, pass through AND gates 4681 and 4682, respectively, to up/down inputs of mix logic 471.
The mix logic circuit 471 receivεs a set of phase vectors 472 (i.e., clock signals) from a reference loop circuit 470. The phase vectors have incrementally offset phase angles within a cycle of a reference clock signal (REF CLK). For examplε, in onε εmbodimεnt, thε rεference loop outputs a sεt of εight phasε vεctors that arε offsεt from one another by 45 degrees (i.e., choosing an arbitrary one of the phase vectors to have a zεro dεgreε anglε, the remaining sεvεn phase vectors have phase angles of 45, 90, 135, 180, 225, 270 and 315 degreεs). The mix logic 471 maintains a phase count value which includes a vεctor sεlεct component to selεct a phasε-adjacent pair of the phase vectors (i.e., phase vectors that bound a phase angle equal to 360°/N, where N is the total number of phase vectors), and an interpolation component (TNT) which is output to a mixer circuit 473 along with the sεlεctεd pair of phasε vectors (VI, V2). The mixεr circuit mixes the selected pair of phase vectors according to the interpolation component of the phase count to genεratε complementary edgε clock signals and complemεntary data clock signals that collectively constitute the receivε clock signal.
Thε mix logic 471 increments and decrements the phase count value in response to assertion of the up and down signals, respεctivεly, thεreby shifting the interpolation of the selεcted pair of phase vectors (or, if a phase vector boundary is crossed, selεcting a nεw pair of phasε vectors) to incremεntally retard or advance the phase of the recεivε clock signal. For example, when the phase control logic 467 determines that the edge clock leads the data transition and asserts the up signal, the mix logic 471 increments the phase count,
thereby incrementing thε interpolation component of the count and causing the mixer to incrementally increasε thε phase offsεt (retard the phasε) of thε receive clock signal. At some point, the phasε control signal output begins to dither between assertion of the up signal and the down signal, indicating that edgε clock components of the recεivε clock signal havε bεcome phase aligned with the edges in the incoming data signal.
The equalizεr clock gεnεrator 459 receives the phase vectors 472 from the reference loop 470 and includes mix logic 481 and an equalizer clock mixer 483 that operate in the same manner as the mix logic 471 and receive clock mixer 473 within the CDR circuit 457. That is, the mix logic 481 maintains a phasε count valuε that is incrementally adjusted up or down in response to the up and down signals from the phase control circuit 467. The mix logic selects a phase-adjacεnt pair of phase vectors 472 based on a vector select component of the phasε count, and outputs thε sεlεctεd vectors (VI, V2) and interpolation component of the phasε count (INT) to the equalizer clock mixer 483. The equalizεr clock mixεr 483 mixεs thε sεlεctεd vεctors in accordance with the interpolation component of the phase count to generate the equalizer clock signal, EQCLK. The equalizer clock signal, which may include complemεntary component clock signals, is output to the equalizing output driver 465 (or othεr typε of εqualization circuit as described above) to time the output of equalizing signals onto signal path 122.
The equalizer data source sεlεctor 463 is rεsponsivε to thε calibration signal 474 to sεlect either the tap selector 461 (which operates as described above to selεct data tap valuεs from the shift register 453 and/or one or morε parallεl rεgistεrs) or the signal generator 462 that outputs clock pattern 10101010 (e.g., a bi-stable storage elemεnt that toggles betweεn statεs in response to each EQCLK transition). When the calibration signal 474 is low, the equalization data source sεlector 463 selects the tap selector 461 to supply selectεd data valuεs to thε equalizing output driver 465. When the calibration
signal 474 is high, the recεivεr 450 enters a calibration mode in which the signal generator 462 is selεcted to supply the clock pattern to the equalizing output driver 465. Also, in calibration modε, thε high statε of the calibration signal 474 disables AND gates 468i and 4682 from passing the up and down signals to the mix logic 471. Thus, the phase count within the CDR circuit remains unchanged in calibration mode, whilε up and down signals gεnerated by thε phase control circuit 467 are used to increment and decrement the phase count value within the mix logic 481. In one εmbodimεnt, no signals are transmitted on the signal path 122 while the recεiver 450 is in calibration modε, so that thε only signal prεsεnt at the input of the sampling circuit 451 is the clock pattern output by the equalizing output driver 465. By this arrangemεnt, εdgε and data samples corresponding to the clock pattern are captured in the shift registεr 453 and supplied to the phase control circuit 467 to determinε whether the receive clock signal (RCLK) is early or late relativε to thε clock pattern samples. Accordingly, the phase control circuit 467 will assert an up or down- signal (as the case may bε) to adjust the phase of the receive clock signal relative to the incoming data stream. Because the receive clock phase is effεctively locked, however (i.e., by operation of the AND gates 468), only the phase count within the equalization clock generator will be adjusted. Thus, the normal-mode CDR operation is εffεctively carried out in revεrsε whilε thε receiver 450 is in calibration mode. Instead of shifting the phase of the rεcεivε clock signal to achieve alignment with transitions in the incoming data signal, the phase of the equalizer clock signal is shifted to align transitions in the incoming data signal (i.e., the clock pattern output by thε εqualizing output drivεr) with thε rεcεive clock signal. By this operation, the equalizer clock signal is advanced relative to an edge clock component of the receive clock signal by a time substantially equal to the clock-to-Q delay of thε εqualizing output drivεr 465. Thus, thε overall effect of the calibration mode operation is to advance the phase of the equalization clock according to
the clock-to-Q timε of thε εqualizing output drivεr as shown in Figurε 30. In this way, thε εqualizing output driver 465 drives an equalizing signal onto the signal path 122 in phase alignment with the incoming data signal.
In one embodiment, the calibration signal 474 is assertεd for a time interval previously determined to be sufficient to achieve phase alignment between transitions in the transmitted clock pattern and the edgε clock componεnt of thε rεcεivε clock signal. Alternatively, the up and down signals generated by the phase control circuit may bε monitored in the calibration modε to dεtermine whεn thε up and down signals bεgin to alt rnatε, thereby indicating that the desired phase alignment has bεεn obtainεd. In either case, after phase alignment has beεn obtainεd, thε calibration signal is deasserted to enablε normal opεration of the receive circuit. At this point, the CDR circuit returns to adjusting the phasε count within mix logic 471 in response to the up and down signals from the phase control circuit 467. Because the mix logic 481 within the equalizer clock genεrator 459 continues to respond to the same up and down signals, the phase offset betweεn thε εqualizεr clock signal and thε rεcεivε clock signal (i.e., thε phasε offsεt εstablishεd in thε calibration modε) is maintainεd as the phases of the two clocks are adjustεd. Thus, in normal-modε opεration, thε equalizer. clock signal and receive clock signal retain the phase offset established in calibration mode, but otherwise track onε anothεr.
It should bε notεd that signal patterns othεr than thε clock pattern 1010101 may be genεratεd by the signal generator 462 and used to achieve the desired phase relationship between the equalizer clock signal and thε receivε clock signal. For example, the signal genεrator may be implemented by a pseudo random bit sεquence (PRBS) genεrator that gεnerates a pseudo random bit sequence. More generally, any signal generator, random or otherwise, that generates a sequεnce of values having a sufficient transition density (i.e., transitions per unit time) to enable phase locking in the equalizing receiver
450 (i.e., phase locking betwεεn transitions in thε waveform output by output driver 465 and the receive clock signal) may be used to implemεnt signal gεnεrator 462.
Determination of Equalization Tap Latencies, Weights and
Polarities
Rεfεrring again to Figure 3, tap selεction logic may bε implemented in a number of different ways. In one embodiment, for example, the tap sεlect logic 139 includes a configuration circuit that may be programmed with configuration information that specifies the tap data sources to be selected by selεct circuit 128. Thε configuration circuit may include a nonvolatile memory, fusible circuit, εtc. that is programmed at production time according to the symbol latency, amplitude and polarity of empirically observed (or analytically detεrmined) distortions. Alternativεly, the configuration circuit may include memory (volatile or nonvolatile) which is initialized with predetermined configuration information during system startup. In yet anothεr εmbodimεnt, rεfεrrεd to hεrεin as a sεlf-calibrating embodiment, a signaling system includes circuitry to automatically detεrminε thε symbol latency, amplitude and polarity of distortions on the signaling path between a transmitter and receiver, and to program a configuration circuit within the tap selεct logic with configuration information that indicates the tap data sources to be selεctεd by a sεlect circuit and the tap wεights and polarities to be appliεd by an εqualization circuit.
In one sεlf-calibrating embodiment of the invention, a technique called εmbεddεd scoping is used to detεrminε the symbol latency, amplitude and polarity of signal path distortions. The symbol latency of a given distortion, oncε known, is used to select one or more tap data values having corresponding symbol latencies, and the distortion amplitudε and polarity arε used to detεrminε thε weight and polarity to be applied to the selected tap data
valuε in genεrating an εqualization response. Also, the symbol latency of a given distortion may be used to detεrmine whether to counteract the distortion through transmitter preεmphasis or rεcεivεr εqualization (or both), and the overall range of symbol latencies for detεctεd distortions may bε used to dεtermine an appropriate dead range for the signaling system.
Embedded scoping involves iterativεly receiving a sequence of symbols in a recεiver and comparing thε rεcεived symbol sequence with a local generation of the sequεnce to confirm error-frεε rεcεption. With εach rεcεivε-and-confirm itεration, a thrεshold voltagε used to distinguish between symbol values in the incoming signal is offset from a calibrated level by a progressively largεr amount until a symbol in thε sεquεncε no longer matches the expected value. Thε threshold voltage offset at which the failure occurs is refεrrεd to hεrein as a pass/fail offsεt and represents a measure of the signal level at the sampling instant at which the failure occurred. Thus, by sweeping the threshold voltagε through a rangε of threshold voltages until the pass/fail offsets for each symbol in the symbol sequεncε havε bεεn detεcted, a sample plot for the incoming signal may be devεlopεd. Furthεr, by sweeping the recεivε clock signal through an incrεmεntal sεquεnce of phase offsets, and detεrmining thε pass/fail offset at each phase offset, a complete trace of the incoming signal may bε generatεd. Also, thε granularity and start stop points of thε phasε offsεts and/or threshold voltage steps may be controlled (e.g., by configuring a programmable circuit or register) to enable the waveform trace to bε constrained to selεcted points of interest in the incoming signal (e.g., +N° from an intεndεd sampling instant, N rεprεsεnting a swεεp anglε). Figure 32 illustrates thε usε of εmbedded scoping to generate a time- based trace 490 of an incoming data signal 486. The range of threshold voltage offsets over which the incoming signal 486 is sampled is indicated by VT, and the range of phase offsets at which thε signal is samplεd is indicated by D . Each sample point within the sweεp is indicated by a respective dot
within a grid of sample points 480. Note that the sweep may be obtained by stepping the voltage threshold through the rangε of Vτ values for each valuε of
D, or, altεrnativεly, by stεpping thε clock phase through the range of D values for each value of VT. Still refεrring to Figure 32, 488 indicates a pair of samples for which a pass/fail condition is detected. A corresponding pass/fail offset (PFO) is determined according to the difference between the calibrated VT level
(Vτ(CAL)) and the average of the VT offsets between the pass and fail samples, and recorded as a measure of the incoming signal. That is, the pass/fail offset may be usεd to εstablish a data point within the trace 490 as shown. Aftεr swεεping through all thε samplε points within the grid 480 (which sweεp may be repeated numerous times to obtain an average and to discard statistical outliers), a measure of the incoming signal is obtained as illustrated graphically by the trace 490. Embedded scoping has a number of benefits over traditional signal measuremεnt techniques. First, because the technique is non-invasive (i.e., no probe contact), the elεctrical characteristics of the system under test are unaltered, thereby yiεlding potentially more accurate results. Also, the trace is genεratεd from thε pεrspεctivε of thε receive circuit itself, meaning that any non-ideal characteristics of the recεivε circuit are accounted for in thε resulting signal trace information. Finally, because all components needed for embeddεd scoping may bε included within a finished signaling system, embedded scoping may be used to pεrform numerous run-time analyses, including detεrmining thε latεncy and amplitude of refactions and othεr distortions within thε signaling systεm.
Figure 33 illustrates a signaling system 500 according to an embodimεnt of the invention. The signaling system 500 includes a receive devicε 501 and transmit dεvice 509 that employ embeddεd scoping to determine equalizεr tap sεlections, tap weights and tap polarities. Thε transmit
device 501 includes a pattern generator 503, data selector 505, equalizing transmitter 507 and application logic 502. The application logic 502 performs the core function of thε transmitting dεvice (ε.g., signal processing, instruction processing, routing control, or any other function) and provides transmit data (TX DATA) to a first input of the data selector 505. During normal operation, the application logic 502 outputs a logic low scope signal 506 (SCOPE) to the data selεctor 505 to sεlect the transmit data to be passed to the equalizing transmitter 507 for transmission to the recεivε device 509 via signal path 122
(which may be include or be connected to numerous sources of discontinuity such as connectors, vias, stubs, etc.). During a scoping modε of opεration, thε application logic 502 drives the scope signal 506 high to enable a scoping mode of opεration within thε transmit circuit 501. In thε scoping mode, the data selεctor 505 selects a repεating singlε-symbol pulse sequence (e.g., a test signal such as: 00100...00100...00100...) generated by the pattern generator 503 to be transmitted to thε rεcεivε device 509. The receive device 509 includes an equalizing receivεr 510 to recεivε thε incoming data signal, a pattern register 511 to store a local version of thε singlε-symbol pulse sequence, a multiplexεr 512 to εnablε thε pattern register 511 to be switched betwεεn load and barrεl-shifting modεs, a XOR gate 513 to compare the recεivεd data sεquence with thε locally gεnεratεd sεquεncε, and application logic 515 (or other logic) to genεratε a clock adjust signal (CLK ADJ) and threshold voltage adjust signal (THRESH ADJ) to sweεp thε receive clock and threshold voltage usεd within the equalizing receiver through their scoping ranges. The application logic 515 additionally builds a trace record (i.ε., data indicative of the incoming data sequεncε) based on the output of XOR gate 513.
When the receive device 509 is in a scoping mode of operation, the multiplexer 512 is initially set to load the pattern register 511 with the output of the equalizing receiver 510. After a desired sequεnce of data (e.g., the
singlε-symbol pulsε sequence) is shifted into the pattern register 511, the multiplexer 512 is set to enable the barrel-shifting mode of the pattern registεr
513. That is, the multiplexεr 512 sεlεcts thε output of the pattern registεr 511 to bε fεd back to thε input of thε pattern registεr 511 so that the contents of the pattern rεgistεr 511 arε continuously rotated through thε pattern register 511
(i.e., a barrel shifting operation). By this arrangemεnt, the data sequεncε loaded into thε pattern rεgistεr 511 is rεpεatedly output, bit by bit, to a first input of the XOR gate 513. The data sequεncε rεcεivεd by the equalizing receiver is input to a second input of the XOR gate 513 so that the received data sequεncε is compared, bit by bit, with thε data sequence stored within the pattern registεr 511. By sεlεcting thε lεngth of thε repεatεdly transmitted data sequεncε to match thε storagε size of the pattern registεr 511, thε pattern registεr contents are repeatedly compared with a newly received version of the same data sequence (i.e., putatively thε samε data sεquεncε). Any reception error will result in a mismatch betwεεn thε receivεd value and the corresponding value within thε pattern register and therefore, when compared by XOR gate 513, will result in an error signal being output from the XOR gatε 513 to the application logic 515. The application logic 515 may then record the adjusted threshold voltage and clock phase offset at which the error occurred to a signal lεvεl for a timing offsεt within a wavεform tracε.
Figure 34 illustrates an exεmplary waveform trace 527 of a pulse data sequence captured by an embεddεd scope within the signaling system of Figure 33. As shown, a primary pulse 529 arrives at the receiver at symbol time, T0; a negative reflεction 531 of thε primary pulsε appεars at symbol timε T5 and a positive reflεction 533 appears at symbol time T12. Thus, referring to Figure 33, the application logic 515 of rεcεivεr 509 may store configuration information in a sεlεct logic circuit within the equalizing receiver 510 (or elsewhεrε within thε receive device 509) to enable selεction of stored data values having symbol latencies of five and twelve symbol times as tap data
sourcεs for an equalizing circuit. Alternatively, the application logic 515 may directly output select signals to selεct thε dεsired stored data values as tap data sources. The application logic 515 may also generate tap weights and tap polarity values in accordance with the amplitude and polarity of the distortions 531 and 533, and store or output the weights and polarity values as necessary to apply the appropriate tap weights and polarities within thε εqualizing recεivεr 510.
Figure 35 illustrates a method of setting equalization coefficients in a signaling system according to the invention, hi the embodiment shown, transmit-side equalization coefficients are sεt first (541), thεn rεcεive-side εqualization coefficients are set (551). The transmit-side coefficients are set by transmitting a test signal at 543 (e.g., a pulse signal, stεp, εtc), then genεrating a waveform tracε (545) using thε εmbεdded scoping techniques described above. The transmit-side equalization coefficients, including tap data sources, tap wεights and tap polaritiεs, are then set at 547 to produce a recεivεd waveform trace that most closely corresponds to the ideal waveform (ε.g., pulsε, stεp, etc.) output by the transmitter. The transmit-side equalization coefficients may be dεtεrminεd analytically (i.ε., by computing thε coefficients based on thε wavεform tracε generated at 545) or iteratively, by repεating opεrations 543 and 545 for diffεrent combinations of coefficient settings until a coefficiεnt setting that provides a desired waveform is detεrminεd.
Aftεr thε transmit-side equalization coefficients have been set, the receive-sidε coefficients are set by transmitting the test signal at 553 (i.e., a pulse, step or other signal transmitted with equalization according to the coefficients set at 547), then generating a waveform trace of the received waveform (555) using the embedded scoping techniques described above. The recεivε-side εqualization coefficients, including tap data sources, tap weights and tap polarities, are thεn sεt at 557 to produce a received waveform
that most closely corresponds to the ideal waveform (i.e., waveform having reducεd high-latεncy distortion). Thε recεivε-sidε εqualization coefficients may be detεrminεd analytically as described in reference to Figures 31-33, or iterativεly, by repeating operations 553 and 555 for different combinations of coefficient settings until a coefficient setting that provides a desired waveform is detεrminεd.
Notε that selection of tap data sources within the transmitter may include outputting test signals on neighboring signal paths simultanεously with thε tεst signal transmission at 543 to allow determination of which transmit-side equalizer taps, if any, should be sourced by cross-talk cancellation data values (i.e., data values being transmitted on neighboring signal paths) and the corresponding tap weights.
Reducing Equalization Taps Through Path Length Symmetry As discussed above in reference to Figure 3, the tap select logic 139 and select circuit 128 enable equalization ovεr a rεlativεly widε rangε of symbol latεncies using a small numbεr of εqualizεr taps. In εmbodiments of the invention, the total number of equalizer taps is further reduced through symmetry in the electrical distances betweεn signal path discontinuities. Figurε 36 illustratεs a signaling system that employs path length symmetry to reduce the total number of equalization taps needεd to compεnsatε for reflεction-typε ISI. Thε systεm includes a pair of circuit boards 571 and 573 (e.g., line cards, port cards, memory modules, etc.) having integrated circuit (IC) devices 575 and 577 mounted respεctively thereon. IC device 575 includes a transmit circuit coupled to a connector interface 581 (e.g., a connector or a terminal to be received by a connector) via signal path sεgmεnt 582, and IC device 577 includes a receive circuit coupled to a connector interface 585 via signal path segment 586. The connector interfaces 581 and 585 are couplεd to onε anothεr through signal path segment 592 (e.g.,
backplanε trace, cable, etc.) to form an overall signal path between the transmit circuit and receivε circuit.
Because the connector interfaces 581 and 585 tend to have at least slightly different impedances than the impedance of path segments 582, 586 and 592, reflεctions arε produced at comiector interfaces as shown by reflεction flight paths AT, AR, CT and CR. Morε spεcifically, the reflection flight path indicated by A results from the primary signal reflecting off connector interface 581, and the reflection reflecting off the output node of the transmit circuit within IC 575. Thus, the reflection flight time over path AT excεεds thε unrεflεctεd primary signal flight time by twice the signal propagation time between the connector intεrfacε 581 and the transmit circuit output node; i.e., the signal propagation time on path segment 582. Similarly, the reflection flight time over path AR (reflection off recεiver input, then off connector intεrfacε 585) εxceeds the unreflεctεd primary signal flight timε by twice the signal propagation time between the connector interface 585 and the receive circuit input; the signal propagation time on path segment 586. Accordingly, if path sεgmεnts 582 and 586 arε designed or calibrated to have equal electrical lengths (i.e., equal signal propagation delays), reflections AT and AR will arrive at the input of the receive circuit of IC device 577 at substantially the same time. Consequently, a single equalization tap having a symbol latency that corresponds to the latent arrival of the coincident AT/AR reflections may be used to cancel or at least reduce both reflections. Because reflεction flight paths CT and CR arε madε equal by equalizing the electrical lengths of path segments 582 and 586, a single εqualization tap that corresponds to the latent arrival of coincident CT/CR reflections may be used to cancel or at least reduce both reflections. Thus, by designing or calibrating path segmεnts 582 and 586 to havε equal electrical lengths (which path segmεnts may optionally include an on-chip path segment betweεn thε transmit circuit output and an IC device 575 output node and/or an on-chip
path segmεnt bεtwεεn thε receivε circuit input and an IC device 577 input node), one equalization tap within eithεr the transmit circuit or recεivε circuit may bε usεd to cancel or reduce a distortion that would otherwisε require two or more taps. In one embodimεnt, thε εlεctrical lengths of path segments 582 and
586 are made equal (or substantially equal — as achiεvablε through practicable manufacturing techniques) by design which may include, but is not limited to:
1) making the physical lengths of path sεgments 582 and 586 substantially equal, whethεr implemented by printed traces, cables or other types of conductors; 2) including inductive or capacitive structures (e.g., vias, fεrrite materials, narrowed or widened trace regions, or any other impedance-altering structures) statically coupled in seriεs or parallεl with path sεgmεnts 582 and/or 586 to εqualize otherwisε different electrical lengths of the path segmεnts; and/or 3) including inductive and/or capacitive structures that may be run-time coupled (e.g., through pass gates or other electrically or magnetically controllable structures) in series or parallel with path sεgmεnts 582 and/or 586 to εqualizε otherwise different electrical lengths of the path segmεnts. Morε gεnerally, any technique for adjusting the electrical lengths of path segments 582 and 586 to achieve coincident arrival of two or more signal reflεctions at thε input of an εqualizing receivεr may bε usεd without dεparting from thε spirit and scope of the present invention.
Regarding run-time coupling of impedancε-altεring structures to path segmεnts 582 and/or 586, such impedance-altering structures may be selectively coupled to path segmεnts 582 and/or 586 through operation of a configuration circuit (e.g., volatile or non-volatile storage, or fusible or otherwisε one-time programmable circuit). For example a configuration value that corresponds to the dεsired electrical length of a path segment may be programmed into the configuration circuit and used to control pass gates or other switching elements for switchably coupling the impedance-altering
structures to the path segmεnt. Thε dεsirεd setting of the configuration value may be determined, for examplε, by using thε εmbεddεd scoping technique described above in refεrencε to Figures 27-29 to determine relative arrival times of signal reflεctions and thereforε propagation timε diffεrences betwεεn signal rεflεctions.
Although the invention has been described with reference to specific exεmplary εmbodimεnts thεrεof, it will bε εvidεnt that various modifications and changes may be made therεto without dεparting from thε broadεr spirit and scope of the invεntion as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.