January 1969 Radio-Electronics
[Table of Contents]
Wax nostalgic about and learn from the history of early electronics.
See articles from Radio-Electronics,
published 1930-1988. All copyrights hereby acknowledged.
An alternate title for
this article that appeared in a 1969 issue of Radio-Electronics magazine
could have been, "How to Build a J-K Flip-Flop." Author Leonard Geisler takes the
reader through a step-by-step assembly of a functional J-K flip-flop using a collection
of 1- 2- and 3-input NAND gates. The 1-input NAND, in case you are wondering, is
used as an inverter. The piece reads like an in-depth first-semester electrical
engineering technician course textbook. In the process of building the J-K, an R-S
(reset/set) flip-flop is described. Nowhere does Geisler offer an explanation of
from where the "J" and the "K" input labels come. According to electrical engineer
Sourav Bhattacharya blog, it was Dr. Eldred Nelson
of Hughes Aircraft who first coined the term J-K flip-flop. "Flip-flops in use at
Hughes at the time were all of the type that came to be known as J-K. In designing
a logical system, Dr. Nelson assigned letters to flip-flop inputs as follows: #1:
A & B, #2: C & D, #3: E & F, #4: G & H, #5: J & K. Given the
size of the system that he was working on, Dr. Nelson realized that he was going
to run out of letters, so he decided to use J and K as the set and reset input of
each flip-flop in his system (using subscripts to distinguish the flip-flops), since
J and K were 'nice, innocuous letters.' Nelson used the notations 'j-input' and
'k-input' in a patent application filed in 1953."
now you know... the rest of the story (hat tip to Paul
Harvey for his trademark story ending).
How the J-K Flip-Flops
Four steps to understanding a useful IC logic device.
By Leonard E. Geisler*
Fig. 1 - With one or both inputs grounded, Q1 is at saturation,
holding NAND off.
Basic logic circuits such as the AND, OR and NOT operate without memories. The
AND circuit, for example, will provide a logic ONE output only when all inputs to
the circuit are also logic ONE simultaneously. Otherwise, the circuit remains in
a logic ZERO state.
Logic circuits that can be placed in either of two stable states and "remember"
this state until switched to another are called bistable or flip-flop.
In various combinations these bistable circuits form register, counter, storage
and other essential digital circuitry. The J-K flip-flop described is ideal for
counting and divider circuits since it has one output pulse for each two input pulses.
Basic NAND Circuit
Study the circuit diagram of the basic two-input NAND element (Fig. 1). Assume
input terminals a and b are at ground potential; Q1's base is tied to B+ through
a biasing resistor, causing forward bias as long as one or both input terminals
are grounded. The forward bias applied to Q1's base causes Q1 to go into saturation,
grounding Q2's base. (Q1 cannot draw much collector current because of the very
high reverse base-collector resistance, R1, internal to Q2.)
With Q2 cut off because of the ground level at its base, its collector potential
rises toward B+ and its emitter potential falls to ground. Transistor Q3's base,
tied to Q2's collector, sees the positive rise in potential; Q3 saturates, carrying
terminal c toward B+. At the same instant Q4 sees virtual ground potential and cuts
off. If either of the input terminals is raised from ground, Q1 operating conditions
do not change. But if both input terminals are raised from ground, Q1 cuts off and
the current previously flowing through the base-emitter diode in Q1 now flows through
the base-collector diode path to Q2's base, causing Q2 to saturate.
As Q2 saturates, its collector potential drops toward ground and its emitter
potential rises toward B+. Transistor Q2's ground-going collector potential causes
Q3 to cut off. Now Q2's rising emitter potential pulls Q4 into saturation (Q4 draws
collector current from B+ through an external load), and Q4's collector potential
drops to virtually ground level.
In computer designer jargon, a ground-level signal is usually called "logic ZERO"
and a high-level signal is called "logic ONE." To simplify descriptions, the ZERO
condition at an input or output terminal is signified by a bar above the terminal
designator. Thus, a means that terminal a is at virtual ground level (or logic ZERO).
Absence of the bar indicates the signal input is at the high level (or logic ONE).
In Boolean algebra, the input conditions required for a NAND to produce either a
high (logic ONE) or low (logic ZERO) output can be shown in the following formulas:
b ) + (a • b) + (a •
b) =c (1)
a • b = c (2)
Note that only (2) above produces a logic ZERO output. The dot signifies "and"
and the plus sign "or."
Two NANDs make a flip-flop
Fig. 2 - Two NAND elements connected as shown make a set-reset
Fig. 3 - Addition of two more NANDs will provide for clock-pulse
sync of the RS flip-flop. Flip-flop toggles whenever clock pulse occurs simultaneously
with data pulse.
To produce a simple "set-reset" flip-flop, two two-input NANDs are connected
as shown in Fig. 2. The cross coupling insures that the flip-flop will toggle (change
states) only when the correct input conditions are present.
For example, assume that NAND 2N1's output is high and NAND 2N2's output is low
(this is indicated in the figure by numeral 1 next to terminal c of 2N1 and θ
next to 2N2 terminal c). What conditions exist at the input terminals to produce
the outputs shown?
By examining the formulas and the flip-flop logic diagram we conclude that 2N2
must have terminals a and b high for a ZERO output, satisfying formula (2). In practice,
2N1's terminal a is also high; both inputs are high at all times except when the
flip-flop is toggled to the other state by momentarily grounding the appropriate
Clocked RS Flip-Flop
The simple set-reset (RS) flip-flop is used generally where simple pulse-train
counting or frequency dividing is required without regard to either output state
or synchronism with other pulses in a system. For more precise applications two
more NANDs are added to the RS flip-flop (Fig. 3), and one input is tied each to
a clock-pulse source.
Now when the clock pulse occurs while either input is being pulsed, the flip-flop
toggles (provided, of course, the set or reset pulse is applied to the side opposite
the one which is high). Note that addition of the two NANDs reverses the sign of
the activating pulses; now a positive-going pulse is required to toggle the flip-flop.
By adding another input to the NAND flip-flop elements of Fig. 3 (removing the
two-input NANDs and substituting two three-input NANDs), the clocked flip-flop (Fig.
4), is improved considerably since the output can be set or reset to a desired state
before starting the counting operation. This means, for example, a count can always
be started at zero, or a given quantity can be counted or recorded, and the counter
can then be reset to zero for the next counting operation.
All the flip-flops described have one common failing: they can be tricked into
"racing" or dithering between states if both signal inputs are pulsed simultaneously.
The J-K flip-flop has been developed to correct such a problem (Fig. 5). Adding
another flip-flop to the circuit in Fig. 4 makes a master-slave device that responds
in a very predictable fashion to simultaneous input pulses; it simply toggles each
time the clock pulse coincides with the data pulses (complementary inputs).
The logic elements and connections comprising a J-K flip-flop are in Fig. 5.
Two three-input and one one-input NANDs, 3N1, 3N2 and 1N1, together with two two-input
NANDs, 2N1 and 2N2, form the "master" flip-flop element. Two more two-input and
two three-input NANDs form the "slave" flip-flop element (2N3, 2N4, 3N3 and 3N4).
Slave output is cross-coupled back into the master input for combining with J and
K inputs and clock pulses.
Fig. 4 - By using 3-input NANDs in place of the NANDs in Fig.
3, flip-flop can be started at zero independent of input.
Fig. 5- Functional logic diagram of the J-K flip-flop. Additional
flip-flop (see Fig. 4) prevents simultaneous input "racing."
Internal quiescent levels of all individual logic elements are shown by the lower-case
letters next to each element terminal. Remember, a bar above a letter signifies
that the designated terminal is at the logic ZERO level, and letters without the
bar indicate logic ONE level at the designated terminal. The flip-flop operates
in the following manner.
Assume DC reset has placed Q low, Q high, and the clock pulse (train) has just
gone high and J is high. The DC conditions within the circuit package are indicated
by the various lower-case letters at this moment in time.
As the clock pulse falls to ZERO, 3N1-d goes high, adding to 2N1's input. 2N1-c
starts to go low, but the stored charge in D1 holds 2N1-c high just long enough
that the ONE coming from 1N1-b can add at 2N3's input, subsequently setting 2N3-c
low to shift 3N3-a high. By now D1 has discharged and 2N2-a can go low with 2N1-c
to complete the toggling of the master flip-flop (2N2-c high). At this moment, the
clock pulse has again gone high and 1N1-b has already gone low, and 2N4-c remains
high so as to not interfere with the other ONEs at 3N4's inputs.
Earlier, the Q-output, ZERO-level feedback to 3N2-c changed to a ONE level, making
the K input ready to accept a data-ONE level (whether one is forthcoming is immaterial
at the moment). The Q-output, ONE-level feedback to 3N1-a when Q goes to ZERO cancels
the effect of the J ONE level.
This means that only a ONE level at the K input will reset the flip-flop to its
former state. Should the J-input level stay at ONE as the K level shifts to ONE,
the flip-flop will toggle as just stated. If both J and K levels remain at ONE,
the flip-flop will toggle again on the next negative-going clock-pulse edge, and
will continue toggling as long as both inputs are high. If the J, K and clock inputs
are tied to B+ and the DC set and reset terminals are used, the flip-flop works
as an RS flip-flop.
* Publication engineer,
Bryant Computer Products.
Posted May 16, 2019