JK COUNTER SIMULATOR

LOGISIM-STYLE · SYNCHRONOUS & ASYNCHRONOUS · MOD-N ANALYSIS

4-BIT ASYNCHRONOUS (RIPPLE) COUNTER — JK FLIP-FLOPS
CLK JK-FF FF-A (Q0) J CLK K Q 1 1 Q0 JK-FF FF-B (Q1) J CLK K Q 1 1 Q1 JK-FF FF-C (Q2) J CLK K Q 1 1 Q2 JK-FF FF-D (Q3) J CLK K Q 1 1 Q3 OUTPUT 0000 (DEC: 0) ↑CLK ↑Q̄A ↑Q̄B ↑Q̄C ← RIPPLE PROPAGATION DELAY →
TIMING DIAGRAM
CONTROLS
CLOCK CONTROL
SPEED
SLOW FAST
FLIP-FLOP STATES
0
0 0 0 0
FF-D 0 Q3 1 Q̄3
FF-C 0 Q2 1 Q̄2
FF-B 0 Q1 1 Q̄1
FF-A 0 Q0 1 Q̄0
COUNT SEQUENCE (MOD-16)
CLKQ3Q2Q1Q0DEC
Asynchronous (Ripple) Counter: Each JK flip-flop has J=K=1 (Toggle mode). FF-A is clocked by the external CLK. Each subsequent FF is clocked by the complemented output (Q̄) of the previous FF — triggering on the falling edge of Q, which is the rising edge of Q̄. This creates a ripple effect: CLK→Q̄A→Q̄B→Q̄C. Disadvantage: propagation delay accumulates across stages (tpd × N).
4-BIT SYNCHRONOUS COUNTER — JK FLIP-FLOPS
CLK BUS JK-FF FF-A (Q0) J CLK K Q 1 1 Q0 AND =Q0 JK-FF FF-B (Q1) J CLK K Q Q0 Q1 AND Q0·Q1 JK-FF FF-C (Q2) J CLK K Q Q0Q1 Q2 AND Q0-2 JK-FF FF-D (Q3) J CLK K Q Q0-2 Q3 OUTPUT 0000 (DEC: 0) ALL FFs CLOCKED SIMULTANEOUSLY — NO RIPPLE DELAY
TIMING DIAGRAM
CONTROLS
CLOCK CONTROL
SPEED
SLOW FAST
FLIP-FLOP STATES
0
0 0 0 0
FF-D 0 Q3 1 Q̄3
FF-C 0 Q2 1 Q̄2
FF-B 0 Q1 1 Q̄1
FF-A 0 Q0 1 Q̄0
COUNT SEQUENCE (MOD-16)
CLKQ3Q2Q1Q0DEC
Synchronous Counter: All FFs share the same CLK (no ripple delay). Toggle conditions: JA=KA=1, JB=KB=Q0, JC=KC=Q0·Q1, JD=KD=Q0·Q1·Q2. Each FF toggles only when all lower-order outputs are HIGH — achieved via AND gates. Advantage: no propagation delay; all bits switch simultaneously. Speed = single FF delay regardless of bit-width.
MOD-N COUNTER — NAND GATE RESET FEEDBACK
JK-FF FF-A (Q0) J CLK K Q CLR CLK Q0 JK-FF FF-B (Q1) J CLK K Q CLR Q1 JK-FF FF-C (Q2) J CLK K Q CLR Q2 NAND RESET MOD 6 COUNTER NAND GATE DETECTS TARGET COUNT → RESETS ALL FFs TO 0000
TIMING DIAGRAM
MOD SELECTOR
SELECT MOD VALUE
CLOCK CONTROL
SPEED
SLOW FAST
CURRENT STATE
0
0 0 0 0
MOD = 5  |  RESETS AT 5
Q30
Q20
Q10
Q00
MOD SEQUENCE
CLKQ3Q2Q1Q0DEC
Mod-N Counter: A standard counter with NAND-gate feedback on the CLR (Clear) inputs. When the count reaches N, the NAND gate detects specific Q outputs HIGH and immediately forces CLR=0, resetting all FFs. This produces a count of 0 → N-1 → 0. The reset state N appears only as a glitch (very briefly) before being reset. Number of FFs required: n = ⌈log₂(N)⌉.
JK FLIP-FLOP TRUTH TABLE
JKCLKQ (next)Action
00Q (no change)HOLD
010RESET
101SET
11Q̄ (toggle)TOGGLE
In counters, J=K=1 keeps the FF in Toggle mode — it flips state on every active clock edge.
SYNCHRONOUS COUNTER EXCITATION
FFJKToggle Condition
FF-A (Q0)11Always toggles
FF-B (Q1)Q0Q0When Q0=1
FF-C (Q2)Q0·Q1Q0·Q1When Q0=Q1=1
FF-D (Q3)Q0·Q1·Q2Q0·Q1·Q2When Q0=Q1=Q2=1
ASYNC vs SYNC COMPARISON
FeatureAsyncSync
CLK sourceRipple (Q̄→CLK)Common CLK bus
Propagation delayN × tpd1 × tpd
SpeedSlowerFaster
Circuit complexitySimpleAND gates needed
GlitchesYes (ripple)None
PowerLowerHigher
4-BIT COUNT SEQUENCE
CLKQ3Q2Q1Q0DEC
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
10101010
11101111
12110012
13110113
14111014
15111115
16→000000
MOD-N NAND FEEDBACK
MODFFsNAND InputsReset at
MOD-21Q02
MOD-32Q1, Q03 (011)
MOD-53Q2, Q05 (101)
MOD-63Q2, Q16 (110)
MOD-73Q2, Q1, Q07 (111)
MOD-104Q3, Q110 (1010)
MOD-124Q3, Q212 (1100)
Design rule: Identify the binary representation of N. Apply NAND to the bits that are 1 in that representation. Output of NAND drives the active-low CLR of all FFs.
IDLE — PRESS CLOCK PULSE OR AUTO RUN CLK EDGES: 0