This is the self-testing companion to the JK & T topic note. Every problem below states cleanly what to find, then hides a full solution in a collapsible callout so you can try first and reveal after.
Two facts you will reuse constantly — keep them in view:
J=1,K=0 is the set row. Plug into the equation:
Qnext=JQ+KQ=(1)(0)+(0)(0)=1⋅1+1⋅0=1.Answer: Qnext=1. WHAT we did: substituted the given inputs and Q=0. WHY: the equation is the table, so it must agree — and it says "set".
Recall Solution
Qnext=T⊕Q=0⊕1=1.⊕ gives 1 only when the inputs disagree; 0 and 1 disagree, so the result is 1. Answer: Qnext=1 (hold).T=0 always holds — it never changes the stored bit.
Recall Solution
J=1,K=1. Toggle means Qnext=Q: whatever is stored, flip it. Check: JQ+KQ=1⋅Q+0⋅Q=Q. ✓
T=1 ⇒ toggle every edge: Q after edges 1..6 is
1,0,1,0,1,0.
WHAT this looks like: the output completes ONE full cycle (0→1→0) every two clock edges (see figure). So fout=fclk/2 — a ÷2 divider. This is the building block of a ripple counter.
Recall Solution
To move from 1 to 0 we must reset, so K=1. And J? J only ever acts when Q=0 (it multiplies Q); we're at Q=1, so J is irrelevant → J=X (don't care). Answer: J=X,K=1.
WHY don't-cares appear: e.g. in 1→1 we just must not reset, so K=0; J is idle at Q=1, hence X.
Recall Solution
Compute S⋅R=(JQ)(KQ)=JK(QQ). But QQ=0 always (a bit and its complement can't both be 1). So
S⋅R=JK⋅0=0.S⋅R=0 means S and R are never simultaneously 1, for anyJ,K,Q. The SR forbidden row is therefore structurally impossible — not hidden, genuinely eliminated. (See SR Flip-Flop.)
Recall Solution
T:T=Q⊕Qnext=0⊕0=0. Forced, no freedom.
JK:0→0 needs J=0,K=X — a don't-care on K.
WHY it matters: don't-cares are free choices a K-map can fill with whatever minimises the logic, so JK-based designs often need fewer gates. T has no don't-cares (its input is fully determined by Q⊕Qnext).
List states and required transitions, then T=Q⊕Qnext per bit:
count
Q1Q0
next Q1Q0
T1
T0
0
00
01
0
1
1
01
10
1
1
2
10
11
0
1
3
11
00
1
1
T0 is 1 in every row → T0=1 (LSB toggles every clock).
T1=1 exactly when Q0=1 → T1=Q0 (MSB toggles when LSB is 1).
Design: T0=1,T1=Q0. This is a ripple counter — feed Q0 to clock/enable the next stage. Each bit toggles at half the rate of the one below (÷2 per stage), matching L2.2.
Recall Solution
Wire J=D and K=D. Substitute into the JK equation:
Qnext=JQ+KQ=DQ+DQ=DQ+DQ=D(Q+Q)=D⋅1=D.
So Qnext=D regardless of Q — exactly a D flip-flop. WHY it works: setting K=D makes "reset" active precisely when D=0, and "set" active when D=1, so the stored bit always follows D.
Substitute into Qnext=JQ+KQ with J=Q,K=Q:
Qnext=Q⋅Q+Q⋅Q=Q+0=Q.
So Qnext=Qalways — this wiring is a permanent toggler, identical to a T flip-flop with T=1. From Q=0: 0,1,0,1,… — a ÷2 divider. (Compare L2.2: same waveform, different construction.)
Recall Solution
Desired: Qnext=1 when S=1, else Qnext=Q. So the target is Qnext=S+Q (set-dominant hold). Then
T=Q⊕Qnext=Q⊕(S+Q).
Evaluate the cases:
S=1: Qnext=1, so T=Q⊕1=Q → toggles from 0 to 1 (sets), and if already 1 gives T=0 (harmless hold — matching the controller assumption).
S=0: Qnext=Q, so T=Q⊕Q=0 → hold.
Answer: T=Q⊕(S+Q), which simplifies to T=SQ (set only when currently 0). Verify: SQ=1 only when S=1,Q=0 — precisely the one edge where a toggle is needed to reach 1.
Recall Solution
Each stage divides by 2, so after n stages fout=16/2n MHz.
Set 16/2n=1⇒2n=16⇒n=4.
Answer: 4 stages give 1 MHz. (Check per stage: 8, 4, 2, 1 MHz.)