Symmetric selector circuit for event logic

Abstract: A selector circuit with symmetry is disclosed. It steers input transition events to one of two outputs according to the value of a data input signal. The selector circuit includes a first flip-flop and a second flip-flop. Depending on the state of a data input, one of the two flip-flops is enabled and the other is disabled. The disabled flip-flop will be in a tristate mode. The enabled flip-flop continues storing its data, and may load the disabled flip-flop with this data. The selector circuit further includes pass gates to couple the outputs of the flip-flops based on the state of the event input.

Description: BACKGROUND OF THE INVENTION This invention relates to logic circuits, and in particular to an improved selector circuit for use with event logic circuits. One known technique for conveying information within computer systems is the concept of events. In the "transition signalling" convention, an event typically consists of a change in state of a signal. If a system uses a single conductor for transmission of events, the state of the conductor is changed to indicate an event. It is either raised or lowered from its previous condition. The resulting edge, rising or falling, denotes the occurrence of an event. For example, the conductor may be initially at a low potential, such as 0 volts. If a potential source then is switchably coupled to the conductor, the potential of the conductor changes to a different potential signalling an event. When the potential source is disconnected, the conductor returns to its 0 volt state, signalling another event. The rising edge, or the falling edge, both designate the occurrence of events. In many digital systems selector circuits are used to steer an event from an input node to one of two (or more) output nodes depending upon the state of a control signal. For example, an event presented on an input terminal to a selector circuit can be steered to one of two output terminals for that selector circuit, depending upon the state of a binary control signal also supplied to the selector circuit. If the control signal is true, then the input event to the selector will cause an output event on one terminal, while if the control signal is false, then the input event will cause an output event on another terminal. This invention provides an improved selector circuit, particularly useful for event logic circuits. Summary of the Invention The present invention provides a high performance selector circuit. A selector circuit is a logic element used in digital systems, particularly those employing event logic. The present invention may be used in many types of digital circuits and systems, for example, computer systems or microprocessors. The selector circuit of this invention provides for rapidly steering an event from a single input terminal to one of two output terminals depending on the binary value of a data signal controlling the selector. In operation, events are received at an event input terminal. A selection value, placed at a control terminal causes the selector circuit to steer the event to one of the output terminals. For each change of value at the event input, one or the other of the output nodes will change. Which output changes is determined by the selection value applied to the control terminal. The selector circuit of the present invention is symmetric because the circuit operates the same regardless of the state of the event input, i.e. for rising or falling input events. Furthermore, the circuit of this invention is not sensitive to changes in the state of the selection value absent an event at the input terminal. The selector circuit of the present invention includes two flip-flops, preferably identical. Depending on the state of the control terminal, one of the two flip- flops is enabled, and the other is disabled. The disabled flip-flop is placed in a tristate mode, that is, it presents a high impedance to its output terminals. The enabled flip-flop stores its data, and drives the disabled flip-flop with this data. The selector circuit further includes pass gates to couple the output terminals of the flip-flops together based on the state of the event input. In accordance with this invention a selector circuit comprises a first flip-flop (310) having a first enabled state and second disabled state, which is coupled to a second flip-flop (315) having a first disabled state and a second enabled state, said first and second flip-flops (310,315) being coupled to a plurality of pass gates (381,382,384,386), characterised in that: in the second disabled state, a first flip-flop output (T230) is placed in a tristate condition; and in the first disabled state, a second flip-flop output (F240) is placed in a tristate condition; wherein data from said first flip-flop (310) is passed to said second flip-flop (315) in said first state via at least one of said pass gates, and data from said second flip-flop (315) is passed to said first flip-flop (310) in said second state via at least one of said pass gates; and wherein said first flip-flop (310), said second flip-flop (315), and one or more of said pass gates cooperate together to steer an input (A210) to one of a plurality of outputs (230,240). Brief Description of the Drawings Figure 1 is a block diagram of a selector circuit; and Figure 2 is a schematic diagram for a selector circuit of the present invention. Description of the Specific Embodiments Figure 1 is a block diagram of a selector circuit as may be embodied in a digital system, particularly a system employing event logic. Selector 100 is a circuit for steering an event from a single input terminal A to one of two or more output terminals T 230 and F 240, depending on the value of the control input signal D 220. In Figure 2, if signal D 220 is true, an event or events on the input terminal A 210 cause an output event or events on output terminal T 230. If the control signal D 220 is false, events on terminal A 210 cause output events on terminal F 240. In other words, each input event is steered to one of two output terminals based on the control signal D. Selector 100 has a bundling constraint. The data value, that is, the control input or information signal D 220, must be stable at the time the event arrives at event input terminal A 210. The data value must be stable to avoid an incomplete selection that would produce a partial change in one or the other or both of the output nodes. Therefore, we speak of the data value at node D 220 as "bundled" with the input event on A 210 . This implies that an event on input node A 210 occurs only at times when the data value is stable. This "bundling" can be achieved by having the circuitry external to Figure 2 designed to assure both the input event and a stable selector value are presented at the same time. Figure 2 is a schematic of a preferred embodiment of the selector circuit 100 of the present invention. The circuit includes two flip-flops, a flip-flop 310 , and a flip-flop 315 . In this embodiment, flip-flops 310 and 315 are identical circuits. This accounts for some of the symmetry of selector circuit 100 of the present invention. Flip-flop 310 drives output nodes T 230 and T 320 (the complement of T 230 ). Flip-flop 315 drives output nodes F 240 and F 325 (the complement of F 240 ). During normal operation, depending on the state of signals D 220 and D 330 (the complement of D 220 ), one flip-flop is enabled (powered), while the other is disabled (not powered). In particular, when D 220 is a logic high, flip-flop 315 is enabled, while flip-flop 310 is disabled. When D 220 is a logic low, flip-flop 310 is enabled, while flip-flop 315 is disabled. When enabled, a flip-flop stores a logic state. When a flip-flop is disabled, its output terminals are tristated. New data, however, may be stored into a disabled flip-flop. This new data may come from the enabled flip-flop. The upper part of flip-flop 310 is comprised of two parallel connected stacks of two serially connected PMOS transistors. One PMOS stack is coupled between a first potential supply 10 and node T 230 . The first potential supply 10 is typically VDD (or VCC). VDD is generally about 5 volts, although 3.3 volts, as well as other voltages, are also possible. First supply 10 also may be a "local" VDD which is. separate from VDD for the system. A PMOS transistor 340 in this stack is coupled between first supply 10 and the source of a PMOS transistor 343 in the stack. The gate of PMOS transistor 340 is coupled to node D 220 . PMOS transistor 343 , in series with PMOS transistor 340 , is coupled between the drain of PMOS transistor 340 and node T 230. The gate of PMOS transistor 343 is coupled to node T 320 . Another PMOS stack is coupled between first potential supply 10 and node T 320. A PMOS transistor 346 in this stack is coupled between first supply 10 and the source of a PMOS transistor 349. The gate of PMOS transistor 346 is coupled to node D 220 . A PMOS transistor 349 , in series with PMOS transistor 346 , is coupled between the drain of PMOS transistor 346 and node T 320 . The gate of PMOS transistor 349 is coupled to node T 230 . Flip-flop 310 further includes two parallel stacks, each including two NMOS transistors coupled in series. One NMOS stack is coupled between node T 230 and a second potential supply 20 . Second supply 20 is typically VSS or ground. VSS is generally taken to be zero volts. Second supply 20 may also be a "local" VSS which is separate from VSS for the system. An NMOS transistor 351 in this stack is coupled between the second potential supply 20 and the source of an NMOS transistor 354 in the stack. The gate of NMOS transistor 351 is coupled to node D 330 . NMOS transistor 354 , in series with NMOS transistor 351 , is coupled between the drain of NMOS transistor 351 and node T 230 . The gate of NMOS transistor 354 is coupled to node T 320 . Another stack of NMOS transistors is coupled between second supply 20 and node T 320 . An NMOS transistor 357 in this stack is coupled between second supply 20 and the source of an NMOS transistor 359 in the stack. The gate of NMOS transistor 357 is coupled to node D 330. NMOS transistor 359, in series with NMOS transistor 357, is coupled between the drain of NMOS transistor 357 and node T 320. The gate of NMOS transistor 359 is coupled to node T 230. Selector 100 further comprises flip-flop 315 , which, in the preferred embodiment, is an identical circuit to flip-flop 310 , except for the signal input nodes and output nodes. Flip-flops 310 and 315 are coupled together using four pass gates 381, 382, 384 and 386 . In the preferred embodiment, the four pass gates are identical. A first pass gate 381 couples node T 230 and node F 240 when node A 210 is logic low, otherwise first pass gate 381 isolates these nodes. A second pass gate 382 couples node T 230 and node F 325 when node A 210 is logic high, otherwise second pass gate 382 isolates these nodes. A third pass gate 384 couples node T 320 and node F 240 when node A 210 is logic high, otherwise third pass gate 381 isolates these nodes. A fourth pass gate 386 couples node T 320 and node F 325 when A 210 is logic low, otherwise fourth pass gate 381 isolates these nodes. Each pass gate 381, 382, 384 and 386 may be designed using any well known technique. In the preferred embodiment of the present invention, the pass gates comprise CMOS transmission gates, where an NMOS transistor 383 is configured in parallel with a PMOS transistor 385 . For purpose of explanation, each pass gate is shown as comprised of transistors 383 and 385 . In the actual implementation of the circuit, each gate is formed from its own pair of transistors, not shared with other gates. For pass gate 381, the gate of NMOS transistor 383 is coupled to the A 390 input node (the complement of node A 210 ) and the gate of PMOS transistor 385 is coupled to node A 210. The other pass gates are similarly configured and connected as shown. In operation, nodes D 220 and A 210 control how data is passed to nodes T 230 and F 240 of flip-flops 310 and 315 . Node D 220 selects which output, node T 230 or node F 240 , will be active. When node D 220 is logic high, node T 230 may change, while node F 240 will be fixed. More specifically, in this embodiment, when node D 220 is high, flip-flop 315 will remain coupled to first potential supply 10 and second supply 20, while flip-flop 310 will be decoupled from the potential supplies and thus able to change. Node T 230 and node F 320 will tristate. Then, flip-flop 310 may be loaded with data stored in powered flip-flop 315 . The signal on node A 210, the input node, selects how output nodes T 230 and F 240 will be coupled to each other. In particular, when node A 210 is logic low, pass gates 381 and 386 couple node T 230 to node F 240 and node T 320 to node F 325. When node A 210 is logic high, pass gates 382 and 384 couple node T 230 to node F 325 and node T 320 to node F 240. Similarly, when the signal on node D 220 is logic low, node T 230 is fixed, while node F 240 may change. More specifically in this embodiment, flip-flop 310 will remain coupled to first supply 10 and second supply 20, while flip-flop 315 will be decoupled from the potential supplies. Node F 240 and node F 325 will be tristated. Then, flip-flop 315 will be loaded with the data stored in powered flip-flop 310. Furthermore, when node A 210 is logic low, pass gates 381 and 386 couple node T 230 to node F 240, and node T 320 to node F 325. When node A 210 is logic high, pass gates 382 and 386 couple node T 230 to node F 325 and node T 320 to node F 240. The foregoing description of preferred embodiments of the invention has been presented for the purposes of description. It is not intended to be exhaustive or to limit the invention to the precise form described, and modifications and variations are possible in light of the teaching above. For example, given the explanation above, it will be appreciated that selector circuits can be designed using the principles of this invention which select an input event to pass to any one of a group of output nodes in response to a multiple bit control signal.

