This invention relates to counter stages in which the transfer of information between the master section and the slave section is selectively inhibited, and to counters employing such counter stages.
It is known to set or reset a counter stage in order to place it in a given state. However, setting or resetting a counter stage normally requires that the voltage levels at one or more of its circuit points be changed. The transition time to go from one voltage level to another is finite, and the ensuing propagation delays and settling times are factors in limiting the maximum speed of operation.
Applicant recognized that in some applications a counter stage may be inhibited from counting rather than being reset (or set). A counter stage embodying the invention includes means for selectively inhibiting the counter stage and preventing a change in the voltage levels at its outputs during inhibit. Since such inhibiting prevents changes in the voltage levels of the circuit, higher operating speeds are obtainable.
In the accompanying drawings,
FIG. 1A is a schematic diagram of an inhibitable dynamic counter stage embodying the invention;
FIG. 1B is a drawing of waveforms showing the response of the circuit of FIG. 1A to clocking and inhibiting signals;
FIG. 2 is a schematic diagram of an inhibitable static counter stage embodying the invention;
FIG. 3 is a partial schematic, partial block diagram of a divide-by-N counter embodying the invention whose first stage is an inhibitable dynamic stage;
FIGS. 4A and 4B are drawings of waveshapes associated with various nodes of FIG. 3 for two different counting arrangements;
FIGS. 5 and 6 are other schematic diagrams of inhibitable dynamic counters embodying the invention;
FIGS. 7A, 7B, 7C are schematic diagrams of inverters and two-input NOR and NAND gates employing insulated-gate field-effect transistors (IGFETs) of complementary conductivity type which may be used to implement the logic functions shown in logic block form in the other FIGURES;
FIGS. 8A and 9A are block diagrams of still other inhibitable counters embodying the invention; and
FIGS. 8B and 9B are waveforms useful in understanding the operation of the FIGS. 8A and 9A counters.
FIG. 9A is a schematic diagram of still another inhibitable counter embodying the invention.
The dynamic counter stage of FIG. 1A includes a master section comprised of inverter I1 and a slave section comprised of cascaded inverters I2 and I3. The output (Y) of inverter I1 (which is also the output of the master) is coupled via "feed-forward" dual transmission gate TG2 and inhibit transmission gate TG3 to the input, A, of inverter I2 (which is also the input of the slave). The output of inverter I2, denoted as the Q, or "true", output of the slave is directly applied to the input of inverter I3, whose output is denoted as the Q, or "false", output of the slave. The Q output of inverter I3 is coupled via "feedback" transmission gate TG1 to the input (X) of inverter I1 (which is also the input of the master). This circuit differs basically from prior art dynamic circuits in the addition of the inhibit gate TG3. The significance of this addition is discussed below.
In the circuit of FIG. 1A, the clock signal (CL) is applied to the P transistor of TG1 and to the N transistor of TG2, and the complement CL of the clock is applied to the N transistor of TG1 and to the P transistor of TG2. Consequently, TG1 is turned-on (enabled) when CL is low (CL is high), and is turned-off (disabled) when CL is high. TG2 is enabled when CL is high and is disabled when CL is low. The alternate enabling of TG1 and TG2 ensures that when information is being transferred from the slave to the master, no information is transferred from master to slave and vice-versa. Note also that TG1 and TG2 are always clocked and there is no delay in turning them on and off.
The conductivity of TG3 is controlled by an inhibit signal applied to the gate of its N transistor, and applied via inverter I4 to the gate of its P transistor. The inhibit signal is normally "high", hence TG3 is normally enabled.
When TG3 is enabled, the circuit of FIG. 1A functions as a binary divider. Its operation is well known and need not be described in great detail. As shown in the waveform diagram of FIG. 1B, in the absence of an inhibit signal (INH-high) Q and Q change state whenever CL makes a positive going transition; Q and Q vary at one half the frequency of CL. When CL goes negative, the output Q of the slave is applied to the input X of the master, and when CL goes positive, the output Y of the master is applied via the conduction paths of TG2 and TG3 to the input (A) of the slave.
When the inhibit (INH) signals goes negative (also defined as being "applied" or "present"), TG3 is disabled and the further transfer of information from the master to the slave is blocked. Node A remains charged to the level applied to the node just prior to TG3 being disabled.
As shown in FIG. 1B, whether the inhibit is applied when Q is high at time t.sub.1 or when Q is low at time t.sub.2, Q and Q remain at the voltage levels they had prior to inhibit going low. Assume that at time t.sub.1, Q is to be set at Q high and that at time t.sub.2, it is to be set to Q low. Since at times t.sub.1 and t.sub.2, Q and Q are already charged to these levels, no voltage levels have to be changed and no nodes have to be charged or discharged. The counter stage is "already" in the state in which it is to be placed. Hence, the operation equivalent to settling or resetting of the stage for the assumed conditions is extremely fast since there is substantially no delay (except for the turn-off of the transistors of TG3).
Inhibiting data transfer when the master output is coupled to the slave input at times t.sub.1 and t.sub.2, (when the feedback gate TG1 is turned off and TG2 is about to be turned on) also prevents the input X and output Y of the master from changing at the inception of and during the inhibit period. Thus, if an inhibit pulse is first applied (i.e. INH goes negative) when TG1 is disabled, none of the inputs and outputs of the counter stage change state. If an inhibit signal is applied when the slave output is coupled to the master input, (e.g. at time t.sub.3 in FIG. 1B when TG1 is to be turned on and TG2 is to be turned-off) then the X input (and hence the Y output) of the master can change levels when the inhibit is first applied. However, for the duration of the inhibit period, X and Y also cannot change state. But, the slave input and outputs (A, Q and Q) do not change state (even when the inhibit is first applied), and these are the nodes of the stage which are coupled to other counting stages.
In the dynamic counter of FIG. 1A, reliance is placed on the storage of charge at the inputs X and A of the master and the slave. Inverters I1 and I2 may be complementary inverters employing IGFETs as shown in FIG. 7A. These inverters are characterized by an extremely high input impedance and as shown with dashed lines in FIG. 1A there is some distributed capacitance associated with their input nodes. Assume, for example, that the shortest discharging (or charging) time constant for the input nodes is .tau..sub.p. Hence, by limiting the lowest clock frequency to be generally greater than 1/.tau..sub.p and by limiting the longest inhibit period to be less than .tau..sub.p reliable operation is obtained.
Although the inhibit gate is shown connected between the output of the master and the input to the slave it could as well have been connected in the feedback loop between the slave output and the master input.
By causing the master section to latch up when the feedback gate TG1 is disabled, and causing the slave section to latch up when the feedforward gate TG3 is disabled, the dynamic stage of FIG. 1A can be made into an inhibitable static stage as shown in FIG. 2.
In FIG. 2 the master stage includes two inverters I1, I12) latched via transmission gate TG81. The slave section includes two inverters (I2, I3) latched via transmission gates TG82 and/or TG83. As before, the conduction paths of a feedforward gate TG2 and an inhibit gate TG3 are connected in series between the output of inverter I1 and the input A of inverter I2, and a feedback gate TG1 is connected between the Q output and the input X of inverter I1. The output of inverter I2 is connected to the input of inverter I3, and the output of inverter I3, is coupled via transmission gates TG82 or TG83 to the input of inverter I2. TG83 is turned on when inhibit gate TG3 is turned-off in order to cause the slave section to latch and to thereby statically store the Q and Q levels. TG3 is controlled by an inhibit signal as in FIG. 1A.
TG2 and TG81 are turned on when CL is high and are turned-off when CL is low. TG1 and TG82 are turned-on when CL is low and are turned-off when CL is high. Thus, as in the circuit of FIG. 1A, the feed-forward and feedback gates are alternately enabled; the inhibit gate is selectively disabled.
The operation of the circuit of FIG. 2 is similar to that of FIG. 1A and need not be detailed. The use of the latches in the master and slave sections lowers the highest frequency of operation when compared to the circuit of FIG. 1A. But, due to its static configuration, the circuit of FIG. 2 may be operated down to the DC level.
In FIGS. 1 and 2, and inhibit transmission gate (TG3) is logically "AND'ed" with a clocked transmission gate (TG2) between the master and slave sections of the counter. When the inhibit transmission gate is turned-on, the counters operate normally. When, however, the inhibit gate is turned-off, the master section is unable to change the state of the slave section and so the count does not advance. Because the levels in the master and slave are not being reset, only being prevented from changing from an existing state, inhibiting is much faster than resetting, which usually relies on the turning-on of transistors to clamp nodes to some fixed voltage level. Therefore, an inhibitable counter stage is extremely suitable for use in high speed counters, as demonstrated in FIG. 3, which shows an application of inhibitable counting in a circuit which may be used in a frequency synthesizer.
The circuit of FIG. 3 includes a divide-by-N ripple counter 35 configured to count down. The first stage 33 of the K stages of counter 35 is a dynamic stage of the type shown in FIG. 1. This type is much faster than a static counter stage due to fewer number of stage delays in the counting mode of operation. Stages 2 through K of counter 35 are static stages of the type shown in FIG. 2 but without the circuitry for inhibit (i.e. the inhibit gate is replaced with a short circuit and I41 and TG83 are removed). The Q.sub.1 and Q.sub.1 outputs of the first stage are applied to the clocking inputs .phi. and .phi. of the second stage 2 of counter 35. The Q and Q outputs of each succeeding stage (except for the last) are connected to the clocking inputs of the next higher order stage (making this a ripple counter). For the assumed configuration, the Q and Q outputs of each stage change state when the signal applied to its "true" or unprimed clocking input (CL or .phi.) makes a positive going transition.
Stages 2 through K of counter 35 may be preset (i.e. programmed) to a selected count by means of Counter Preset and Reset circuit 37. Thus, counter 35 is a programmable counter. The states of stages 2 through K may be detected by means of a Detector 39 whose inputs are connected to the outputs of counter 35. Detector 39 may be arranged to decode a particular state and to provide an output indicative of when stages 2 through K of the counter are in that particular state. (Programmable counters including Presetting and Detector means are well known in the art and any one of a number of these could be used in this application. Therefore, the circuitry of blocks 37 and 39 is not detailed). In this application a desired count is jammed into the counter 35 via Counter Preset circuitry 37 and the counter "counts down" to zero with the higher order stages reaching the state Q="zero" before the lower order stages. The state of the counter stages is detected by means of Detector 39, having an output denoted as "B" which goes to "zero" when all of stages 2 through K reach zero.
An auxiliary counting arrangement 40 is provided to detect when the Q outputs of all the stages of counter 35 are at the particularly desired state, zero in this case, i.e. when output B reaches zero, and to then inhibit the first stage of the counter for one or two cycles to provide time for resetting and/or presetting stages 2-to-K of counter 35.
In the absence of counter 40, the condition of the counter 35 stages would have to be detected and stages 2 through K would have to be preset during one cycle of the clock applied to the first counter stage. The clock (CL) frequency may be of the order of 20 MHz, or more, making it unreliable and sometimes impossible to detect the output condition, and then preset the counter within one cycle of the input clock. Accordingly, such operation might lead to the loss of counts and errors in the division ratio.
The circuit of FIG. 3 includes auxiliary counter 40 which counts m cycles while the first stage is inhibited and the other stages of counter 35 are being reset. The m counts of the auxiliary counter are added to the N counts of counter 35. Thus, the combination of the two counters divides the clock frequency by N+m, where N is the count in the counter 35 and may be any number between 0 and 2.sup.K and m is the count in the auxiliary counter 40. In FIG. 3, m is a count of 1 or 2 as determined by LSB control 41.
Auxiliary counter 40 includes NAND gate ND1 and NOR gate NR1 which detect a particular condition of stages 1 through K of counter 35. In response to an all "0" condition of the true outputs of counter 35, a counting cycle is initiated in the auxiliary counter comprised of a shift register loop which includes clocked transmission gates TG4, TG5, TG6, inverter I5 and NAND gates ND2 and ND3. A reset circuit comprised of NAND gate ND4 and inverter I6 determines when Counter Preset 37 is energized. A LSB control 41 modifies the count (length or delay) of the counting loop and determines whether the auxiliary counting loop counts (delays) one or two pulses, and thus inhibits the first stage for one or two CL cycles. To inhibit the first dynamic stage for one cycle, the LSB input to ND2 is set equal to zero. With LSB=0, the outputs G and H remain high and gates ND2 and TG6 are effectively out of the loop. To inhibit the first dynamic stage for two cycles, the LSB input to ND2 is set equal to "1" or high. As detailed below, for this condition TG5, ND2 and TG6 function to maintain the inhibit signal J high for an additional clock cycle.
The operation of the circuit of FIG. 3 and, in particular, the operation of counter 40 may best be understood by reference to the waveform diagrams of FIGS. 4A and 4B.
The signal at A of the first stage 33 in the absence of an inhibit (INH) signal, varies at one half the rate of CL and changes state when CL makes a positive going transition.
Assume, as shown in FIG. 4A, that at t=t.sub.0 : (1) the clock goes high, A goes low, Q.sub.1 goes high (Q.sub.1 goes low); and (2) B goes to zero indicative that stages 2-to-K of counter 35 have counted down to zero. B is applied to one input of two input NOR gate NR1 whose other input (F) is low. Hence, C, the output of NR1, goes high.
The states of the stages 1 through K of counter 35 are sensed by means of NAND gate ND1 whose first input (1) is connected to node A and whose second input (2) is connected to the output C of NOR gate NR1. At time t=t.sub.2, CL goes positive, A goes positive, and Q.sub.1 goes to zero indicative that all the stages of counter 35 are now at zero.
With A and C high, the output D of ND1 goes low. This effectively initiates the flow of a pulse in the auxiliary counting loop. When D goes low, transistor P1, which provides positive feedback, is turned on and clamps node A and input 1 of ND1 to the high condition. At t.sub.3, CL makes a negative going transition and the "low" at D is transferred via TG4 to node E. E "low" applied to one input (1) of NAND gate ND3 causes the output J of ND3 to go high. J-high causes the P and N transistors of TG3 to be turned off, which inhibits the further transmission of data through TG3. Thus, within half-a-cycle (at t.sub.3) of all the stages of counter 35 having counted down to zero the first stage is inhibited before it can change state and the master is decoupled from the slave.
At time t=t.sub.4, CL goes positive, and since E is high, the output, R, of ND4 goes low: R-low applied to the input of inverter I6 causes its output, S, to go high. S is applied to reset circuitry 37 which then places stage 2-to-K of counter 35 in preselected states. Also, at t.sub.4, E high is transferred via TG5 to node F, causing F to go high. F high applied to the second input of NR1, causes C to go low and D to go high, which turns off transistor P1. Feeding F-high back to NR1 allows only one reset pulse (R-S) to be generated per counting cycle. If F were not fed back to NR1, more than one reset pulse could occur if the higher order stages did not reset quickly enough. Since F is high for a full half clock cycle after the reset pulse has terminated, the generation of another reset pulse is clocked until sufficient time is provided to allow B to go back high.
For LSB set to zero, the outputs G of ND2 and H of TG6 remain high and ND3 functions to invert the signal E applied to its (1) input. At t=t.sub.5 the "high" at D is transferred via TG4 to E. E high applied to ND3 causes J to go low and R to go high, which terminates the inhibit and the reset pulses. Since at t.sub.5 CL goes negative, the first stage cannot change state until half a cycle later at time t.sub.6. At t.sub.6, E low causes F to go low and to remain low. This reestablishes the condition originally assumed for F=0 at t.sub.0. At t.sub.6 the counter 35 is ready to begin counting again. Thus, for LSB=0 the auxiliary counter 40 has counted one cycle and has delayed the counter 35 by one count. For example, if the desired division were 16, the counter 35 could be set to count up to 15 and LSB would be set to zero. The auxiliary counter 40 would count 1 clock pulse per cycle of 15 counts in counter 35 and a total count of 16 (N+m) would be generated.
For LSB set to the "1" level, the inhibit signal to TG3 is applied for two full cycles of the clock. The operation of the circuit differs from that described for LSB=0 in that, as shown in FIG. 4B, at time t.sub.4 the output G of ND2 goes low in response to F going high. At t.sub.5, E goes high, as described above, but F remains high and G low. The negative transition of CL at t.sub.5 enables TG6 and the low at G is transferred to H, maintaining J high and TG3 inhibited. At time t.sub.6, G goes high but TG6 is disabled and hence H remains "low" until t.sub.7, causing J to remain high and gate TG3 inhibited. At t.sub.7, TG6 is enabled and G high causes H to go high. Since G and E are already high, the three inputs to ND3 are high and J goes low, removing the inhibit of TG3. TG3 which had been inhibited since t.sub.3 is now turned on and remains on. Since at t.sub.7 CL goes negative, TG2 is turned off and there is no change in the levels of the first stage. It is only at t.sub.8 when CL goes positive that a new counting cycle is initiated. Thus, a full half-cycle passes after TG3 is turned-on before it has to conduct. At t.sub.8, TG2 is enabled and the low output (inverse of X) of the master inverter I1 is coupled to the input A of the slave which causes A to change from high to low. Thus, for LSB=1 the change at A is delayed for two cycles of the clock.
Important features of the counting arrangement of FIG. 3 are as follows:
1. The speed of a divide-by-N counter chain depends mainly on the characteristics of the first stage delay.
2. Dynamic counters are faster than static counters.
3. In the first stage when a zero condition is detected, it is automatically known that the next clock pulse will result in the state being set to "one", if nothing is done. It is only if the stage is to be held at zero (i.e. a zero is to be jammed into the stage) that action is required. This action is termed "partial resetting" since the outputs of the stage are already in the desired state and action must be taken to prevent a change in the state.
4. The necessary partial resettability for the first stage can be obtained by an inhibitable counter stage or a resettable counter stage. In inhibitable counting, the counter is prevented from changing state. This is faster than resetting the various transistors in a counter stage since resetting requires that voltage levels be changed, and that the transistors be made to change state; delay is inherent in such a process.
5. In order to allow one full clock period in which to jam (Preset or Reset) the slower, higher order stages 2 through K, of counter 35, the inhibit is maintained for either 1 or 2 clock periods. This avoids the need for state detection and presetting during the same one clock period.
It should be appreciated that additional delays can be provided in the shift register loop by the addition of suitable transmission gates and inverters to the shift register (auxiliary counting) loop and by applying appropriate outputs to gate ND3 or an equivalent gate to maintain J high for the additional period. Also, instead of a shift register, other counting circuits could be introduced in the auxiliary counting loop. Thus, although m is shown to be 1 or 2, it could be increased.
PMOS latch transistor P1, which is optional, is employed to restore a clean zero in the dynamic counter. In a breadboarded circuit, it was found that the use of P1 increased counting speed by about 20%. As the highest counting rate is approached, the inhibit gate TG3 tends to turn off late. The latching path of the source-to-drain path of transistor P1, which has less delay that the generation of the inhibit control signal, holds the counter at zero until the inhibit signal arrives.
FIGS. 5 and 6 illustrate an inhibitable dynamic counter stage in which a single transmission gate TG51 is connected between the output of the master I1 and the input A to the slave section of the counter stage. A clocking signal is applied to the transmission gate in the absence of an inhibit signal (i.e. in FIG. 5 when the inhibit is high and in FIG. 6 when the inhibit is low). In the presence of an inhibit signal (low in FIG. 5, high in FIG. 6) the transmission gate TG51 is turned-off and the transfer of signal from the master to the slave is inhibited. The state at the input to the slave section is then maintained unchanged for the length of time the transmission gate is inhibited
In FIG. 5 the clock signal and the inhibit input are applied to the two inputs of NAND gate ND53. The output Z of ND53 is applied to the control electrode of the P transistor of TG51 and to the input of inverter I51 whose output is applied to the control electrode of the N transistor of TG51. When the inhibit input is high, the output Z is the complement of the clock and the counter stage operates in a normal fashion. That is, when the clock is high there is transfer of signal through TG51 from the master to the slave and when the clock is low there is transfer of signal through TG1 from the output of the slave to the input of the master. When the inhibit is low, the output Z is forced high and the output of I51 goes low, turning off TG51 and inhibiting transfer of data between the master and slave.
In FIG. 6, the clock and the inhibit input are applied to the two inputs of NOR gate NR53. The output W of NR53 is applied to the gate electrode of the N transistor of TG61, and the complement of W is applied to the gate electrode of the transistors of TG61. For this configuration, the clock signal is applied to TG61 when the inhibit is low, and the clock signal is inhibited and TG61 is turned off when the inhibit input is high.
FIGS. 7A, 7B and 7C illustrate the use of insulated-gate field-effect transistors of complementary conductivity type to form of the logic gates employed in the circuits of the FIGURES. Although any logic gates may be used to practice the invention, complementary circuitry provides many advantages because of its low power dissipation and high noise immunity. FIG. 7A is a complementary inverter. FIG. 7B is a two-input NAND gate. FIG. 7C is a two input NOR gate.
FIGS. 8 and 9 illustrate types of inhibitable counter stages which do not use transmission gates.
FIG. 8A shows an inhibitable static master-slave flip-flop which may be formed with conventional logic gates. Each one of the master and the sleeve sections includes two, cross-coupled, two-input NAND gates. The outputs Qm and Qm of the master are respectively connected to the one (1) inputs of three input NAND gates ND11 and ND21, whose outputs are connected to the inputs of the slave. The two other inputs to each one of ND11 and ND21 are an INHIBIT signal and the CL signal. Q and Q outputs of the slave are, respectively, connected to the one (1) inputs of two-input NAND gates ND41 and ND31 whose outputs are connected to the inputs of the master. The clock (CL) is applied to the other inputs of ND31 and ND41. As shown in FIG. 8B, the outputs Qm (and Qm not shown) changes state when CL goes positive and Q and Q change state when CL goes negative and as long as the INHIBIT is positive. When the INHIBIT signal goes negative, the transfer of information between the master and slave is inhibited while the clock can run continuously. Thus, circuits embodying the invention may be fabricated without using transmission gates. It should be evident that any one of a number of known circuits may be used to implement the logic circuit of FIG. 8A.
FIG. 9A includes a first stage I comprised of an inverter (P21, N21) to which power is periodically applied (when CL is low and CL is high) by means of switches P11, N11. A second stage II includes an inverter (P51, N51) to which power is periodically applied (when CL is high) via switches P41, N41 when the inhibit (INH) is low and switches P31 and N31 are turned on. The output of stage I changes state whenever CL goes negative. The output Q of the second stage II changes state whenever CL goes positive and the INHIBIT signal (INH) is low. The output Q of the second stage is fed back via an inverter I11 to the input of the first stage.
As illustrated in the waveforms of FIG. 9B the counter may be inhibited from counting by the application of a positive INH signal to the gate of transistor P31 and a negative INH signal to the gate of transistor N31.