Patent Description:
Many types of electronic applications can include clock circuits, or the like, which can rely on a stable frequency reference. Some such applications use a crystal oscillator, or other suitably accurate oscillator, to generate a reference frequency. The reference frequency can then be fed into a phase-locked loop (PLL), which can output some desired multiple of the reference frequency. Typically, the PLL has a feedback loop that includes a divider, and the output of the divider is fed back as an input to the PLL, along with the reference frequency. In that way, a dividing value associated with the divider can be used effectively to control the multiple relationships between the PLL output frequency and the reference frequency.

In some applications, it is desirable for the PLL to output a fractional (i.e., non-integer) multiple of the reference frequency. In such applications, a so-called fractional divider PLL can be used. According to conventional approaches, the divider in a fractional divider PLL alternates among multiple integer dividing values over time, such that the result, on average, is effectively a fractional dividing value. In some applications, however, is desirable to modulate the output frequency of the PLL. For example, a data signal is received as an input to the fractional divider, such that the output of the PLL is a frequency-modulated signal that represents the data signal by frequency-modulating a carrier frequency. In such applications, conventional approaches to generating fractional dividing values in a PLL tend to produce undesirable results.

<CIT> discloses systems and methods for Phase-Locked Loop (PLL) based frequency synthesizer, comprising a dynamic fraction divider in a feedback loop. The dynamic fraction divider employs a dynamic divide ratio that dynamically changes with the jitters and noise spurs contained in an input signal to the PLL, and generates a feedback signal used to adjust the PLL output frequency. The dynamic divide ratio may be determined by comparing the phases of the PLL output signal and the input signal.

<CIT> discloses a phase-locked loop (PLL) frequency synthesizer having a two-point data modulation scheme and SIGMADELTA modulator, fractional-N architecture. In the synthesizer, data are modulated at both the PLL frequency divider and the voltage-controlled oscillator (VCO). The SIGMADELTA modulator modulates the feedback signal generated by the PLL frequency divider with data and quantizes the spurious signals inherent in a fractional-N design to high frequencies that the PLL loop filter can attenuate.

<CIT> discloses generating an error signal in response to comparison of a reference clock signal having a reference frequency and a feedback clock signal having a feedback frequency, generating a plurality of clock signals having an output frequency based on the error signal, and generating the feedback clock signal from the plurality of clock signals based on a first divider value and a control value derived from a second divider value.

<CIT> discloses an example of a PLL for FM modulation comprising a fractional divider system using dynamic carrying to prevent saturation of sigma-delta modulator thereof.

The accompanying drawings, referred to herein and constituting a part hereof, illustrate embodiments of the disclosure. The drawings together with the description serve to explain the principles of the invention.

In the appended figures, similar components and/or features can have the same reference label. Further, various components of the same type can be distinguished by following the reference label by a second label that distinguishes among the similar components.

In the following description, numerous specific details are provided for a thorough understanding of the present invention. However, it should be appreciated by those of skill in the art that the present invention may be realized without one or more of these details. In other examples, features and techniques known in the art will not be described for purposes of brevity.

<FIG> shows an illustrative phase-locked-loop (PLL) system <NUM>, as context for various embodiments. The PLL system <NUM> generates a PLL output signal (PLLout) <NUM> in accordance with a received PLL input signal (PLLin) <NUM>. For example, PLLin <NUM> can be a clock reference signal generated by a crystal oscillator, or the like, at a particular input frequency. The PLL system <NUM> uses a feedback loop to generate PLLout <NUM> in such a way that PLLout <NUM> is locked to a desired output frequency (e.g., a multiple of the input frequency of PLLin <NUM>).

As illustrated, the PLL system <NUM> includes a phase comparison block <NUM>, a loop filter block <NUM>, a voltage controlled oscillator block <NUM>, and a divider block <NUM>. The phase comparison block <NUM> can be implemented as a phase/frequency detector (PFD), or any other suitable component, that receives PLLin <NUM> at an input reference frequency (fREF) and compares PLLin <NUM> with a signal fed back by the feedback loop of the PLL system <NUM>. The fed back signal is at a feedback frequency (fFDBK) <NUM>. The output of the phase comparison block <NUM> is a function of the comparison and is fed to the loop filter block <NUM>. The loop filter block <NUM> can include any suitable components for facilitating filtering over the feedback loop, such as a charge pump and a low-pass filter. The output of the loop filter block <NUM> can be used as a control voltage for controlling the VCO block <NUM>. The VCO block <NUM> can include any suitable oscillator, such as an inductive-capacitive (LC) oscillator, a ring oscillator, etc..

