Embodiments of the present invention pertain to the field of phase-locked loops (PLLs) and, more particularly, relate to linearized digital PLLs.
In communications chips, there is usually some kind of clock and data recovery (CDR) circuit, which recovers clock and data signals based on packetized data. As the complexities of the data packets increase and data packet transfer rates increase, the complexity of the state machine logic also increases. The state machine logic must qualify and decode the data packets. This increased complexity makes it difficult to avoid all potential clock glitches.
In addition, conventional CDR technology uses only two loop filter modes: acquisition and tracking. Acquisition mode, or high bandwidth mode, refers to the mode in which the conventional CDR circuit initially synchronizes the clock signal with the data signal of a new data packet. Tracking mode, or low bandwidth mode, refers to the mode in which the conventional CDR circuit adjusts the clock signal while the data packet is being received in order to maintain synchronization of the clock signal with the data signal of the data packet. By using only two modes, the conventional CDR circuit reverts from the tracking mode back to the acquisition mode at the EOP, adjusting the clock signal to the absolute reference phase, until a new data packet is detected. Unfortunately, the conventional CDR circuit is unable to implement a hold mode in which the clock signal remains unchanged at the EOP, thus, allowing EOP operations to occur without a clock glitch.
Embodiments of the present invention are illustrated by way of example and not intended to be limited by the figures of the accompanying drawings, in which:
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that certain embodiments of the present invention may be practiced without these specific details. In other examples, well-known methods, procedures, components, and circuits have not been described in detail so as not to obscure the presented embodiments of the invention. It should also be noted that the term “lines” or “bus” as used herein to connect components may be single bit lines, multiple bit lines, or one or more buses. The term “coupled” as used herein means coupled directly to, or indirectly through one or more intervening components (e.g., register).
One embodiment of an apparatus is described for synchronization of a clock signal to a data signal. The apparatus includes a detector that is configured to detect a plurality of values. Each of the plurality of values indicates a position of a data edge of the data signal. The detector also adds the plurality of values to generate a result and to adjust the clock signal if the result is greater than a predetermined value, or threshold. Furthermore, the detector is configured to maintain the clock signal approximately between the end of a first data packet and the beginning of a second data packet.
In general, certain embodiments of the apparatus implement linearized digital phase-locked loops (PLLs) and/or delay-locked loops (DLLs) that maintain time coherency in the synchronized clock when a data packet ends. The synchronized clock also may be referred to as a recovered clock. Digital PLLs/DLLs synchronize a clock signal to an incoming data stream, whereby a time coherent clock is maintained with valid data edge reception.
Typical media data is sent in packetized form, which results in periods of no data edge reception. With no data edges to synchronize to between valid data packets, clock coherency is lost, which adversely affects the recovered clock. In the worst scenario this loss of coherency results in a recovered clock non-linearity. A clock non-linearity is commonly known as a clock glitch. The consequences of a clock glitch can be catastrophic to downstream state machines and, in particular, the state logic engine, which qualifies and decodes the received data packets. One advantage of certain embodiments, therefore, is to maintain the linearity of the recovered clock between periods of valid data transfer, thereby eliminating clock glitches.
One embodiment of the present invention employs absolute phase sampling to allow acquisition from any arbitrarily chose phase to any other phase. Since the phase sampling is absolute there is no requirement for a reference state for acquisition causality. As a result, the valid data packet signal (squelch) can be used to control the bandwidth limitation circuitry with three modes rather than two. The falling edge of squelch can signal the acquisition mode (low bandwidth) commencement. The negative level can signal the tracking mode (high bandwidth). The rising edge/positive level can signal the hold mode (zero bandwidth). The use of these modes and absolute phase error sampling allows the recovered clock to maintain linearity until the next valid packet arrives.
Four sampling phase signals 152-158 are shown in relation to the data signal 150. Alternatively, fewer or more sampling phase signals 152-158 may be used. In one embodiment, the four sampling phase signals may be out of eight total absolute phase signals with each absolute phase signal offset approximately 45 degrees with respect to the adjacent phase signals (e.g., 0, 45, 90, 135, 180, 225, 270, and 315 degrees). The term absolute, as used herein, refers to the independent nature of a phase signal with respect to the chosen phase clock signal.
As discussed above, the conventional method used relative phase error sampling. In relative phase sampling, the currently chosen phase (clock signal) and the three phases after the currently chosen phase were selected as the sampling phase signals, CLK(A:D), whereby sampling phase error relative to the currently chosen phase made all phase adjustments. While this simplified the phase error coder logic, it came at the expense of requiring a known reference to perform a proper acquisition.
For example, CLK_A represents the currently chosen phase for the clock signal. CLK_B, CLK_C, and CLK_D represent the three phases, respectively, that immediately follow CLK_A. For example if phase 7 is the best phase for data sampling, then CLK_A=phase 7, CLK_B=phase 0, CLK_C=phase 1, and CLK_D=phase 2. A data edge sample relative to this scenario may yield 1100. A high bandwidth load of this phase error would result in an adjustment to phase 2. However, the proper phase load should be a move to phase 1. Although the relative phase error sampling scheme may be suitable for normal tracking adjustments since phase jumps are linear (plus or minus one phase), relative phase sampling breaks down for acquisition adjustments.
Using absolute phase sampling eliminates this issue altogether because the acquisition phase sampling is absolute, instead of relative to the currently chosen phase. For example, a similar phase sample at an acquisition data edge would yield 1100, which may result in selecting phase 2 for the clock signal regardless of the currently chosen phase at the EOP of the previous data packet. Absolute phase samples also may be used for tracking adjustments by comparing the absolute phase samples to the currently chosen phase.
In one embodiment, phase detector 204 may include a multi-bit register (discussed below as REG1 in relation to
The phase detector 204 is coupled to the tracking circuit 208 to supply the absolute phase samples acquired from the sampling phase signals 160. In one embodiment, the phase detector 204 generates an acquisition phase signal 224 that corresponds to one of the plurality of absolute phase signals. Additionally, the phase detector 204 generates the acquisition phase signal approximately at a start of packet (SOP) of a data packet. In this way, the phase detector 204 may indicate which absolute phase signal should be used to synchronize the clock signal to the data signal of the data packet. As described above, some degree of non-linearity may be acceptable while circuit 300 operates in acquisition mode. The phase detector 204 also outputs a phase error signal 222 to tracking circuit 208.
In one embodiment, the tracking circuit 208 generates a tracking phase signal 228 that corresponds to a relative linear phase signal with respect to the clock signal. For example, if the clock signal is based on phase 2, the tracking phase signal 228 may indicate that the selected current phase 202′ may be 3 (plus 1) or 1 (minus 1). Additionally, the tracking circuit 208 may indicate that the clock signal does not need to be changed. In one embodiment, the tracking circuit 208 is clocked by a clock signal 226, received from control circuit 304, based on the selected current phase 202′. In particular, the tracking circuit 208 may be clocked by the falling edge of the clock signal 226.
In one embodiment, the selection circuit 210 accepts as inputs both the tracking phase signal 228 and the acquisition phase signal 224. The selection circuit 210 also accepts control input from the control circuit 304. Control circuit 304 generates an acquisition control signal and a tracking control signal. In one embodiment, the tracking control signal is complimentary to the acquisition control signal. Additionally, control circuit 304 generates a hold control signal. In one embodiment, the control circuit 304 generates the hold control signal approximately at the EOP of a data packet.
The selection circuit 210 is configured, in one embodiment, to output the selected current phase 202′, which may be used to adjust the clock signal in either a non-linear (acquisition) or a linear (tracking) manner. For example, the selection circuit 210 may synchronize the clock signal to a data packet based on the acquisition phase signal 224 in response to an acquisition control signal 230. Synchronizing the clock signal to the acquisition phase signal 224 may occur in either a linear or non-linear manner. By stating that the acquisition mode is non-linear, it is to be understood that non-linearity is not exclusive of linear adjustments. Linear adjustments may be acceptable in a non-linear environment, but non-linear glitches are usually undesirable in a linear environment.
Furthermore, the selection circuit 210 may adjust the clock signal based on the tracking phase signal 228 in response to a tracking control signal 232. However, the selection circuit 210 alternatively may prevent an adjustment of the clock signal in response to a hold control signal 234 from the control circuit 304.
In one embodiment, the control signals 230, 232 and 234 are communicated to the selection circuit 210 via a multi-bit control bus 354 coupled between the selection circuit 210 and the control circuit 304. In an alternative embodiment to the illustrated in
The edge detection circuit 110 provides a data control signal 220 (e.g., DATAPULSE or DATAEDGE) to the phase lock and tracking logic circuit 302. The data control signal 220 may be generated in response to one or more data signals (e.g., DI_N and/or DI_P). In one example, edge detection circuit 110 may be configured to generate a pulse signal in response to a transition of a data signal, such as the data signal 150.
The PLL circuit 114 provides a number of clock signals (e.g., PLL—0 through PLL N) to the multiplexer 316. Multiplexer 316 provides a current phase signal 226 (e.g., CLKA=pp_clk) to the phase lock and tracking logic circuit 302 based on a SEL control signal received from phase detector 200 as discussed below. Alternatively, the multiplexer 316 may present a plurality of signals to the phase lock and tracking logic circuit 302. The multiplexer 116 may be configured to select a number of the absolute phase signals PLL_0 through PLL_N for presentation as the current phase signal (or “picked phase”) in response to the signal SEL. In other words, the control circuit 304 feeds a properly delayed phase (e.g., 0, 1, 2, 3) directly from PLL circuit 114 straight into the phase detector.
The data valid counter 312 generates the acquisition control signal 230 and tracking control signal 232 and the hold control signal 234 on multi-bit bus 354 based on the receipt of the valid data packet signal (squelch) 190 and the clock phase signal PLL_CLK_0. The operation of the memory storage elements 118a, 118b, 118n, and buffers 120a-120n are known in the art; accordingly a detailed discussion is not provided.
In one embodiment, the phase detector 204 may include REG1 and phase error coder 342. The register REG1 generally receives the data signal 220 DATAPULSE (or DATAEDGE) and sampling phase signals 160 PLL_0-PLL—3 from the control circuit 104. An output of the register REG1 may be presented to an input of the coder 342. The coder 342 also may receive the selected current phase signal 202′ as an input. In one embodiment, the coder 342 generates a plurality of values, which may include a first phase error signal and a second phase error signal. The first phase error signal may be based on a relation between a first data edge of a data packet and a plurality of absolute phase signals. Similarly, the second phase error signal may be based on a relation between a second data edge of the data packet and the plurality of absolute phase signals. The coder 342 may output a phase error signal 222 to an input of the register REG2. The register REG2 may have an output, clocked by CLKA 226, that presents a signal to a first input of the accumulator 344.
In one embodiment, the accumulator 344 generates a result. The result may be an accumulation signal based on the first and second phase error signals generated by the coder 342. The accumulator 342 outputs the accumulation signal to the register REG3. In one example, the accumulator 344 may be a simple digital arithmetic accumulator that maintains an accumulated relative error and generates an accumulation signal. The accumulator 344 then may generate a phase modifier signal in response to a determination that the accumulation signal surpasses a threshold, thereby, enabling the adjustment of the clock signal in an indicated direction (e.g., increment/decrement).
The output of the accumulator 344 passes to the decoder 348. In one embodiment, decoder 348 generates the tracking phase signal 228 (e.g., adjusts the clock signal in the indicated, relative direction) based on a comparison of the phase modifier signal and the clock signal. For example, if the clock signal is based on PLL—3 and the phase modifier signal is +1 then the clock signal may be adjusted based on PLL—4. If the tracking phase signal 228 is eventually passed to the Mux Sel decoder 356, the phase of a clock signal may be continually aligned to the incoming data signal to allow a simple sampling arrangement to recover the data bits.
Which signal, if any, is passed from the multiplexer MUX1350 to the fourth register REG4 depends on the control signals communicated to the multiplexers MUX 1350 and MUX2352 via the multi-bit bus 354. In one embodiment, the multi-bit bus 354 is substantially similar to the multi-bit bus 354 of
At approximately the EOP of the data packet, the hold mode may be implemented to maintain the clock signal at the last chosen phase signal. Holding the clock signal in this manner allows EOP operations to complete without interruptions from a non-linear adjustment to the clock signal, such as an adjustment to an absolute reference phase. At the beginning of a subsequent data packet, the acquisition mode may be implemented and the cycle repeated, as described above.
A determination may be made, at block 408, if the data transfer is at the EOP of the data packet. If the data transfer is not at the EOP of the data packet, the tracking circuit 208 generates a tracking phase signal 228, at block 410, and the selection circuit 210 adjusts the clock signal when necessary according to the tracking phase signal 228. The tracking circuit 208 and selection circuit 210 continue to modify the clock signal until the EOP of the data packet. At approximately the EOP of the data packet, the hold circuit 216 generates a hold control signal 234, at block 414, and the selection circuit 210 maintains the clock signal, at block 416, until the next valid data transfer.
Although the foregoing method is shown in the form of a flow chart having separate blocks and arrows, the operations described in a single block do not necessarily constitute a process or function that is dependent on or independent of the other operations described in other blocks. Furthermore, the order in which the operations are described herein is only illustrative, and not limiting, as to the order in which such operations may occur in alternative embodiments. For example, some of the operations described may occur in series, in parallel, or in an alternating and/or iterative manner.
The use of absolute phase error sampling—sampling the known PLL phases in a predetermined order with a data edge—in combination with comparison to the currently chosen phase allows for an arbitrary phase adjustment lock on (high bandwidth acquisition). Since phase error sampling and adjustments are based on absolute sampling the need to return to a known reference phase at EOP is eliminated. As a result, the extra “zero” bandwidth mode can be added which maintains linearity when a valid data stream ends. The “zero” bandwidth mode will hold (via the hold control signal) the recovered clock with the last chosen phase before the EOP, thereby eliminating any non-linear phase adjustment (recovered clock glitches) at the EOP.
It should be noted that the clock and data recovery circuit 300 may be used in a wide variety of systems that operated with packetized data streams. In one embodiment, the clock and data recovery circuit 300 may be used in a transceiver such as for, example, the USB transceiver discussed below with respect to
Serial transmitter 910 is coupled to the clock multiplication unit 940 and the SERDES 950 and operates as clocked output buffer. Serial input buffer 920 receives the input signal and turns it into levels that can be more easily processed. Signal Detect circuit 930 is coupled to receive the input signal from the data bus (e.g., bi-directional serial bus) and detects if there is any activity on the data bus. For USB 2.0 systems, signal detect asserts when |D+−D−|>150 mv and de-asserts when |D+−D−|<=100 mv (and filters de-assertions when D+/D− are crossing each other during normal data transitions). The clock multiplication unit 940 converts the frequency (e.g., in one embodiment, 24 MHz) of the crystal oscillator clock 960 into a higher frequency (e.g., in one embodiment, 480 MHz) clock signal. The clock multiplication unit 940 may be capable of tapping its VCO at each stage to provide multiple phases of the generated higher frequency (e.g., 480 MHz) clock signal.
In one embodiment, the data coming into the transceiver 900 can have a bit rate, for example, up to 1000 ppm different than the 480 MHz clock on the chip. The clock and data recovery circuit 300 may handle recovery of the data even in the presence of other types of distortion (jitter). The SERDES 950 turns a serial stream into parallel data and vice-versa. An elasticity buffer may be used between CMU clock driven logic and recovered clock logic in clock driven logic 970 since data may be received faster than it may be processed (e.g., a sending clock might be at a higher freq than the transceiver clock). Transceiver 900 may be used, for example, in a USB 2.0 microcontroller.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It should be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined as suitable in one or more embodiments of the invention.
It will, however, be evident that the invention is not limited to the embodiments described herein. Various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
3721913 | Theobald | Mar 1973 | A |
4151485 | LaFratta | Apr 1979 | A |
4330759 | Anderson | May 1982 | A |
4523301 | Kadota et al. | Jun 1985 | A |
4672447 | Moring et al. | Jun 1987 | A |
4862411 | Dishon et al. | Aug 1989 | A |
4970609 | Cunningham et al. | Nov 1990 | A |
4989223 | Katayose et al. | Jan 1991 | A |
5057771 | Pepper | Oct 1991 | A |
5059924 | JenningsCheck | Oct 1991 | A |
5161173 | Nordby | Nov 1992 | A |
5295155 | Gersbach et al. | Mar 1994 | A |
5343439 | Hoshino | Aug 1994 | A |
5493243 | Ghoshal | Feb 1996 | A |
5568416 | Kawana et al. | Oct 1996 | A |
5596575 | Yang et al. | Jan 1997 | A |
5671258 | Burns et al. | Sep 1997 | A |
5687203 | Baba | Nov 1997 | A |
5742602 | Bennett | Apr 1998 | A |
5745530 | Baek et al. | Apr 1998 | A |
5757652 | Blazo et al. | May 1998 | A |
5757858 | Black et al. | May 1998 | A |
5761254 | Behrin | Jun 1998 | A |
5812617 | Heckman et al. | Sep 1998 | A |
5812619 | Rundaldue | Sep 1998 | A |
5841823 | Tuijn | Nov 1998 | A |
5841985 | Jie et al. | Nov 1998 | A |
5861842 | Hitch et al. | Jan 1999 | A |
5864250 | Deng | Jan 1999 | A |
5889050 | Fenske et al. | Mar 1999 | A |
5889436 | Yeung et al. | Mar 1999 | A |
5901110 | Jang | May 1999 | A |
5910742 | Synder et al. | Jun 1999 | A |
6041065 | Melvin | Mar 2000 | A |
6055241 | Raza et al. | Apr 2000 | A |
6064236 | Kuwata et al. | May 2000 | A |
6081561 | Julyan et al. | Jun 2000 | A |
6208169 | Wong et al. | Mar 2001 | B1 |
6222876 | Hirth et al. | Apr 2001 | B1 |
6229811 | Raza et al. | May 2001 | B1 |
6236696 | Aoki et al. | May 2001 | B1 |
6255880 | Nguyen | Jul 2001 | B1 |
6259755 | O'Sullivan et al. | Jul 2001 | B1 |
6301188 | Weber et al. | Oct 2001 | B1 |
6366145 | Williams et al. | Apr 2002 | B1 |
6380703 | White | Apr 2002 | B1 |
6385267 | Bowen et al. | May 2002 | B1 |
6417698 | Williams et al. | Jul 2002 | B1 |
6438155 | Beale | Aug 2002 | B1 |
6477279 | Go | Nov 2002 | B2 |
6529457 | Narumi et al. | Mar 2003 | B1 |
6535023 | Williams et al. | Mar 2003 | B1 |
6587531 | De Mey et al. | Jul 2003 | B1 |
6711226 | Williams et al. | Mar 2004 | B1 |
6721255 | Gushima et al. | Apr 2004 | B1 |
6760389 | Mukherjee et al. | Jul 2004 | B1 |
6950484 | Jordan et al. | Sep 2005 | B1 |
6993105 | Little et al. | Jan 2006 | B1 |