Claims: A selector circuit comprising: a first flip-flop (310) having a first enabled state and second disabled state, which is coupled to a second flip-flop (315) having a first disabled state and a second enabled state, said first and second flip-flops (310,315) being coupled to a plurality of pass gates (381,382,384,386), characterised in that : in the second disabled state, a first flip-flop output (T230) is placed in a tristate condition; and in the first disabled state, a second flip-flop output (F240) is placed in a tristate condition; wherein data from said first flip-flop (310) is passed to said second flip-flop (315) in said first state via at least one of said pass gates, and data from said second flip-flop (315) is passed to said first flip-flop (310) in said second state via at least one of said pass gates; and wherein said first flip-flop (310), said second flip-flop (315), and one or more of said pass gates cooperate together to steer an input (A210) to one of a plurality of outputs (230,240). The selector circuit of claim 1, wherein in the first state, the first flip-flop (310) is coupled to a first supply (10) and a second supply (20), and said second flip-flop is decoupled from said first supply (10) and said second supply (20). The selector circuit of claim 1 or 2 wherein in said second state said first flip-flop (310) is decoupled from a first supply (10) and a second supply (20), and said second flip-flop (315) is coupled to said first supply (10) and said second supply (20). The selector circuit of any one of the preceding claims wherein said first flip-flop (310) further includes a first flip-flop inverse output node (320) and said second flip-flop further comprises a second flip-flop inverse output node (325), and wherein in a first mode said first flip-flop output node (230) is coupled to said second flip-flop output node (240), and said first flip-flop inverse output node (320) is coupled to said second flip-flop inverse output node (325), and in a second mode said first flip-flop output node (230) is coupled to said second flip-flop inverse output node (325) and said first flip-flop inverse output node (320) is coupled to said second flip-flop output node (240). The selector circuit of any one of the preceding claims wherein said first flip-flop (310) has a circuit which is identical to said second flip-flop (315). The selector circuit of claim 1, wherein the first flip-flop (310) comprises a first output node (230) and a second output node (320), said second output node (320) providing a complementary output signal to the first output node (230), the second flip-flop (315) comprising a third output node (240) and a fourth output node (325), said fourth output node (325) providing a complementary output signal to the third output node (240). The selector circuit of claim 6, wherein said pass gates comprise: a first pass gate (381) for connecting the third output node (240) to said first output node (230) when a first control signal (A210) is in a first state and disconnecting the third output node (240) from said first output node (230) when said first control signal (A210) is in a second state; a second pass gate (382) for connecting the fourth output node (325) to said first output node (230) when said first control signal (A210) is in said second state and disconnecting said fourth output node (325) from said first output node (230) when said first control signal (A210) is in said first state; a third pass gate (384) for connecting the third output node (240) to said second output node (320) when a first control signal (A210) is in said second state and disconnecting the third output node (240) from said second output node (320) when said first control signal (A210) is in said first state; and a fourth pass gate (386) for connecting the fourth output node (325) to said second output node (320) when said first control signal (A210) is in said first state and disconnecting said fourth output node (325) from said second output node (320) when said first control signal (A210) is in said second state. The selector circuit of claim 7, wherein when a second control signal (D220) is in said first state, said first flip-flop (310) is in a powered state, and when said second control signal (D220) is in said second state, said first flip-flop (310) is in an unpowered state wherein in said powered state said first flip-flop (310) stores a state of said first output (230) and a state of a second output (320). The selector of claim 8, wherein when a second control signal (D220) is in said second state, said second flip-flop (315) is in a powered state, and when said second control signal (D220) is in said first state, said second flip-flop (315) is in an unpowered state, wherein in said powered state said second flip-flop (315) stores a state of a third output (240) and a state of a fourth output (325). The selector of claim 7, wherein when a second control signal (D220) is in a first state, said first flip-flop (310) is coupled to a supply voltage (10) and said second flip-flop (315) is decoupled from said supply voltage (10), said first output (230) of said first flip-flop (310) drives said third output (240) of said second flip-flop (315) and said second output (320) of said first flip-flop (310) drives said fourth output (325) of said second flip-flop (315). The selector of claim 10, wherein when a second control signal (D220) is in a second state, said first flip-flop (310) is decoupled from said supply voltage (10) and said second flip-flop (315) is coupled to said supply voltage (10), said third output (240) of said second flip-flop (315) drives said first output (230) of said first flip-flop (310) and said fourth output (315) of said second flip-flop (315) drives said second output (320) of said first flip-flop (310). The selector circuit of claim 1, wherein said first flip-flop (310) is coupled to a power supply (10) in said first state and is decoupled from said power supply (10) in said second state, and said second flip-flop (315) being decoupled from said power supply (10) in said first state and being coupled to said power supply (10) in said second state. The selector circuit of claim 12, wherein in said first state, said first flip-flop (310) drives a first flip-flop output (240) through said pass gate (381,382,384,386) to said second flip-flop (315), and said second flip-flop (315) stores said first flip-flop output. The selector circuit of claim 13 wherein in said second state, said second flip-flop (315) drives a second flip-flop output (230) through said pass gate (381,382,384,386) to said first flip-flop (310), and said first flip-flop (310) stores said second flip-flop output.

Inventors: SUTHERLAND IVAN, SUTHERLAND, IVAN
Applicants: SUN MICROSYSTEMS INC, SUN MICROSYSTEMS, INC.
Application year: 1997
Main classification: H03K3
IPC codes: H03K3, H03K17, G06F7