The output frequency of the PLL system <NUM> (i.e., the frequency of PLLout <NUM>), or fOUT, is a function of a dividing value associated with the divider block <NUM>. For example, if the divider block <NUM> is designed to divide fOUT by N (e.g., where N is a non-zero integer), the PLL system <NUM> will seek to lock fOUT to a frequency that is N times fREF (the frequency of PLLin <NUM>). In that way, the dividing value associated with the divider block <NUM> can effectively define the mathematical relationship between the frequencies of PLLout <NUM> and PLLin <NUM>, thereby effectively controlling fOUT.

Some applications of such a PLL system <NUM> can exploit the ability of the divider block <NUM> to control fOUT for use in frequency modulation. For example, frequency modulation (FM) transmitters can use a data signal to modulate the frequency of a carrier signal, such that modulations in the carrier frequency effectively encode the data of the data signal. Some FM transmitters implement frequency modulation by injecting the data signal into the divider block <NUM> along with PLLout <NUM>. In such implementations, when no data signal is present (i.e., only PLLout <NUM> is present at the input to the divider block <NUM>), the PLL system <NUM> would be configured to output the carrier signal (i.e., fOUT would be a desired carrier frequency). When both PLLout <NUM> and a data signal are present at the input of the divider block <NUM>, the data signal can affect the frequency of the signal output by the divider block <NUM> (fFDBK <NUM>), thereby affecting the frequency of PLLout <NUM> (fOUT), resulting in a modulated output of the PLL system <NUM>.

In some applications, it is desirable for the PLL system <NUM> to output a fractional (i.e., non-integer) multiple of the reference frequency. In such applications, a so-called fractional divider can be used in the PLL system <NUM>, and the fractional dividing value can be characterized as "N. F," where "N" is the integer portion of the fractional dividing value, and "F" is the fractional portion of the fractional dividing value. For example, using a fractional divider, the PLL system <NUM> seeks to lock fOUT to a frequency that is N. F times fREF. In some applications, such a fractional divider can be used to implement FM. For reference, a block diagram of a conventional implementation of a fractional divider block (indicated as <NUM>') is shown. The illustrated fractional divider block <NUM>' includes a first adder <NUM>, a fractionalizer <NUM>, a second adder <NUM>, and an integer divider <NUM>. The fractionalizer <NUM> operates to generate the fractional portion of the fractional dividing value ("F") as a function of a received data signal <NUM>. For example, the value of F changes dynamically in response to changes in the data signal <NUM>. In the illustrated implementation, the first adder <NUM> takes some base F<NUM> <NUM> value (e.g., corresponding to a carrier frequency) as one input, and takes the data signal <NUM> as its other input, such that the output of the first adder <NUM> is the sum of the two. The sum is the desired F <NUM>, which effectively corresponds to the carrier modulated by the data signal <NUM>). The output of the fractionalizer <NUM> is typically a changing integer value that time-averages to the desired F <NUM>. The second adder <NUM> can then add the output of the fractionalizer <NUM> to a set value of N <NUM> (i.e., the integer portion of the fractional dividing value), such that the output of the second adder <NUM> is a changing integer value that time-averages to N. This changing integer value is fed into the integer divider <NUM>. The integer divider <NUM> receives PLLout <NUM>, and can generate a feedback signal as a function of dividing fOUT by the changing integer value output from the adder <NUM>. Thus, the average of fFDBK <NUM> over time is effectively fOUT divided by N. F, as desired.

Conventional fractionalizers <NUM> are implemented to produce a desired F <NUM> as an average over time. Some such conventional fractionalizers <NUM> are implemented to generate a periodic function that averages over time to the desired F <NUM>. For example, to achieve an F <NUM> of <NUM>, such a fractionalizer <NUM> may generate a periodic stream of integers, such as "<NUM><NUM><NUM><NUM><NUM><NUM><NUM><NUM>. " While such an approach can accurately generate a desired fractional value, the periodicity of the change in the dividing value effectively causes fFDBK <NUM> to change at a constant period. This periodic change in fFDBK <NUM> can manifest as constant power in one or more particular frequencies, thereby resulting in spurious energy ("spurs") and/or other undesirable artifacts that can corrupt PLLout <NUM>. To minimize such artifacts, other conventional implementations of fractionalizers <NUM> can use a so-called "sigma-delta" architecture. Rather than using a periodic function to produce desired time-averaging, sigma-delta architectures can use pseudorandom functions to generate a stream of integers that time-averages to the desired F <NUM>. For example, to achieve an F <NUM> of <NUM>, such a fractionalizer <NUM> may generate a stream of integers, such as "<NUM><NUM> -<NUM><NUM> -<NUM><NUM><NUM><NUM><NUM> -<NUM>. " Because the functions are not perfectly random, some artifacts (e.g., spurs) can still manifest on PLLout <NUM>, but such artifacts are typically reduced in power and spread manifesting as a minimal increase in the noise floor. Further, some such architectures can use noise shaping, or other techniques, to push the noise out of band.

