The present invention relates to digital clocking circuits for digital electronics. More specifically, the present invention relates to digital clock managers capable of generating multiple phase-locked output clock signals of different frequencies.
Synchronous digital systems, including board level systems and chip level systems, rely on one or more clock signals to synchronize elements across the system. Typically, one or more clock signals are distributed across the system on one or more clock lines. However, due to various problems such as clock buffer delays, high capacitance of heavily loaded clock lines, and propagation delays, the edges of a clock signal in different parts of the system may not be synchronized. The time difference between a rising (or falling) edge in one part of the system with the corresponding rising (or falling) edge in another part of the system is referred to as “clock skew”.
Clock skew can cause digital systems to malfunction. For example, it is common for circuits in digital systems to have a first flip-flop output driving a second flip-flop input. With a synchronized clock signal on the clock input terminal of both flip-flops, the data in the first flip-flop is successfully clocked into the second flip-flop. However, if the active edge on the second flip flop is delayed by clock skew, the second flip-flop might not capture the data from the first flip-flop before the first flip-flop changes state.
Delay lock loops are used in digital systems to minimize clock skew. Delay lock loops typically use delay elements to synchronize the active edges of a reference clock signal in one part of the system with a feedback clock signal from a second part of the system.
Delay line 110 delays reference clock signal REF_CLK by a variable propagation delay D before supplying output clock signal O_CLK. Thus, each clock edge of output clock signal O_CLK lags a corresponding clock edge of reference clock signal REF_CLK by propagation delay D (see
Before output clock signal O_CLK reaches logic circuits 190, output clock signal O_CLK is skewed by clock skew 180. Clock skew 180 can be caused by delays in various clock buffers (not shown) or propagation delays on the clock signal line carrying output clock signal O_CLK (e.g., due to heavy loading on the clock signal line). To distinguish output clock signal O_CLK from the skewed version of output clock signal O_CLK, the skewed version is referred to as skewed clock signal S_CLK. Skewed clock signal S_CLK drives the clock input terminals (not shown) of the clocked circuits within logic circuits 190. Skewed clock signal S_CLK is also routed back to delay lock loop 100 on a feedback path 170. Typically, feedback path 170 is dedicated specifically to routing skewed clock signal S_CLK to delay lock loop 110. Therefore, any propagation delay on feedback path 170 is minimal and causes only negligible skewing.
a) provides a timing diagram of reference clock signal REF_CLK, output clock signal O_CLK, and skewed clock signal S_CLK. All three clock signals have the same frequency F_REF (not shown) and period P_REF, and all are active-high (i.e., the rising edge is the active edge). Since output clock signal O_CLK is delayed by propagation delay D, a clock edge 220 of output clock signal O_CLK lags corresponding clock edge 210 of reference clock signal REF_CLK by propagation delay D. Similarly, a clock edge 230 of skewed clock signal S_CLK lags corresponding clock edge 220 of output clock signal O_CLK by a propagation delay SKEW, which is the propagation delay caused by clock skew 180 (
Delay lock loop 100 controls propagation delay D by controlling delay line 110. However, delay line 110 cannot create negative delay; therefore, clock edge 230 cannot be synchronized to clock edge 210. Fortunately, clock signals are periodic signals. Therefore, delay lock loop 100 can synchronize reference clock signal REF_CLK and skewed clock signal S_CLK by further delaying output clock signal O_CLK such that clock edge 240 of skewed clock signal S_CLK is synchronized with clock edge 210 of reference clock signal REF_CLK. As shown in
Phase detector 120 (
In
After synchronizing reference clock signal REF_CLK and skewed clock signal S_CLK, delay lock loop 100 monitors reference clock signal REF_CLK and skewed clock signal S_CLK and adjusts propagation delay D to maintain synchronization. For example, if propagation delay SKEW increases, perhaps caused by an increase in temperature, delay lock loop 100 must decrease propagation delay D to compensate. Conversely, if propagation delay SKEW decreases, perhaps caused by a decrease in temperature, delay lock loop 100 must increase propagation delay D to compensate. The time in which delay lock loop 100 is attempting to first synchronize reference clock signal REF_CLK and skewed clock signal S_CLK, is referred to as lock acquisition. The time in which delay lock loop 100 is attempting to maintain synchronization is referred to as lock maintenance. The value of propagation delay D at the end of lock acquisition, i.e. when synchronization is initially established, is referred to as initial propagation delay ID.
Further complications with clock skew exists in complex digital systems, such as microprocessors and FPGAs, that have multiple clock signals at different frequencies. For example, in some microprocessors, internal circuits are clocked by a first clock signal at a first clock frequency while input/output (I/O) circuits are clocked by a second clock signal at a second clock frequency. Typically, the second clock frequency is slower than the first clock frequency.
Most systems use one clock generating circuit to generate a first clock signal and a specialized circuit to derive other clock signals from the first clock signal. For example, clock dividers are used to generate one or more clock signals of lower clock frequencies from a reference clock signal. Typically, clock dividers divide the frequency of the reference clock signal by an integer value. Conversely, clock multipliers are used to generate one or more clock signals of higher clock frequencies from the reference clock signal. Combining clock multipliers with clock dividers provide clocking circuits which can generate one or more clock signals having frequencies that are fractional values of the frequency of the reference clock signal.
Thus, a clocking circuit is typically coupled to reference clock signal REF_CLK to generate a frequency adjusted clock signal FREQ_CLK. However, the clocking circuits add additional skew due to propagation delay and gate switching times. Consequently, frequency adjusted clock signal FREQ_CLK may be skewed compared to both reference clock signal REF_CLK and output clock signal O_CLK. Hence, there is a need for a method and circuits that can compensate for skew in both an output clock signal and a frequency adjusted clock signal.
The present invention provides a digital clock manager that generates a deskewed output clock signal as well as a deskewed frequency adjusted clock signal. Specifically, the output clock signal causes a skewed clock signal to be synchronized with a reference clock signal. The frequency adjusted clock signal is synchronized with the output clock signal during concurrences. Generally the frequency adjusted clock signal is driven to a selected clock frequency which is equal to the clock frequency of the output clock signal multiplied by a multiplier M and divided by a divider D, where M and D are natural numbers. When the frequency of the frequency adjusted clock signal is equal to the selected frequency and the frequency adjusted clock signal is in phase with the output clock signal, every Mth rising edge of the frequency adjusted clock signal aligns with a rising edge of the output clock signal. The alignments are commonly referred to as concurrences.
One embodiment of the digital clock manager includes a delay lock loop (DLL) and a digital frequency synthesizer (DFS). The delay lock loop is configured to generate an output clock signal that synchronizes a skewed clock signal with a reference clock signal. The delay lock loop also generates a synchronizing clock signal, which is provided to the digital frequency synthesizer. The delay lock loop has a DLL output circuit that generates the output clock signal, which lags the synchronizing clock signal by a DLL output delay. In the digital frequency synthesizer, a DFS output circuit generates a frequency adjusted clock signal in which an active edge of the frequency adjusted clock signal lags an active edge of the synchronizing clock signal by a DFS output delay during a concurrence period. By matching the DLL output delay with the DFS output delay, the output clock signal and the frequency adjusted clock signals are synchronized.
The present invention will be more fully understood in view of the following description and drawings.
a), 2(b) and 2(c) are timing diagrams for the system of
a) is a block diagram of a variable clocking circuit in accordance with one embodiment of the present invention,
The embodiment of
Delay Lock Loop 310 includes DLL clocking circuit 312 and DLL output circuit 314. DLL clocking circuit 312 generates a synchronizing clock signal SYNCH_CLK, which is provided to DLL output circuit 314 and DFS output circuit 324 of digital frequency synthesizer 320. Generally, synchronizing clock signal SYNCH_CLK has a frequency equal to frequency F_REF of reference clock signal REF_CLK and output clock signal O_CLK. DLL output circuit 314 drives output clock signal O_CLK. DLL output circuit 314 introduces a DLL output delay 316 between synchronizing clock signal SYNCH_CLK and output clock circuit O_CLK. Specifically, output clock signal O_CLK lags synchronizing clock signal SYNCH_CLK by DLL output delay 316. DLL clocking circuit 312 and DLL output circuit 314 together synchronizes skewed clock signal S_CLK with reference clock signal REF_CLK. A specific embodiment of delay lock loop 310 used in one embodiment of the present invention is described below.
Digital frequency synthesizer 320 receives synchronized clock signal SYNCH_CLK and generates frequency adjusted clock signal FREQ_CLK having adjusted frequency F_ADJ, which is equal to the frequency of output clock signal O_CLK multiplied by a multiplier M and divided by a divider D. As shown in
Because output clock signal O_CLK lags synchronizing clock signal SYNCH_CLK by DLL output delay 316 and frequency adjusted clock signal FREQ_CLK lags synchronizing clock signal SYNCH_CLK by DFS output delay 326, frequency adjusted clock signal FREQ_CLK can be synchronized with output clock signal O_CLK by matching DLL output delay 316 with DFS output delay 326. Thus, in accordance with some embodiments of the invention, the components of DFS output circuit 324 and DLL output circuit 314 are chosen to match DLL output delay 316 with DFS output delay 326. For example, in some embodiments of the present invention, DLL output circuit 314 and DFS output circuit 324 comprise the identical components. Furthermore, in some embodiments of the present invention, the layout and routing for DLL output circuit 314 closely match the layout and routing for DFS output circuit 324. By matching components, layout, and routing, these embodiments of the present invention can achieve near-perfect matching between DLL output delay 316 and DFS output delay 326.
However, some embodiments of the present invention can not achieve suitable matching of DFS output delay 326 and DLL output delay 316. For these embodiments, additional delay circuitry can be used to synchronize output clock signal O_CLK and frequency adjusted clock signal FREQ_CLK.
In digital clock manager 400, DLL output delay 316 and DFS output delay 326 can not be adequately matched However, variable delay circuit 410, which provides additional delay to DLL output delay 316, and variable delay circuit 420, which provides additional delay to DFS output delay 326 can be used to synchronize output clock signal O_CLK with frequency adjusted clock signal FREQ_CLK. Specifically, DLL output delay 316 plus the delay provided by variable delay circuit 410 should be matched with DFS output delay 326 plus the delay provided by variable delay circuit 420. In many embodiments of the present invention, delay match can be achieved using only one of variable delay circuits 410 or 420. Therefore, these embodiments would not need to include both variable delay circuit 410 and variable delay circuit 420.
However, in digital clock manager 500, lock acquisition by delay lock loop 310 and frequency search phases by digital frequency synthesizer 320 can occur simultaneously to reduce the time necessary to generate output clock signal O_CLK and frequency adjusted clock signal FREQ_CLK. Specifically, digital clock manager 500 includes a multiplexer 510, having a first input terminal coupled to receive reference clock signal REF_CLK, a second input terminal coupled to receive synchronizing clock signal SYNCH_CLK and an output terminal coupled to digital frequency synthesizer 320. Multiplexer 510 is controlled by a clock transition control signal CLK_TRAN from digital frequency synthesizer 320. Clock transition control signal CLK_TRAN is driven to an inactive state while delay locked loop is performing lock acquisition or digital frequency synthesizer 320 is not ready for a clock transition. If clock transition control signal is in the inactive state, multiplexer 510 couples reference clock signal REF_CLK to digital frequency synthesizer 320.
Because reference clock signal REF_CLK is already at reference frequency F_REF, digital frequency synthesizer 320 can perform the required frequency search phases using reference clock signal REF_CLK. After delay lock loop 310 finishes lock acquisition, a control signal DLL_LOCKED is driven to an active state (e.g., logic high) signaling digital frequency synthesizer 320 that delay lock loop 310 has completed lock acquisition. Then, when digital frequency synthesizer is ready for transitioning to synchronizing clock signal SYNCH_CLK, clock transition control signal CLK_TRAN is driven to the active state, which causes synchronizing clock signal SYNCH_CLK to be provided to digital frequency synthesizer 320. For example, in some embodiments of the present invention, digital frequency synthesizer 320 completes a frequency search phase prior to driving control signal CLK_TRAN to select synchronizing clock signal SYNCH_CLK. Furthermore, in some embodiments of the present invention, digital frequency synthesizer 320 is halted prior to switching from reference clock signal REF_CLK to synchronizing clock signal SYNCH_CLK and then restarted. Thus, digital clock manager 500 reduces the time required to generate frequency adjusted clock signal FREQ_CLK by allowing acquisition lock by delay lock loop 310 and frequency searches by digital frequency synthesizer 320 to operate simultaneously.
Within delay lock loop 600, reference clock signal REF_CLK is delayed by delay line 610 to generate delayed clock signal D_CLK. Delayed clock signal D_CLK is delayed from clock signal REF_CLK by a propagation delay D in delay line 610. One embodiment of delay lock loop 600 uses an adjustable delay line described in U.S. Pat. No. 6,400,735 B1 issued on Jun. 4, 2002, entitled “Glitchless Delay Line Using Gray Code Multiplexer” by Andrew K. Percey, which is incorporated herein by reference. However, other adjustable delay lines can also be used with delay lock loop 600. Delayed clock signal D_CLK is provided to an input terminal of a clock phase shifter 650 and to an input terminal of an output generator 640. Delayed clock signal D_CLK is also provided to digital frequency synthesizer 320 as synchronizing clock signal SYNCH_CLK.
Clock phase shifter 650 generates one or more phase-shifted clock signals P_CLK_1 to P_CLK N−1, where N is a positive integer. In one embodiment, phase-shifted clock signal P_CLK_1 is phase-shifted by 360/N degrees from delayed clock signal D_CLK′. Phase-shifted clock signal P_CLK_2 is phase-shifted by 2*(360/N) degrees. Phase-shifted clock signal P_CLK_N−1 is phase-shifted by (N−1)*(360/N) degrees. Thus, in general a phase-shifted clock signal P_CLK_Z is phase-shifted by Z*(360/N), where Z is an integer between 1 and (N−1), inclusive. Delayed clock signal D_CLK can be considered a phase-shifted clock signal P_CLK_0 since delayed clock signal D_CLK has a 0 degree phase shift from itself. Further, in some embodiments of delay lock loop 600, clock phase shifter 650 generates a phase-shifted signal P_CLK_N that has the same phase and frequency as delayed clock signal D_CLK.
Thus, in an embodiment of clock phase shifter 650 where N is equal to four, phase-shifted clock signal P_CLK_1 is phase-shifted 90 degrees from delayed clock signal D_CLK. It logically follows that phase-shifted clock signal P_CLK_2 is phase-shifted by 180 degrees from delayed clock signal D_CLK and phase-shifted clock signal P_CLK_3 is phase-shifted by 270 degrees from delayed clock signal D_CLK_However, the principles of the present invention are also suitable for other embodiments of clock phase shifter 650 using other patterns of phase shifting between the phase-shifted clock signals.
Phase shifting is a concept in the frequency domain of a clock signal. The equivalent of phase shifting in the time domain is delaying the clock signal. Specifically, if a first clock signal is phase-shifted from a second clock signal by X degrees, the first clock signal is delayed by X*(P/360), where P is the period of the first and second clock signals. Thus, if phase-shifted clock signal P_CLK_1 is phase-shifted 90 degrees from delayed clock signal D_CLK, phase-shifted clock signal P_CLK_1 is delayed by one-fourth of the period of delayed clock signal D_CLK. To distinguish delays caused by phase shifting from other propagation delays, delays caused by phase shifting are referred to as phase-shifted delays P_D_Z. Since a phase-shifted clock signal P_CLK_Z is phase-shifted by Z*(360/N) degrees, phase-shifted clock signal P_CLK_Z has a phase-shifted delay P_D_Z equal to Z*(P/N), where Z is an integer between 1 and (N−1), inclusive.
Returning to
Controller 630 receives phase information regarding reference clock signal REF_CLK and skewed clock signal S_CLK from phase detector 620. Specifically, phase detector 620 informs controller 630 whether propagation delay D from delay line 610 should be increased or decreased to achieve synchronization of skewed clock signal S_CLK with reference clock signal REF_CLK. For embodiments of phase detector 620 that only determine whether to increase or decrease propagation delay D, a jitter filter (not shown) can be used to reduce clock jitter. In one embodiment, the jitter filter is an up/down counter (not shown) that decrements by one if propagation delay D should be decreased and increments by one if propagation delay D should be increased. However, propagation delay D is not adjusted until the up/down counter reaches 0 or some other predetermined number. When propagation delay D is adjusted, the up/down counter is reset to one-half the maximum value. In other embodiments, phase detector 620 calculates the amount propagation delay D should be increased or decreased. During lock acquisition, controller 630 attempts to synchronize skewed clock signal S_CLK with reference clock signal REF_CLK so that initial propagation delay ID of propagation delay D is within a lock window W.
For example, the system containing delay lock loop 600 generally can operate in a range of operating conditions. The range of operating conditions includes a maximum extreme condition in which propagation delay SKEW is maximized at a propagation delay value SKEW MAX. Similarly, the range of operating conditions also includes a minimum extreme condition in which propagation delay SKEW is minimized at a propagation delay value SKEW_MIN. Thus, the maximum change (DELTA_SKEW) in propagation delay SKEW during operation of the system is equal to propagation delay value SKEW_MAX minus propagation delay value SKEW_MIN (i.e., DELTA_SKEW=SKEW_MAX−SKEW_MIN). For maximum protection during lock maintenance, lock window minimum W_MIN can be equal to minimum propagation delay D_MIN plus DELTA_SKEW. Similarly, lock window maximum W_MAX can be equal to maximum propagation delay D_MAX minus DELTA_SKEW. In one embodiment of the present invention, lock window minimum W_MIN is equal to approximately 16.5% of maximum propagation delay D_MAX and lock window maximum W_MAX is equal to approximately 67.8% of maximum propagation delay D_MAX.
As explained above with respect to
D+SKEW=MULT(P) (1)
where MULT(P) refers to a multiple of P. Usually, the smallest multiple of P greater than SKEW is used.
With delay lock loop 600, controller 630 can also use the delays from the phase-shifted clock signals. Thus delay lock loop 600 can achieve synchronization if propagation delay D plus a phase-shifted delay P_D from a phase-shifted clock signal plus propagation delay SKEW is a multiple of period P. In equation form:
D+P—D—Z+SKEW=MULT(P) (2)
where P_D_Z refers to a phase-shifted delay from phase-shifted clock signal P_CLK_Z. Usually, the smallest multiple of P greater than propagation delay SKEW plus phase-shifted delay P_D_Z is used. As explained above with respect to
For clarity, initial delay ID can be referred to initial delay ID_0 if output generator 640 uses delayed clock signal D_CLK for output clock signal O_CLK. Similarly, initial delay ID can be referred to as initial delay ID_Z, if output generator 640 uses phase-shifted clock signal P_CLK_Z for output clock signal O_CLK, where Z is a positive integer between 1 and (N−1), inclusive. Thus, at the end of lock acquisition, equation (2) can be rewritten as:
ID—Z+P—D—Z+SKEW=MULT(P) (3)
Re-arranging equation (3) provides:
ID—Z=MULT(P)−SKEW−P—D—Z (4)
and substituting Z*(P/N) for P_D_Z provides:
ID—Z=MULT(P)−SKEW−Z*(P/N) (5)
Usually, the smallest multiple of P that results in a positive initial delay ID_Z is used. In situations where initial delay ID_Z is less than minimum propagation delay D_MIN or greater than maximum propagation delay D_MAX, delay lock loop 600 cannot synchronize skewed clock signal S_CLK with reference clock signal REF_CLK using phase-shifted clock signal P_CLK_Z.
Because controller 630 can select any one of phase-shifted clock signals P_CLK_Z to drive output clock signal O_CLK, controller 630 can select from N initial delay values. The possible initial delay values range from a minimum offset value (MULT(P)−SKEW) to a maximum value (MULT(P)−SKEW) & (N−1)/N period P). The difference between each initial delay value is period P divided by N. For example, if N equals four, period P equals 40 nanoseconds, and propagation delay SKEW equals 25 nanoseconds; then initial delays ID_0, ID_1, ID_2, and ID_3 equal 15 nanoseconds, 5 nanoseconds, 35 nanoseconds, and 25 nanoseconds, respectively (as calculated using equation (5)). If N equals four, period P equals 40 nanoseconds, and propagation delay SKEW equals 55 nanoseconds; then initial delays ID_0, ID_, ID_2, and ID_3 equal 25 nanoseconds, 15 nanoseconds, 5 nanoseconds, and 35 nanoseconds, respectively. Thus, controller 630 is likely to find one or more initial delay values within lock window W. If more than one initial delay value is within lock window W, controller 630 can select any one of the initial delay values within lock window W.
Some embodiments of controller 630 can perform the calculations described above to determine which phase-shifted clock signal P_CLK_Z to use. However, other embodiments use trial and error to determine which phase-shifted clock signal P_CLK_Z to use. An embodiment of controller 630 that uses trial and error is described below with respect to
The input terminal of delay line 1010_1 is coupled to receive an input clock signal such as delayed clock signal D_CLK (
If configuration line 1040 is pulled to logic one, which puts the embodiment of
However, if configuration line 1040 is pulled to logic zero, which puts the embodiment of
In lock acquisition stage 1220, controller 630 synchronizes reference clock signal REF_CLK and skewed clock signal S_CLK. Specifically, controller 630 adjusts propagation delay D of delay line 610 based on signals from phase detector 620. Phase detector 620 determines whether propagation delay D must be increased or decreased to synchronize skewed clock signal S_CLK with reference clock signal REF_CLK. Lock acquisition is described above in greater detail with respect to
In check lock window stage 1230, controller 630 must determine whether initial propagation delay ID is within lock window W. Specifically, propagation delay ID is within lock window W if propagation delay ID is greater than lock window minimum W_MIN and less than lock window maximum W_MAX. If initial propagation delay ID is not within lock window W, controller 630 transitions to increment phase stage 1250. Otherwise, controller 630 transitions to lock maintenance stage 1240.
In lock maintenance stage 1240, controller 630 adjust propagation delay D of delay line 610 to maintain synchronization of skewed clock signal S_CLK with reference clock signal REF_CLK. Lock maintenance is described above in greater detail; therefore, the description is not repeated. As described above, the present invention can maintain lock throughout the systems environment conditions. Therefore, controller 630 remains in lock maintenance stage 1240 unless a reset occurs that causes controller 630 to transition to reset stage 1210.
In increment phase stage 1250, controller 630 increments the phase counter, which causes output generator 640 to select a different phase-shifted clock signal. Further, controller 630 resets delay line 610 so that propagation delay D returns to the starting delay value used in reset stage 1210. Controller 630 then transitions to lock acquisition stage 1220 and proceeds as described above.
a) is a block diagram of a digital frequency synthesizer 1400 in accordance with one embodiment of the present invention. Digital frequency synthesizer 1400 generates a frequency adjusted clock signal FREQ_CLK having a clock frequency F_ADJ equal to a clock frequency F_SYNCH of a synchronizing clock signal SYNCK_CLK multiplied by a multiplier M and divided by a divider D (i,e., F_ADJ=M*F_SYNCH/D). As explained above, when digital frequency synthesizer 320 is used with digital clock manager 300, 400, or 500, clock frequency F_SYNCH of synchronizing clock signal SYNCH_CLK is equal to clock frequency F_REF of reference clock signal REF_CLK. Digital frequency synthesizer 1400 comprises clock dividers 1410 and 1420, optional clock selector 1430, phase comparator 1440, halt/restart circuit 1445, initialization circuit 1450, oscillator control circuit 1460, and variable digital oscillator 1470. Clock divider 1410 receives frequency adjusted clock signal FREQ_CLK, which is generated by variable digital oscillator 1470, and generates feedback clock signal FBK_CLK having a frequency F_FBK equal to frequency F_ADJ of output clock FREQ_CLK divided by multiplier M. Clock divider 1410 drives feedback clock signal FBK_CLK to initialization circuit 1450 and phase comparator 1440. Clock divider 1420 receives synchronizing clock signal SYNCH_CLK and generates divided synchronizing clock signal D_SYNCH_CLK having a frequency F_D_SYNCH equal to frequency F_SYNCH of synchronizing clock signal SYNCH_CLK divided by divider D. Clock divider 1420 drives divided synchronizing clock signal D_SYNCH_CLK to initialization circuit 1450 and phase comparator 1440.
Clock selector 1430 receives both synchronizing clock signal SYNCH_CLK and frequency adjusted clock signal FREQ_CLK and selectively drives either synchronizing clock signal SYNCH_CLK or frequency adjusted clock signal FREQ_CLK as control clock signal CTRL_CLK to initialization circuit 1450 and oscillator control circuit 1460. Generally, synchronizing clock signal SYNCH_CLK is used during a coarse frequency search phase. Then, frequency adjusted clock signal FREQ_CLK is used for a fine frequency search phase as well as during a clock maintenance phase, i.e., maintaining the frequency of frequency adjusted clock signal FREQ_CLK at the selected frequency. The coarse frequency search phase, the fine frequency search phase, and the maintenance phase for one embodiment of the present invention is described in detail below. Halt/restart circuit 1445, which is used during coarse frequency search phase and the fine frequency search phase, is described below.
At power-on or reset, initialization circuit 1450 controls oscillator control circuit 1460 to tune variable digital oscillator 1470 to generate frequency adjusted clock signal FREQ_CLK. Specifically, initialization circuit 1450 tunes variable digital oscillator 1470 so that frequency F_ADJ of frequency adjusted clock signal FREQ_CLK is equal to a selected frequency F_SEL, which equals frequency F_SYNCH of synchronizing clock signal SYNCH_CLK multiplied by multiplier M and divided by divider D. After frequency F_ADJ of frequency adjusted clock signal FREQ_CLK reaches selected clock frequency F_SEL, initialization circuit 1450 passes control of oscillator control circuit 1460 and variable digital oscillator 1470 to phase comparator 1440. Phase comparator 1440 tunes variable digital oscillator 1470 to maintain frequency F_ADJ at selected frequency F_SEL despite environmental changes such as temperature.
Some embodiments of digital frequency synthesizer 1400 can use conventional clock dividers, clock selectors, halt/restart circuits, and phase comparators. However, detailed descriptions of specific embodiments of initialization circuits 1450, oscillator control circuit 1460, and variable digital oscillator 1470 are described below.
b) is a timing diagram for digital frequency synthesizer 1400. For clarity,
Synchronizing clock signal SYNCH_CLK is coupled to first set input terminal S_IN1 and a reference clock enable signal R_CLK_EN is coupled to first enable input terminal S_EN1. Output terminal OUT of dual edge-triggered SR CIRCUIT 1510 drives frequency adjusted clock signal FREQ_CLK and is coupled to variable delay line 1520. In the embodiment of
In the embodiment of
Depending on the frequency F_SYNCH of synchronizing clock signal SYNCH_CLK, multiplier M, and divisor D, variable delay line 1520 may not be able to provide the exact amount of delay necessary to generate frequency adjusted clock signal FREQ_CLK at selected frequency F_SEL.
In
To eliminate the misalignment, just prior to concurrence, i.e., when a rising edge of synchronizing clock signal SYNCH_CLK should be aligned with a rising edge of frequency adjusted clock signal FREQ_CLK, oscillator enable signal OSC_EN is deasserted and reference clock enable signal is asserted. Thus, during a concurrence the rising edge of synchronizing clock signal SYNCH_CLK on input terminal S_IN1 of dual-input edge-triggered SR circuit 1510 causes a rising edge on output terminal OUT of dual-input edge-triggered SR circuit 1510, which drives frequency adjusted clock signal FREQ_CLK. After concurrence, oscillator enable signal OSC_EN is reasserted and reference clock enable signal R_CLK_EN is deasserted. Thus, every Mth clock period of frequency adjusted clock signal FREQ_CLK, frequency adjusted clock signal FREQ_CLK is realigned with synchronizing clock signal SYNCH_CLK even if variable delay line 1520 does not provide the exact delay necessary to drive frequency adjusted clock signal FREQ_CLK at selected frequency F_SEL.
Accordingly, as shown in
The delay value in delay line register 1710 is selectively incremented by incrementer 1730 to generate delay select signals DELAY_SEL[8:0], which are coupled to variable delay line 1520 (
Initially, adder/subtracter 1840 is configured to provide a delay value DV[8:0] that causes variable delay line 1520 to provide 50% of the maximum delay that can be provided by variable delay line 1520. For the embodiment of
Frequency comparator 1850 receives feedback clock signal FBK_CLK and divided reference signal D_SYNCH_CLK and generates a control signal A/!S which dictates whether adder/subtracter 1840 performs an ADD operation or a SUBTRACT operation. Specifically, if frequency F_FBK of feedback clock signal FBK_CLK is greater than frequency F_D_SYNCH of divided synchronizing clock signal D_SYNCH_CLK, the delay provided by variable delay line should be increased. Accordingly, frequency comparator 1850 causes adder/subtracter 1840 to perform an ADD operation by driving control signal A/!S to the add logic level (typically logic high). Conversely, if frequency F_FBK of feedback clock signal FBK_CLK is less than frequency F_D_SYNCH of divided synchronizing clock signal D_SYNCH_CLK, the delay provided by variable delay line should be decreased. Accordingly, frequency comparator 1850 causes adder/subtracter 1840 to perform a SUBTRACT operation by driving control signal A/!S to the subtract logic level (typically logic low). After each addition or subtraction, halt/restart circuit 1445 (
In some embodiments of the present invention, frequency comparator 1850 also generates a frequency comparator reversal signal FC_REV. Frequency comparator reversal signal FC_REV is driven to a active state (e.g., logic high) when frequency F_FBK of feedback clock signal FBK_CLK becomes greater than frequency F_D_SYNCH of divided synchronizing clock signal D_SYNCH_CLK and also when frequency F_D_SYNCH of divided synchronizing clock signal D_SYNCH_CLK becomes greater than frequency F_FBK of feedback clock signal FBK_CLK. In one embodiment of the present invention, a coarse frequency search phase ends when the value of right shifter 1830 is equal to one.
Table 2 provides an example of the operation for the embodiment of initialization circuit 1450 in
As explained above initially delay line register 1710 is configured to contain 256 and right shift register 1830 is configured to contain 128. Because the ideal value for delay value DV is 371.5, control signal A/!S is in the Add state (i.e., logic high). At step 1, adder/subtracter 1840 adds 128 to 256; delay line register 1710 stores 384 (i.e., 256+128); and right shifter 1830 right shifts 128, which becomes 64. When delay line register 1710 contains 384 frequency comparator 1850 drives control line A/!S to the subtract logic level (i.e., logic low). Then, in step 2, adder/subtracter 1840 subtracts 64 from 384; delay line register 1710 stores 320 (i.e., 384−64); and right shifter 1830 right shifts 64 which becomes 32. When delay line register 1710 contains 320 frequency comparator 1850 drives control line A/!S to the add logic level (i.e., logic high). This process continues until the value in delay line 37 register 1710 is as close to the optimum value as possible.
Overflow register 1860 receives output bit 9 of adder/subtracter 1840. If output bit 9 is active, an overflow conditions has occurred and must be remedied by an outside control system (not shown). Typically, overflow conditions only occur if clock divider/multiplier 1400 is used with clock frequencies that are too fast or too slow compared to the possible delay time provided by variable delay line 1520.
As stated above, some embodiments of the present invention perform a fine frequency search using delay line fine tuning controller 1720 after initialization circuit 1450 establishes a delay value DV[8:0]. As explained above, variable digital delay lines may not be able to provide the exact delay necessary to generate frequency adjusted clock signal FREQ_CLK at selected frequency F_SEL. The present invention solves this problem by using dual-input edge-triggered SR circuit 1510 (
Effectively, delay line fine tuning controller 1720 adds additional precision to variable delay line 1520 by selectively increasing the delay provided by variable delay line 1520 by one base delay BD at various times during a concurrence period.
In
Delay line fine tuning controller 1720 selectively increments the delay provided by delay line 1520 to more closely match ideal frequency adjusted clock signal I_FREQ_CLK. Rather than lumping the extra delay required to match the average period of frequency adjusted clock signal FREQ_CLK2 with ideal frequency adjusted clock signal I_FREQ_CLK at the of the concurrence period, delay line fine tuning controller 1720 spreads the additional required base delay units over the entire concurrence period. Thus, falling clock edge 1942 and rising clock edge 1943 of frequency adjusted clock signal FREQ_CLK2 are separated by 7 nanoseconds rather than 6 nanoseconds. Similarly, falling clock edge 2046 and rising clock edge 1947 of frequency adjusted clock signal FREQ_CLK2 are separated by 7 nanoseconds rather than 6 nanoseconds. Thus, the waveform of frequency adjusted clock signal FREQ_CLK2 more closely matches ideal frequency adjusted clock signal I_FREQ_CLK than frequency adjusted clock signal FREQ_CLK1.
Conceptually, up/down counter 2020 is used to provide high precision bits for delay line register 1710. Specifically, the value in up/down counter 2020 indicates the number of additional base delay units needed during a concurrence period to more precisely match frequency F_ADJ of frequency adjusted clock signal FREQ_CLK to selected frequency F_SEL. In the example of
Up/down counter 2020 receives the value M−1 (i.e., multiplier M minus 1) on input terminals IN[7:0] via signals M_m1[7:0]. Up/down counter 2020 provides both an output value OUT[7:0] and a next value NEXT[7:0]. Output value OUT[7:0] transitions on rising clock edges of control clock CTRL_CLK. In contrast, next value NEXT [7:0] is equal to the value that OUT[7:0] will become after the next rising clock edge. Add delay signal ADD_DELAY is also provided to control terminal UP. If add delay signal ADD_DELAY is driven to the active logic level (i.e., logic high) up/down counter 2020 counts up. Otherwise, up down/counter 2020 counts down.
To force modulo M counting, up/down counter 2020 includes a synchronous reset terminal coupled to the output terminal of AND gate 2040. AND gate 2040, which receives status signal OUT=M_ml and add delay control signal ADD_DELAY, generates carry signal CARRY. Status signal OUT=M_ml is driven to logic high when output value OUT[7:0] is equal to multiplier M minus 1. Status signal OUT=M_ml is typically generated by a comparator (not shown). Thus, if up/down counter 2020 is counting up and output value OUT[7:0] is equal to multiplier M minus 1, then up/down counter 2020 is reset to zero on the next rising edge of clock signal CTRL_CLK. Carry signal CARRY is also provided to delay line register 1710. An active logic level (e.g., logic high) on carry signal CARRY enables delay line register 1710 to increment.
Up/down counter 2020 also includes a load control terminal LOAD coupled to the output terminal of AND gate 2050. AND gate 2050, which receives status signal OUT=ZERO and add delay control signal ADD_DELAY through inverter 2060, generates borrow signal BORROW. Status signal OUT=ZERO is driven to logic high when output value OUT[7:0] is equal to zero. Status signal OUT=ZERO is typically generated by a comparator (not shown). Thus, if up/down counter 2020 is counting down and output value OUT[7:0] is equal to zero, then up/down counter 2020 is configured to load M minus 1. Borrow signal BORROW is also provided to delay line register 1710. An active logic level (e.g., logic high) on Borrow signal BORROW enables delay line register 1710 to decrement.
Next signal NEXT[7:0] is coupled to pulse input terminals P_IN[7:0] of modulo-M delta-sigma circuit 2030. Modulo-M delta sigma circuit 2030 also receives value M−1 (i.e., multiplier M minus 1) on modulo input terminals M_IN[7:0] via signals M_m1[7:0], a pre-concurrence signal PRE_CONC, and control clock signal CTRL_CLK. Modulo-M delta-sigma circuit 2030, drives fine tuning increment control signal FT_INC. For clarity, modulo-M delta sigma circuit 2030 is said to receive a modulo value M (although in the embodiment of
Pulse input terminals P_IN[7:0] are coupled to a first input terminal of subtracter 2120. Subtracter 2120 is configured to subtract the output value from multiplier 2110 from the pulse value provided on pulse input terminals P_IN[7:0] to generate a delta value DELTA on output port OUT of subtracter 2120. Output port OUT of subtracter 2120 is coupled to a first input port IN1 of adder 2130. A second input port IN2 of adder 2130 is coupled to an output port OUT of latch 2150. Adder 2130 is configured to add delta value DELTA provided by subtracter 2120 to a latch value LATCH provided by latch 2150 to generate a sigma value SIGMA on output port OUT of adder 2130. Output port OUT of adder 2130 is coupled to a first input port IN1 of multiplexing circuit 2140. Some embodiments of the present invention calculate sigma value SIGMA using a sigma calculation circuit, such as a three input adder, which can perform the calculation faster than using a separate delta calculation circuit, such as subtracter 2120. In these embodiments the sigma calculation circuit replaces subtracter 2120 and adder 2130. For embodiments using a three input adder, the output value of multiplier 2110 can be converted into a 2's complement format prior to the three input adder. Furthermore, incrementer 2105 and multiplier 2110 may be combined within a circuit to compute the 2's complement format.
Multiplexing circuit 2140 is configured to drive either sigma value SIGMA or the value provided on modulo input terminals M_IN[7:0] to input port IN of latch 2150 through output port OUT of multiplexing circuit 2140. Reset terminal RESET is coupled to a control terminal of multiplexing circuit 2140. Pre-concurrence signal PRE_CONC, which is coupled to reset terminal RESET in
Table 4 provides a pseudo code implementation of a second embodiment of modulo-M delta sigma circuit 2030. One skilled in the art of digital design can convert the pseudo code of Table 4 to a hardware definition language such as Verilog to implement the circuit.
As explained above, one embodiment of the present invention operates digital frequency synthesizer 1400 in three distinct phases. Specifically, digital frequency synthesizer 1400 is operated in a coarse frequency search phase, a fine frequency search phase, and a clock maintenance phase. During the coarse frequency search phase, variable delay line 1520 (
During the fine frequency search phase, delay line fine tuning controller 1720 is activated and clock selector 1430 (
During the clock maintenance phase, phase comparator 1440 (
In the various embodiments of the present invention, novel structures have been described for digital clock managers. By using a synchronizing clock signal with matched output delays, the present invention can provide deskewed output clock signals with synchronized frequency adjusted clock signals. The various embodiments of the structures and methods of this invention that are described above are illustrative only of the principles of this invention and are not intended to limit the scope of the invention to the particular embodiments described. For example, in view of this disclosure those skilled in the art can define other delay lock loops, output generation circuits, output delays, variable delay circuits, digital frequency synthesizers, clock phase shifters, delay lines, output generators, controllers, phase detectors, latches, registers, clock dividers, phase comparators, frequency comparators, up/down counters, initialization circuits, delta-sigma circuits, latches, halt/restart circuits, delay lines, variable digital oscillators, edge-triggered SR circuits, active edges, enable logic levels, and so forth, and use these alternative features to create a method, circuit, or system according to the principles of this invention. Thus, the invention is limited only by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5068628 | Ghoshal | Nov 1991 | A |
5511100 | Lundberg et al. | Apr 1996 | A |
5631920 | Hardin | May 1997 | A |
5790612 | Chengson et al. | Aug 1998 | A |
5805003 | Hsu | Sep 1998 | A |
5990714 | Takahashi | Nov 1999 | A |
6014063 | Liu et al. | Jan 2000 | A |
6101197 | Keeth et al. | Aug 2000 | A |
6125157 | Donnelly et al. | Sep 2000 | A |
6151356 | Spagnoletti et al. | Nov 2000 | A |
6184753 | Ishimi et al. | Feb 2001 | B1 |
6188288 | Ragan et al. | Feb 2001 | B1 |
6194930 | Matsuzaki et al. | Feb 2001 | B1 |
6289068 | Hassoun et al. | Sep 2001 | B1 |
6445234 | Yoon et al. | Sep 2002 | B1 |
6487648 | Hassoun | Nov 2002 | B1 |
6501309 | Tomita | Dec 2002 | B1 |
6539072 | Donnelly et al. | Mar 2003 | B1 |
6625242 | Yoo et al. | Sep 2003 | B1 |
6633288 | Agarwal et al. | Oct 2003 | B2 |
6775342 | Young et al. | Aug 2004 | B1 |
20020029355 | Sakamoto et al. | Mar 2002 | A1 |
Number | Date | Country |
---|---|---|
WO 9967882 | Dec 1999 | WO |