
(la videolezione) La capacità del flip-flop JK di adattarsi a diversi contesti e di gestire transizioni complesse lo rende uno strumento indispensabile nella logica sequenziale. Il flip-flop JK è una evoluzione del latch RS (Reset-Set), ma con una gestione intelligente del caso problematico in cui entrambe le entrate sono attive. Possiede tre ingressi principali:
J (set): indica l’intenzione di porre l’uscita a 1.
K (reset): indica l’intenzione di porre l’uscita a 0.
Clock: sincronizza il cambiamento di stato.
In più, può avere ingressi asincroni di Preset e Clear per forzare lo stato ad 1 o a 0, indipendentemente dal clock.
Il flip-flop JK risponde al fronte del segnale di clock, spesso sul fronte positivo (rising edge). Il suo comportamento può essere riassunto così:
Se J=0 e K=0, lo stato resta invariato.
Se J=0 e K=1, l’uscita viene resettata (Q=0).
Se J=1 e K=0, l’uscita viene impostata (Q=1).
Se J=1 e K=1, l’uscita viene complementata: il flip-flop inverte lo stato (toggle).

Questo ultimo caso è ciò che distingue il JK da altri flip-flop. Il latch RS, infatti, non gestisce il caso S=1 e R=1; mentre il JK lo trasforma in un vantaggio funzionale.
E' molto usato per costruire contatori binari. Quando entrambi gli ingressi sono mantenuti a 1, il flip-flop inverte lo stato ad ogni impulso di clock, generando una sequenza binaria. Inoltre, grazie alla sua versatilità: viene usato nei registri a scorrimento per immagazzinare o trasferire dati bit per bit, trova impiego nelle macchine a stati finiti ed è fondamentale nella divisione della frequenza nelle telecomunicazioni.