While such conventional fractional divider blocks <NUM>' can be effective in many applications, embodiments described here recognize and seek to address a limitation to such conventional fractional divider blocks <NUM>' that arise in certain circumstances. Such circumstances are illustrated by <FIG> show plots <NUM> corresponding to a portion of an illustrative frequency modulated signal <NUM> and a corresponding modulation of an illustrative fractional dividing value (N. F) <NUM> to generate the signal <NUM> using a conventional fractional divider PLL. Turning to <FIG>, a first plot 200a is shown of a portion of the illustrative frequency modulated signal <NUM>. As shown, the frequency <NUM> of the signal <NUM> changes over time <NUM>. For example, the signal <NUM> represents a data signal used to modulate the frequency of a carrier; the carrier can be at <NUM> Megahertz (MHz), and the bandwidth of the signal <NUM> can be around <NUM>. <FIG> shows corresponding N. F values <NUM> that can be used to generate the signal <NUM> using a conventional fractional divider PLL, such as the one described with reference to <FIG>. For example, using a fREF of <NUM> at the input to the PLL, and using an integer divider value of N = <NUM>, the PLL will seek to lock fOUT to N times fREF, or <NUM>. Similarly, using a fractional dividing value (N. F) <NUM> of <NUM> can yield an fOUT of <NUM> (i.e., <NUM> times <NUM>). In such a case, N <NUM> would be set to <NUM>, and F <NUM> would be set to <NUM>. It can be assumed that F <NUM> can be any integer between zero and some maximum number (e.g., "<NUM>"), for example, depending on the number of bits used to represent F <NUM>.

As illustrated, changing the frequency <NUM> of the signal <NUM> involves a corresponding change in N. For example, beginning at the far left of the plot, the frequency <NUM> starts roughly at the carrier frequency, and N. F <NUM> begins roughly at <NUM>. As the frequency <NUM> increases, N. F <NUM> increases, accordingly. Notably, the N <NUM> portion of N. F <NUM> can stay the same (e.g., N = <NUM>), while the F <NUM> portion of N. F <NUM> increases. Such continues to be the case, with N <NUM> staying the same, and F <NUM> changing, until the signal <NUM> reaches the point labeled <NUM>. At point <NUM>, the frequency <NUM> of the signal <NUM> falls below <NUM>, corresponding to an N. F <NUM> value of <NUM> (i.e., N = <NUM>, and F = <NUM>). Just past that point <NUM>, the N <NUM> component of N. F <NUM> reduces by one, and the F <NUM> component of N. F <NUM> jumps to a value at or near its maximum value. For example, as the frequency <NUM> crosses <NUM>, it is desirable for N. F <NUM> to be <NUM>, then <NUM>, then <NUM>.

Referring back to the illustrative fractional divider block <NUM>' in <FIG>, there is a difference in signal path between the inputs to the second adder <NUM>. In particular, one input of the second adder <NUM> is directly tied to N <NUM>, while the other input to the adder <NUM> is tied to F <NUM> through the fractionalizer <NUM>. Thus, the path delay over which a change in N <NUM> is reflected at its corresponding input to the second adder <NUM> is shorter than the path delay over which a change in F <NUM> is reflected at its corresponding input to the second adder <NUM>. When N <NUM> is staying constant and only F <NUM> is changing, this path delay does not practically impact operation of the PLL (e.g., other than contributing to a slight and consistent delay between modulations in the data signal and corresponding modulations in PLLout <NUM>). However, when both N <NUM> and F <NUM> change concurrently, the different path delays may cause those changes to be reflected incorrectly in the generated N.

For example, turning back to <FIG>, in association with the frequency <NUM> of the signal <NUM> falling below <NUM> (corresponding to N. F <NUM> being <NUM>), there is a large deviation in the effective N. F <NUM> value. As the frequency <NUM> crosses <NUM>, the N <NUM> component of N. F <NUM> can change from <NUM> to <NUM> relatively quickly (e.g., because of the short path delay), while the change in the F <NUM> component of N. F <NUM> may take a longer time to jump from a very low value (e.g., at or near <NUM>) to a very high value (e.g., at or near its maximum value) due to its longer path delay. For example, the value of N. F <NUM> may progress as follows: <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>,. An illustration of this occurrence is shown as spike <NUM> in <FIG>. Also as illustrated, a similar spike can occur when the frequency <NUM> crosses back over <NUM>. For example, the value of N. F <NUM> may progress as follows: <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>,.

