A dual rail flip flop with complementary outputs includes a master stage with embedded logic, a sensing stage, and one or more slave stages. The flip flop operates in a pre-charge state and an evaluate state. During the pre-charge state when a clock signal is low, the flip flop pre-charges internal keeper nodes to a high value. When the clock signal transitions high, the flip flop enters an evaluation state and one of the internal keeper nodes evaluates to a low value. The sense stage senses which of the internal keeper nodes is evaluating to zero, and drives it to zero faster. The slave stages reflect the state of the internal keeper nodes during the evaluate state, and maintain their states during the pre-charge state.
|
1. A dual-rail flip flop circuit comprising:
a master stage that includes a transistor stack to implement complementary logic functions to drive first and second complementary keeper nodes; a sense stage coupled to the first and second complementary keeper nodes; and a slave stage responsive to the first and second complementary keeper nodes to produce complementary flip flop outputs, wherein the transistor stack comprises: first n-channel transistors to implement a first logic function; and second n-channel transistors to implement a second logic function, the second logic function being the logical complement of the first logic function. 5. A dual-rail flip flop circuit comprising:
a master stage that includes a transistor stack to implement complementary logic functions to drive first and second complementary keeper nodes; a sense stage coupled to the first and second complementary keeper nodes; and a slave stage responsive to the first and second complementary keeper nodes to produce complementary flip flop outputs, wherein the sense stage comprises: a first pullup transistor responsive to the first complementary keeper node to conditionally pull up the second complementary keeper node; and a second pullup transistor responsive to the second complementary keeper node to conditionally pull up the first complementary keeper node. 12. An integrated circuit that includes a data path having at least one flip flop, the at least one flip flop comprising:
a master stage that includes a transistor stack to implement a logic function, and to produce complementary voltages on complementary keeper nodes; a sense stage to sense the complementary voltages on the complementary keeper nodes; and a slave stage responsive to the complementary keeper nodes to drive complementary flip flop outputs, wherein the master stage comprises: a first and second transistor stacks to implement complementary logic functions; a first complementary transistor pair coupled in series between an upper power supply node and the first transistor stack; and a second complementary transistor pair coupled in series between the upper power supply node and the second transistor stack. 14. An integrated circuit that includes a data path having at least one flip flop, the at least one flip flop comprising:
a master stage that includes a transistor stack to implement a logic function, and to produce complementary voltages on complementary keeper nodes; a sense stage to sense the complementary voltages on the complementary keeper nodes; and a slave stage responsive to the complementary keeper nodes to drive complementary flip flop outputs. wherein the sense stage comprises: a first pullup transistor responsive to a first complementary keeper node of the complementary keeper nodes to conditionally pull up a second complementary keeper node of the complementary keeper nodes; and a second pullup transistor responsive to the second complementary keeper node to conditionally pull up the first complementary keeper node. 8. A dual-rail flip flop circuit comprising:
a master stage that includes a transistor stack to implement complementary logic functions to drive first and second complementary keeper nodes; a sense stage coupled to the first and second complementary keeper nodes; and a slave stage responsive to the first and second complementary keeper nodes to produce complementary flip flop outputs, wherein the slave stage comprises: a first circuit responsive to the first complementary keeper node; and a second circuit responsive to the second complementary keeper node, wherein the first circuit comprises: a first complementary transistor pair having gates coupled to the first complementary keeper node; an output node created at a junction between the first complementary transistor pair; and a clocked transistor coupled between the first complementary transistor pair and a lower power supply node. 16. An integrated circuit that includes a data path having at least one flip flop, the at least one flip flop comprising:
a master stage that includes a transistor stack to implement a logic function, and to produce complementary voltages on complementary keeper nodes; a sense stage to sense the complementary voltages on the complementary keeper nodes; and, a slave stage responsive to the complementary keeper nodes to drive complementary flip flop outputs, wherein the slave stage comprises: a first circuit responsive to a first complementary keeper node of the complementary keeper nodes; and a second circuit responsive to a second complementary keeper node of the complementary keeper nodes, wherein the first circuit comprises: a first complementary transistor pair having gates coupled to the first complementary keeper node; an output node created at a junction between the first complementary transistor pair; and a clocked transistor coupled between the first complementary transistor pair and a lower power supply node. 2. The dual-rail flip flop circuit of
a first complementary transistor pair coupled in series between an upper power supply node and the first n-channel transistors; and a second complementary transistor pair coupled in series between the upper power supply node and the second n-channel transistors.
3. The dual-rail flip flop circuit of
a clock input node to receive a clock signal; a clock inverting stage coupled between the clock input node and an inverse clock node, the clock inverting stage to produce a delayed inverted clock signal on the inverse clock node; and an evaluation transistor coupled between both the first and second n-channel transistors and a lower power supply node, the evaluation transistor having a gate coupled to the inverse clock node.
4. The dual-rail flip flop circuit of
6. The dual-rail flip flop circuit of
7. The dual-rail flip flop circuit of
9. The dual-rail flip flop circuit of
a forward inverter having an input node coupled to the output node created at the junction between the first complementary transistors; and a pullup transistor coupled between the upper power supply node and the output node.
10. The dual-rail flip flop circuit of
11. The dual-rail flip flop circuit of
15. The integrated circuit of
|
This application is a divisional of application U.S. Ser. No. 09/733,216 now U.S. Pat. No. 6,459,316 filed on Dec. 8, 2000.
The present invention relates generally to flip flop circuits, and more specifically to fast semi-dynamic flip flop circuits.
Flip flop circuits have a wide variety of uses in today's computers and digital circuits. Flip-flops are one of the most common elements used to implement sequential circuits, in which the primary output relies not only on the current values of the input, but also the previous input values. Flip flop circuits are used to generate a steady state output signal having either a high (logical one) or a low (logical zero) potential, and some flip flop circuits generate complementary output signals having opposite potentials.
Semi-dynamic flip flops are flip flop circuits having a dynamic master stage and a static slave stage. Examples of semi-dynamic flip flop circuits are described in U.S. Pat. Nos. 5,898,330, issued 04/27/99 and 5,900,759, issued May 4, 1999. Designers are constantly striving to improve flip flop circuits, in part because of the widespread use of flip flop circuits in integrated circuits.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for improved flip flop circuits.
In the following detailed description of the embodiments, reference is made to the accompanying drawings which show, by way of illustration, specific embodiments in which the invention may be practiced. In the drawings, like numerals describe substantially similar components throughout the several views. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the present invention. Moreover, it is to be understood that the various embodiments of the invention, although different, are not necessarily mutually exclusive. For example, a particular feature, structure, or characteristic described in one embodiment may be included within other embodiments. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled.
The method and apparatus of the present invention provide a mechanism to include embedded logic functions in flip flop circuits. A dual rail flip flop with complementary outputs includes a master stage with embedded logic, a sensing stage, and one or more slave stages. The flip flop operates in a pre-charge state and an evaluate state. During the pre-charge state when a clock signal is low, the flip flop pre-charges internal keeper nodes to a high value. When the clock signal transitions high, the flip flop enters an evaluation state and one of the internal keeper nodes evaluates to a low value. The sense stage senses which of the internal keeper nodes is evaluating to zero, and drives it to zero faster. The slave stages reflect the state of the internal keeper nodes during the evaluate state, and maintain their states during the pre-charge state.
Clock signal CK is coupled to a clock input node 108, which is connected to the gates of transistors 112, 114, and 134, inverter 102, and the control input of clocked inverter 124. Series connected inverters 102, 104, and 106 are connected in series between node 108 and the gate of transistor 116, which receives an inverted and delayed version of the clock signal CK. Logic function 118 receives input data on logic input nodes 120, and is coupled in series between transistor 114 and 116. Node 126 is defined at the connection between transistors 112 and 114. Node 126 is connected to the gates of transistors 132 and 136, and to the control input of clocked inverter 144.
Flip flop circuit 100 includes two latches: one formed by the combination of cross-coupled inverters 122 and 124, and another formed by the combination of cross-coupled inverters 142 and 144. Each of the latches includes an inverter cross-coupled with a clocked inverter. For example, inverter 122 is cross-coupled with clocked inverter 124, and inverter 142 is cross-coupled with clocked inverter 144. When a signal on the control input node of a clocked inverter is at a logic one, the clocked inverter operates as a normal inverter. When operating as a normal inverter, a clocked inverter produces a high output for a low input, and produces a low output for a high input. When a signal on the control input node of a clocked inverter is at a logic zero, the clocked inverter does not drive the output low for a high input. In these embodiments, when a high signal is on the control input of the clocked inverter, the latch will retain its value even if decoupled from the remainder of the circuit, since the cross-coupled inverters create a loop that holds the present value at the input to both of the cross-coupled inverters. Specific implementation embodiments of clocked inverters are presented in the figures following FIG. 1.
Various embodiments of circuits are described with reference to circuit nodes having logical states of logical "1" or logical "0." Circuit nodes are also described as having high voltage and low voltage signals applied thereto. The terms logical "1" and logical "0" generally correspond to a high voltage and a low voltage, respectively. The "logical" terms are used when describing the logical operation of a circuit, and the "voltage" terms are generally used when describing the circuit more fully. One skilled in the art will understand that a logical inversion can take place while still practicing the present invention. A logical inversion would exist if the terms logical "1" and logical "0" corresponded to a low voltage and a high voltage, respectively.
Transistors 112 and 132, in the embodiment of
In operation, as the clock signal transitions between a logical one and a logical zero, flip flop 100 repeatedly transitions back and forth between two states: a pre-charge state, and an evaluate state. In the pre-charge state, achieved when clock signal CK is in a low state and has been in a low state for a sufficient period of time for all outputs and internal nodes to stabilize at a steady state level, transistors 112 and 116 are on, and transistors 114 and 134 are off. In this pre-charge state, internal node 126 is "pre-charged" to a high potential through transistor 112. Transistor 112 is referred to as a pre-charge transistor.
In the pre-charge state, node 126 is high, and transistor 132 is off. The control input node of clocked inverter 144 is coupled to node 126, and so is also high in the pre-charge state. Because transistors 132 and 134 are both off, node 138 is decoupled from power supply nodes 111 and 117. Due to the operation of inverters 142 and 144, the previous value on node 138 is maintained. For example, if in a previous evaluate state (discussed below), node 138 is driven low, then node 138 remains low during the subsequent pre-charge state.
Logic function 118 within master stage 110 conditionally couples transistors 114 and 116. For example, when the logic inputs on node 120 satisfy a particular logic function, then logic function 118 is closed and provides a current path from transistor 114 to transistor 116. For all other combinations of logic inputs, logic function 118 is open and no current path exists. In the pre-charge state, transistor 116 is on, and transistor 114 is off. As a result, regardless of the value of logic inputs 120, node 126 is not coupled to lower supply node 117 during the pre-charge state.
On the rising edge of clock CK, flip flop circuit 100 enters the evaluate state. Transistor 112 turns off, and transistor 114 turns on. Transistor 116 remains on for the delay period of the clock inverting stage that includes the three inverters 102, 104, and 106, and then shuts off. As a result, transistors 114 and 116 are both on for the delay period of clock inverting stage 101. If the logic inputs on node 120 satisfy logic function 118, node 126 is discharged to logic zero through transistors 114, 116, and logic function 118. Node 126 is said to "evaluate" to zero, and transistors 114 and 116 are referred to as "evaluation" transistors.
When node 126 evaluates to logic zero, the gates of transistors 132 and 136 are pulled to logic zero. When this occurs, transistor 132 turns on, and transistor 136 turns off. This holds output node 138 at logic high (if the previous value was high), or pulls output node 138 to logic high through transistor 132. Node 126 retains its low value due to cross-coupled inverters 122 and 124. Cross-coupled inverters 122 and 124 form a "keeper" latch, and node 126 is termed a "keeper" node. When the clock signal CK on node 108 transitions high, clocked inverter 124 has a high signal on its control input node, thereby once again allowing it to drive a low voltage on node 126. When node 126 evaluates to a zero, then clocked inverter 144 no longer drives node 138 low, thereby allowing transistor 132 to more quickly and easily pull node 138 high.
If on the rising clock edge, logic inputs 120 do not satisfy logic function 118, transistor 114 still turns on, and transistor 112 still turns off. However, internal node 126 will remain at logic high since the discharge path to lower power supply node 117 is shut off by logic function 118. Transistor 136 will remain on, transistor 132 will remain off, and output node 138 will either hold at logic zero, or be discharged to logic zero through transistors 134 and 136. Cross-coupled inverters 122 and 124 allow internal node 126 to maintain its value upon the rising edge of the clock CK when logic inputs 120 do not satisfy logic function 118.
During the evaluate state, the clock signal CK is high, and node 126 maintains the state (either low or high) to which it evaluated. When CK transitions back to low, the flip flop transitions back to the pre-charge state. Transistor 112 turns on and node 126 is "pre-charged" back high. During this transition, clocked inverter 124 no longer drives node 126 to zero because of the state of the CK signal on the control input. As a result, transistor 112 can pull node 126 high without having to overcome the drive strength of inverter 124.
Logic function 118 can be any type of logic function. For example, in some embodiments, two logic inputs 120 drive gates of series connected n-channel transistors, forming an "and" gate. In other embodiments, two logic inputs 120 drive gates of parallel connected n-channel transistors, forming an "or" gate. Any type of logic function can be implemented without departing from the scope of the present invention.
Master stage 110 is referred to as a "dynamic" master stage, in part because the output node of master stage 110, node 126, returns to a pre-charge state on every clock cycle. Slave stage 130 is referred to as a "static" slave stage, in part because output node 138 of slave stage 130 remains static during each clock cycle. The combination of the dynamic master stage and static slave stage is referred to as a "semi-dynamic" flip flop circuit.
The structure of slave stage 230 can reduce output glitches caused by charge sharing between transistors 220 and 222 when the clock signal CK transitions high. For example, transistor 134 (
Clocked inverter 250 includes pullup transistor 202, pulldown transistor 206, and clocked transistor 204. When a signal on the gate of clocked transistor 204 is low, clocked inverter 250 cannot drive node 126 low. In the embodiment of
Flip flop circuit 200 does not include a buffer on the output such as inverter 150 (FIG. 1). This can be useful when flip flop 200 drives a light load, in part because the delay of buffer 150 is not incurred by the output signal.
In the embodiment of
Pullup transistor 202 and pulldown transistor 206 are part of a clocked inverter that includes n-channel transistor 114 of the master stage. Transistor 114 is shared between the master stage and the clocked inverter that is cross-coupled with inverter 122. Within the master stage, transistor 114 is an evaluation transistor, and within the clocked inverter, transistor 114 is a clocked transistor. Likewise, pullup transistor 212 and pulldown transistor 216 are part of a clocked inverter that includes n-channel transistor 220. Transistor 220 is shared between the slave stage and the clocked inverter that is cross-coupled with inverter 142. Within the slave stage, transistor 220 is part of a complementary pair driven by the keeper node, and within the clocked inverter, transistor 220 is a clocked transistor.
The complementary logic functions of flip flop circuit 400 are implemented by a stack of n-channel transistors that includes transistors 410, 412, 414, 416, 418, and 420. During evaluation, node 422 evaluates to a zero if the exclusive-or of "a" and "b" is satisfied, and node 424 evaluates to zero if the exclusive-nor of "a" and "b" is satisfied. Any complementary logic functions can be utilized without departing from the scope of the present invention. For example, "or" and "nor," "and" and "nand," or any other arbitrary pair of complementary logic functions can be used.
Within master stage 410, pre-charge transistor 402 and evaluation transistor 404 form a complementary pair of transistors that drive keeper node 424. Likewise, pre-charge transistor 406 and evaluation transistor 408 form a complementary pair of transistors that drive keeper node 422. Each of the complementary transistor pairs corresponds to one of the complementary logic functions described above. For example, complementary pair of transistors 402 and 404 correspond to the exclusive-nor of "a" and "b," and complementary pair of transistors 406 and 408 correspond to the exclusive-or of "a" and "b." In the embodiment of
Sense stage 430 includes pullup transistors 432 and 434, clocked transistors 436 and 440, and pulldown transistors 438 and 442. Sense stage 430 also shares evaluation transistors 408 and 404 with master stage 410. Pullup transistor 432 and pulldown transistor 438 form a clocked inverter with evaluation transistor 404 and clocked transistor 436 coupled in series between them. Likewise, pullup transistor 434 and pulldown transistor 442 form an clocked inverter with evaluation transistor 408 and clocked transistor 440 between them.
The two clocked inverters in sense stage 430 are not enabled during the pre-charge state. For example, during the pre-charge state, both keeper nodes 422 and 424 are pre-charged high and pullup transistors 432 and 434 are off. The clock signal CK is low and transistors 404, 408, 436, and 440 are also off. As a result, during the pre-charge state, sense stage 430 does not influence the state of keeper nodes 422 and 424.
During the evaluation state, sense stage 430 senses the state to which each of keeper nodes 422 and 424 is evaluating, and then drives the keeper nodes further into those states. For example, when the clock signal CK transitions high, evaluation transistors 404 and 408 turn on and one of keeper nodes 422 and 424 begins to evaluate to zero. This analysis assumes stable data input values at the logic function in the stack of n-channel transistors. After the delay time of inverters 102 and 104, clocked transistors 436 and 440 turn on, and the clocked inverters in sense stage 430 begin to operate. One of keeper nodes 422 and 424 is still high and the other is evaluating to zero. The keeper node that is high drives one of the inverters in sense stage 430 and causes the other keeper node to evaluate to zero more quickly. For example, assuming that the logic function causes keeper node 424 to evaluate to zero and keeper node 422 to remain pre-charged, when clocked transistors 436 and 440 turn on, the inverter formed by pullup transistor 432 and pulldown transistor 438 drives keeper node 424 to zero faster.
Clocked transistors 436 and 440 are driven by a non-inverted, delayed clock signal. The delayed clock provides "sensing" of the evaluated states of the keeper nodes and causes them to reach their final evaluated state faster. Once the evaluation state is fully entered, and steady state is reached with the clock signal CK low, sense stage 430 includes cross-coupled inverters that form a latch between complementary keeper nodes 422 and 424. It is not necessary to drive the gates of clocked transistors 436 and 440 with the delayed clock signal as shown in FIG. 4. Any signal that turns on clocked transistors 436 and 440 at an appropriate point in the evaluation can be utilized without departing from the scope of the present invention.
In the embodiment of
Slave stage 470 includes pullup transistor 472, pulldown transistor 474, and clocked transistor 480. A latch on the output of slave stage 470 includes forward inverter 476 cross-coupled with a clocked feedback inverter that includes pullup transistor 478, pulldown transistor 482, and shared transistor 474. The output of slave stage 470 is the exclusive-nor "XNOR" of the logic inputs to master stage 410.
Flip flop circuit 400 is referred to as a "dual rail" flip flop because it produces complementary outputs. The complementary outputs and the embedded logic functions allow the fast generation of complementary flip flop output signals.
Flip flops 510 can be any flip flop embodiment of the present invention, including those with embedded logic functions shown in the previous figures. In the example embodiment shown in
Integrated circuit 500 can be any type of integrated circuit capable of including flip flop 510. For example, integrated circuit 500 can be a processor such as a microprocessor, a digital signal processor, a micro controller, or the like. Integrated circuit 500 can also be an integrated circuit other than a processor such as an application-specific integrated circuit (ASIC), a communications device, a memory controller, or a memory such as a dynamic random access memory (DRAM).
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Somasekhar, Dinesh, Vangal, Sriram R.
Patent | Priority | Assignee | Title |
11784647, | Oct 30 2020 | Samsung Electronics Co., Ltd. | Circuit performing logical operation and flip-flop including the circuit |
7002855, | Sep 30 2003 | Intel Corporation | Leakage tolerant register file |
7016239, | Sep 30 2003 | Intel Corporation | Leakage tolerant register file |
7123500, | Dec 30 2003 | Intel Corporation | 1P1N 2T gain cell |
7492203, | Apr 09 2004 | Samsung Electronics Co., Ltd. | High speed flip-flops and complex gates using the same |
7525361, | Apr 09 2004 | Samsung Electronics Co., Ltd | High speed flip-flops and complex gates using the same |
7746137, | Aug 28 2007 | Qualcomm Incorporated | Sequential circuit element including a single clocked transistor |
7924078, | Aug 16 2006 | STMICROELECTRONICS FRANCE | Bistable circuit with auto-time-adjusted switching, and flip-flop using such a bistable circuit |
8026754, | Feb 13 2009 | Apple Inc.; Apple Inc | Low latency flop circuit |
8362806, | Jun 26 2009 | Intel Corporation | Keeper circuit |
9564881, | May 22 2015 | Qualcomm Incorporated | Area-efficient metal-programmable pulse latch design |
9929723, | Mar 10 2016 | Apple Inc. | Flip flop using dual inverter feedback |
9979394, | Feb 16 2016 | Qualcomm Incorporated | Pulse-generator |
Patent | Priority | Assignee | Title |
5117133, | Dec 18 1990 | Hewlett-Packard Company | Hashing output exclusive-OR driver with precharge |
5612632, | Nov 29 1994 | Texas Instruments Incorporated | High speed flip-flop for gate array |
5764089, | Aug 30 1996 | AMD TECHNOLOGIES HOLDINGS, INC ; GLOBALFOUNDRIES Inc | Dynamic latching device |
5867049, | Nov 21 1996 | Oracle America, Inc | Zero setup time flip flop |
5898330, | Jun 03 1997 | Sun Microsystems, Inc | Edge-triggered staticized dynamic flip-flop with scan circuitry |
5900759, | Jun 26 1997 | Oracle America, Inc | Dynamic-to-static convertor and staticized flop including the same |
6060910, | Aug 08 1997 | NEC Corporation | Dynamic logic circuit |
6121807, | Sep 19 1996 | Sun Microsystems, Inc. | Single phase edge-triggered dual-rail dynamic flip-flop |
6181180, | Jun 28 1999 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Flip-flop circuit |
6242952, | Sep 24 1999 | Texas Instruments Incorporated | Inverting hold time latch circuits, systems, and methods |
6304123, | Apr 19 1999 | Texas Instruments Incorporated | Data storage circuits using a low threshold voltage output enable circuit |
6437602, | Jul 12 2001 | International Business Machines Corporation | Fully dynamic logic network circuits |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 30 2002 | Intel Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Oct 17 2005 | ASPN: Payor Number Assigned. |
Jan 19 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Feb 28 2011 | REM: Maintenance Fee Reminder Mailed. |
Apr 14 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Apr 14 2011 | M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Dec 31 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 22 2006 | 4 years fee payment window open |
Jan 22 2007 | 6 months grace period start (w surcharge) |
Jul 22 2007 | patent expiry (for year 4) |
Jul 22 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 22 2010 | 8 years fee payment window open |
Jan 22 2011 | 6 months grace period start (w surcharge) |
Jul 22 2011 | patent expiry (for year 8) |
Jul 22 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 22 2014 | 12 years fee payment window open |
Jan 22 2015 | 6 months grace period start (w surcharge) |
Jul 22 2015 | patent expiry (for year 12) |
Jul 22 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |