DYNAMICALLY SELECTABLE POLARITY LATCH

Abstract: A selective true or complement storage latch includes a data input switch (62, 72) having an input node (61) connecting to a binary bit input source (D), a control input (62') for accepting a first or second control state, a first data output node (65) which is select­ ively connected to the data input node (61) when the control input )62') is in the first state and a second data output node (70) which is selectively connected to the data input node (61) when the control input (72') is in the second state. There is also a first inverting gate (64) having an input connected to the first data output (65) of the data input switch (62) and an output connected to a first storage node (66). A second in­ verting gate (74) has an input connected to the first storage node (66) and an output connected to the second storage node (76), the input of the second inverting gate (74) being connected to the second output (70) of the data input switch (72), the output of the second inverting gate (74) being connected to the input of the first inverting gate (64). The data input node (61) is selectively connected to the input of the first in­ verting gate (64) through the first output (65) of the data input switch (62) when the control input (62') is in a first state and the data input node (61) is se­ lectively connected to the input of the second invert­ ing gate (74) through the second output (76) of the data input switch (72) when the control input (72') is in the second state. In this manner the true value of the data at the data input node (61) is stored in the latch when the control input is in the first state and the complement of the data at the data input node (61) is stored in the latch when the control input is in the second state.

Description: The invention disclosed broadly relates to digital logic circuits and more particularly relates to improvements in storage latches. Prior art circuit latches are typically bi-stable devices which have a binary signal input to the device and provide a stored stable binary state at the output of the device. Typical prior art latches will include the standard cross-coupled pair of inverting gates with the first inverting gate's output node corresponding to a first binary stored state and the second inverting gate's output node corresponding to the complement output state. The stored state of the conventional latch is a function of the binary state of the input signal. Given a predetermined binary state, for example a binary one state, the first output node for the latch will always have a first binary state and the second output node of the latch will always have a second binary state when the data is stored in the latch. These binary states are a predetermined, invariant function of the binary state of the input signal. Fig. 1 herein illustrates a prior art approach to achieving the polarity select latch function. In Fig. 1, latch 10 is a conventional latch with data input 12, clock input 14 and true and complement outputs 16 and 18, respectively. In order to achieve the polarity select function for the latch shown in Fig. 1, multiplexers 20 and 22 are provided with the first and second inputs of multiplexer 20 connected to the true output 16 and complement output 18 from the latch 10, respectively while the first and second inputs to multiplexer 22 are connected to the complement output 18 and true output 16 of latch 10, respectively. A select control input 24 to the multiplexers 20 and 22 allows the selection of either the true value or the complement value to be passed from the latch 10 to the first output 26 of the circuit and the complement value or the true value, respectively to be passed from the latch 10 to the second output 28 of the circuit. The problem with the approach shown in Fig. 1 is that the output multiplexers 20 and 22 have a relatively large size, occupying an unnecessarily large area on the integrated circuit chip. The multiplexers 20 and 22 also represent unnecessary additional propagation delay for the signals which must pass through the circuit. Thus, this approach to providing a polarity select latch is unsuitable for implementation in high density VLSI applications. Fig. 2 represents an alternate prior art approach to providing the polarity select latch function. In Fig. 2, the data input 30 is bifurcated, with a first portion directly applied to a first input of multiplexer 32 and a second portion passed through the inverter 34 so as to apply the complement of the binary input 30 to the second input of the multiplexer 32. By means of operating the select input 33, either the true or complement of the input data 30 can be applied to the data input of the latch 35. The polarity of the data clocked into the latch 35 determines the polarity of the first output 36 and second output 37 with respect to the input data 30, thus accomplishing the polarity select function. In addition to the unnecessarily large size of the multiplexer 32 and the inverter 34, this approach in the prior art suffers from both the multiplexer delay which also occurred in the embodiment of Fig. 1, and an extra inverter delay represented by the inverter 34 in Fig. 2. Thus the prior art approach represented by Fig. 2 imposes excessive propagation delays for the signals applied to the circuit and occupies an unduly large area of the integrated circuit chip. Large scale integrated circuits and very large scale integrated circuits developed in the prior art proved to be difficult to test because of embedded combinatorial logic positioned between sequential logic elements. The prior art developed the technique of level sensitive scan design (LSSD) in order to test embedded combinatorial logic by means of selectively scanning in sequences of binary bit test patterns into an input latch stage, clocking data through the combinatorial logic for one cycle, and then scanning out the resultant binary bits from an output latch stage connected to the output of the combinatorial logic. This technique has been described in detail, for example in the US documents US-A-3,761,695; 3,783,254; and 3,806,891 by Eichelberger, all assigned to the IBM Corporation. For reference purposes, Fig. 3 illustrates a field effect transistor embodiment of a conventional LSSD latch pair consisting of the latch L1 which is the master latch and the latch L2 which is the slave latch. As is well-known to the prior art, during normal data operations, it is the D input to the latch L1 which provides the binary bits to the latch which are clocked in at the rate provided by the C clock signal to the latch L1. During the test phase for the circuit, the input I to latch L1 is the input which provides the sequence of binary bit test patterns which are scanned into the latch L1 under control of the scan clock A. Since the latches L1 and L2 are level sensitive, when the B clock goes on, the slave latch L2 gates in and stores the binary value at the output of the master latch L1. In the embodiment shown in Fig. 3, enhancement mode FET devices 40 and 42 serve as transfer gates for respectively transferring either the binary data bits on the D input or the binary test bits on the I input to the input of the inverter 44. The inverter 44 has its output connected to the input of the inverter 48 and the output of the inverter 48 is fed back through the depletion mode FET device 46 to the input of the inverter 44, thereby accomplishing the latching function for the master latch L1. The output of the latch L1, which is the output of the inverter 48, passes through the enhancement mode FET device 50 whose gate is controlled by the B clock. The input of the inverter 52 is connected to the FET 50, the output of the inverter 52 is connected to the input of the inverter 54, whose output is connected through the depletion mode FET device 56 to the input of the inverter 52. In this manner, the latching function is accomplished for the slave latch L2. The true output for the circuit shown in Fig. 4 is the output of the inverter 54 which is referred to as the output +L2. By convention herein, the use of a "+" before a signal reference letter will indicate the true positive logic value of the referenced signal whereas the use of a "-" before a signal reference letter will indicate the complement value of the referenced signal. The complement of the +L2 output is obtained by connecting to the output of the inverter 52 of the L2 latch, and that complement output is referred to as the -L2 output. As can be seen from Fig. 3, the LSSD latch is of the conventional type and does not provide for any dynamically selectable polarity of the output. As can be seen from the above, there is a clear need in the prior art for a faster and less expensive implementation of a latch with dynamically selectable polarity of the output, which is optionally compatible with level sensitive scan design testing techniques. The invention as claimed solves the problem of how to dynamically select the relationsip between the latch output signal polarity and the latch input signal polarity such that the latch can be selected to have a first storage state wherein the output of the first inverting gate has the first binary state and the output of the second inverting gate has the second (complementary) state or second binary storage state wherein the output of the first inverting gate has the second binary state and the output of the second inverting gate has the first (complementary) binary state, in a manner which will not unduly delay the propagation of the signal through the circuit and for which the circuit can be implemented with a minimum number of device elements. It is therefor an object of the invention to provide an improved dynamically selectable polarity latch which occupies less space than has been required in the prior art, which has less signal propagation delay than has been suffered by circuits in the prior art, which is optionally compatible with level sensitive scan design techniques, and which is optionally compatible with level sensitive scan design testing techniques and yet is faster and occupies less space than has been available with circuits in the prior art. These and other objects, features and advantages of the invention will be more fully appreciated with reference to the accompanying figures. Fig. 1 illustrates a first prior art approach to providing a polarity select latch which is compatible with level sensitive scan design techniques. Fig. 2 is another prior art approach providing a polarity select latch which is compatible with level sensitive scan design techniques. Fig. 3 is a circuit schematic diagram of a field effect transistor level sensitive scan design latch circuit in the prior art. Fig. 4 is a logic diagram of the invention, illustrating the generalized topology of a dynamically selectable polarity latch in accordance with the invention. The circuit shown in Fig. 4 can be adapted to level sensitive scan design by including the optional switch 60 connecting the scan data input I as shown in the dotted line connection of Fig. 4, so that the circuit of Fig. 4 would form the master latch whose output would be connected to a conventional slave latch for level sensitive scan design testing applications. Fig. 5 is a logic diagram of an example first embodiment of a clock signal decoder, for providing clock signals to the various switching elements of the logic circuit shown in Fig. 4. Fig. 6 is a state diagram illustrating the operation of the logic circuit of Fig. 4, in accordance with the invention. Fig. 7 is a logic diagram of a second embodiment of a clock decoder for providing appropriate clock signals to the switching elements of the circuit in Fig. 4. Fig. 8 is a detailed circuit schematic diagram illustrating a dynamically selectable polarity latch in accordance with the invention, which is employed as the L1 latch in a level sensitive scan design application. An example of an L2 slave latch whose input is connected to the output of the L1 master latch is also shown in Fig. 8. Reference will now be made to the logic diagram of Fig. 4 illustrating the general topology embodiment of the invention. The operation of the circuit of Fig. 4 will be described in a level sensitive scan design application and therefore the switch 60 shown in dotted lines and its input I of Fig. 4, will be included. Fig. 4 will be discussed in conjunction with the logic diagram of the first embodiment of the clock signal decoder shown in Fig. 5 and also in conjunction with the state diagram of Fig. 6 which illustrates the sequential operation of the circuit of Fig. 4 under the control of the circuit of Fig. 5. Table 1 is a truth table which illustrates the various states of the circuit of Fig. 4 under the control of the clocking circuit of Fig. 5, in accordance with the state diagram of Fig. 6. In Fig. 4, the circuit can be embodied in field effect transistor devices as the preferred embodiment. However, the circuit can also be embodied in other transistor technology such as bipolar transistors or other switching elements. In Fig. 4, the primary data input D has its node 61 connected through the switch 62 to the node 65. The switch 62 is operated under the control of the output node 62' of the clocking circuit of Fig. 5. Node 65 of Fig. 4 is input to the inverter 64 whose output at node 66, passes through the switch 68 to the input of the inverter 74. Switch 68 is operated under the control of the output node 68' of the clocking circuit of Fig. 5. The output of the inverter 74 in Fig. 4 is connected to the output node 76 which is the first output node for the circuit. The node 76 is also connected through the feedback path 63 to the switch 78. The switch 78 is operated from the output node 78' of the clocking circuit of Fig. 5. The feedback path 63 proceeds through the switch 78 in Fig. 4 to the node 65 at the input to the inverter 64. An alternate data path 67 is connected to the input node 61 in Fig. 4, and through the switch 72 to the node 70 at the input of the inverter 74. Switch 72 is controlled by the output node 72' of the clocking circuit of Fig. 5. A second output for the circuit can be connected to the node 66 in Fig. 4. The overall operation of the circuit in Fig. 4 is as follows. Initially the switches 62 and 68 are closed so that data can be applied to the primary data input D to the latch. During this initial interval, the switch 72 and the switch 78 are open. Thereafter, after the input data has been applied through the inverter 64 and the inverter 74 to the feedback line 63, the switch 62 is opened and the switch 78 is closed, thereby completing the feedback path from the node 76 to the node 65. In this manner, data input at the input node 61 can be latched and stored by the circuit. Both the true and the complement binary value of the bit of information stored in the circuit can be made available, the first output at node 76 being identical in polarity to the bit stored at the input node 61, and the complement of that value being available at the node 66 for the second output of the circuit. For discussion herein, the sense of the latch in Fig. 4 under this condition is to be called the first sense. In accordance with the invention, to provide the dynamically selectable polarity latch function, the same binary bit applied to the input node 61 can set the latch of Fig. 4 in the opposite sense. This is accomplished as follows. Initially, switch 72 will be closed and switch 78 will be closed while during the same interval, switch 62 will be open and switch 68 will be open. The binary bit input at the primary data input D at node 61 is applied through the alternate path 67. The binary signal is propagated through the switch 72 to the node 70 which is the input to the inverter 74. The inverter signal is then applied over the feedback path 63 and through the switch 78 to the node 65. The node 65 is the input to the inverter 64 and the signal is then passed through the inverter 64 to the node 66. After this first interval, the switch 72 is opened and the switch 68 is closed. Thus, the sense of the latch, which is opposite to the sense described in the previous paragraph, is stored by providing a positive reinforced feedback of the signal through the switch 68 and the switch 78 and the inverters 64 and 74. In this second stored sense of the latch of Fig. 4, the first output node 76 has the complement of the binary value input at the primary data input D whereas the second output at the node 66 has the true value of the binary value input at the input node 61. Thus it can be seen that by proper combinations of the closure of the switches in the latch of Fig. 4, a dynamically selectable polarity latch operation can be achieved in a very efficient manner. The latch of Fig. 4 can also be applied in a very economic way to level sensitive scan design testing applications. This is achieved by including the switch 60 which is connected between the node 65 and the scan data input I. During testing intervals when LSSD operation is desired, the LSSD scan bits are applied at the input node I in a manner similar to the application of the primary data bits at the input node 61 described above. In order to separate the primary data input D from the latch while the scan data is loaded into the latch, the switches 62 and 72 are open. The scan test data is applied at node 65 and through the inverter 64 and through the closed switch 68 to the input of the inverter 74. The output of the inverter 74 is passed over the feedback path 63. At this point, the switch 60 is opened and the switch 78 is closed so as to enable the feedback path 63 to be completed from node 76 to the node 65, thereby latching the scan test data input by the scan data input I. Turning now to the clocking decoder circuit of Fig. 5, a select input S is directly applied to one input of the NOR gate 82 and is applied through an inverter 80 to one input of the NOR gate 84. The other input of the NOR gate 82 is connected to a periodic clock waveform -C. The clock input -C is also applied to the second input of the NOR 84. The output of the NOR 82 is applied through a true push-pull driver circuit 86 as the clock output 72'. The output of the NOR gate 82 is also applied through a complement push-pull driver circuit 88 whose output is 68'. The output of the NOR gate 84 is directly applied through the true push-pull driver 90 and its output is 62'. The output of the NOR gate 84 is also applied as one input to the NOR gate 92 whose output is 78'. The circuit of Fig. 5 has an A clock input which is applied as a second input to the NOR 92. The A clock is also directly applied to the true push-pull driver 94 whose output is 60'. The outputs of the clock decoder circuit of Fig. 5 are applied to the corresponding unprimed switches of the logic circuit of Fig. 4, as was described above. The A clock circuit is used only for those applications of the latching circuit of Fig. 4 to level sensitive scan design testing. Referring now to the state diagram of Fig. 6, in the state 104 (load +D), the primary data input 61 has a binary value applied to it, and the state of the switches is shown in Table 1. In addition, the state of the clock signals is also shown in Table 1. Alternately to load the opposite binary state from that being applied at the input node 61, state 102 is employed. State 102 which is indicated as load -D has its condition shown in Table 1 with the corresponding switch states and the clock signal states. The LSSD application state is shown as the load I state 100 and its respective switch states and clock signal states are shown in Table 1. Finally, when information from either the load +D, load -D or load I states is to be stored, the stored state condition is shown in Table 1 corresponding to the stored state 106 of Fig. 6. Fig. 7 is a logic diagram of a second embodiment to the clock driver decoder which can be used for driving the generalized topology circuit of Fig. 4. The select input S is applied through the inverter 110 to one input of the NOR gate 116, the other input to the NOR gate being applied from the clock signal -C. The output of the NOR gate 116 is applied as a first input to the inverting push-pull driver 118, the second input coming from the A clock. The output of the inverting push-pull driver 118 is the output 78' of the circuit. The A clock is also applied as one input of the inverting push-pull driver 120, the other input of which the output from the inverting push-pull driver 118. The clock input waveform -C is optionally applied as the third input to the inverting push-pull driver 120. The output of the inverting push-pull driver 120 is the output 62'. The clock input waveform -C is also applied through the inverter 114 whose output is applied as one input to the NOR gate 122, the other input of which comes from the inverting push-pull driver 118. The output of the inverting push-pull driver 122 is the output 60'. The select S input is also applied as one input to the NOR gate 112, the other input of which is connected to the clock waveform input -C. The output of the NOR gate 112 is applied through the inverting push-pull driver 124, whose output is the output 68'. The output of the inverting push-pull driver 124 is also applied as one input to the inverting push-pull output 126, the other input of which is optionally connected to the input clock waveform -C. The output of the push-pull inverter 126 is the output 72'. In the circuit of Fig. 5, use is made of the inherent delay in each respective gate so that no race conditions occur. The overall operation of the circuit of Fig. 7 is identical to that of the circuit of Fig. 5 and the sequence of clock waveform or enabling signal waveforms output from each respective circuit is substantially the same. The circuit of Fig. 5 and the circuit of Fig. 7 are typically used to drive multiple polarity select latches so that the space required to implement the clock decoding is apportioned over a number of latches and thus is not excessive. Attention is now turned to Fig. 8 which is a detailed FET circuit diagram of the L1 latch in accordance with the invention. The embodiment is shown in combination with an L2 latch for an LSSD application. In Fig. 8, FET transistors are numbered so as to correspond with the switch and inverter elements shown in Fig. 4. In addition, the various paths and nodes are identically numbered to the corresponding paths and nodes in Fig. 4. The operation of the circuit is identical to the operation of the circuit shown for the general topology of Fig. 4. Use has been made of zero threshold voltage FET devices for the devices 60, 62 and 72, 68 and 78 in Fig. 8 in order to reduce the threshold voltage drop which is normally suffered through FET transfer gate devices. The inverter 64 comprises an enhancement mode/depletion mode FET inverter circuit, as does the inverter circuit 74. The L2 latch shown in Fig. 8 contains a pair of enhancement mode/depletion mode FET inverters 130 and 132 which are connected in the conventional push-pull inverter configuration. The feedback path from the output node 134 passes through an enhancement mode/depletion mode inverter stage 138 and an FET depletion mode feedback resistor 139, to the input node 136. The operation of the L2 latch is conventional. The B clock is applied to the gate of the zero threshold voltage FET device 140 which connects the L2 latch to the L1 latch as is shown in Fig. 8. The resulting dynamically selectable polarity hold latch shown in Fig. 4 and embodied in the L1 latch shown in Fig. 8, can be applied in arithmetic circuits where it is desired to use the same arithmetic circuitry for performing either an add operation or a subtract operation, for example. By selectively controlling the data stored in the input latch to an adder so that the operand either represents the true or the one's complement of the input data, an add operation or alternately a subtract operation can be effectively carried out with the same circuitry. Still further, the resulting dynamically selectable polarity latch requires fewer logic elements than have been necessary in the prior art and is faster in operation and occupies less real estate on the integrated circuit chip than has been required in the prior art in order to accomplish the same function. Still further, the level sensitive scan design testing feature which can be achieved by the dynamically selectable polarity latch invention, adds an additional function not capable of performance in prior art circuits. Although the specific implementation of the invention has been disclosed as N channel FET technology, equivalent implementations can be in P channel FET, complementary FET, and bipolar transistor technologies.

Claims: A selective true or complement storage latch, characterized by a data input switch (62, 72) having an input node (61) connecting to a binary bit input source (D), a control input (62', 72') for accepting a first or second control state, a first data output node (65) which is selectively connected to said data input node (61) when said control input (62') is in said first state and a second data output node (70) which is selectively connected to said data input node (61) when said control input (72') is in said second state; a first inverting gate (64) having an input connected to said first data output (65) of said data input switch (62) and an output connected to a first storage node (66); and a second inverting gate (74) having an input connected to said first storage node (66) and an output connected to a second storage node (76), said input of said second inverting gate (74) being connected to said second output (70) of said data input switch (62), said output of said second inverting gate (74) being connected to said input of said first inverting gate (64); whereby the true value of the data at said data input node (61) is stored in said latch when said control input (62', 72') is in said first state and the complement of the data at said data input node (61) is stored in said latch when said control input (62', 72') is in said second state. The storage latch as claimed in claim 1, characterized by a first data input switch (62) having a first input node connecting to a binary bit input source (D), a first control input (62') for accepting a first or second control state, a first data output node (65) which is selectively connected to said data input node (61) when said first control input (62') is in said first state and which is selectively disconnected from said first data input node (61) when said first control input (62') is in said second state; and a second data input switch (72) having a second input node connecting to said binary bit input source (D), a second control input (72') for accepting a third or fourth control state, a second data output node (70) which is selectively connected to said second data input node (61) when said second control input (72') is in said third state and which is selectively disconnected from said second data input node (61) when said second control input (72') is in said fourth state; said binary bit input source (D) being selectively connected to said input of said first inverting gate (64) through said first output (65) of said first data input switch (62) when said first control input (62') is in said first state and said binary bit input source (D) being selectively connected to said input of said second inverting gate (74) through said second output (70) of said second data input switch (72) when said second control input (72') is in said third state. The storage latch as claimed in claim 2, characterized by a third switch (68) having an input connecting to said first storage node (66), a control input (68') for accepting a control state, and an output which is selectively connected to said input of said second inverting gate (74) when said control input (68') thereof is in a first enabling state and which is selectively disconnected from said input of said second inverting gate (74) when said control input (68') thereof is not in said first enabling state; a fourth switch (78) having an input connecting to said second storage node (76), a control input (78') for accepting a control state, and an output which is selectively connected to said input of said first inverting gate (64) when said control input (78') thereof is in a second enabling state and which is selectively disconnected from said input of said first inverting gate (64) when said control input (78') thereof is not in said second enabling state. The storage latch as claimed in claim 3, characterized in that said first and third switches are conductive and said second and fourth switches are nonconductive to store the true value of the data at said data input node in said latch, and that said first and third switches are nonconductive and said second and fourth switches are conductive to store the complement value of the data at said data input node (61) in said latch. The storage latch as claimed in claims 1 to 4, characterized by a test input switch (60) having a first input node connecting to a level sensitive scan design test bit input source (I), a test control input (60') for accepting a control state, and an output node connected to the input of said first inverting gate (64), which is selectively connected to said test input node when said control input (60') thereof is in a first state and which is selectively disconnected from said test input node when said control input (60') thereof is in a second state. The storage latch as claimed in claim 5, characterized in that said test switch (60) and said third switch (68) are conductive and said first, second and fourth switches (62, 72, 78) are nonconductive to store the true value of the level sensitive scan design test bit at said test bit input in said latch. The storage latch as claimed in claims 1 to 6, characterized in that said first, second, third, and fourth switches (62, 72, 68, 78), and said test input switch (60) consist of drain/source paths of FETs the gates of which form the control inputs (62', 72', 68', 78').

Inventors: RICKARD, DALE ALAN, RUDELIS, GLEN HEINZ
Applicants: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1985
Main classification: H03K3
IPC codes: G06F13, G01R31, G06F11, H03K3