Embodiments described herein include novel implementations of fractional dividers that can maintain accurate generation of N. F even for FM signals that cross an N boundary. <FIG> shows a block diagram of an illustrative shifting fractional divider system <NUM>, according to various embodiments. The shifting fractional divider system <NUM> can be implemented as part of a fractional divider PLL, such that the shifting fractional divider system <NUM> can enable a PLL to output an output signal having an output frequency that is a fractional (i.e., non-integer) multiple of the reference frequency of its input signal. The shifting fractional divider system <NUM> can include a fractional domain portion <NUM> and an integer domain portion <NUM>.

The fractional domain portion <NUM> includes a fractional shifting modulator <NUM> and a fractionalizer <NUM>. The fractionalizer <NUM> can operate substantially as described above to output a sequence of integer values that time-average to a desired F value received at its input. For example, the fractionalizer <NUM> can be implemented using a sigma-delta architecture, or in any other suitable manner. Generation of the F value is performed by the fractional shifting modulator <NUM> in accordance with a base fractional component (F<NUM>) <NUM>, a data signal <NUM>, and a shift value (A) <NUM>, such that the F value is generated as a shifted F value <NUM>. In general, shifted F <NUM> is generated to reflect F<NUM> <NUM> (e.g., corresponding to a fractional component of a carrier frequency) as modulated by the data signal <NUM>. However, in generating shifted F <NUM>, the fractional shifting modulator <NUM> also seeks to avoid situations in which both the N and F components of N. F change concurrently (e.g., as described above) by applying shifting to F selectively.

Embodiments of the fractional shifting modulator <NUM> make a determination as to whether the N. F value is likely to change in a manner that crosses an N boundary (e.g., where the N value changes, for example, from N = <NUM> to N = <NUM>, or the like). In some implementations, such a determination can be made statically, such as by setting A <NUM> to a predetermined value. For example, if the carrier frequency and bandwidth of the data signal <NUM> are known, it can be predetermined whether N. F will likely have to cross an N-boundary to track the modulating data signal <NUM>. In other implementations, such a determination can be made dynamically using an N-crossing detector <NUM>. Embodiments of the N-crossing detector <NUM> can be implemented as part of the fractional shifting modulator <NUM>, or as a separate component, automatically to generate A <NUM> responsive to detecting N-boundary crossing conditions. Some implementations of the N-crossing detector <NUM> can monitor F and/or N. F to detect when the F value approaches a minimum and/or maximum value, indicating that the N. F value is approaching an N-boundary; and can adjust A <NUM>, accordingly. Other embodiments of the N-crossing detector <NUM> can monitor the frequency of PLLout <NUM>, of the data signal <NUM>, and/or of any other suitable signal to detect when the frequency is approaching a frequency corresponding to an N-boundary; and can adjust A <NUM>, accordingly. Adjusting A <NUM> can effectively shift F by some amount. For example, adjusting A can effectively shift F<NUM> <NUM> to be further from an N-boundary, as needed.

Using the shifted F <NUM> as the input to the fractionalizer <NUM> can cause the output of the fractionalizer <NUM> (and the output of the fractional domain portion <NUM> of the shifting fractional divider system <NUM>) to be a shifted fractional portion of the dividing value. The shifted output of the fractionalizer <NUM> can be added to N <NUM> by an adder <NUM> to generate a shifted modulating N <NUM> that time-averages to a shifted N. F (shifted according to A <NUM>). The shifted modulating N <NUM> is shifted in such a way that N and F do not change concurrently, thereby avoiding conventional limitations stemming from differences in path delay between the N and F paths. The shifted modulating N <NUM> can be received, in the integer domain portion <NUM> of the shifting fractional divider system <NUM>, by an integer de-shifter <NUM>. Embodiments of the integer de-shifter <NUM> can include any suitable components to remove the shift from the shifted modulating N <NUM> to generate a de-shifted modulating N <NUM>. The de-shifted modulating N <NUM> time-averages to the desired N. F (without any shift), which can be used by the divider <NUM> to generate a feedback signal of frequency fFDBK <NUM> from the PLLout <NUM> signal. Thus, the shifting can be used to avoid N-boundary crossings and related path delay concerns within the shifting fractional divider system <NUM>, without shifting the frequency of the feedback signal or PLLout <NUM>.

