Voltage sampler driver with enhanced high-frequency gain
11183982 · 2021-11-23
Assignee
Inventors
Cpc classification
H04L25/06
ELECTRICITY
H03F3/45632
ELECTRICITY
H03F2203/45022
ELECTRICITY
H03F3/45179
ELECTRICITY
H04L25/0272
ELECTRICITY
H03G3/3036
ELECTRICITY
International classification
H04L25/03
ELECTRICITY
H04L25/02
ELECTRICITY
Abstract
Methods and systems are described for receiving, at an input differential branch pair, a set of input signals, and responsively generating a first differential current, receiving, at an input of an offset voltage branch pair, an offset voltage control signal, and responsively generating a second differential current, supplementing a high-frequency component of the second differential current by injecting a high-pass filtered version of the set of input signals into the input of the offset voltage branch pair using a high-pass filter, and generating an output differential current based on the first and second differential currents using an amplifier stage connected to the input differential branch pair and the offset voltage branch pair.
Claims
1. An apparatus comprising: an integrator connected to a pair of output nodes, the integrator configured to initialize the pair of output nodes with a predetermined amount of charge responsive to a received periodic clock signal; a voltage sampler driver connected to the pair of output nodes, the voltage sampler driver configured to generate a differential output voltage on the pair of output nodes by modifying the predetermined amount of charge on the pair of output nodes according to first and second differential currents generated responsive to the received periodic clock signal, the voltage sampler driver comprising: an input differential branch pair connected to the pair of output nodes, the input differential branch pair configured to receive a differential input signal and to responsively generate the first differential current through the pair of output nodes responsive to the periodic clock signal; a high-pass filter configured to generate a high-pass filtered version of the differential input signal; and an offset voltage branch pair connected to the pair of output nodes, in parallel to the input differential branch pair, the offset voltage branch pair comprising a differential input summation node, the differential input summation node configured to receive (i) a differential offset voltage control signal and (ii) the high-pass filtered version of the differential input signal from an output of the high-pass filter, the offset voltage branch pair configured to generate the second differential current responsive to the periodic clock signal.
2. The apparatus of claim 1, wherein the integrator is configured to initialize the pair of output nodes by pre-charging the pair of output nodes, and wherein the voltage sampler driver is configured to modify the predetermined amount of charge on the pair of output nodes by discharging the pair of output nodes according to the first and second differential currents.
3. The apparatus of claim 1, wherein the integrator is configured to initialize the pair of output nodes by pre-discharging the pair of output nodes, and wherein the voltage sampler driver is configured to modify the predetermined amount of charge on the pair of output nodes by charging the pair of output nodes according to the first and second differential currents.
4. The apparatus of claim 1, wherein the integrator comprises a strongARM latch.
5. The apparatus of claim 1, wherein the integrator comprises a double-tail latch.
6. The apparatus of claim 1, wherein the differential offset voltage control signal corresponds to an offset correction for the voltage sampler driver.
7. The apparatus of claim 1, wherein the differential offset voltage control signal is associated in part with a decision feedback equalization (DFE) correction factor.
8. The apparatus of claim 1, wherein the differential input is received from an output of a multi-input comparator (MIC).
9. The apparatus of claim 1, wherein transistors in the offset voltage branch pair are scaled with respect to transistors in the input differential branch pair.
10. The apparatus of claim 1, wherein transistors in the offset voltage branch pair are matched with respect to transistors in the input differential branch pair.
11. A method comprising: initializing, using an integrator, a pair of output nodes with a predetermined amount of charge responsive to a received periodic clock signal; generating a first differential current through the pair of output nodes responsive to the periodic clock signal, the first differential current generated by an input differential branch pair connected to the pair of output nodes, the input differential branch pair receiving a differential input signal; generating a high-pass filtered version of the differential input signal using a high-pass filter; generating a second differential current through the pair of output nodes responsive to the periodic clock signal, the second differential current generated by an offset voltage branch pair connected to the pair of output nodes, in parallel to the input differential branch pair, the offset voltage branch pair comprising a differential input summation node, the differential input summation node configured receiving (i) a differential offset voltage control signal and (ii) the high-pass filtered version of the differential input signal from an output of the high-pass filter; and generating a differential output voltage on the pair of output nodes by modifying the predetermined amount of charge on the pair of output nodes according to a summation of the first and the second differential currents.
12. The method of claim 11, initializing the pair of output nodes comprises pre-charging the pair of output nodes, and wherein modifying the predetermined amount of charge on the pair of output nodes comprises discharging the pair of output nodes according to the first and second differential currents.
13. The method of claim 11, wherein initializing the pair of output nodes comprises pre-discharging the pair of output nodes, and wherein modifying the predetermined amount of charge on the pair of output nodes comprises charging the pair of output nodes according to the first and second differential currents.
14. The method of claim 11, wherein the integrator comprises a strongARM latch.
15. The method of claim 11, wherein the integrator comprises a double-tail latch.
16. The method of claim 11, wherein the differential offset voltage control signal corresponds to an offset correction for the voltage sampler driver.
17. The method of claim 11, wherein the differential offset voltage control signal is associated in part with a decision feedback equalization (DFE) correction factor.
18. The method of claim 11, wherein the differential input is received from an output of a multi-input comparator (MIC).
19. The method of claim 11, wherein transistors in the offset voltage branch pair are scaled with respect to transistors in the input differential branch pair.
20. The method of claim 11, wherein transistors in the offset voltage branch pair are matched with respect to transistors in the input differential branch pair.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Various embodiments in accordance with the present disclosure will be described with reference to the drawings. Same numbers are used throughout the disclosure and figures to reference like components and features.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
DETAILED DESCRIPTION
(20)
(21) Within communications receiver 130, detector 132 reads the voltages or currents on wires 125, possibly including amplification, frequency compensation, and common mode signal cancellation. In the present example, the received results 140, herein shown as R.sub.0, R.sub.1, R.sub.2, R.sub.3, R.sub.4, are provided directly by detector 132, without need of optional decoder 138.
(22) As will be readily apparent, different codes may be associated with different block sizes and different codeword sizes; for descriptive convenience and without implying limitation, the example of
(23) Depending on which vector signaling code is used, there may be no decoder, or no encoder, or neither a decoder nor an encoder. For example, for the 8b8w code disclosed in [Cronie II], both encoder 112 and decoder 138 exist. On the other hand, for the 5b6w code of the present example, an explicit decoder is unnecessary, as the system may be configured such that detector 132 generates the received results 140 directly.
(24) The operation of the communications transmitter 110 and communications receiver 130 have to be completely synchronized in order to guarantee correct functioning of the communication system. In some embodiments, this synchronization is performed by an external clock shared between the transmitter and the receiver. Other embodiments may combine the clock function with one or more of the data channels, as in the well-known Biphase encoding used for serial communications, or other methods described herein.
(25) Advanced Detectors for Vector Signaling
(26) Cronie I, Cronie II, and Holden II describe methods of detecting the symbols that have been sent on a vector signaling link. This disclosure describes several additional methods.
(27) As described by Holden I, a detection mechanism called maximum-likelihood decoding for use where permutation modulation coding is used for chip-to-chip communication. Holden II teaches a decoder using comparators that compare signal values on two communication wires, producing results that inform sorting or ranking actions within such decoder.
(28) The operation of such a comparator can be succinctly described using the “sign” notation, given in the following: sign(x)=+1 if x>0, sign(x)=−1 if x<0, and sign(x) is undefined if x=0. That is, if two values entering a comparator are equal, or close to equal, then the value output by the comparator can be a+1 or a −1, and it is not clear a-priori which of these values is output. Such comparators are called “simple comparators” hereinafter.
(29) In some applications, it may be the case that simple comparators are not sufficient to detect the codewords of a vector signaling code. As an example, consider the union of two PM-codes, one generated as permutations of the vector (1,0,0,−1), and one generated as permutations of the vector (1,1,−1,−1). This union contains 18 codewords, whereas each constituent PM-code contains at most 12 codewords, versus the 16 unique codewords needed to represent a four-bit data value. It is therefore not possible to transmit 4 bits on 4 wires using one PM-code alone, whereas with the union of these two PM-codes a full pin-efficient transmission on 4 wires is possible. Such transmission will be feasible if detection of the codewords can be done with efficient circuitry. It is easy to see that even a full set of 6 simple comparators between pairs of wires is not sufficient to detect a codeword, as those comparisons give no information as to which of the two constituent PM-codes include the received word.
(30) In an application where the values on n communication wires need to be ranked, the number of simple comparators needed is n*(n−1)/2, the number of all un-ordered pairs of integers in the range 1, 2, . . . , n. In some applications this number may be too large. For example, where n is 10, the number of simple comparators used is 45, which may be too large to permit implementation in a given application.
(31) For these reasons, it is important to devise circuits that can be implemented more efficiently than those requiring unacceptable numbers of simple comparators, as well as enabling detection of codewords that would otherwise be undetectable. Such circuits will be described, using an element that hereinafter is termed a multi-input comparator.
(32) A multi-input comparator with coefficients (also referred to as input weighting factors) a.sub.0, a.sub.1, . . . , a.sub.m-1 is a circuit that accepts as its input a vector (x.sub.0, x.sub.1, . . . , x.sub.m-1) and outputs
sign(a.sub.0*x.sub.0+ . . . +a.sub.m-1*x.sub.m-1), (Eqn. 1)
(33) with the definition of the sign-function given above. As such, a simple comparator may be seen to be a two input multi-input comparator with coefficients 1 and −1, hence may be considered to be a special case of a multi-input comparator.
(34) In accordance with at least one embodiment, the coefficients of a multi-input comparator are integers. In such cases, one circuit implementation of a multi-input comparator is given with reference to
(35) Another multi-input comparator also having the same coefficients is illustrated using a simplified notation in
(36) A multi-input comparator is common mode resistant if the sum of all its coefficients is zero. It is easy to see that if a multi-input comparator is common mode resistant, then simultaneously increasing the values of its inputs by the same amount will not result in any change of the output of the multi-input comparator.
(37) Multi-input comparators may be susceptible to more thermal noise than simple comparators. If the inputs of a multi-input comparator are independently changed by additive white Gaussian noise of mean 0 and variance σ.sup.2, the output of the comparator is perturbed by additive white Gaussian noise of mean 0 and variance
σ.sup.2(a.sub.0.sup.2+ . . . +a.sub.m-1.sup.2) (Eqn. 2)
(38) If, for a given input (x.sub.0, x.sub.1, x.sub.2, . . . , x.sub.m-1) and (y.sub.0, y.sub.1, y.sub.2, . . . , y.sub.t-1) the value
(39)
(40) is nonzero, then the error probability of this multi-input comparator is Q.sub.σ(α), wherein Q.sub.σ(x) is the probability that a normal random variable of mean 0 and variance σ.sup.2 has a value larger than or equal to x. Hereinafter we call α the “sensitivity” of the multi-input comparator with respect to its input. Note that by definition sensitivity is nonzero, i.e. if the input of a multi-input comparator is such that the value α as defined in Eqn. 3 is zero, then the sensitivity of the comparator with respect to that particular input is “undefined.”
(41) A set S of multi-input comparators is said to “detect” a vector signaling code C if the following holds: For any two codewords c and d, there is a multi-input comparator in the set S such that the value of that comparator on both c and d is not undefined, and the values are different. This means that the codewords of the vector signaling code are uniquely determined by the outputs of all the multi-input comparators in S when the codeword is used as the input. If a set S of multi-input comparators detects the vector signaling code C, then we define the “minimum sensitivity” of S with respect to C as the minimum sensitivity of any of the comparators applied to any of the codewords, provided that the sensitivity is defined. The notion of minimum sensitivity stands for the maximum amount of thermal noise that can be applied to the codewords while guaranteeing a given detection error probability. Several examples below will illustrate this notion.
(42) In some embodiments, the output of the MICs may not be sliced using a simple two input comparator, rather a differential output voltage may be provided.
(43) Receivers Using Multi-Input Comparators
(44) Mathematically, the set of multi-input comparators comprising a code receiver may be concisely described using matrix notation, with the columns of the matrix corresponding to consecutive elements of input vector (x.sub.0, x.sub.1, . . . , x.sub.m-1) i.e. the plurality of signal conductor or wire inputs carrying the vector signaling code, and each row of the matrix corresponding to the vector defining a particular multi-input comparator and its output. In this notation, the value of matrix element corresponds to the weight vector or set of scaling factors applied to that column's input values by that row's multi-input comparator.
(45) The matrix of Eqn. 4 describes one such set of multi-input comparators comprising a code receiver.
(46)
(47) In this embodiment, six input wires, represented by the six matrix columns, are processed by five multi-input comparators represented by matrix rows 2-6. For purposes to be subsequently described, the first matrix row is composed of all “1” values, creating a square 6×6 matrix. The matrix described by Eqn. 4 will herein be referred to as a Glasswing Receiver matrix.
(48) As used herein, a matrix M such as that of Eqn. 4 is called “orthogonal” if M.sup.TM=D that is, if the product of the matrix and its transpose is a diagonal matrix having non-zero values only on its diagonal. This is a weaker definition than commonly used, where the result is be the identity matrix, i.e. having diagonal values equal to 1. Matrix M may be normalized to satisfy the stronger conventional orthogonality requirement, but as will subsequently be described such normalization is neither necessary nor desirable in practice.
(49) Functionally, orthogonality requires that the vector of weights in a row representing a multi-input comparator be orthogonal to all other rows, and that each row representing a multi-input comparator sums to zero (since it is orthogonal to the common mode all 1's codeword). As this implies the comparator outputs are also orthogonal (and therefore independent,) they represent distinct communications modes, herein described as “sub-channels” of the Vector Signaling Code communications system.
(50) Given this modal interpretation, the initial row of the matrix may be seen to represent the common-mode communications channel over the transmission medium. As it is desirable in a practical system for the receiver to have common-mode rejection, the first row is set to all “1” values, maximizing the common mode contribution of each wire input to this one matrix row. As by definition all rows of the matrix are orthogonal, it follows that no other matrix row (i.e. no receiver output) may then be impacted by common mode signals. Embodiments having such common mode rejection need not implement a physical comparator corresponding to the first row of their descriptive matrix.
(51) For avoidance of confusion, it is noted that all data communications in an ODVS system, including the state changes representing signals carried in sub-channels, are communicated as codewords over the entire channel. An embodiment may associate particular mappings of input values to codewords and correlate those mappings with particular detector results, as taught herein and by [Holden I] and [Ulrich I], but those correlations should not be confused with partitions, sub-divisions, or sub-channels of the physical communications medium itself. Similarly, the concept of ODVS sub-channels is not limited by the example embodiment to a particular ODVS code, transmitter embodiment, or receiver embodiment. Encoders and/or decoders maintaining internal state may also be components of some embodiments. Sub-channels may be represented by individual signals, or by states communicated by multiple signals.
(52) Generating ODVS Codes Corresponding to a Receiver Matrix
(53) As described in [Cronie I] and [Cronie II], an Orthogonal Differential Vector Signaling code may be constructed from a generator matrix by multiplication of an input modulation vector of the form (0, a.sub.1, a.sub.2, . . . a.sub.n) by the matrix M. In the simplest case, each a.sub.i of this vector is the positive or negative of a single value, as example ±1, representing one bit of transmitted information.
(54) Given the understanding of M as describing the various communications modes of the system, it may readily be seen that multiplication of the matrix by such an input vector comprises excitation of the various modes by the a.sub.i, of that vector, with the zeroth mode corresponding to common mode transmission not being excited at all. It will be obvious to one familiar with the art that transmission energy emitted in the common mode is both unnecessary and wasteful in most embodiments. However, in at least one embodiment, a nonzero amplitude for the common mode term is used to provide a nonzero bias or baseline value across the communications channel.
(55) It also may be seen that the various codewords of the code generated using this method represent linear combinations of the various orthogonal communication modes. Without additional constraints being imposed (e.g., for purposes of implementation expediency,) this method results in systems capable of communicating N−1 distinct sub-channels over N wires, typically embodied as a N−1 bit/N wire system. The set of discrete codeword values needed to represent the encoded values is called the alphabet of the code, and the number of such discrete alphabet values is its alphabet size.
(56) As a further example, the code generated by this method from the matrix of Eqn. 4 is shown in Table 1.
(57) TABLE-US-00001 TABLE 1 ±[1, 1/3, −1/3, −1, −1/3, 1/3] ±[1, 1/3, −1/3, 1/3, −1, −1/3] ±[1/3, 1, −1/3, −1, −1/3, 1/3] ±[1/3, 1, −1/3, 1/3, −1, −1/3] ±[1/3, −1/3, 1, −1, −1/3, 1/3] ±[1/3, −1/3, 1, 1/3, −1, −1/3] ±[−1/3, 1/3, 1, −1, −1/3, 1/3] ±[−1/3, 1/3, 1, 1/3, −1, −1/3] ±[1, 1/3, −1/3, −1, 1/3, −1/3] ±[1, 1/3, −1/3, 1/3, −1/3, −1] ±[1/3, 1, −1/3, −1, 1/3, −1/3] ±[1/3, 1, −1/3, 1/3, −1/3, −1] ±[1/3, −1/3, 1, −1, 1/3, −1/3] ±[1/3, −1/3, 1, 1/3, −1/3, −1] ±[−1/3, 1/3, 1, −1, 1/3, −1/3] ±[−1/3, 1/3, 1, 1/3, −1/3, −1]
(58) As may be readily observed, the alphabet of this code consists of the values +1, +⅓, −⅓, −1, thus this is a quaternary code (e.g. having an alphabet size of four.) This code will subsequently be described herein as the 5b6w or “Glasswing” code, and its corresponding receive matrix of Eqn. 4 as the “Glasswing receiver”.
(59) An embodiment of the Glasswing receiver as defined by the matrix of Eqn. 4 is shown in
(60)
(61)
(62)
To adjust the BW of the amplifier shown in
(63)
(64)
(65) In some embodiments, the offset differential branch pair may be incorporated into a MIC, as shown in
(66)
(67) In some embodiments, generating the first and second differential currents includes enabling corresponding tail current sources for the input differential branch pair and the offset differential branch pair. In some embodiments, the method further includes periodically enabling the respective tail current sources using an input clock signal.
(68) In some embodiments, the method further includes generating a differential output voltage by drawing the output differential current through a pair of load resistors. In some embodiments, each load resistor has a corresponding capacitor connected between one terminal of the load resistor and ground. In some embodiments, the load resistors are tunable. In some embodiments, the amplifier stage further comprises an adjustable current tail source.
(69) In some embodiments, a product of a current magnitude of the adjustable current tail source and an impedance magnitude of one of the load resistors is constant, and the method further includes adjusting the pair of load resistors and the tunable current source to adjust bandwidth. Alternatively, a product of a current magnitude of the tunable current tail source and an impedance magnitude of one of the load resistors is not constant, and the method further includes adjusting the pair of load resistors and the current source to adjust power consumption.
(70) In some embodiments, each tunable load resistor comprises a plurality of resistors in a parallel network, and the method further includes selectably enabling each resistor of the plurality of resistors according to a corresponding switch receiving a corresponding control signal.
(71)
(72)
(73)
(74)
(75)
(76)
wherein Cin is the input capacitance of the offset correction differential pair. Typical values may include: Cin=2fF, C=9fF, R=2 k-200 k.
(77)
(78)
(79)
(80) The examples presented herein illustrate the use of vector signaling codes for point-to-point wire communications. However, this should not be seen in any way as limiting the scope of the described embodiments. The methods disclosed in this application are equally applicable to other communication media including optical and wireless communications. Thus, descriptive terms such as “voltage” or “signal level” should be considered to include equivalents in other measurement systems, such as “optical intensity”, “RF modulation”, etc. As used herein, the term “physical signal” includes any suitable behavior and/or attribute of a physical phenomenon capable of conveying information. Physical signals may be tangible and non-transitory.
(81) Interpreting a set of signals as selecting an object (e.g., a data object) can include selecting the object based at least in part on the set of signals and/or one or more attributes of the set of signals. Interpreting a set of signals as representing an object (e.g., a data object) can include determining and/or selecting the object based at least in part on a representation corresponding to the set of signals. A same set of signals may be used to select and/or determine multiple distinct objects (e.g., data objects).