A flip-flop or latch is a circuit that has two stable states and can be used to store state information.
The JK flip-flop augments the behavior of the SR flip-flop (J=Set, K=Reset) by interpreting the J = K = 1 condition as a "flip" or toggle command. Specifically, the combination J = 1, K = 0 is a command to set the flip-flop; the combination J = 0, K = 1 is a command to reset the flip-flop; and the combination J = K = 1 is a command to toggle the flip-flop, i.e., change its output to the logical complement of its current value. Setting J = K = 0 maintains the current state. To synthesize a D flip-flop, simply set K equal to the complement of J. Similarly, to synthesize a T flip-flop, set K equal to J. The JK flip-flop is therefore a universal flip-flop, because it can be configured to work as an SR flip-flop, a D flip-flop, or a T flip-flop.
JK flip-flop operation | ||||||||
---|---|---|---|---|---|---|---|---|
Characteristic table | Excitation table | |||||||
J | K | Comment | Qnext | Q | Qnext | Comment | J | K |
0 | 0 | hold state | Q | 0 | 0 | No Change | 0 | X |
0 | 1 | reset | 0 | 0 | 1 | Set | 1 | X |
1 | 0 | set | 1 | 1 | 0 | Reset | X | 1 |
1 | 1 | toggle | Q | 1 | 1 | No Change | X | 0 |
Truth Table
Symbol