According to the invention, the shifting fractional divider system <NUM> includes multiple input nodes. As illustrated, the input nodes receive a dividing value signal that indicates a base dividing value (i.e., having a base integer component, N <NUM>, and a base fractional component, F<NUM> <NUM>). The input nodes can also receive some or all of the data signal <NUM> and PLLout <NUM>. In some embodiments, the input nodes can further receive a shift input signal (A <NUM>). Embodiments of the fractional shifting modulator <NUM> are coupled with at least some of the input nodes to generate the shifted fractional component value (shifted F <NUM>) as a function of the base fractional component <NUM>, the data signal <NUM>, and the shift input signal <NUM>. In some implementations, the fractional shifting modulator <NUM> includes a first scaler block to scale the data signal by the shift input signal to generate a scaled data signal, a second scaler block to scale the base fractional component by the shift input signal to generate a scaled base fractional component, and a set of adders to generate the shifted fractional component value by adding the shift input signal, the scaled data signal, and the scaled base fractional component. In some such implementations, the scaler blocks can multiply or divide by A <NUM>, as appropriate. For example, where A <NUM> indicates a shift value of <NUM>^(-S) (e.g., S is a non-zero integer, such that A <NUM> is <NUM>, <NUM>, or another suitable shift value), the scaler blocks can be multipliers; and where A <NUM> indicates a shift value of <NUM>^(S) (e.g., such that A <NUM> is <NUM>, <NUM>, or another suitable shift value), the scaler blocks can be dividers.

The shift value indicated by A <NUM> can be determined and/or controlled in any suitable manner. In some embodiments, A <NUM> can be manually or digitally preset to a desired value. For example, where the base dividing value is known and is unchanging, a suitable value of A <NUM> can be predetermined. In some such embodiments, rather than the shift value being settable by A <NUM>, the shift value is hard-coded. For example, one or more shift values is hard-coded and can be selected, and/or selectively activated, as appropriate. However, in some applications, the base dividing value (and or characteristics of the data signal <NUM>) is unknown or is changing. For example, in an FM tuner, in software-defined radio, and/or in other applications, the carrier frequency (e.g., which can dictate the base dividing value) can change, and/or the bandwidth (e.g., swing) of the data signal <NUM> can change. As such, it can be desirable to have dynamic (e.g., automated) control over A <NUM>. As such, some embodiments include the N-crossing detector <NUM> to monitor at least one of the input nodes to detect an N-boundary crossing condition, and to assert (e.g., turn on, turn off, adjust the indicated shift value of, etc.) the shift input signal <NUM> in accordance with detecting the N-boundary crossing condition. In some implementations, the N-crossing detector <NUM> can, in response to determining absence of an N-boundary crossing condition at a first time, adapt the shift input signal not to add any shifting as part of the generating the shifted fractional component value (e.g., to indicate a shift value of zero); and can, in response to determining presence of an N-boundary crossing condition at a second time, adapt the shift input signal to add shifting as part of the generating the shifted fractional component value (e.g., to indicate a non-zero shift value). In some implementations, determining the N-boundary crossing condition involves monitoring N <NUM> to detect when N <NUM> is less than a threshold distance away from an N-boundary, and asserting A <NUM> in response to detecting that N <NUM> is less than the threshold distance away from the N-boundary. For example, if the shifting fractional divider system <NUM> is being used in an environment in which the bandwidth of the data signal <NUM> is always B, regardless of the carrier frequency, an N-boundary crossing condition can be detected whenever N <NUM> is less than B/<NUM> (e.g., plus a guard band) away from an N-boundary (i.e., an integer multiple of the reference frequency). In other implementations, determining the N-boundary crossing condition involves monitoring a bandwidth of the data signal <NUM> to detect when modulating the base dividing value by the data signal <NUM> is predicted to cross an N-boundary, and asserting A <NUM> in response to detecting such a case. For example, if the shifting fractional divider system <NUM> is being used in an environment in which the carrier frequency (e.g., fREF x N. F<NUM>) stays relatively constant, but the bandwidth (B) of the data signal <NUM> is changing, an N-boundary crossing condition can be detected whenever B/<NUM> is less than the distance between any N-boundary and fREF x F<NUM>. In some embodiments, the shift value indicated by A <NUM> is a single value (e.g., <NUM>). In other embodiments, the shift value indicated by A <NUM> is selectable from one or more preset shift input values in accordance with detecting the N-boundary crossing condition. For example, for certain N-boundary crossing conditions, too small of a shift value may be insufficient to address the N-boundary crossing condition; and/or too large of a shift value may cause another N-boundary crossing condition.

