US11849015B1 - Shift-register-based clock phase interpolator - Google Patents
Shift-register-based clock phase interpolator Download PDFInfo
- Publication number
- US11849015B1 US11849015B1 US17/455,784 US202117455784A US11849015B1 US 11849015 B1 US11849015 B1 US 11849015B1 US 202117455784 A US202117455784 A US 202117455784A US 11849015 B1 US11849015 B1 US 11849015B1
- Authority
- US
- United States
- Prior art keywords
- phase
- circuitry
- interpolation
- phases
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 230000010363 phase shift Effects 0.000 claims abstract description 46
- 238000003860 storage Methods 0.000 claims abstract description 41
- 238000004891 communication Methods 0.000 claims abstract description 4
- 239000013598 vector Substances 0.000 claims description 33
- 238000000034 method Methods 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 11
- 230000007423 decrease Effects 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- FGRBYDKOBBBPOI-UHFFFAOYSA-N 10,10-dioxo-2-[4-(N-phenylanilino)phenyl]thioxanthen-9-one Chemical compound O=C1c2ccccc2S(=O)(=O)c2ccc(cc12)-c1ccc(cc1)N(c1ccccc1)c1ccccc1 FGRBYDKOBBBPOI-UHFFFAOYSA-N 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0016—Arrangements for synchronising receiver with transmitter correction of synchronization errors
- H04L7/002—Arrangements for synchronising receiver with transmitter correction of synchronization errors correction by interpolation
- H04L7/0025—Arrangements for synchronising receiver with transmitter correction of synchronization errors correction by interpolation interpolation of clock signal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/0807—Details of the phase-locked loop concerning mainly a recovery circuit for the reference signal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
- H03L7/0814—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the phase shifting device being digitally controlled
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
- H04L7/0337—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
Definitions
- This disclosure relates to clock phase interpolation circuitry for the serializer/deserializer of an integrated circuit device. More particularly, this disclosure relates to phase interpolation circuitry that accommodates interpolation among an arbitrary number of clock phases.
- phase interpolation may be used in, among other functions, a clock-data recovery (CDR) loop to adjust the sampling phase of input data or in a phase-locked loop (PLL) to generate a fractional clock multiplier.
- CDR clock-data recovery
- PLL phase-locked loop
- phase interpolator In known phase interpolator implementations, the desired or required phase interpolation, once determined, may be represented by a binary phase control code.
- the phase control code is the concatenation of a most significant bit (MSB) portion that represents which two adjacent ones of the available clock phases should be interpolated, and a least significant bit (LSB) portion that represents the relative weights of the two adjacent phases.
- MSB most significant bit
- LSB least significant bit
- the bit width of MSB section of the phase control code is n, meaning that the phase decoder must become larger—and therefore more expensive and power intensive—as the number of phases increases.
- an integrated circuit device includes functional circuitry, and serializer/deserializer circuitry for serial communication with the functional circuitry.
- the serializer/deserializer circuitry includes phase interpolator circuitry for interpolating phases of a clock signal of the integrated circuit device.
- the phase interpolator circuitry includes a phase shift register having storage locations configured to represent the phases of the clock signal, and phase rotation control circuitry configured to decode a phase code signal to determine a shifting direction for phase selections in storage locations of the phase shift register.
- the phase rotation control circuitry may be configured to determine the shifting direction based on only the most significant bit and the second most significant bit of the phase code signal.
- the phase interpolator circuitry may further include weight direction control circuitry configured to invert outputs of the weight decoder circuitry to prevent discontinuities in the output of the weight decoder circuitry when the output of the weight decoder circuitry changes to a subsequent state from a state where all bits are the same.
- phase interpolator circuitry may further include phase interpolation circuitry configured to combine the two weighted phase vectors into an analog timing signal.
- the phase interpolation circuitry may include current mirror circuitry, a resistor in one leg of the current mirror circuitry, and a plurality of phase interpolation slice units, corresponding in number to bits of the interpolation weights.
- Each one of the phase interpolation slice units may be parallel to each other one of the phase interpolation slice units and may be in series with the resistor.
- Each one of the phase interpolation slice units may include respective phase switches corresponding to respective ones of the phases of the clock signal and controlled by values in the storage positions of the phase shift register, and a respective weight switch in series with each respective one of the phase switches and controlled by a respective bit position in the output of a respective weighted phase vector. For each one of the phases of the clock signal selected by one of the respective phase switches, all phase interpolation slice units for which a respective weight switch is closed may contribute to pulling current through the resistor to yield a value of the analog timing signal.
- the phase interpolation circuitry may include a first instance of the phase interpolation circuitry for one leg of a differential clock phase signal, and a second instance of the phase interpolation circuitry for another leg of the differential clock phase signal.
- deriving interpolation weights from the phase code signal may include binary-to-thermometer decoding of the phase code signal.
- the method may further include combining the interpolation weights with the phase selections in the storage locations of the phase shift register to assign the interpolation weights to two adjacent phases of the clock signal that are selected by the phase selections, to yield a respective weighted phase vector for each of the two adjacent phases of the clock signal.
- the method may further include combining the two weighted phase vectors into an analog timing signal.
- combining the two weighted phase vectors into an analog timing signal may include, for each respective phase, closing a respective switch according to each bit in a respective one of the weighted phase vectors to contribute to drawing current through a resistor in one leg of current mirror circuitry to yield a value in the analog timing signal.
- a second version of that variant may further include amplifying the analog timing signal into a rail-to-rail clock signal.
- FIG. 3 is a block diagram of an implementation of a weight decoder, based on a binary-to-thermometer decoder, according to implementations of the subject matter of this disclosure
- FIG. 5 shows weight direction control circuitry according to an implementation of the subject matter of this disclosure
- FIG. 6 shows phase rotation control circuitry according to an implementation of the subject matter of this disclosure
- FIG. 7 is a block diagram of a phase shift register according to an implementation of the subject matter of this disclosure.
- FIG. 8 is a block diagram of a multiplexer according to an implementation of the subject matter of this disclosure.
- FIG. 10 is a visualization of a vector combination operation according to an implementation of the subject matter of this disclosure.
- the phase interpolator includes a decoder in which a shift register is configured with a number of shift register positions corresponding to the number of phases among which interpolation is to be performed.
- a ‘1’ in each of two adjacent shift register positions signifies the two adjacent phases to be interpolated.
- each of only two of the shift register positions is occupied by a ‘1’ and each of the remaining shift register positions is occupied by a ‘0’.
- the weight decoder may include a binary-to-thermometer decoder, also known as a binary-to-unary decoder, to convert binary weight inputs into a unary representation.
- a weight swap control may be provided so that when the weight reaches a maximum, the unary representation decreases regardless of the direction in which the phase control code is changing, to prevent discontinuities in the interpolation weights when one of the interpolation weights changes to a subsequent state from a state where all bits are the same.
- the phase control code may be used to determine the phase rotation direction—clockwise or counterclockwise.
- MSB most significant bit
- the clock phase may be rotated clockwise when the phase control code increases, may be rotated counterclockwise when the phase control code decreases.
- FIGS. 1 - 15 The subject matter of this disclosure may be better understood by reference to FIGS. 1 - 15 .
- CDR circuitry 153 includes a phase interpolator 100 , as described below, in accordance with implementations of the subject matter of this disclosure, that interpolates among the clock phases output by PLL 152 , and outputs an interpolated clock signal 108 (clk′0) along with its quadrature phases 154 at 90° (clk′90), 180° (clk′180) and 270° (clk′270).
- a sampler 155 in CDR circuitry 153 samples incoming data 156 and compares the sampled data to clock signal 108 (including phases 154 ) and determines whether data 156 is early or late relative to clock signal 108 .
- the number of phases among which interpolation is to be performed is six, and the phase control code has four bits (PH_CODE[3:0]).
- Weight decoder circuitry 101 decodes the least three significant bits into eight levels of weight.
- Phase rotation control circuitry 102 uses the two most significant bits of PH_CODE[3:0] to determine the phase rotation direction—clockwise or counterclockwise.
- Phase shift register circuitry 103 has a number of positions equal to the number of phases to be interpolated, and is configured to hold the values in those position, shift those values one position to the right, or shift those values one position to the left. In each position of shift register 103 , a ‘1’ signifies that a corresponding one of the phases is one of the phases to be interpolated.
- FIG. 3 is a block diagram of an implementation 200 of weight decoder 101 , based on a binary-to-thermometer decoder 201 which converts the two most significant bits of the phase code 111 to an 8-bit output 211 including a 7-bit unary number followed by a ‘0’ (THERM[7:0]), as well as its inverse 221 ending in a ‘1’ (THERMB[7:0], although other implementations may operate on, and generate, other numbers of bits.
- Multi-bit multiplexer 202 which may be a set of 1-bit multiplexers, selects between output 211 and inverted output 221 based on SWAP signal 212 .
- SWAP signal 212 may be provided by weight direction control circuitry 104 as described below in connection with FIG.
- the selected output 222 may be registered at 203 , and output as WEIGHT[7:0] signal 213 and its inverse WEIGHTB[7:0] 223 .
- a multi-bit flip-flop, or multiple 1-bit flip-flops may be provided.
- FIG. 4 shows one possible implementation 300 of a binary-to-thermometer decoder for converting a 3-bit binary phase code input (PH_CODE[2:0]) to an 8-bit unary output (THERM[7:0]) using AND-gates 301 , NAND-gates 302 , NOR-gate 303 , and inverters 304 . Only the bits THERM[0] through THERM[7] of positive output 211 (THERM[7:0]) are shown, but additional inverters (not shown) convert positive output 211 (THERM[7:0]) to inverted output 221 (THERMB[7:0]).
- FIG. 5 shows an implementation 400 of weight direction control circuitry 104 for a six-phase example, including NAND-gates 401 and EXCLUSIVE-OR-gate 402 , to generate the SWAP signal to swap the binary-to-thermometer decoder outputs 211 and 221 .
- the three control commands SHIFT_RIGHT 521 , SHIFT_LEFT 522 and HOLDB 523 are generated as follows.
- HOLD signifies that phase shift register 103 holds its current values in place without shifting
- HOLDB is the inversion of HOLD.
- HOLDB is asserted when the current most significant bit of the phase code 111 (PH_CODE n [MSB]) and the previous most significant bit of the phase code 111 (PH_CODE n ⁇ 1 [MSB]) are the same.
- Flip-flops 501 retain the previous phase code value so that that comparison can be made.
- phase shift register 103 When SHIFT_RIGHT is asserted, the values in phase shift register 103 are shifted to the right. SHIFT_RIGHT is asserted when HOLDB is asserted and the next most significant bit (i.e., the bit to the right of the most significant bit) of phase code 111 (PH_CODE[MSB ⁇ 1]) has changed from a previous value of ‘0’ to a current value of ‘1’. Again, flip-flops 501 retain the previous phase code value so that that comparison can be made.
- phase shift register 103 When SHIFT_LEFT is asserted, the values in phase shift register 103 are shifted to the left. SHIFT_LEFT is asserted when HOLDB is asserted and the next most significant bit of phase code 111 (PH_CODE[MSB ⁇ 1]) has changed from a previous value of ‘1’ to a current value of ‘0’. Again, flip-flops 501 retain the previous phase code value so that that comparison can be made.
- FIGS. 7 and 8 An implementation 600 of phase shift register 103 is shown in FIGS. 7 and 8 .
- Each shift register storage position 603 includes a three-input multiplexer 601 and a flip-flop 602 .
- FIG. 8 shows an example of an implementation 700 of multiplexer 601 using NAND-gates 701 .
- Three-input multiplexer 700 has three control signals SHIFT_RIGHT 521 , SHIFT_LEFT 522 and HOLDB 523 . At any one time, only one of the control signals SHIFT_RIGHT 521 , SHIFT_LEFT 522 and HOLDB 523 is asserted and its corresponding input is selected for output by multiplexer 700 .
- Implementation 800 of phase-and-weight selection circuitry 105 includes a plurality of AND-gates 801 equal in number to the number of phases. Six AND-gates 801 are shown for the six-phase example. Each of AND-gates 801 has one input connected to a respective phase shift register storage location R1, R2, etc. (up to R6 in this example). The other input of each of AND-gates 801 is connected to either weight signal W 213 for the odd phases (R1, R3, R5, etc.) or weight signal WB 223 for the even phases (R2, R4, R6, etc.). Only two adjacent phase shift register storage locations can have the value ‘1’.
- phase interpolation circuitry 106 combines two weighted phase vectors 802 into one analog signal. As just discussed in connection with FIG. 9 , only two of the weight vectors 802 will be non-zero.
- the various clock phases 116 which may be equiangularly spaced in a phase-angle domain, may be supplied as part of an externally generated clock signal, or circuitry such as delayed-locked loops or clock dividers (not shown) may be used to generate multiple phases from a single clock within phase interpolator 100 .
- Phase interpolation circuitry 106 applies the two non-zero weight vectors 802 to their respective ones (PH1/PH2, PH2/PH3, etc.) of phases 116 (which may be derived from phases 109 ), corresponding to non-zero phase shift register storage locations 603 (R1/R2, R2/R3, etc.) and then combines the weighted phase vectors using a vector addition operation that may be visualized in connection with FIG. 10 .
- the input clock phases 116 (six in this example) may be visualized as being spaced equiangularly within a 360° (i.e., 2 ⁇ radian) phase domain. Clockwise rotation is equivalent to shifting to the right, while counterclockwise rotation is equivalent to shifting to the left.
- a phase vector extending the full radius r of the circular phase domain may be considered to have a weight of 1.0 or 100%.
- the selected phases are PH1 and PH2 corresponding to phase shift register storage locations R1 and R2.
- Each phase in this example is weighted an equal amount less than 1.0, resulting in an interpolated phase vector at a phase angle halfway between the phases, reaching the line 902 connecting the tips of the radii representing the two phases. If one of the phases were more heavily weighted the vector sum would intersect line 902 closer to the more heavily weighted phase, so that the resultant phase angle would be closer to that more heavily weighted phase.
- phase interpolation circuitry 106 An example of a single-ended current-mirror-based circuit implementation 1000 of phase interpolation circuitry 106 is shown in FIG. 11 .
- a number of parallel phase interpolation “slice” units 1003 equal in number to the number of bits in weights 802 .
- Each phase interpolation slice unit 1003 has a number of sets 1004 of phase-and-weight switches, equal in number to the number of phases.
- Each phase-and-weight switch 1004 includes two cascaded transistors 1014 , 1024 , which in this implementation are N-type metal-oxide-semiconductor (NMOS) transistors.
- NMOS transistor 1024 is gated by one of phase shift storage location values, so that only the same two adjacent phase-and-weight switches 1004 are active in each phase interpolation slice unit 1003 .
- NMOS N-type metal-oxide-semiconductor
- Each NMOS transistor 1014 is gated by a respective weight 802 corresponding to the selected phase. However, because the respective NMOS transistor 1014 in each phase interpolation slice unit 1003 is coupled to a different bit of weights 802 , the output of each phase interpolation slice unit 1003 will be different.
- the plurality of phase interpolation slice units 1003 are coupled, in parallel, to PH_OUT output 1005 .
- For the active phase-and-weight switches 1004 their outputs will be different depending on the values of the specific bits of weights 802 , and therefore the voltage pulled down through resistor 1006 in one leg of current mirror 1016 , will vary, but will be added together into PH_OUT output 1005 .
- a second set of phase interpolation slice units 1003 is included for the second leg of the differential signal.
- FIG. 12 is the schematic representation of a single-ended implementation 1100 of output buffer 107 , including an alternating current (AC) capacitor 1103 between input 1106 and input 1107 of first stage inverter 1104 .
- Node 1110 provides the DC voltage V ref to first stage inverter 1104 . Adjusting voltage V ref voltage adjusts the duty cycle, and thereby the gain of first stage inverter 1104 , although node 1110 could be floating as well.
- Feedback resistor 1102 coupled to inverter 1104 form an amplifier to increase the output signal to rail-to-rail amplitude output at 1109 .
- Additional inverters 1105 may be cascaded on the output for additional amplification.
- a second instance of buffer 1100 may be provided for the second leg.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Abstract
An integrated circuit device includes functional circuitry, and serializer/deserializer circuitry for serial communication with the functional circuitry. The serializer/deserializer circuitry includes phase interpolator circuitry for interpolating phases of a clock signal of the integrated circuit device. The phase interpolator circuitry includes a phase shift register having storage locations configured to represent the phases of the clock signal, and phase rotation control circuitry configured to decode a phase code signal to determine a shifting direction for phase selections in storage locations of the phase shift register. The phase rotation control circuitry may be configured to determine the shifting direction based on only the most significant bit and the second most significant bit of the phase code signal. The phase interpolator circuitry may further include weight decoder circuitry configured to derive, from the phase code signal, interpolation weights to control combination of selected phases of the clock signal.
Description
This disclosure claims the benefit of commonly-assigned U.S. Provisional Patent Application No. 63/116,540, filed Nov. 20, 2020, which is hereby incorporated by reference herein in its entirety.
This disclosure relates to clock phase interpolation circuitry for the serializer/deserializer of an integrated circuit device. More particularly, this disclosure relates to phase interpolation circuitry that accommodates interpolation among an arbitrary number of clock phases.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the inventors hereof, to the extent that that work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted to be prior art against the subject matter of the present disclosure.
Most integrated circuit devices are clocked. Many clocked functions, including, for example, serializer/deserializer (SerDes) circuitry in serial communication links may use phase interpolation to adjust the phase of a clock signal. For example, phase interpolation may be used in, among other functions, a clock-data recovery (CDR) loop to adjust the sampling phase of input data or in a phase-locked loop (PLL) to generate a fractional clock multiplier.
In known phase interpolator implementations, the desired or required phase interpolation, once determined, may be represented by a binary phase control code. The phase control code is the concatenation of a most significant bit (MSB) portion that represents which two adjacent ones of the available clock phases should be interpolated, and a least significant bit (LSB) portion that represents the relative weights of the two adjacent phases.
Such known phase interpolator implementations are limited to situations in which the number of available phases can be represented as a power of 2 (2n; n=2,3,4) in order to provide a smooth transition when the phasor wraps around from last phase to first phase. Moreover, when the number of phases to be interpolated is 2n, the bit width of MSB section of the phase control code is n, meaning that the phase decoder must become larger—and therefore more expensive and power intensive—as the number of phases increases.
In accordance with implementations of the subject matter of this disclosure, an integrated circuit device includes functional circuitry, and serializer/deserializer circuitry for serial communication with the functional circuitry. The serializer/deserializer circuitry includes phase interpolator circuitry for interpolating phases of a clock signal of the integrated circuit device. The phase interpolator circuitry includes a phase shift register having storage locations configured to represent the phases of the clock signal, and phase rotation control circuitry configured to decode a phase code signal to determine a shifting direction for phase selections in storage locations of the phase shift register.
In a first implementation of such an integrated circuit, the phase rotation control circuitry may be configured to determine the shifting direction based on only the most significant bit and the second most significant bit of the phase code signal.
In a second implementation of such an integrated circuit, the phase interpolator circuitry may further include weight decoder circuitry configured to derive, from the phase code signal, interpolation weights to control combination of selected phases of the clock signal.
According to a first aspect of that second implementation, the weight decoder circuitry may include a binary-to-thermometer decoder.
In one instance of that first aspect, the phase interpolator circuitry may further include weight direction control circuitry configured to invert outputs of the weight decoder circuitry to prevent discontinuities in the output of the weight decoder circuitry when the output of the weight decoder circuitry changes to a subsequent state from a state where all bits are the same.
According to a second aspect of the second implementation, the phase interpolator circuitry may further include phase-and-weight selection circuitry configured to combine the output of the weight decoder circuitry with the phase selections in the storage locations of the phase shift register to assign the interpolation weights to two adjacent phases of the clock signal that are selected by the phase selections, to yield a respective weighted phase vector for each of the two adjacent phases of the clock signal.
In a first instance of that second aspect, the phase interpolator circuitry may further include phase interpolation circuitry configured to combine the two weighted phase vectors into an analog timing signal.
In a first variant of that first instance of the second aspect, the phase interpolation circuitry may include current mirror circuitry, a resistor in one leg of the current mirror circuitry, and a plurality of phase interpolation slice units, corresponding in number to bits of the interpolation weights. Each one of the phase interpolation slice units may be parallel to each other one of the phase interpolation slice units and may be in series with the resistor. Each one of the phase interpolation slice units may include respective phase switches corresponding to respective ones of the phases of the clock signal and controlled by values in the storage positions of the phase shift register, and a respective weight switch in series with each respective one of the phase switches and controlled by a respective bit position in the output of a respective weighted phase vector. For each one of the phases of the clock signal selected by one of the respective phase switches, all phase interpolation slice units for which a respective weight switch is closed may contribute to pulling current through the resistor to yield a value of the analog timing signal.
In that variant, when the clock phase signals are differential signals, the phase interpolation circuitry may include a first instance of the phase interpolation circuitry for one leg of a differential clock phase signal, and a second instance of the phase interpolation circuitry for another leg of the differential clock phase signal.
In a second variant of that first instance of the second aspect, the phase interpolator circuitry may further include buffer circuitry to amplify the analog timing signal into a rail-to-rail clock signal.
In accordance with implementations of the subject matter of this disclosure, a method for interpolating phases of a clock signal in a serializer/deserializer of an integrated circuit device includes representing the phases of the clock signal by storage locations in a phase shift register, and decoding a phase code signal to determine a shifting direction for phase selections in storage locations of the phase shift register.
According to a first aspect of such a method, decoding a phase code signal to determine a shifting direction may include determining the shifting direction based on only the most significant bit and the second most significant bit of the phase code signal.
According to a second aspect, such a method may further include deriving, from the phase code signal, interpolation weights for selected phases of the clock signal.
In a first instance of that second aspect, deriving interpolation weights from the phase code signal may include binary-to-thermometer decoding of the phase code signal.
In a variant of that first instance, the method may further include inverting the interpolation weights to prevent discontinuities in the interpolation weights when one of the interpolation weights changes to a subsequent state from a state where all bits are the same.
In a second instance of that second aspect, the method may further include combining the interpolation weights with the phase selections in the storage locations of the phase shift register to assign the interpolation weights to two adjacent phases of the clock signal that are selected by the phase selections, to yield a respective weighted phase vector for each of the two adjacent phases of the clock signal.
In a variant of that second instance, the method may further include combining the two weighted phase vectors into an analog timing signal.
In a first version of that variant, combining the two weighted phase vectors into an analog timing signal may include, for each respective phase, closing a respective switch according to each bit in a respective one of the weighted phase vectors to contribute to drawing current through a resistor in one leg of current mirror circuitry to yield a value in the analog timing signal.
That first version may include, when the clock phase signals are differential signals, separately combining the two weighted phase vectors for each leg of the differential clock phase signal.
A second version of that variant may further include amplifying the analog timing signal into a rail-to-rail clock signal.
Further features of the disclosure, its nature and various advantages, will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
In accordance with implementations of the subject matter of this disclosure, an integrated circuit including a SERDES, which incorporates clock-data recovery (CDR) circuitry, also includes a phase interpolator as part of the CDR circuitry.
The phase interpolator includes a decoder in which a shift register is configured with a number of shift register positions corresponding to the number of phases among which interpolation is to be performed. A ‘1’ in each of two adjacent shift register positions signifies the two adjacent phases to be interpolated. Thus, each of only two of the shift register positions is occupied by a ‘1’ and each of the remaining shift register positions is occupied by a ‘0’. The shifting of the two ‘1s’ through the shift register to select the correct phases, based on the MSB portion of the phase control code, is described in more detail below.
In addition, a weight decoder is configured to decode the LSB part of input binary phase control code to determine how much to weight each of the adjacent phases in the interpolation operation. A weight direction control is configured to control whether to increase or decrease the weight. A phase rotation control is configured to control the direction of phase rotation direction—either “clockwise” (increasing phase angle) or “counterclockwise” (decreasing phase angle)—when combining the two adjacent phases to be interpolated. A phase-and-weight selector is configured to apportion the appropriate weight into the selected phases. Phase interpolation circuitry is configured to add vectors representing the two phases and their respective weights. A buffer may be configured to amplify the summation of the two weighted phase vectors into a rail-to-rail signal, which may be a single-ended signal or a differential signal.
In some implementations, the weight decoder may include a binary-to-thermometer decoder, also known as a binary-to-unary decoder, to convert binary weight inputs into a unary representation. A weight swap control may be provided so that when the weight reaches a maximum, the unary representation decreases regardless of the direction in which the phase control code is changing, to prevent discontinuities in the interpolation weights when one of the interpolation weights changes to a subsequent state from a state where all bits are the same.
In some implementations, the phase control code may be used to determine the phase rotation direction—clockwise or counterclockwise. In such implementations, only the most significant bit (MSB) and the second most significant bit may be used to determine the rotation direction. For example, the clock phase may be rotated clockwise when the phase control code increases, may be rotated counterclockwise when the phase control code decreases.
The subject matter of this disclosure may be better understood by reference to FIGS. 1-15 .
In one example of such an implementation, the number of phases among which interpolation is to be performed is six, and the phase control code has four bits (PH_CODE[3:0]). Weight decoder circuitry 101 decodes the least three significant bits into eight levels of weight. Phase rotation control circuitry 102 uses the two most significant bits of PH_CODE[3:0] to determine the phase rotation direction—clockwise or counterclockwise. Phase shift register circuitry 103 has a number of positions equal to the number of phases to be interpolated, and is configured to hold the values in those position, shift those values one position to the right, or shift those values one position to the left. In each position of shift register 103, a ‘1’ signifies that a corresponding one of the phases is one of the phases to be interpolated.
Phase-and-weight selection circuitry 105 is configured to apply the weights into the selected phases. Weight direction control circuitry 104 is configured to make sure that the weight is attributed to the correct phases (or to the one correct phase in the event one phase has weight ‘1’ and one phase has weight ‘0’) no matter which direction the interpolated phase is to be rotated. Phase interpolation circuitry 106 combines two weighted phase vectors into one analog signal. Buffer 107 is configured to amplify the analog clock signal into a full rail-to-rail clock.
While there may be multiple potential implementations of a binary-to-thermometer decoder, FIG. 4 shows one possible implementation 300 of a binary-to-thermometer decoder for converting a 3-bit binary phase code input (PH_CODE[2:0]) to an 8-bit unary output (THERM[7:0]) using AND-gates 301, NAND-gates 302, NOR-gate 303, and inverters 304. Only the bits THERM[0] through THERM[7] of positive output 211 (THERM[7:0]) are shown, but additional inverters (not shown) convert positive output 211 (THERM[7:0]) to inverted output 221 (THERMB[7:0]).
Signals HOLD and HOLDB, along with signals SHIFT_RIGHT and SHIFT_LEFT which determine whether phase shift register 103 advances (in one direction or the other), are generated by phase rotation control circuitry 102. An implementation 500 of phase rotation control circuitry 102 is shown in FIG. 6 , and includes flip-flops 501, AND-gates 502, inverters 503 and EXCLUSIVE-OR-gate 504. The inputs are the most significant bit 511 (PH_CODE[MSB]) of the phase code 111, the next most significant bit 512 (PH_CODE[MSB−1]) of the phase code 111, and the system clock 513 (CLK), while the outputs, which control phase shift register 103, are SHIFT_RIGHT 521, SHIFT_LEFT 522 and HOLDB 523 (from which HOLD may be derived).
The three control commands SHIFT_RIGHT 521, SHIFT_LEFT 522 and HOLDB 523 are generated as follows.
HOLD signifies that phase shift register 103 holds its current values in place without shifting, and HOLDB is the inversion of HOLD. HOLDB is asserted when the current most significant bit of the phase code 111 (PH_CODEn[MSB]) and the previous most significant bit of the phase code 111 (PH_CODEn−1[MSB]) are the same. Flip-flops 501 retain the previous phase code value so that that comparison can be made. The derivation of HOLDB is:
HOLDB=(PH_CODEn[MSB]⊕PH_CODEn−1[MSB])
HOLDB=(PH_CODEn[MSB]⊕PH_CODEn−1[MSB])
When SHIFT_RIGHT is asserted, the values in phase shift register 103 are shifted to the right. SHIFT_RIGHT is asserted when HOLDB is asserted and the next most significant bit (i.e., the bit to the right of the most significant bit) of phase code 111 (PH_CODE[MSB−1]) has changed from a previous value of ‘0’ to a current value of ‘1’. Again, flip-flops 501 retain the previous phase code value so that that comparison can be made. The derivation of SHIFT_RIGHT is:
SHIFT_RIGHT=PH_CODEn[MSB−1] ·PH_CODEn−1[MSB−1]·HOLDB
SHIFT_RIGHT=
When SHIFT_LEFT is asserted, the values in phase shift register 103 are shifted to the left. SHIFT_LEFT is asserted when HOLDB is asserted and the next most significant bit of phase code 111 (PH_CODE[MSB−1]) has changed from a previous value of ‘1’ to a current value of ‘0’. Again, flip-flops 501 retain the previous phase code value so that that comparison can be made. The derivation of SHIFT_LEFT is:
SHIFT_LEFT=PH_CODEn−1[MSB−1] ·PH_CODEn[MSB−1]·HOLDB
SHIFT_LEFT=
An implementation 600 of phase shift register 103 is shown in FIGS. 7 and 8 . Each shift register storage position 603 includes a three-input multiplexer 601 and a flip-flop 602. FIG. 8 shows an example of an implementation 700 of multiplexer 601 using NAND-gates 701. Three-input multiplexer 700 has three control signals SHIFT_RIGHT 521, SHIFT_LEFT 522 and HOLDB 523. At any one time, only one of the control signals SHIFT_RIGHT 521, SHIFT_LEFT 522 and HOLDB 523 is asserted and its corresponding input is selected for output by multiplexer 700.
In the aforementioned example implementation in which the clock has six equally divided phases, which may be identified as R1, R2, R3, R4, R5 and R6, there are six phase shift register storage locations 603 are provided. The first and last storage locations 613, 663 (R1 and R6 in the six-phase example) are separately shown. The intermediate storage locations (R2, R3, R4 and R5 in the six-phase example) are represented by a single nth storage location 623 (n=2, . . . , 5 in the six-phase example). Because there are six storage locations in the six-phase example, the ‘R’ input and the output of phase shift register storage location 663 are identified as ‘R5’ and ‘R6’ but in a more general case of m storage locations, the ‘R’ input and the output of phase shift register storage location 663 would be R(m−1) and Rm, respectively. It can be seen that in this implementation 600, the individual phase shift register storage locations 613, 623, 663 could hold their values when HOLDB=0, shift their values to the right when SHIFT_RIGHT=1, and shift their values to the left when SHIFT_LEFT=1. The nature of the two most significant bits of the phase code is such that only two of the phase shift register storage locations will have the value ‘1’, and those positions will be adjacent one another.
The three least significant bits of the phase code are used in weight decoder circuitry 101 to decode the relative weights W 213 (WEIGHT[7:0]) and WB 223 (WEIGHTB[7:0]) (as described above in connection with FIGS. 3 and 4 ) of the two adjacent phases. The assignment of those weights to the phases identified by the storage locations of phase shift register 103 is performed by phase-and-weight selection circuitry 105. An implementation 800 of phase-and-weight selection circuitry 105 is shown in FIG. 9 .
As discussed above in connection with FIG. 2 , phase interpolation circuitry 106 combines two weighted phase vectors 802 into one analog signal. As just discussed in connection with FIG. 9 , only two of the weight vectors 802 will be non-zero. The various clock phases 116, which may be equiangularly spaced in a phase-angle domain, may be supplied as part of an externally generated clock signal, or circuitry such as delayed-locked loops or clock dividers (not shown) may be used to generate multiple phases from a single clock within phase interpolator 100.
As seen at 901, the selected phases are PH1 and PH2 corresponding to phase shift register storage locations R1 and R2. Each phase in this example is weighted an equal amount less than 1.0, resulting in an interpolated phase vector at a phase angle halfway between the phases, reaching the line 902 connecting the tips of the radii representing the two phases. If one of the phases were more heavily weighted the vector sum would intersect line 902 closer to the more heavily weighted phase, so that the resultant phase angle would be closer to that more heavily weighted phase.
An example of a single-ended current-mirror-based circuit implementation 1000 of phase interpolation circuitry 106 is shown in FIG. 11 . A number of parallel phase interpolation “slice” units 1003, equal in number to the number of bits in weights 802. Each phase interpolation slice unit 1003 has a number of sets 1004 of phase-and-weight switches, equal in number to the number of phases. Each phase-and-weight switch 1004 includes two cascaded transistors 1014, 1024, which in this implementation are N-type metal-oxide-semiconductor (NMOS) transistors. Each NMOS transistor 1024 is gated by one of phase shift storage location values, so that only the same two adjacent phase-and-weight switches 1004 are active in each phase interpolation slice unit 1003.
Each NMOS transistor 1014 is gated by a respective weight 802 corresponding to the selected phase. However, because the respective NMOS transistor 1014 in each phase interpolation slice unit 1003 is coupled to a different bit of weights 802, the output of each phase interpolation slice unit 1003 will be different. The plurality of phase interpolation slice units 1003 are coupled, in parallel, to PH_OUT output 1005. For the active phase-and-weight switches 1004, their outputs will be different depending on the values of the specific bits of weights 802, and therefore the voltage pulled down through resistor 1006 in one leg of current mirror 1016, will vary, but will be added together into PH_OUT output 1005.
In a differential implementation, a second set of phase interpolation slice units 1003 is included for the second leg of the differential signal.
A method 1400 according to implementations of the subject matter of this disclosure for interpolating phase angle is diagrammed in FIG. 15 .
Thus it is seen that phase interpolation circuitry that accommodates interpolation among an arbitrary number of clock phases, by using a shift register that can have an arbitrary number of storage locations to represent clock phases, has been provided.
As used herein and in the claims which follow, the construction “one of A and B” shall mean “A or B.”
It is noted that the foregoing is only illustrative of the principles of the invention, and that the invention can be practiced by other than the described embodiments, which are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.
Claims (18)
1. An integrated circuit device comprising:
functional circuitry; and
serializer/deserializer circuitry for serial communication with the functional circuitry, the serializer/deserializer circuitry including phase interpolator circuitry for interpolating phases of a clock signal of the integrated circuit device, the phase interpolator circuitry comprising:
a phase shift register having storage locations configured to represent the phases of the clock signal;
phase rotation control circuitry configured to decode a phase code signal to determine a shifting direction for phase selections in storage locations of the phase shift register;
weight decoder circuitry configured to derive, from the phase code signal, interpolation weights to control combination of selected phases of the clock signal; and
phase-and-weight selection circuitry configured to derive, using the interpolation weights, a respective weighted phase vector for each of two adjacent phases of the clock signal for interpolating the two adjacent phases.
2. The integrated circuit device of claim 1 , wherein the phase rotation control circuitry is configured to determine the shifting direction based on only the most significant bit and the second most significant bit of the phase code signal.
3. The integrated circuit device of claim 1 , wherein the weight decoder circuitry comprises a binary-to-thermometer decoder.
4. The integrated circuit device of claim 3 , wherein the phase interpolator circuitry further comprises weight direction control circuitry configured to invert outputs of the weight decoder circuitry to prevent discontinuities in the output of the weight decoder circuitry when the output of the weight decoder circuitry changes to a subsequent state from a state where all bits are the same.
5. The integrated circuit device of claim 1 , wherein the phase-and-weight selection circuitry is configured to derive the respective weighted phase vector for each of two adjacent phases of the clock signal by using the phase selections in the storage locations of the phase shift register to assign the interpolation weights output by the weight decoder circuitry to the two adjacent phases of the clock signal that are selected by the phase selections.
6. The integrated circuit device of claim 5 , wherein the phase interpolator circuitry further comprises phase interpolation circuitry configured to combine the two weighted phase vectors into an analog timing signal.
7. The integrated circuit device of claim 6 , wherein the phase interpolation circuitry comprises:
current mirror circuitry;
a resistor in one leg of the current mirror circuitry; and
a plurality of phase interpolation slice units, corresponding in number to bits of the interpolation weights; wherein:
each one of the phase interpolation slice units is parallel to each other one of the phase interpolation slice units and is in series with the resistor;
each one of the phase interpolation slice units includes:
respective phase switches corresponding to respective ones of the phases of the clock signal and controlled by values in the storage positions of the phase shift register, and
a respective weight switch in series with each respective one of the phase switches and controlled by a respective bit position in the output of a respective weighted phase vector; and
for each one of the phases of the clock signal selected by one of the respective phase switches, all phase interpolation slice units for which a respective weight switch is closed contribute to pulling current through the resistor to yield a value of the analog timing signal.
8. The integrated circuit device of claim 7 , wherein, when the clock phase signals are differential signals, the phase interpolation circuitry comprises a first instance of the phase interpolation circuitry for one leg of a differential clock phase signal, and a second instance of the phase interpolation circuitry for another leg of the differential clock phase signal.
9. The integrated circuit device of claim 6 , wherein the phase interpolator circuitry further comprises buffer circuitry to amplify the analog timing signal into a rail-to-rail clock signal.
10. A method for interpolating phases of a clock signal in a serializer/deserializer of an integrated circuit device, the method comprising:
representing the phases of the clock signal by storage locations in a phase shift register;
decoding a phase code signal to determine a shifting direction for phase selections in storage locations of the phase shift register;
deriving, from the phase code signal, interpolation weights for selected phases of the clock signal; and
deriving, using the interpolation weights, a respective weighted phase vector for each of two adjacent phases of the clock signal for interpolating the two adjacent phases.
11. The method of claim 10 , wherein decoding a phase code signal to determine a shifting direction comprises determining the shifting direction based on only the most significant bit and the second most significant bit of the phase code signal.
12. The method of claim 10 , wherein deriving interpolation weights from the phase code signal comprises binary-to-thermometer decoding of the phase code signal.
13. The method of claim 12 , further comprising inverting the interpolation weights to prevent discontinuities in the interpolation weights when one of the interpolation weights changes to a subsequent state from a state where all bits are the same.
14. The method of claim 10 , wherein deriving, using the interpolation weights, a respective weighted phase vector for each of two adjacent phases of the clock signal, comprises combining the interpolation weights with the phase selections in the storage locations of the phase shift register to assign the interpolation weights to two adjacent phases of the clock signal that are selected by the phase selections.
15. The method of claim 14 , further comprising combining the two weighted phase vectors into an analog timing signal.
16. The method of claim 15 , wherein combining the two weighted phase vectors into an analog timing signal comprises, for each respective phase, closing a respective switch according to each bit in a respective one of the weighted phase vectors to contribute to drawing current through a resistor in one leg of current mirror circuitry to yield a value in the analog timing signal.
17. The method of claim 16 , comprising, when the clock phase signals are differential signals, separately combining the two weighted phase vectors for each leg of the differential clock phase signal.
18. The method of claim 15 , further comprising amplifying the analog timing signal into a rail-to-rail clock signal.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/455,784 US11849015B1 (en) | 2020-11-20 | 2021-11-19 | Shift-register-based clock phase interpolator |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063116540P | 2020-11-20 | 2020-11-20 | |
US17/455,784 US11849015B1 (en) | 2020-11-20 | 2021-11-19 | Shift-register-based clock phase interpolator |
Publications (1)
Publication Number | Publication Date |
---|---|
US11849015B1 true US11849015B1 (en) | 2023-12-19 |
Family
ID=89170917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/455,784 Active 2042-03-16 US11849015B1 (en) | 2020-11-20 | 2021-11-19 | Shift-register-based clock phase interpolator |
Country Status (1)
Country | Link |
---|---|
US (1) | US11849015B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230114988A1 (en) * | 2021-10-01 | 2023-04-13 | Samsung Electronics Co., Ltd. | Clock data recovery circuit and apparatus including the same |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4130802A (en) * | 1976-01-15 | 1978-12-19 | Rca Corporation | Unidirectional phase shift keyed communication system |
US20080164917A1 (en) * | 2007-01-10 | 2008-07-10 | Floyd Brian A | Circuits and methods for implementing sub-integer-n frequency dividers using phase rotators |
US20110064176A1 (en) * | 2009-09-14 | 2011-03-17 | Kabushiki Kaisha Toshiba | Clock recovery circuit and data recovery circuit |
US8994420B2 (en) * | 2012-05-11 | 2015-03-31 | Silicon Laboratories Inc. | Higher-order phase noise modulator to reduce spurs and quantization noise |
US20190056760A1 (en) * | 2017-08-16 | 2019-02-21 | Oracle International Corporation | Method and Apparatus for Clock Signal Distribution |
US20190386859A1 (en) * | 2018-06-18 | 2019-12-19 | Samsung Electronics Co., Ltd. | Electronic devices including equalizers operating based on coefficients adjusted in training operations |
-
2021
- 2021-11-19 US US17/455,784 patent/US11849015B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4130802A (en) * | 1976-01-15 | 1978-12-19 | Rca Corporation | Unidirectional phase shift keyed communication system |
US20080164917A1 (en) * | 2007-01-10 | 2008-07-10 | Floyd Brian A | Circuits and methods for implementing sub-integer-n frequency dividers using phase rotators |
US20110064176A1 (en) * | 2009-09-14 | 2011-03-17 | Kabushiki Kaisha Toshiba | Clock recovery circuit and data recovery circuit |
US8994420B2 (en) * | 2012-05-11 | 2015-03-31 | Silicon Laboratories Inc. | Higher-order phase noise modulator to reduce spurs and quantization noise |
US20190056760A1 (en) * | 2017-08-16 | 2019-02-21 | Oracle International Corporation | Method and Apparatus for Clock Signal Distribution |
US20190386859A1 (en) * | 2018-06-18 | 2019-12-19 | Samsung Electronics Co., Ltd. | Electronic devices including equalizers operating based on coefficients adjusted in training operations |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230114988A1 (en) * | 2021-10-01 | 2023-04-13 | Samsung Electronics Co., Ltd. | Clock data recovery circuit and apparatus including the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110945830B (en) | Multimode data driven clock recovery circuit | |
JP3955150B2 (en) | Phase interpolator, timing signal generation circuit, semiconductor integrated circuit device and semiconductor integrated circuit system to which the timing signal generation circuit is applied | |
US7443219B2 (en) | Phase interpolation apparatus, systems, and methods | |
US7587012B2 (en) | Dual loop clock recovery circuit | |
US5945935A (en) | A/D converter and A/D conversion method | |
KR100625705B1 (en) | Phase-combining circuit and timing signal generator circuit for carrying out a high-speed signal transmission | |
US7319345B2 (en) | Wide-range multi-phase clock generator | |
US20080272814A1 (en) | Parallel multiplexing duty cycle adjustment circuit with programmable range control | |
US20030165209A1 (en) | Phase-interpolator based PLL frequency synthesizer | |
TWI385927B (en) | Circuit and method for time-interleaved clock-data recovery | |
JPH077397A (en) | Cmos multitap digital delay line with noninverting tap | |
US20080048904A1 (en) | Thermometer code generator, and frequency-locked loop including the same | |
US11849015B1 (en) | Shift-register-based clock phase interpolator | |
US20090201064A1 (en) | Phase Interpolator System and Associated Methods | |
US6175323B1 (en) | Differential pair-based folding interpolator circuit for an analog-to-digital converter | |
US7956785B2 (en) | Return to zero digital to analog converter and converting method thereof | |
US20170237550A1 (en) | Clock data recovery circuit, integrated circuit including the same, and clock data recovery method | |
KR20180062238A (en) | Phase interpolator for interpolating delayed clock signal and device including the same for operating data sampling by using phase interpolated clock signal | |
TW494643B (en) | Current comparator and method therefor | |
GB2405273A (en) | A delayed clock signal generator using interpolation between delayed clock phases and compensating for interpolator and selector delay | |
US6535989B1 (en) | Input clock delayed by a plurality of elements that are connected to logic circuitry to produce a clock frequency having a rational multiple less than one | |
CN111919387B (en) | Dynamic weighted exclusive-or gate with weighted output segments for phase detection and phase interpolation | |
JP2006042329A (en) | Phase detection circuit and method, and clock data recovery circuit and method using the same | |
US7279938B1 (en) | Delay chain integrated circuits having binary-weighted delay chain units with built-in phase comparators therein | |
US11611362B2 (en) | Duobinary receiver for receiving a duobinary signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |