The present invention is related to the field of electrical circuits, and more specifically to electrical circuits, devices, and methods for prescaling to divide a fast pulsed signal, such as a fast clock.
It is often desired to have circuits with very fast internal clocks. These are used in applications such as driving the pixels of a display. Generating such clocks often requires that they be divided back, so that their frequency can be defined via a Phase Locked Loop (PLL).
The invention will become more readily apparent from the following Detailed Description, which proceeds with reference to the accompanying drawings, in which:
The present invention is now described. While it is disclosed in its preferred form, the specific embodiments of the invention as disclosed herein and illustrated in the drawings are not to be considered in a limiting sense. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Indeed, it should be readily apparent in view of the present description that the invention may be modified in numerous ways. Among other things, the present invention may be embodied as devices, methods, software, and so on. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
Throughout the specification, the meaning of “a,” “an,” and “the” may also include plural references. The meaning of “in” includes “in” and “on.” The term “coupled” means a direct connection between the items that are connected, or an indirect connection through one or more intermediary devices or components. The term “pulse” includes a pulse whose waveform may or may not be rectangular from a baseline signal.
Briefly, the present invention provides circuits, devices and methods for dividing a fast pulse signal by an integer M. In an embodiment, a circuit generates a fast clock signal, which is divided by M to provide a clock sync feedback.
In some embodiments, a dual modulus prescaler is arranged to receive periodic input pulses. The prescaler then counts the received input pulses, and generates one prescaled pulse for every Qth input pulse. Q is a division modulus, and has a different value depending on a modulus control signal. When the prescaler generates a prescaled pulse from an input pulse, it then ignores the modulus control signal at least until the onset of a next input pulse, and sometimes until the onset of one more input pulse. A program counter generates a reset signal when the prescaler receives the Mth pulse. A swallow counter then changes the modulus control signal to a different value. Accordingly, the prescaler starts dividing by a different division integer. Even if the modulus control signal changes after the prescaler has already received the onset of the next one or two input pulses, the prescaler accounts for them properly, for dividing with the different division integer.
The invention offers the advantage that a fast pulse input signal can be used, and thus a faster clock can be generated with little additional change. There is no limitation that the period of the input pulses must be longer than how long it takes for the modulus control signal to be changed due to the reset signal.
The invention is now described in more detail.
In both FIG. 1 and
Referring now also to
Returning to
Referring now also to
As seen also above with reference to
Returning to
Referring now also to
Referring now to
Signal CK45 has prescaled pulse 624 in waveform 420, caused by Mth pulse 614 in waveform 410. Counter_reset signal 430 includes a pulse 634, caused by prescaled pulse 624 in waveform 420. Modulus control signal DIV4450 includes a change 654 from 1 to 0, caused by pulse 634. The meaning of that is shown in diagram 455, where the instruction “divide by 4” changes to “divide by 5”.
There is a critical path delay CPD6662 from the onset of Mth pulse 614 to change 654, which is caused by the delay of the components in reacting to new signals. The delay forces design such that period Tc of input pulsed signal clkin (waveform 410) is maintained longer than CPD6662, so that when next input pulse 616 is received, modulus control signal DIV4 will have reached its final value. This delay limits the speed of input pulses 410, and thus the frequency of the generated clock.
As will be explained in more detail below, the invention includes a prescaler that has at least two moduli, and internal arrangement that avoids this problem. In a prescaler according to the invention, when a prescaled pulse is generated from a selected input pulse, the modulus control signal is ignored at least until the onset of a next input pulse is received. Ignoring takes place irrespectively of the period of the input pulses. Regardless, even if the ignored modulus control signal acquires a different value due to the input pulse, the next pulse is counted according to a correspondingly different value of the modulus of the prescaler.
Ignoring the modulus control signal is performed according to one of at least three ways according to the invention. In some embodiments, the modulus control signal is latched for one input pulse cycle, so a change of it does not become known. In other embodiments, the modulus control signal is substituted by a forced value for that input cycle.
In yet other embodiments, the prescaler is made from components that define state variables. In some of these instances, the components output signals that encode the state variables. The components may be logical circuits, and the state variables may be binary, such as one or zero. In some of these embodiments, the state variables are initialized to particular values when a prescaled pulse is generated. These embodiments exploit the fact that the modulus control signal has a known value at that time. In the examples described in this document, N=4, and the value of DIV4 changes from one to zero. The modulus control signal is ORed with another signal that has an initialized value of one, and thus the change of the modulus control signal does not matter, while the next input pulse is properly accounted for. In some of these embodiments, the state variables become initialized to the particular values also when a Power On Reset is performed. Particular examples are described below.
After state 810, the next input pulse takes to state 820, and one more input pulse takes to state 830. It should be observed that for reaching both states 820 and 830 the value of DIV4 does not matter (“XX=DON'T CARE”), because it is ORed with state variable D0, which is one. This way, even if modulus control signal DIV4 changes (e.g. due to a very fast input clock), the operation will not be affected.
At state 830, it is inquired for the first time what is the value of DIV4. If the value is 1, then it takes two more states (840, then 810 again), for a total of N=4, to accomplish division by four. If at state 830 DIV4 is found to be 0, then it takes three more states (850, then 860, then 810 again), for a total of N+1=5, to accomplish division by five.
A faster input clkin waveform 910 may be received, which has a period Tcf 912 shorter than-period Tc 612 of waveform 410. It can be appreciated that waveform 910 is shown with the same number of pulses as the earlier clock 410, but requires less time (measured on the horizontal time axis), because it is faster, as enabled by the invention.
Pulse 914 of waveform 910 is the Mth pulse, and pulse 916 is the next pulse. Much of the behavior is similar to what is described in FIG. 6. In other words, a prescaled pulse 924 is generated in CK45 waveform 920, in response to input pulse 914. Pulse 924, however, is generated by the instructions of
Moving from a start block, the process advances to a block 1110, where a modulus control signal is looked up. This determines the value of modulus Q of the moment. At a next block 1120, an input pulse is received. At a next block 1130, a count of input pulses is updated. At optional next block 1140, it is determined whether the count equals Q. If not, then execution returns to block 1110, to ultimately receive another input pulse.
If at block 1140 the count of input pulses equals Q, then at a next block 1150, a prescaled pulse is generated. Then at a next block 1160, the count is reset to zero, and execution returns to block 1120. This way another input pulse is received and counted, but by skipping block 1110. Accordingly, even if the modulus control signal has changed, and therefore Q has changed, it does not become known for at least one cycle.
Additionally, a divided down signal can be generated in response to the prescaler receiving the Mth pulse. Also, a synchronized signal can be generated in response to the divided down signal. Furthermore, a fast clock signal can be generated in response to the synchronized signal, and the input periodic pulses can be derived from the fast clock signal.
Numerous details have been set forth in this description, which is to be taken as a whole, to provide a more thorough understanding of the invention. In other instances, well-known features have not been described in detail, so as to not obscure unnecessarily the invention.
The invention includes combinations and subcombinations of the various elements, features, functions and/or properties disclosed herein. The following claims define certain combinations and subcombinations, which are regarded as novel and non-obvious. Additional claims for other combinations and subcombinations of features, functions, elements and/or properties may be presented in this or a related document.
Number | Name | Date | Kind |
---|---|---|---|
4184068 | Washburn | Jan 1980 | A |
4325031 | Ooms et al. | Apr 1982 | A |
4575867 | Hogue | Mar 1986 | A |
RE32605 | Yamashita et al. | Feb 1988 | E |
4991187 | Herold et al. | Feb 1991 | A |
5084907 | Maemura | Jan 1992 | A |
5202906 | Saito et al. | Apr 1993 | A |
5534821 | Akiyama et al. | Jul 1996 | A |
5572168 | Kasturia | Nov 1996 | A |
5818293 | Brehmer et al. | Oct 1998 | A |
5841302 | Ishii et al. | Nov 1998 | A |
5859890 | Shurboff et al. | Jan 1999 | A |
5867068 | Keating | Feb 1999 | A |
5878101 | Aisaka | Mar 1999 | A |
5892405 | Kamikubo et al. | Apr 1999 | A |
5982840 | Aisaka | Nov 1999 | A |
6097782 | Foroudi | Aug 2000 | A |
6163181 | Nishiyama | Dec 2000 | A |
6385276 | Hunt et al. | May 2002 | B1 |
6559726 | Stansell | May 2003 | B1 |
6603360 | Kim et al. | Aug 2003 | B2 |
6737899 | Sudjian | May 2004 | B2 |