The fractionalizer <NUM> is coupled with the fractional shifting modulator <NUM> to generate a first stream of integers responsive to receiving the shifted fractional component value <NUM>, such that the first stream of integers time-averages to the shifted fractional component value. In some implementations, the fractionalizer <NUM> includes a delta-sigma modulator, or other components to generate the first stream of integers as a pseudorandom sequence with the desired time-average over a particular time window. In other implementations, the fractionalizer <NUM> generates the first stream of integers as a periodic sequence with the desired time-average over the particular time window.

The integer de-shifter <NUM> is coupled with the fractionalizer <NUM> to generate a second stream of integers by de-shifting a sum of the first stream of integers and the base integer component, such that the second stream of integers time-averages to a modulated dividing value, the modulated dividing value corresponding to the base dividing value as modulated by the data signal. In some implementations, as illustrated, the adder <NUM> produces a third stream of integers that is the shifted modulating N <NUM>, corresponding to the sum of the first stream of integers and N <NUM>. In such implementations, the second stream of integers is the de-shifted modulating N <NUM>, which is generated by the integer de-shifter <NUM> as a function of the third stream of integers (which is the shifted modulating N <NUM>). In some implementations, the integer de-shifter <NUM> includes a de-scaler block to de-scale the shifted fractional component value according to the shift input signal to remove scaling applied by the fractional shifting modulator <NUM>, and/or a de-shifter block to de-shift the shifted fractional component value to remove shifting applied by the fractional shifting modulator <NUM>. The divider <NUM> is coupled with the integer de-shifter <NUM> to generate the feedback signal as a function of sequentially dividing a frequency of PLLout <NUM> by the second stream of integers (i.e., by the de-shifted modulating N <NUM>). As described herein, embodiments of the divider <NUM> can be disposed in a feedback path of a PLL, such that PLLout <NUM> is received by the divider from an output of the PLL, and the feedback signal is communicated from the divider <NUM> to a phase comparator at an input of the PLL.

For added clarity, <FIG> shows a plot <NUM> of illustrating operation of a fractional divider system, such as the shifting fractional divider system <NUM> of <FIG>. The plot <NUM> shows changes in N. F <NUM> over time <NUM> for a data signal, such as the one shown in <FIG>. As described with reference to <FIG>, there are points (e.g., point <NUM>) at which the frequency of the signal falls below an N-boundary (e.g., <NUM>). In such a case, without any shifting, may cause the N and F components of N. F <NUM> to change concurrently; and differences in path delay can cause such a concurrent change to result in an undesirable spike in the generated N. Referring to <FIG>, embodiments can detect that the signal will (or is likely to) cross an N-boundary, and can apply a shift by adjusting A <NUM>. With the applied shift, a shifted modulating N <NUM> is generated, which can effectively avoid any concurrent change of N and F, for example, as illustrated in <FIG>. The integer de-shifter <NUM> can then remove the shift in a portion of the shifting fractional divider system <NUM> that is not susceptible to path delay differences between the N and F paths, resulting in the de-shifted modulating N <NUM>. As illustrated, the de-shifted modulating N <NUM> can effectively match the un-shifted curve shown in <FIG>, except without any of the spikes at the N-boundary crossings. For example, while the un-shifted curve of <FIG> may have N. F <NUM> values around the N-boundary crossing of <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>,. (which includes a spike around the crossing point as the value jumps from <NUM> to <NUM>, then begins to recover); the shifted modulating N <NUM> (e.g., assuming a shift of <NUM>) may result in N. F <NUM> values around the N-boundary crossing of <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>,. ; and the de-shifted modulating N <NUM> may result in N. F <NUM> values around the N-boundary crossing of <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>,. (i.e., the first and last values of the de-shifted modulating N <NUM> match those generated without any shifting, but the values of the de-shifted modulating N <NUM> closer to the N-boundary crossing do not show any of the spikes present without any applied shifting).

<FIG> shows an illustrative fractional divider phase-locked loop (PLL) system <NUM> that includes an illustrative implementation of a shifting fractional divider, according to various embodiments. As described above, the PLL system <NUM> can include a phase comparison block <NUM>, a loop filter block <NUM>, an oscillator block <NUM>, and an N. F fractional divider subsystem <NUM>. The fractional divider subsystem <NUM> can be an implementation of the fractional divider system <NUM> of <FIG>. As described with reference to <FIG>, the fractional divider subsystem <NUM> can include a fractional domain portion <NUM> and an integer domain portion <NUM>. The fractional domain portion <NUM> includes a fractional shifting modulator <NUM> to generate a shifted F <NUM>, which can be used by a fractionalizer <NUM> to generate a sequence of integers that time-average to the shifted F <NUM> value. N <NUM> can then be added to the sequence of integers output from the fractionalizer <NUM> (by adder <NUM>) to produce a sequence of integers (a shifted modulating N) that time-averages to a shifted N. In the integer domain portion <NUM>, an integer de-shifter <NUM> can remove the shift from the shifted modulating N values to generate a de-shifted modulating N, which time-averages to the desired N. The de-shifted modulating N can be used by a divider <NUM> to generate a feedback signal having a frequency of fFDBK <NUM>, which, on average, corresponds to the frequency of PLLout <NUM> (fOUT) divided by N. F, even as N. F changes in accordance with modulations from the data signal <NUM>.

