This invention relates to the field of semiconductor memories such as SDRAM or SRAM or GSDRAM and other devices that have a need to synchronize and phase align data and other output signals to the phase of an applied input clock. This is commonly done for purposes of delivering said signals to another device, such as a controller, in a reliable and predictable manner. Said invention also applies to other semiconductor devices such as CPU's and Controllers that have a need to exchange data and other signals between them and other devices in synchronized manner to an applied clock input.
This invention also applies to delivering to distant devices clock signals equal in frequency to the applied input clock and phase aligned to same. Such clock signals are known as zero delay clock signals.
In many applications where an output signal from a silicon chip has to maintain a certain relation to the phase of an applied clock, a synchronization mechanism is required. In prior art, such as SDRAM devises, a data bit output named DQ has to be valid within a range of times before and or after the rising edge of the clock is applied to the SDRAM device. Such times are defined in the specification time tables of the device as tAC (tACCESS) time from clock.
Many designs have been implemented in today's SDRAM, SRAM and GSDRAM devices to accomplish the tAC timings. One such device is known as Delay Locked Loop (DLL). U.S. Pat. No. 5,796,673 by Richard C. Foss et al. describes such DLL methods. In all of the designs known, a clock is applied to the device and delay means, such as Delay Locked Loop, are used to phase shift its rising edge. Then comparator circuits are used to align the phases of both signals, that is, the clock input and delayed clock, so that the output of the data bit signal will be available at the output pin at a predefined time when clocked by this delayed clock signal.
Other synchronization methods used, besides DLL, include the Phase Locked Loop (PLL) method. Such methods use some form of analogue circuitry for comparison of phases and resolution of the delay to be adjusted and applied to the clock path. As such take a lot of cycles to synchronize. The delayed synchronization which results makes such methods undesirable. This is especially true where it required to conserve power without loss of time for synchronization.
Any analogue type of synchronization uses excessive power, and requires many cycles to re-synchronize to the applied clock. Furthermore, in some cases it is not desirable to mix digital with analog circuits in the same manufacturing process.
The PLL technique is mainly used to duplicate an applied input clock and to then distribute single or multiple output copies to distant devices, or to internal circuits of the same device, with phase synchronization at the receiving device. Such devices are known as zero clock buffer devices. Typical applications include a memory module apparatus where multiple SDRAM devices are attached on a printed circuit board, wherein all require to have input clock signals phase synchronized and aligned to a system clock. To accomplish this, a separate silicon device is designed to accept an input clock and to generate multiple output copies to be distributed to the SDRAM devices.
The generation of said signals and the propagation to the distant devices produces a considerable phase shift. To eliminate this phase shift within practical and acceptable measures, the PLL utilizes a feedback loop that is adjusted to duplicate the delay path. The input signal is loaded from the output of the PLL driver to the SDRAM devices and compares the phase of this feedback loop to the clock applied to the PLL device. The phases of the applied clock and of the feedback clock are compared and converted to a voltage, which controls the frequency of a Voltage Controlled Oscillator (VCO). The VCO advances or retards the output clocks so that the clocks driving the SDRAM devices are in phase with the clock signal applied to the PLL input.
The current invention performs many of the operations of prior art analog inventions. However, it does so by use of purely digital methods and circuits, and provides the added benefits of low power, as well as the ability to start and stop on command, without loss of time and synchronization.
It is an object of the present invention to provide a method for phase synchronizing an output signal with an input clock signal. It is a further object of performing the synchronization within the context of on-demand oscillator synchronization.
In accordance with a first aspect of the invention an output signal of a device is synchronized so as to be phase aligned with an input clock signal applied to same device.
In accordance with a second aspect of the invention an oscillator signal is provided having a period Πn of 1/(f1*2n), wherein n is an integer, wherein f1 is the clock frequency, and wherein the oscillator signal is phase aligned with the input clock signal.
In accordance with a third aspect of the invention a multiplicity of delayed signals sdk are generated, where k is an integer, with each delayed signal having the same period Πc as the input clock signal, and wherein delayed signal sd1 is delayed by one-half the oscillator period Πn from the input clock signal.
In accordance with a fourth aspect of the invention a multiplicity of delayed signals sd(k+1) are delayed by one-half the oscillator period Πn from delayed signal sdk for each value of k.
In accordance with a fifth aspect of the invention the phase difference ΔΦk between an unadjusted output signal and delayed signal sdk is measured for each value of k.
In accordance with a sixth aspect of the invention the value of k, equal to km, resulted in the smallest positive value of ΔΦk measured, is determined.
In accordance with a seventh aspect of the invention a coarse delay time Δτ1 is added to the clock signal, creating a delayed clock signal, wherein Δτ1 is equivalent to the smallest positive value of ΔΦk measured.
In accordance with an eighth aspect of the invention a new output signal is generated by use of the delayed clock signal, the new output signal being delayed by time Δτ1 from the output signal.
In accordance with a ninth aspect of the invention the phase alignment of the oscillator signal with the input clock signal is effected by aligning a rising edge of the oscillator signal with a rising edge of the input clock signal.
In accordance with a tenth aspect of the invention generating the output signal is accomplished by gating circuits.
In accordance with an eleventh aspect of the invention a fine delay time is generated by the steps which include determining the phase difference ΔΦk2 between the new output signal and the delayed signal sdk corresponding to k=km.
In accordance with a twelfth aspect of the invention a fine time delay Δτ2, equivalent to phase difference ΔΦk2, is generated.
In accordance with a thirteenth aspect of the invention a delay of Δτ2 is added to the delayed clock signal.
In accordance with a fourteenth aspect of the invention the generating of the fine delay time further is accomplished by passing the output signal through a delay tree.
In accordance with a fifteenth aspect of the invention generating the fine delay time is accomplished by selecting the branches of the delay tree which produces the delay closest in magnitude to Δτ2.
In accordance with a sixteenth aspect of the invention the delay tree includes a multiplicity of gates of preselected delay characteristics, and with a multiplicity of selection taps.
These, and further features of the invention, may be better understood with reference to the accompanying specification and drawings depicting the preferred embodiment, in which:
a depicts an arrangement of digital circuits that comprise a basic free running ring oscillator.
b depicts an arrangement of digital circuits that comprise a gated ring oscillator that includes a delay block inserted in the loop.
c depicts a gated ring oscillator with the delay inserted in the loop and with a gated oscillator output.
a depicts a timing diagram derived from the logic of
a depicts a timing diagram of the derived signals from the design of
b depicts a timing diagram showing the signal produced by the circuit of
c depicts two digital circuits used for comparison of two signals which produce a pulse for time measurement of the phase difference between the two signals.
d depicts a collection of Set/Rest latches used to measure duration of the pulse generated by the circuits of
a depicts a timing diagram, showing the relationship of the SYNC pulse to the first 4×CLK rising edge of the circuit of
a depicts a timing diagram of the circuit of
An “Oscillator-on-Demand” is, by definition, an oscillator which does not oscillate until it is gated to start. The detailed description of the invention defines how the oscillator is constructed and how it will operate on demand along with a method of synchronization with an external clock source.
This invention relates to methods and to the apparatus in which a gated ring oscillator is constructed in silicon and controlled to provide a base clock frequency multiple times higher than the frequency of an applied clock signal. The multiplication factor in this device is a power of 2 times that of the clock signal.
Such a ring oscillator has the ability to be turned On and Off without generating a time delay before synchronization to the control signal is effected.
This circuit has the ability to provide multiple clock frequencies derived from the base ring frequency and to further provide a plurality of multiply phase shifted clocks, while maintaining a synchronized relationship to the incoming control clock.
The ring oscillator frequency is adjustable to cover a range of frequencies based on the frequency of the controlling clock. The ring oscillator reproduces the period of the controlling incoming clock and maintains a good synchronization therewith. It uses neither the customary Voltage Control Oscillator nor the Delay Locked Loop methods.
The designed base frequency is altered by circuit delays, based on the inherent delays of the silicon hardware, providing an adjustment to the required clock frequency. It uses methods of measuring the duration of signals and translates those to circuit delays for frequency adjustment.
Signal variations resulting from variations in the silicon circuitry, voltage and temperature are better controlled and compensated using the present invention that in any of the prior art circuits.
Once the final delays have been selected and the final frequency is established, those values are preserved as long as power continues to be applied to the circuits. They may also be saved in a Flash type device to be re-applied whenever the power is reapplied.
After the delays are selected and the frequency is adjusted, the rising edge of the controlling incoming clock will produce the first rising edge of the ring oscillator, thus maintaining good synchronization with the input clock signal.
During the initial power-on time, the amount of the delay and selection of the delay to adjust the ring frequency will require two to three incoming clock periods.
During initial power-up time of a system, many initialization processes must be completed before any useful work can take place. Therefore, there is no time lost by frequency adjustment of the ring.
All of the circuits for the oscillator of the present invention are digital in nature. In comparison, analog circuits consume much higher levels of power. As a result, the present invention provides an appreciable saving in power consumption than the circuits of the prior art.
Detailed Description of the On-Demand Oscillator
A digital approach not requiring either a Voltage-Controlled Oscillator or a Delay-Locked Loop will be described herein.
As is well know in the prior art, if an odd number of digital inverter circuits are connected in a loop arrangement, the loop will oscillate as long as there is power to the circuits. Such an arrangement is known as a ring oscillator and is shown in
The latest developments in silicon technology have produced very small gate delays. It is not unusual to have inverter circuits in the very small pico-second range, typically 20 to 50 picoseconds. Thus, the ring oscillator of
A variation of the ring oscillator with a gating signal is shown in
To avoid the loading effects to the loop, the output of the oscillator OSC OUT 104, shown in
If a 50 pico-second delay per gate is assumed in the loop
The GATE OSC signal
To further understand the operation of this circuit, reference is made to
To further explain the operation, the following example is described. Assume that the BULK delay 203 is bypassed and path 206 is selected. For this example, the Ring Oscillator 208 and the initial selected path along with the attached delays ADJ DELAY1 and ADJ DELAY2 and other loads is chosen to have a total loop delay of 300 picoseconds. The period of the oscillator, in this case, will be 600 picoseconds and the frequency of the ring will be 1/600 picoseconds or f=1.666 GHz. The signal, OSC OUT 210, will have the same frequency as the ring oscillator. Gate 215 taps off gate 209 inputs to reduce the loading effects to the oscillator ring.
The Hi level signal of the GATE OSC 200 allows the ring to oscillate. The GATE OSC 200 can be produced by any of the signals 403, 217 or 1100. These signal durations determines how long the oscillator will oscillate. To derive lower frequencies, the ring frequency is further divided digitally to obtain the desired clock frequencies and desirable phase shifts.
Referring now to
To be able to select any oscillator frequency within a range of frequencies established by the intended design, a BULK delay selection mechanism in path 203 is required along with selection of incremental delays. The BULK and incremental loop delays are partitioned in selectable increments to adjust the ring oscillator frequency.
Referring next to
Initially the BULK delay 203 will be bypassed. Only the base loop 206 will be selected. As a typical implementation, the base loop period is 600 pico-seconds with a pulse width of 300 picoseconds. The maximum frequency of the base loop will be 1/600=1.666 GHz. The base loop frequency is designed, initially, at a value appropriate to measure the period the width of an incoming clock period.
Once the measurement is accomplished, the BULK delay 203 and or any of the adjustable delays, ADD DELAY 213 or SUB DELAY 214 is selected and inserted in the loop. At this point the frequency of the oscillator will be close to the desired base oscillator frequency from which all other required frequencies are derived. Further fine adjustments to this frequency will be made for more accuracy and synchronization.
It is desirable to have the base oscillator frequency be powers of 2 times the input frequency, or n×CLK IN frequency where (n=1 2 4 8 . . . ). The highest frequency is chosen at design time. For the purpose of illustration, n=4 is chosen.
The base loop frequency, once selected and adjusted with the loop delay, will be divided by 4 to produce a frequency as close as possible to the incoming CLK IN frequency or 1CLK 400. This is effected by a coarse adjustment of the ring oscillator. A fine adjustment of the ring oscillator is also provided.
Referring again to
Method of Measuring Pulse Width Duration
To measure the duration of the pulse width of input frequency f1, the present system counts how many base oscillator (also called the “ring oscillator” periods and fractions of the period one can fit in the duration of one period of the incoming clock. Samples of typical signals are shown in
The output signals are subject to a coarse frequency adjustment. That will be a coarse frequency adjustment. For the illustration we chose to have a range of incoming clock frequencies from 400 MHz and below. These frequencies will be referred to as 1×CLK frequencies. They are intended to be one quarter of the ring oscillator frequency once the loop delays are adjusted. The interest here is to have a 1×CLK internally derived frequency from division of the base oscillator in synchronization and as close as possible with the 1×CLK incoming clock. The base ring oscillator frequency with the loop delay adjusted will be referred to as the ADJ 4×CLK. A division by 4 will produce the internal 1×CLK. The period of the derived 1×CLK internal and the period of the incoming 1×CLK external will be further compared and the result will be used to adjust a fine loop delay.
Incoming Clock Period Duration Measurement
For this example the loop oscillator is designed to produce an output signal with a period of 600 picoseconds. In practice any frequency can be chosen as long as the silicon speed can support it and as long as latches and counters can be operated reliably at this output frequency. The oscillator pulse must be wide enough to clock a latch reliably. The initial base loop delay will have adjustable delay components to increase or decrease the base loop frequency before any BULK delay is applied to the loop. Circuitry is provided to control the base oscillator output frequency by inserting delays in the path of the feedback loop.
The following description includes:
means to measure duration of one of the incoming clock periods;
means to select the applicable BULK loop delay;
means to adjust the delay for the incremental duration non-accounted with the BULK loop delay;
means to refine the delay to get as close as possible to the incoming clock frequency; and
means to synchronize the oscillator with every rising edge of the incoming clock period.
For the purposes of further explaining the operation of the present invention, assume the base non-adjusted ring oscillator runs 4 times as fast as the incoming clock. The circuitry first determines how many base clock periods of the unadjusted 4×CLK 210 one can fit in the CLK IN PERIOD 403 of the external 1×CLK 400. A 4 bit counter is implemented to be able to cover the frequency range chosen. If the base clock period is shorter than 600 picoseconds a counter larger that 4 bits may be required.
Measurement of the incoming clock periods.
Referring now to
Referring next to
Latch 402 is reset with the RST signal 409. However, other methods for reset could be used to allow period measurements without departing from the current invention. CLK IN PERIOD 403 is fed to
The first 4×CLK 210 rising edge always occurs after the CLK IN PERIOD 403 rising edge. This interval of time is shown as 500 in
When pulse CLK IN PERIOD 403 terminates, the counter will stop from counting because there will be no further setting and resetting of latch F 700 of
Referring now to
Referring now to
Three latches are required for the Hi pulse and three for the Lo pulse of the 4×CLK. Those latches are shown in
With every period of the 4×CLK under the valid Hi time of the CLK IN PERIOD, all latches of
There is a required time from the input to the NAND gate 600 until the latch 601 or 602 is set. This time is determined by the speed of the CMOS process technology used for the implementation of the logic. For the purposes of illustration, it is assumed 100 picoseconds nominal pulse width is required to set the latch reliably. This means that if, for example, the CLK IN PERIOD trailing edge occurs 100 or more and less than 200 picoseconds past the rising edge F of the 4×CLK, only latch F 700 of
The incremental latches as shown in
Based on the period counter decoded value by decoder 406 and based on which latch was the last to be set, the appropriate BULK and incremental delay from the delay trees will be selected to be added to the loop.
Once the BULK and the incremental delays are set, they will remain set until the decision is made to go through the selection again. In addition to the selected delays as described, there is one more determination to be made about fine delay adjustment. During the incremental latch setting in
Referring next to
Referring again to
For the purpose of illustration, each incremental latch of
Weight of Latch F=100 picoseconds
Weight of Latch A=200 picoseconds
Weight of Latch B=300 picoseconds
Weight of Latch C=400 picoseconds
Weight of Latch D=500 picoseconds
Weight of Latch E=600 picoseconds
If the technology used has fast circuits, the partition of the period could be more than 6 portions of smaller weight and with smaller delay selection accordingly.
Bulk Delay Selection
For every full period count above 4, a total BULK delay of 150 picoseconds is selected for our example used herein. This number applies to one half period of the base ring clock. It must be multiplied by 2 and then added to the base clock period of 600 picoseconds. The new base clock period will be 600+150=750 picoseconds. Bulk delays of
Fine Delay Selection
Once the BULK delay is selected, there is additional incremental delay to be selected based on the decoded incremental latches of
Decoding of the incremental latches and Incremental delay selection is shown in
After the BULK and the incremental latch delay selection, there is additional delay to be added to the loop. This delay is to account for the initial offset 500, as shown in
After this initial BULK and incremental delay selection, the loop is adjusted to produce the 1×CK INT 801 and INT CLK PERIOD 805. The relationship of these signals and the phase shifted signals derived from the circuit of
Referring now to
Then INT CLK PERIOD 805 and CLK IN PERIOD del 408 are compared in circuits 807 and 808 of
Each latch when set will represent a delay adjustment to be made to the delay of the loop. The weight of each latch will be 100 picoseconds and in loop delay adjustment 12.5 picoseconds. Latch A 811 and latch B 812 of
The number of latching elements shown in
Period Equalization of 1×CLK 400 to 1×CK INT 801
After the BULK and incremental delays are applied to the loop, the ring loop period will be shorter than ideal. Therefore, the INT CLK PERIOD 802 will be shorter than the CLK IN PERIOD 403. In order to correct that situation, the circuit of
a shows the timing relationships of signals produced by the circuit of
Referring now to
Referring now to
Synchronization of Outputs
Referring now to
The Oscillator will be synchronized to the CLK IN rising edge and will have the ability to STOP/START without requiring many cycles to resynchronize. The relationship of the CLK IN frequency and the oscillator 4×CLK frequency is shown in
Referring next to
Referring next to
In the first embodiment of the invention, the objective is to clock data drivers of a silicon device with a delayed phase of an applied input clock so that the data at the output pin of the device is in some specified phase relationship to the incoming clock phase. Ideally, the phases should be the same, but that cannot be guaranteed due to many variables in the silicon, power supplies and operating temperatures.
Referring next to
Referring next to
The rising edge of the SELECT PHASE C401 is used to clock the appropriate latch C500 of
Phase selection is implemented by use of a predetermined algorithm. For devices of the zero delay buffer type, an earlier phase may be required in comparison to the one for the synchronized data output.
The selected clock phase must be such that its propagation through the selection gates C502 and C503 of
The selected phase accounts for the delay from CLK IN C112 to the selected phase rising edge. It tracks frequency changes and is not affected by logic gate delay changes because all phases of the generated clocks are based on the 4×CLK edges which are fixed for the selected frequency.
Referring next to
Referring now to this figure, the selected clock phase is used to produce the signal LATCH OUT C605. This signal is run through a series of delays DELAY X4 C612, DELAY X1 C108 and DELAY X2 C600 to produce the signal TOTAL DELAY OUT C606. The AND function C612 of the LATCH OUT C605, the TOTAL DELAY OUT C606 and the inverted CLK IN deld C109 signals C613 will produce the INCREMENTAL DELAY C603 pulse shown in
The gates of C609 are identical to gates C607 and C608 to account for the delay it takes to produce the signal LATCH OUT C605.
The next step is to quantize the width of the INCREMENTAL DELAY pulse C603 in terms of time delay to be represented by gate delays.
Referring next to
Referring next to
The delay sections are defined to meet requirements based on silicon process speed. There will be a nominal, a minimum and a maximum speed variation from device to device and from lot to lot manufactured. If the device is slow, each delay section in the tree C902 will produce a longer delay and each latch in
Referring next to
There is also a delay DL4 C1012 from CLK OUT C1006 to the input of SDRAM at point C1013 due to wiring and printed circuit board parasitics. In any event, the clock at the input of SDRAM at point C1013 and the CLK IN C112 are phase aligned for this circuitry to perform properly.
The CLK OUT C1006 and the CLK IN C112 are phase aligned according to the first embodiment and the methods and circuits described above. Then, the DELAYED CLK C1011 is further adjusted so that it appears earlier by an amount of time equal to the delay DL4 C1012.
Referring next to the block diagram
The delay DL4 C1012 from the CLK OUT C1006 to the SDRAM device input C1013 is duplicated and applied to the path from the FB CLK OUT C1007 to the input FB CLK IN C1008. The receivers C1014 and the paths for CLK PERIOD C1002 and FB PERIOD C1003 are identical. When both period signals are ANDed, a FB DELAY C1004 pulse is created as shown in
The number of elements in
After the initial coarse delay adjustment, there will be a shorter FB DELAY C1004 pulse created. This pulse is further applied to another circuit similar to the one in
The proposed synchronization methods can be applied to devices other than zero buffer types. In fact, all memory devices, whether dynamic, static or flash may be synchronized by use of this technique, whether used in memory controllers or in CPU's.
It will be apparent that improvements and modifications may be made within the purview of the invention without departing from the scope of the invention defined in the appended claims.
This application is a CIP of U.S. patent application Ser. No. 11/308,518 (Mar. 31, 2006) for a “High Frequency Digital Oscillator-on-Demand with Synchronization”, and also claims priority based on Provisional Patent 60/797,172 (May 4, 2006), for “Synchronization of a data output signal to an input of a device; of an input clock to an output clock applied to a distant device on a printed circuit board without use of DLL or PLL analog techniques”; Provisional Patent 60/666,603 filed on Mar. 31, 2005, for “High Speed Digital Oscillator-on-Demand with Synchronization”, and also Provisional Patent 60/670,618 (Apr. 13, 2005), for “I/O Output to Clock Edge Synchronization”.
Number | Name | Date | Kind |
---|---|---|---|
6917660 | Song | Jul 2005 | B2 |
7206370 | Nakao | Apr 2007 | B2 |
Number | Date | Country | |
---|---|---|---|
60797172 | May 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11308518 | Mar 2006 | US |
Child | 11733254 | US |