EDGE SELECTION TECHNIQUES FOR CORRECTING CLOCK DUTY CYCLE
Circuits and methods are provided for generating clock signals and correcting duty cycle distortion in clock signals. A circuit for generating a clock signal includes a multiplexer circuit and an edge-triggered flip-flop circuit. The multiplexer circuit selectively outputs one of a plurality of input clock signals. The edge-triggered flip-flop detects a transitioning edge of the input clock signal that is selectively output from the multiplexer circuit, and in response to the detection, samples a logic level of a received data signal, and generates a transition of an output clock signal at an output port of the edge-triggered flip-flop. The multiplexer circuit selectively outputs one of the plurality of input clock signals to a clock signal port of the edge-triggered flip-flop, based on a logic level of the output clock signal at the output port of the edge-triggered flip-flop, which is input to a select control port of the multiplexer circuit.
Latest IBM Patents:
This application is a Continuation of U.S. patent application Ser. No. 13/534,241, filed on Jun. 27, 2012, which claims priority to U.S. Provisional Patent Application Ser. No. 61/597,501, filed on Feb. 10, 2012, the disclosures of which are incorporated herein by reference.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENTThis invention was made with Government support under Contract No.: H98230-07-C-0409 (National Security Agency (NSA)). The Government has certain rights in this invention.
TECHNICAL FIELDThe field generally relates to circuits and methods for generating clock signals, and in particular, edge selection circuits and methods for correcting duty cycle distortion in clock signals.
BACKGROUNDIn some analog, digital, and mixed-signal systems, critical timing information is present only on one of rising or falling transitions of timing signals such as clock signals. Some of these systems may need to synthesize an output clock signal from two input clock signals, such that the output clock signal transitions on every useful transition of the two input clock signals. Edge selection circuits can be employed for the purpose of synthesizing an output clock from two input clock signals.
For example,
In many circuits, the overall system performance may be degraded if a clock duty cycle deviates from 50%. For instance, in a high-speed I/O receiver incorporating a half-rate architecture, it is important that the clock have 50% duty cycle for the even and odd data bits to be sampled at uniform time intervals. Otherwise, it would be impossible to find a sampling clock position which is ideal for both even and odd data bits, and the timing margin for detecting error-free data will be eroded. Unfortunately, some circuits (such as CMOS phase interpolators) may generate output clock waveforms with duty cycle distortion while accomplishing their functions.
In order to utilize the functions of such circuits without negative effects on system performance, it is desirable to have a technique capable of correcting such duty cycle distortion. If complementary clocks are processed by identical circuits (e.g., phase interpolators), their outputs may have distorted (non-50%) duty cycles. But to the extent that the circuits (and therefore the duty cycles) match, the time spacing from the rising edge of one output to the rising edge of the other output may be exactly one half clock period. In this case, an attractive option for synthesizing a clock with 50% duty cycle is to select only the rising edges of the distorted signals in constructing the final output waveform. An edge selection technique may be especially useful for correcting duty cycle distortion in clock signals.
SUMMARYExemplary embodiments of the invention generally include circuits and methods for generating clock signals, and in particular, edge selection circuits and methods for correcting duty cycle distortion in clock signals.
In one exemplary embodiment of the invention, a circuit for generating a clock signal includes a multiplexer circuit and an edge-triggered flip-flop circuit. The edge-triggered flip-flop circuit includes a clock signal port, a data signal port, and an output port. The clock signal port is connected to an output of the multiplexer circuit, the data signal port receives a data signal, and the output port of the edge-triggered flip-flop is connected to a select control port of the multiplexer circuit. The multiplexer circuit selectively outputs one of a plurality of input clock signals. The edge-triggered flip-flop detects a transitioning edge of the input clock signal that is selectively output from the multiplexer circuit, and in response to the detection, samples a logic level of the received data signal, and generates a transition of an output clock signal at the output port. The multiplexer circuit selectively outputs one of the plurality of input clock signals to the clock signal port of the edge-triggered flip-flop, based on a logic level of the output clock signal at the output port of the edge-triggered flip-flop, which is input to the select control port of the multiplexer circuit.
In another exemplary embodiment of the invention, a method is provided for generating a clock signal. The method includes selecting between one of a plurality of input clock signals, based on a logic level of an output clock signal; detecting a transitioning edge of the selected one of the plurality of input clock signals; sampling a logic level of a data signal in response to the detecting; changing the logic level of the output clock, based on the sampled logic level of the data signal; and selecting another one of the plurality of input clock signals, in response to the changing of the logic level of the output clock. In an exemplary embodiment of the invention where the plurality of input clock signals includes a first input clock signal and a second input clock signal, the sequence of the selecting, detecting, sampling, changing and selecting steps is repeated, wherein the first input clock signal is selected when the output clock signal transitions to a first logic level and wherein the second input clock signal is selected when the output clock signal transitions to a second logic level.
These and other exemplary embodiments, aspects and features of the present invention will become apparent from the following detailed description of exemplary embodiments thereof, which is to be read in connection with the accompanying drawings.
Exemplary embodiments will now be discussed in further detail with regard to circuits and methods for generating clock signals, and in particular, edge selection circuits and methods for correcting duty cycle distortion in clock signals.
The signal CFF serves as a clock signal for the D flip-flop 46. The D flip-flop 46 captures the value of the D-input (DIN) at a defined instant of the cycle of the signal CFF (such as the rising edge of CFF). The captured value becomes the Q output CLKOUT. This is shown in
In the embodiment of
In particular, in operation, the MUX 64 selects between the two distorted clock signals CLK1 and CLK2 such that the rising edges of these clocks are selectively applied to the rising edge-triggered flip-flop 66. When the output of the edge-triggered flip-flop 66 is logic “0”, the first clock signal CLK1 is output from the MUX 64 as the CFF signal. When the output of the edge-triggered flip-flop 66 is logic “1”, the second clock signal CLK2 is output from the MUX 64 as the CFF signal. In this regard, the CFF signal is generated by selectively switching between the input clock signals CLK1 and CLK2 so that the rising edge-triggered flip-flop 66 detects the rising edges of both clock signals CLK1 and CLK2.
When the rising edge from one clock signal (CLK1 or CLK2) arrives, the edge-triggered flip-flop 66 samples the input DIN. Since the input data DIN has changed polarity (in a time-interval since the previous rising edge of the clock signals CLK1/CLK2), the output CLKOUT of the edge-triggered flip-flop 66 changes state. In response, the MUX 64 selectively outputs the other clock signal (CLK2 or CLK1) as the CFF signal, and the edge-triggered flip-flop 66 detects the rising edge of the other clock signal (CLK2 or CLK1). This process continually repeats, yielding an output clock CLKOUT whose edges (both rising and falling) coincide with the rising edges of the input clocks CLK1 and CLK2. If the rising edges of the input clocks CLK1 and CLK2 are exactly half a clock period apart, the output clock CLKOUT has 50% duty cycle.
Advantageously, the exemplary edge selection circuit 60 of
The rising edges of the clock signals CLK1 and CLK2 are selectively output from the MUX 64 as a CFF signal that clocks the edge-triggered flip-flop 66 (via the rising edges of the clock signals CLK1 and CLK2) to produce the output clock signal CLKOUT, in a similar manner as discussed above with reference to
The output CLKOUT of the edge-triggered flip-flop 66 updates after the Clock-To-Q propagation delay (tFF,CtoQ) of the edge-triggered flip-flop 66. This creates a rising edge of CLKOUT and causes the MUX 64 to select the other clock signal, CLK2, after the select-to-output propagation delay of the MUX (tMux,StoO). This causes the CFF signal to transition to logic “low” again. When the rising edge of the clock signal CLK2 arrives, the edge-triggered flip-flop 66 samples its input and since this sampling occurs one half-cycle later than the previous sampling, the edge-triggered flip-flop 66 reads the opposite polarity of DIN. Once the edge-triggered flip-flop 66 output transitions to logic “low” again, the MUX 64 is ready to read the rising edge of the clock signal CLK1 and this process repeats.
As long as the Clock-to-Q delay of the edge-triggered flip-flop 66 is the same for 0→1 transitions and 1→0 transitions, the output of the edge-triggered flip-flop 66 will be a 50% duty cycle square wave with a frequency equal to that of the clock signals CLK1 and CLK2. The widths of the CFF pulses are guaranteed to be at least tFF,CtoQ+tMUX,StoO, irrespective of the duty cycle of the input clocks CLK1 and CLK2. The CFF pulses may be wider if the inputs of the MUX 64 are both logic “high” when the SELECT control signal changes polarity. This makes the framework of
In particular, if the output clock signal CLKOUT is logic “low,” the SELECT signal input to the MUX 64 is logic “low,” which causes the MUX 64 to select the CLK1 clock path. When there is a rising edge on the clock signal CLK1, the edge-triggered flip-flop 66 samples the input signal DIN, which causes the output clock signal CLKOUT to transition to logic “high”, which then causes the MUX 64 to select the CLK2 clock path. Since the rising edges on the output clock signal CLKOUT are generated by the rising edge on CLK1, there is a well-defined phase relationship between the input and output clocks. When there is a rising edge on CLK2, the output clock signal CLKOUT transitions to logic “low” and the MUX 64 selects the CLK1 clock path, and the entire process repeats. Thus, the output clock signal CLKOUT is a clock signal that transitions to logic “high” on the rising edge of CLK1 and transitions to logic “low” on the rising edge of CLK2. If the rising edges of CLK1 and CLK2 are ¼ a clock period apart, the output clock signal CLKOUT will have a 50% duty cycle.
For sake of illustration, the operation of the embodiments has been described using the rising-edge transitions of the input clocks. However, principles of the invention are equally applicable to embodiments that respond to the falling-edge transitions of the input clocks. This can be achieved by employing falling edge-triggered flip-flops in the exemplary embodiments discussed above in
Further aspects of the present invention provide edge selection circuits which can be utilized in integrated circuit chips with various analog and digital integrated circuitries. In particular, integrated circuit dies can be fabricated having edge selection circuits and other semiconductor devices such as field-effect transistors, bipolar transistors, metal-oxide-semiconductor transistors, diodes, resistors, capacitors, inductors, etc., forming analog and/or digital circuits. The edge selection circuits can be formed upon or within a semiconductor substrate, the die also comprising the substrate. An integrated circuit in accordance with the present invention can be employed in applications, hardware, and/or electronic systems. Suitable hardware and systems for implementing the invention may include, but are not limited to, personal computers, communication networks, electronic commerce systems, portable communications devices (e.g., cell phones), solid-state media storage devices, functional circuitry, etc. Systems and hardware incorporating such integrated circuits are considered a part of this invention. Given the teachings of the invention provided herein, one of ordinary skill in the art will be able to contemplate other implementations and applications of the techniques of the invention.
Although exemplary embodiments of the present invention have been described herein with reference to the accompanying figures, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made therein by one skilled in the art without departing from the scope of the appended claims.
Claims
1. A method for generating a clock signal, comprising:
- selecting between one of a plurality of input clock signals, based on a logic level of an output clock signal;
- detecting a transitioning edge of the selected one of the plurality of input clock signals;
- sampling a logic level of a data signal in response to said detecting;
- changing the logic level of the output clock, based on the sampled logic level of the data signal; selecting another one of the plurality of input clock signals, in response to said changing of the logic level of the output clock; and
- inverting the output clock signal and using the inverted output clock signal as the data signal.
2. The method of claim 1, wherein a sequence of the selecting, detecting, sampling, changing and selecting steps is repeated, wherein a first input clock signal is selected when the output clock signal transitions to a first logic level and wherein a second input clock signal is selected when the output clock signal transitions to a second logic level.
3. The method of claim 1, wherein detecting a transitioning edge comprises detecting a rising edge of the selected one of the plurality of input clock signals.
4. The method of claim 1, wherein detecting a transitioning edge comprises detecting a falling edge of the selected one of the plurality of input clock signals.
5. The method of claim 1, wherein said detecting, sampling, and changing steps are performed by an edge-triggered flip-flop.
6. The method of claim 5, wherein the edge-triggered flip-flop is an asynchronously resettable edge-triggered flip-flop.
7. The method of claim 1, further comprising generating the data signal having a frequency equal to a frequency of the plurality of input clock signals.
8. The method of claim 1, wherein each of the plurality of input clock signals is generated with a corresponding one of a plurality of identical circuits.
9. (canceled)
10. A method for generating a clock signal, comprising:
- selecting between one of a plurality of input clock signals, based on a logic level of an output clock signal;
- detecting a transitioning edge of the selected one of the plurality of input clock signals;
- sampling a logic level of a data signal in response to said detecting;
- changing the logic level of the output clock, based on the sampled logic level of the data signal; and
- selecting another one of the plurality of input clock signals, in response to said changing of the logic level of the output clock,
- wherein the plurality of input clock signals are clock signals with distorted duty cycles, wherein the method further comprises correcting the duty cycles of the input clock signals by detecting transitioning edges of the input clock signals that are substantially equally spaced in time to generate an output clock signal which is substantially free of duty cycle distortion.
11. The method of claim 10, wherein a sequence of the selecting, detecting, sampling, changing and selecting steps is repeated, wherein a first input clock signal is selected when the output clock signal transitions to a first logic level and wherein a second input clock signal is selected when the output clock signal transitions to a second logic level.
12. The method of claim 10, wherein detecting a transitioning edge comprises detecting a rising edge of the selected one of the plurality of input clock signals.
13. The method of claim 10, wherein detecting a transitioning edge comprises detecting a falling edge of the selected one of the plurality of input clock signals.
14. The method of claim 10, wherein said detecting, sampling, and changing steps are performed by an edge-triggered flip-flop.
15. The method of claim 14, wherein the edge-triggered flip-flop is an asynchronously resettable edge-triggered flip-flop.
16. The method of claim 10, further comprising generating the data signal having a frequency equal to a frequency of the plurality of input clock signals.
17. The method of claim 10, wherein each of the plurality of input clock signals is generated with a corresponding one of a plurality of identical circuits.
18. The method of claim 10, further comprising inverting the output clock signal and using the inverted output clock signal as the data signal.
19. A method for generating a clock signal, comprising:
- selecting between one of a plurality of input clock signals, based on a logic level of an output clock signal;
- detecting a transitioning edge of the selected one of the plurality of input clock signals;
- sampling a logic level of a data signal in response to said detecting;
- changing the logic level of the output clock, based on the sampled logic level of the data signal; and
- selecting another one of the plurality of input clock signals, in response to said changing of the logic level of the output clock
Type: Application
Filed: Jun 27, 2012
Publication Date: Aug 15, 2013
Applicant: International Business Machines Corporation (Armonk, NY)
Inventors: John F. Bulzacchelli (Yonkers, NY), Ankur Agrawal (White Plains, NY)
Application Number: 13/534,596
International Classification: H03K 3/84 (20060101);