As illustrated, the fractional shifting modulator <NUM> can be implemented using a first multiplier block <NUM>, a second multiplier block <NUM>, a first adder block <NUM>, and a second adder block <NUM>. The first multiplier block <NUM> multiplies a base fractional component (F<NUM>) <NUM> by a shift value (A) <NUM>, and the second multiplier block <NUM> multiplies the data signal (D) <NUM> by the shift value (A) <NUM>. Thus, the output of the first multiplier block <NUM> can be characterized as A x F<NUM>, and the output of the second multiplier block <NUM> can be characterized as A x D. A <NUM> can be generated in any suitable manner. As described above, A <NUM> can be generated manually or automatically. Further, A can be any suitable value, such as a single fixed value, a selected one of multiple predetermined values, a dynamically generated value, etc., that can be selectively asserted or de-asserted to apply or remove shifting. Though not shown to avoid overcomplicating the figure, the fractional divider subsystem <NUM> can include an N-crossing detector <NUM> that automatically generates A <NUM> (e.g., dynamically generates, asserts, etc.) responsive to detecting an N-boundary crossing condition (e.g., a condition indicating an impending, predicted, or possible N-boundary crossing).

The first adder block <NUM> can add A <NUM> to the output of the first multiplier block <NUM>, thereby outputting A + (A x F<NUM>), or A x (<NUM> + F<NUM>). The second adder block <NUM> can add the output of the first adder block <NUM> to the output of the second multiplier block <NUM>, thereby outputting A + (A x F<NUM>) + (A x D), or A x (<NUM> + F<NUM> + D). This output of the second adder block <NUM> can be the shifted F <NUM>, which can be used as the input to the fractionalizer <NUM>. In some embodiments, A <NUM> is selected as one or more values that are simple to implement using digital (e.g., binary) components. For example, if A335 is <NUM>, multiplying or dividing by A <NUM> can be implemented simply by removing or adding a least significant bit (e.g., using a shift register), respectively. In such an example, the input to the fractionalizer <NUM> is effectively <NUM> x (<NUM> + F<NUM> + D). The fractionalizer <NUM> can generate a sequence of integers that time-average to the shifted F <NUM>.

The integer de-shifter <NUM> can include a division block <NUM> and a subtraction block <NUM>. Notably, the output of the fractionalizer <NUM> is scaled by a factor of A335. The division block <NUM> can effectively de-scale the shifted F <NUM> by dividing the output of the fractionalizer <NUM> by A <NUM>. Thus, the output of the division block <NUM> can be characterized as A x (<NUM> + F<NUM> + D) / A, which equals <NUM> + F<NUM> + D. The output of the division block <NUM> can be fed to adder <NUM>, which can add that output to N <NUM>. The output of adder <NUM>, then, can be characterized as N + <NUM> + F<NUM> + D. This can be fed to the subtraction block <NUM>, which can subtract by '<NUM>', such that the output of the integer de-shifter <NUM> can be characterized as N + F<NUM> + D. This result corresponds to a changing sequence of integer values that time-averages to the desired modulating N. F, which can be used by the divider <NUM> to generate the feedback signal from the PLLout <NUM> signal.

While <FIG> shows a particular implementation of the fractional divider subsystem <NUM>, modifications can be made without appreciably impacting the functionality described above. For example, components shown as multipliers can be implemented as dividers by setting A <NUM> to its reciprocal (e.g., multiplying by A = <NUM> is essentially equivalent to dividing by A = <NUM>). Further, components can be distributed and/or combined in any suitable manner. For example, while the division block <NUM> is shown as part of the integer de-shifter <NUM>, it can be implemented as a separate component in other embodiments.

