Flip-flop circuit
BACKGROUND OF THE INVENTION 
     This invention relates to a high-speed flip-flop circuit possessing functions substantially equivalent to those of a delay flip-flop. 
     A delay flip-flop (hereinafter referred to as a D-FF) is in general a circuit that takes in data in synchronization with a clock signal and outputs it at a certain time. At high clock frequencies, this type of D-FF is liable to malfunction in taking in the data. Various flip-flop circuits (hereinafter referred to as FF circuits) suitable for high-speed operation have therefore been proposed. 
     A prior-art FF circuit of this type has been described in the article &#34;5-Gbit/s Si Integrated Regenerative Demultiplexer and Decision Circuit&#34; by Detlef Clawin, Ulrich Langmann, and Hans-Ulrich Schreiber, published on pages 385 to 389 of the (American) IEEE Journal of Solid-State Circuits, Vol. SC-22, No. 3, in Jun. 1987. A description thereof will be given with reference to the drawings. 
     FIG. 1 is a block diagram showing an example of the configuration of a prior-art FF circuit. 
     This FF circuit comprises a pair of master-slave flip-flops (hereinafter referred to as MS-FFs) 1 and 2 for latching data Di and the inverted data Di in synchronization with a clock signal CL and its inverted clock signal CL, and a selector 3 for selecting the outputs of the MS-FFs 1 and 2 responsive to the clock signal CL and the inverted clock signal CL and producing them in the form of data Do and the inverted data Do. 
     The MS-FF 1 is a circuit that latches the data Di and the inverted data Di on the rise of the clock signal CL and outputs them on the fall of the clock signal CL, and has an input terminal D1 for input of the data Di, an inverted input terminal D1 for input of the inverted data Di, a clock input terminal C1 for input of the clock signal CL, an inverted clock input terminal C1 for input of the inverted clock signal, an output terminal Q1, and an inverted output terminal Q1. The MS-FF 2 is a circuit that latches the data Di and the inverted data Di on the rise of inverted clock signal CL and outputs them on the fall of the inverted clock signal CL, and has an input terminal D2 for input of the data Di, an inverted input terminal D2 for input of the inverted data Di, a clock input terminal C2 for input of the inverted clock signal CL, an inverted clock input terminal C2 for input of the clock signal CL, an output terminal Q2, and an inverted output terminal Q2. The selector 3 has an input terminal I1 connected to the output terminal Q1, an inverted input terminal I1 connected to the inverted output terminal Q1, an input terminal I2 connected to the output terminal Q2, an inverted input terminal I2 connected to the inverted output terminal Q2, a control terminal CS for input of the clock signal CL, an inverted control terminal CS for input of the inverted clock signal CL, an output terminal O for output of the data Do, and an inverted output terminal O for output of the inverted data Do. When the logic level of the control terminal CS is high (hereinafter denoted &#34;H&#34;) and the logic level of the inverted control terminal CS is low (hereinafter denoted &#34;L&#34;), the selector 3 produces the logic level of the input terminal I1 at the output terminal O, and produces the logic level of the inverted input terminal I1 at the inverted output terminal O; when the control terminal CS is &#34;L&#34; and the inverted control terminal CS is &#34;H,&#34; it produces the logic level of the terminal I2 at the output terminal O and the logic level of the inverted input terminal I2 at the inverted output terminal O . 
     FIGS. 2a-2j are timing charts for FIG. 1, with times t0 to t4 indicated on the horizontal axis. The operation of FIG. 1 will be explained with reference to this chart. 
     At time t0, the clock signal CL is &#34;H,&#34; the inverted clock signal is &#34;L,&#34; the data Di is &#34;L,&#34;, and the inverted data Di is &#34;H,&#34; so the output terminal Q1 of the MS-FF 1 is held at &#34;L,&#34; the inverted output terminal Q1 is held at &#34;H,&#34; the output terminal Q2 of the MS-FF 2 goes to &#34;L,&#34; and the inverted output terminal Q2 goes to &#34;H,&#34; making the data Do at the output terminal O of the selector 3 &#34;L&#34; and the inverted data Do at the inverted output terminal O H. 
     At time t1, when the clock signal CL goes to &#34;L&#34; and the inverted clock signal CL goes to &#34;H,&#34; since the data Di is &#34;H&#34; and the inverted data Di is &#34;L,&#34; the output terminal Q1 of the MS-FF 1 rises to &#34;H&#34; and the inverted output terminal Q1 falls to &#34;L.&#34; The output terminals Q2 and Q2 are not changed. 
     At time t2, when the clock signal CL goes to &#34;H&#34; and the inverted clock signal CL goes to &#34;L,&#34; since the data Di is &#34;L&#34; and the inverted data Di is &#34;H,&#34; the output terminal Q2 of the MS-FF 2 is &#34;L&#34; and the inverted output terminal Q2 is &#34;H,&#34; the output terminal Q1 of the MS-FF 1 remains &#34;H&#34; and the inverted output terminal Q1 remains &#34;L.&#34; The data Do at the output terminal O of the selector 3 is therefore &#34;H,&#34; and the inverted data Do at the inverted output terminal O is &#34;L.&#34; 
     At time t3, when the clock signal CL goes to &#34;L&#34; and the inverted clock signal CL goes to &#34;H,&#34; since the data Di is &#34;H&#34; and the inverted data Di is &#34;L,&#34; the output terminal Q1 of the MS-FF 1 is &#34;H&#34; and the inverted output terminal Q1 is &#34;L,&#34; the output terminal Q2 of the MS-FF 2 remains &#34;L&#34; and the inverted output terminal Q2 remains &#34;H,&#34; the data Do goes to &#34;L,&#34; and the inverted data Do goes to &#34;H.&#34; 
     At time t4, when the clock signal CL goes to &#34;H&#34; and the inverted clock signal CL goes to &#34;L,&#34; since the data Di is &#34;H&#34; and the inverted data Di is &#34;L,&#34; the output terminal Q1 of the MS-FF 1 remains &#34;H&#34; and the inverted output terminal Q1 remains &#34;L,&#34; the output terminal Q2 of the MS-FF 2 goes to &#34;H&#34; and the inverted output terminal Q2 goes to &#34;L,&#34; and the data Do goes to &#34;H&#34; while the inverted data Do goes to &#34;L.&#34; 
     The FF circuit in FIG. 1 thus operates as a D-FF by outputting the logic levels of the data Di and the inverted data Di when the clock signal CL and the inverted clock signal CL change as the data Do and inverted data Do at the next change of the clock signal CL and the inverted clock signal CL. When the clock signal CL is &#34;H&#34; and the inverted clock signal CL is &#34;L,&#34; the output signals of the MS-FF 1 are output by the selector 3, while when the clock signal CL is &#34;L&#34; and the inverted clock signal CL is &#34;H,&#34; the output signals of the MS-FF 2 are output by the selector 3, so stable, high-speed operation is possible even at high frequencies of the clock signal CL. 
     The reason that the FF circuit in FIG. 1 is capable of high-speed operation can be stated as follows. The FF circuit in FIG. 1 is constructed so that the MS-FF 1 and the MS-FF 2 operate at only half the clock frequency at which they would operate if used as stand-alone D-FFs. The FF circuit in FIG. 1 can therefore operate at a bit rate equal to twice the limiting clock frequency of a stand-alone D-FF. 
     A problem with the FF circuit described above is that, since it employs two MS-FFs 1 and 2 and a selector 3, if these comprise NOR gates, for example, eighteen to twenty-two NOR gates are required; the large number of elements required and the complex circuit structure present an obstacle to high levels of circuit integration, and consume more power than the usual D-FF. A further problem is that the output is delayed by one bit as compared with the usual D-FF, which restricts the applicability of the circuit. 
     SUMMARY OF THE INVENTION 
     An object of the invention is to provide a FF circuit that solves the problem of the large number of elements and complex circuit structure, the problem of large power consumption, and the problem of output delay found in the prior art described above. 
     A flip-flop circuit according to the invention comprises: 
     a first flip-flop (hereinafter FF) for latching data and inverted data in synchronization with a clock signal and an inverted clock signal and generating a first output signal and a first inverted output signal at a certain timing; 
     a second FF for latching the above-mentioned data and inverted data in synchronization with the inverted clock signal and clock signal and generating a second output signal and a second inverted output signal at a certain timing; and 
     a selector for selecting and outputting the first output signal and first inverted output signal responsive to the clock signal and selecting and outputting the second output signal and second inverted output signal responsive to the inverted clock signal. 
     The first and second FFs have the following configuration: 
     The first FF comprises first and second transfer gates for taking in the afore-mentioned data and inverted data, respectively, responsive to the clock signal, and first and second inverters cross-coupled across the outputs of the first and second transfer gates. The second FF comprises third and fourth transfer gates for taking in the afore-mentioned data and inverted data, respectively, responsive to the inverted clock signal, and third and fourth inverters cross-coupled across the outputs of the third and fourth transfer gates. 
     The selector may comprise, for example, first and second NOR gates for NORing the output signals of the first and second transfer gates with the clock signal, third and fourth NOR gates for NORing the output signals of the third and fourth transfer gates with the inverted clock signal, a fifth NOR gate for NORing the outputs of the first and third NOR gates, and a sixth NOR gate for NORing the outputs of the second and fourth NOR gates. 
     In a FF circuit configured according to this invention as described above, the first and second transfer gates and the third and fourth transfer gates switch alternately on and off in synchronization with the clock signal and the inverted clock signal and alternately take in the data and the inverted data. The first and second inverters and the third and fourth inverters temporarily store, then output, the data and inverted data taken in by the transfer gates. The selector alternately outputs the first and second FF outputs in synchronization with the clock signal and inverted clock signal. The circuit thus operates, for example, at high speed in the manner of a D-FF. Since the first and second FFs have few elements, the circuit configuration is simplified and can yield improved scales of integration while consuming less power. There is furthermore no one-bit output delay in the configuration of the first and second FFs. The above-mentioned problems can therefore be eliminated. 
     The selector circuit can also be simplified by employment of a configuration comprising, for example, six NOR gates. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a prior-art FF circuit. 
     FIGS. 2a-2j are timing charts for FIG. 1. 
     FIG. 3 is a schematic diagram of an FF circuit illustrating an embodiment of this invention. 
     FIGS. 4a-4n are timing charts for FIG. 3. 
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     FIG. 3 is a schematic diagram of an FF circuit illustrating an embodiment of the present invention. 
     This FF circuit comprises first and second FFs 10 and 20 for latching input data Di and inverted input data Di alternately in synchronization with a clock signal CL and an inverted clock signal CL, and a selector 30 for selecting alternately, responsive to the clock signal CL and the inverted clock signal CL, the data Di and the inverted data Di latched by the first and second FFs 10 and 20 and producing them as data Do and inverted data Do; the overall function of this FF circuit is to operate as a D-FF. 
     The first FF 10 comprises a first transfer gate 11 which is in the form of a field effect transistor, which has one of its source/drain electrodes connected to an input data terminal, which is also denoted by Di, to receive the data Di, whose gate electrode is connected to a clock signal input terminal CL so that it turns on and off responsive to the clock signal CL and which, when it is on, takes in the data Di. 
     The first FF 10 also comprises a second transfer gate 12 which is in the form of a field effect transistor, which has one of its source/drain electrodes connected to an inverted input data terminal Di to receive the inverted data Di, which turns on and off responsive to the clock signal CL and which, when it is on, takes in the inverted data Di. The other of the source/drain electrodes of the transfer gate 11 is connected to an output node N11 of the flip-flop circuit 10. The other of the source/drain electrodes of the transfer gate 21 is connected to an output node N12 of the flip-flop circuit 10. 
     The first FF 10 further comprises a latch circuit 15 comprising first and second inverters 13 and 14 which are cross-coupled across the output nodes N11 and N12 of the first and second transfer gates 11 and 12, as illustrated in FIG. 3. More specifically, the first inverter 13 has input and output nodes connected to the outputs of the first and second transfer gates 11 and 12, respectively. The second inverter 14 has input and output nodes connected to the outputs of the second and first transfer gates 12 and 11, respectively. 
     The second FF 20 comprises a third transfer gate 21 which is in the form of a field effect transistor, which has one of its source/drain electrodes connected to the input data terminal Di to receive the data Di, whose gate electrode is connected to an inverted clock signal input terminal CL so that it turns on and off responsive to the inverted clock signal CL and which, when it is on, takes in the data Di. 
     The second FF 20 also comprises a fourth transfer gate 22 which is in the form of a field effect transistor, which has one of its source/drain electrodes connected to the inverted input data terminal Di to receive the data Di, whose gate electrode is connected to the inverted clock signal input terminal CL so that it turns on and off responsive to the inverted clock signal CL and which, when it is on, takes in the data Di. 
     The second FF 20 further comprises a latch circuit 25 comprising third and fourth inverters 23 and 24 which are cross-coupled across the output nodes N21 and N22 of the third and fourth transfer gates 21 and 22. More specifically, the third inverter 23 has input and output nodes connected to the outputs of the third and fourth transfer gates 21 and 22, respectively. The fourth inverter 24 has input and output nodes connected to the outputs of the fourth and third transfer gates 22 and 21, respectively. 
     The first to fourth transfer gates 11, 12, 21, and 22, which comprise field-effect transistors (hereinafter referred to as FETs), turn on when the clock signal CL and inverted clock signal CL applied to their gate electrodes are &#34;H,&#34; and turn off when they are &#34;L.&#34; 
     The selector 30 comprises first to sixth two-input NOR gates 31, 32, 33, 34, 35, and 36; the clock signal CL and the node N11 are connected to the inputs of the first NOR gate 31, the clock signal CL and the node N12 to the inputs of the second NOR gate 32, the inverted clock signal CL and the node N21 connected to the inputs of the third NOR gate 33, and the inverted clock signal CL and the node N22 connected to the inputs of the fourth NOR gate 34. The output nodes N31 and N33 of the first and third NOR gates 31 and 33 are connected to the inputs of the fifth NOR gate 35, the output nodes N32 and N34 of the second and fourth NOR gates 32 and 34 are connected to the inputs of the sixth NOR gate 36, and the data Do and inverted data Do are output from the outputs of the fifth and sixth NOR gates 35 and 36. 
     FIGS. 4a-4n are timing charts for FIG. 3, with times t0 to t4 indicated on the horizontal axis. The operation of FIG. 3 will be explained with reference to this chart. 
     At time t0, the data Di is &#34;L,&#34; the inverted data Di is &#34;H,&#34; the clock signal CL rises to &#34;H,&#34; and the inverted clock signal CL falls to &#34;L,&#34; so the first and second transfer gates 11 and 12 turn on, the output node N11 goes to &#34;L,&#34; the output node N12 goes to &#34;H,&#34; the third and fourth transfer gates 21 and 22 turn off, and the output nodes N21 and N22 retain their previous &#34;L&#34; and &#34;H&#34; states, respectively. The &#34;L&#34; of the node N11 and the &#34;H&#34; of the clock signal CL are NORed by the NOR gate 31, the output node N31 of which goes to &#34;L.&#34; Similarly, the &#34;H&#34; of the node N12 and the &#34;H&#34; of the clock signal CL pass through the NOR gate 32, the output node N32 of which is kept at &#34;L,&#34; the &#34;L&#34; of the node N21 and the &#34;L&#34; of the inverted clock signal CL pass through the NOR gate 33, the output node N33 of which goes to &#34;H,&#34; and the &#34;H&#34; of the node N22 and the &#34;L&#34; of the inverted clock signal CL  pass through the NOR gate 34, the output node N34 of which is kept at &#34;L.&#34; The &#34;L&#34; of the node 31 and the &#34;H&#34; of the node 33 are NORed by the NOR gate 35 causing the output data Do to be at &#34;L,&#34; and the &#34;L&#34; of the node 32 and the &#34;L&#34; of the node 34 are NORed by the NOR gate 36 causing the inverted output data Do to be at &#34;H.&#34; 
     At time t01, the data Di rises to &#34;H,&#34; and the inverted data Di falls to &#34;L.&#34; Accordingly, the node N11 rises to &#34;H,&#34; and the node N12 falls to &#34;L.&#34; Because the clock signal CL is &#34;H,&#34; the nodes N31 and N32 are kept at &#34;L.&#34; 
     At time t1, when the clock signal CL goes to &#34;L&#34; and the inverted clock signal CL goes to &#34;H,&#34; since the data Di is &#34;H&#34; and the inverted data Di is &#34;L,&#34; the node N11 is kept at &#34;H,&#34; the node N12 is kept at &#34;L,&#34; the node 21 goes to &#34;H,&#34; the node 22 goes to &#34;L,&#34; the node 31 is kept at &#34;L,&#34; the node 32 goes to &#34;H,&#34; the node 33 goes to &#34;L,&#34; the node 34 is kept at &#34;L,&#34; the data Do goes to &#34;H,&#34; and the inverted data Do goes to &#34;L.&#34; 
     At time t11, the data Di falls to &#34;L,&#34; and the inverted data Di rises to &#34;H.&#34; Accordingly, the node N21 falls to &#34;L,&#34; and the node N22 rises to &#34;H.&#34; Because the inverted clock signal CL is &#34;H,&#34; the nodes N33 and N34 are kept at &#34;L.&#34; 
     At time t2, when the clock signal CL goes to &#34;H&#34; and the inverted clock signal CL goes to &#34;L,&#34; since the data Di is &#34;L&#34; and the inverted data Di &#34;H,&#34; the nodes N11, N12, N21, N22, N31, N32, N33 and N34 will be at &#34;L,&#34; &#34;H,&#34; &#34;L,&#34; &#34;H,&#34; &#34;L,&#34; &#34;L,&#34; &#34;H,&#34; and &#34;L,&#34; respectively, the data Do goes to &#34;L,&#34; and the inverted data Do goes to &#34;H.&#34; 
     At time t21, the data Di rises to &#34;H,&#34; and the inverted data Di falls to &#34;L.&#34; Accordingly, the node N11 rises to &#34;H,&#34; and the node N12 falls to &#34;L.&#34; Because the clock signal CL is &#34;H,&#34; the nodes N31 and N32 are kept at &#34;L.&#34; 
     At time t3, when the clock signal CL goes to &#34;L&#34; and the inverted clock signal CL goes to &#34;H,&#34; since the data Di is &#34;H&#34; and the inverted data Di is &#34;L,&#34; the nodes N11, N12, N21, N22, N31, N32, N33, and N34 will be at &#34;H,&#34; &#34;L,&#34; &#34;H,&#34; &#34;L,&#34; &#34;L,&#34; &#34;H,&#34; &#34;L,&#34; and &#34;L,&#34; respectively, the data Do goes to &#34;H,&#34; and the inverted data Do goes to &#34;L.&#34; 
     It is assumed that there is no change in the data Di and the inverted data Di between time t3 and time t4. 
     At time t4, when the clock signal CL goes to &#34;H&#34; and the inverted clock signal CL goes to &#34;L,&#34; since the data Di is &#34;H&#34; and the inverted data Di is &#34;L,&#34; the nodes N11, N12, N21, N22, N31, N32, N33, and N34 will be at &#34;H,&#34; &#34;L,&#34; &#34;H,&#34; &#34;L,&#34; &#34;L,&#34; &#34;L,&#34; &#34;L,&#34;, and &#34;H,&#34; respectively, the data Do goes to &#34;H,&#34; and the inverted data Do goes to &#34;L.&#34; 
     Thus when the clock signal CL goes to &#34;H&#34; and the inverted clock signal CL goes to &#34;L,&#34; the selector 30 produces the outputs of the second FF 20, namely the signals at the nodes N21 and N22, as the data Do and the inverted data Do; when the clock signal CL goes to &#34;L&#34; and the inverted clock signal CL goes to &#34;H,&#34; it produces the outputs of the first FF 10, namely the signals at the nodes N11 and N12, as the data Do and the inverted data Do. The FF circuit in FIG. 3 therefore operates as a D-FF by outputting, as the data Do and inverted data Do, the logic levels of the data Di and the inverted data Di when the logic levels of the clock signal CL and the inverted clock signal CL change. 
     This embodiment possesses the following advantages: 
     (a) Whereas the prior-art FF circuit required eighteen to twenty-two NOR gates, the FF circuit of this embodiment comprises four transfer gates 11, 12, 21, and 22, four inverters 13, 14, 23, and 24, and six NOR gates 31 to 36; thus it has fewer elements, hence consumes less power, and enables higher-scale integration to be achieved due to its simpler circuit structure. 
     (b) The data Do and inverted data Do are output with the same timing as in the usual D-FF, so this embodiment can be widely used in the same applications as the usual D-FF, where high processing speeds are required. 
     The scope of this invention is not limited to the embodiment shown in the drawings, but permits various modifications, some examples of which are given next. 
     (i) The transfer gates 11, 12, 21, and 22 may comprise transistors other than FETs, or may comprise devices such as analog switches having a pair of transistors connected in parallel. 
     (ii) The selector 30 may comprise a combination of NOR gates and gates other than NOR gates, such as NAND gates, or may comprise only gates other than NOR gates. 
     In place of the combination of the NOR gates, the selector 30 can comprise other logic circuit of the same function. Moreover, it can comprises two pairs of transfer gates controlled by the clock signal CL and the inverted clock signal CL, and selectively transfer the outputs of the nodes N11 and N12, or the nodes N21 and N22, to the output nodes Do and Do. 
     As has been explained in detail, since the first and second FFs according to this invention comprise two transfer gates and two inverters apiece, the number of elements is small, power consumption can be accordingly reduced, and the circuit structure can be simplified, permitting a higher scale of integration. There is furthermore no one-bit output delay as in the prior art; the removal of this restriction enables many applications.