<FIG> shows a flow diagram of an illustrative method <NUM> for fractionally dividing a clock output signal to generate a feedback signal, according to various embodiments. Embodiments of the method <NUM> begin at stage <NUM> by receiving a dividing value signal and a data signal. The dividing value signal indicates a base dividing value (e.g., N. F) having a base integer component (N) and a base fractional component (F<NUM>). At stage <NUM>, the invention generates a shifted fractional component value as a function of the base fractional component, the data signal, and a shift value. For example, the shifted fractional component value represents the base fractional component, as modulated by the data signal, and as shifted by the shift value (e.g., as set by a shift input signal, hard-coded, etc.). As described herein, the shift value (e.g., shift input signal) can be applied selectively to shift the fractional component of the dividing value away from N-boundaries, where desired.

At stage <NUM>, the invention generates a first stream of integers responsive to generating the shifted fractional component value, such that the first stream of integers time-averages to the shifted fractional component value. At stage <NUM>, the invention generates a second stream of integers by de-shifting (e.g., removing shifting and/or scaling of) a sum of the first stream of integers and the base integer component, such that the second stream of integers time-averages to a modulated dividing value. The modulated dividing value corresponds to the base dividing value as modulated by the data signal. For example, the generating at stage <NUM> can essentially remove the impact of the shift input signal. At stage <NUM>, the invention generates the feedback signal as a function of sequentially dividing a frequency of the clock output signal by the second stream of integers. Effectively, the generating at stage <NUM> involves integer dividing of the clock output signal frequency to generate a feedback signal with a feedback frequency, and the integer dividing value changes in accordance with the second stream of integers in a manner that time-averages to a desired modulating fractional dividing value.

It will be understood that, when an element or component is referred to herein as "connected to" or "coupled to" another element or component, it can be connected or coupled to the other element or component, or intervening elements or components may also be present. In contrast, when an element or component is referred to as being "directly connected to," or "directly coupled to" another element or component, there are no intervening elements or components present between them. It will be understood that, although the terms "first," "second," "third," etc. may be used herein to describe various elements, components, these elements, components, regions, should not be limited by these terms. These terms are only used to distinguish one element, component, from another element, component. Thus, a first element, component, discussed below could be termed a second element, component, without departing from the teachings of the present invention. As used herein, the terms "logic low," "low state," "low level," "logic low level," "low," or "<NUM>" are used interchangeably. The terms "logic high," "high state," "high level," "logic high level," "high," or " <NUM>" are used interchangeably.

As used herein, the terms "a", "an" and "the" may include singular and plural references. It will be further understood that the terms "comprising", "including", having" and variants thereof, when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof. In contrast, the term "consisting of" when used in this specification, specifies the stated features, steps, operations, elements, and/or components, and precludes additional features, steps, operations, elements and/or components. Furthermore, as used herein, the words "and/or" may refer to and encompass any possible combinations of one or more of the associated listed items.

While the present invention is described herein with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Rather, the purpose of the illustrative embodiments is to make the present invention be better understood by those skilled in the art. In order not to obscure the scope of the invention, many details of well-known processes and manufacturing techniques are omitted. Various modifications of the illustrative embodiments, as well as other embodiments, will be apparent to those of skill in the art upon reference to the description.

Claim 1:
A fractional divider system (<NUM>, <NUM>), comprising:
a plurality of input nodes to receive a dividing value signal, a shift input signal, and a data signal (<NUM>), the dividing value signal indicating a base dividing value having a base integer component (<NUM>) and a base fractional component (<NUM>);
a fractional shifting modulator (<NUM>) coupled with at least some of the plurality of input nodes to generate a shifted fractional component value (<NUM>) as a function of the base fractional component (<NUM>), the data signal (<NUM>), and a shift value (<NUM>) set by the shift input signal, wherein the shifted fractional component value (<NUM>) represents the base fractional component (<NUM>), as modulated by the data signal (<NUM>), and as shifted by the shift value (<NUM>), and the shift input signal is applied to shift the base fractional component (<NUM>) of the dividing value signal away from an N-boundary;
a fractionalizer (<NUM>) coupled with the fractional shifting modulator (<NUM>) to generate a first stream of integers responsive to receiving the shifted fractional component value (<NUM>), such that the first stream of integers time-averages to the shifted fractional component value (<NUM>);
an integer de-shifter (<NUM>) coupled with the fractionalizer (<NUM>) to generate a second stream of integers (<NUM>) by de-shifting a sum of the first stream of integers and the base integer component (<NUM>), such that the second stream of integers time-averages to a modulated dividing value, the modulated dividing value corresponding to the base dividing value as modulated by the data signal; and
a divider (<NUM>) coupled with the integer de-shifter to generate a feedback signal as a function of sequentially dividing a frequency of a clock output signal by the second stream of integers (<NUM>).