💾 Elettronica digitale · Guida 06

Flip-flop SR, JK, D e T

I flip-flop sono elementi fondamentali della logica sequenziale: memorizzano un bit e cambiano stato in risposta agli ingressi e, normalmente, a un fronte di clock. Le configurazioni SR, JK, D e T svolgono funzioni diverse ma condividono lo stesso concetto: conservare uno stato logico nel tempo. Sono alla base di registri, contatori, divisori di frequenza, macchine a stati e processori.

Livello: intermedio SR · JK · D · T Clock Memoria a 1 bit

Cos’è un flip-flop?

Un flip-flop è un circuito bistabile in grado di memorizzare un singolo bit. Possiede due stati stabili e può mantenere il proprio valore anche quando gli ingressi cambiano, finché non arriva una condizione valida di aggiornamento.

Q = stato memorizzato Q può valere 0 oppure 1.
Un flip-flop è una memoria da 1 bit. Più flip-flop affiancati formano registri capaci di memorizzare parole binarie complete.

Latch e flip-flop: qual è la differenza?

LatchFlip-flop
Sensibile a un livello di abilitazione.Sensibile normalmente a un fronte del clock.
Può restare trasparente mentre Enable è attivo.Aggiorna lo stato in un istante preciso.
Level-sensitive.Edge-triggered.
Nel linguaggio comune i due termini vengono talvolta confusi. In progettazione digitale conviene però distinguerli perché il comportamento temporale è diverso.

Le uscite Q e Q̅

Molti flip-flop forniscono due uscite: Q, che rappresenta lo stato memorizzato, e , che ne rappresenta il complemento.

Q̅ = ¬Q
Q
01
10

Clock e fronte attivo

Un flip-flop sincrono aggiorna il proprio stato quando arriva il fronte attivo del segnale di clock. Il fronte può essere di salita oppure di discesa, a seconda del dispositivo.

↑ Rising edge

Aggiornamento sul passaggio LOW → HIGH.

↓ Falling edge

Aggiornamento sul passaggio HIGH → LOW.

Tra i fronti

Lo stato rimane normalmente memorizzato.

Il clock decide “quando” aggiornare. Gli ingressi decidono invece “quale” sarà il nuovo stato.

Flip-flop SR

SR significa Set-Reset. I due ingressi principali sono S e R: Set forza Q a 1, mentre Reset forza Q a 0.

SRQ successivoFunzione
00Q precedenteMemoria
010Reset
101Set
11Non ammesso / dipende dalla realizzazioneCondizione critica
La combinazione S = 1 e R = 1 è problematica nella forma SR classica attiva-alta. Il comportamento preciso dipende dalla realizzazione del circuito e va verificato sul dispositivo utilizzato.

Flip-flop JK

Il JK nasce per eliminare la condizione proibita tipica dell’SR. Gli ingressi J e K hanno un comportamento simile a Set e Reset, ma quando entrambi valgono 1 il flip-flop commuta allo stato opposto.

JKQ successivoFunzione
00QMemoria
010Reset
101Set
11Toggle
J = K = 1 → Toggle. Ogni fronte attivo inverte il valore memorizzato.
Qnext = J·Q̅ + ¬K·Q

Flip-flop D

Il flip-flop D è uno dei più utilizzati nei sistemi digitali. Possiede un solo ingresso dati, D, e al fronte attivo del clock copia quel valore su Q.

Qnext = D
DQ successivo
00
11
Esempio Se D = 1 prima del fronte di salita, al fronte Q diventa 1. Se D cambia dopo il fronte, Q mantiene il valore precedente fino al prossimo fronte valido.
È ideale per registri e memorizzazione sincrona. Ogni flip-flop D conserva un bit del dato.

Flip-flop T

T significa Toggle. Il flip-flop T possiede un ingresso principale T. Quando T = 0 mantiene lo stato; quando T = 1 inverte Q a ogni fronte attivo.

TQ successivoFunzione
0QMemoria
1Toggle
Qnext = T ⊕ Q
Con T = 1 fisso, Q cambia stato a ogni fronte del clock. Questo comportamento è molto utile nei contatori e nei divisori di frequenza.

SR, JK, D e T a confronto

SR

Set, reset e memoria. Possiede una condizione critica nella forma classica.

JK

Simile a SR ma J=K=1 produce toggle.

D

Memorizza direttamente il valore presente su D.

T

Memoria oppure inversione dello stato.

TipoIngressi principaliUso tipico
SRS, RSet/reset e funzioni bistabili semplici.
JKJ, KContatori, controllo di stato, toggle.
DDRegistri, pipeline, memorizzazione dati.
TTContatori e divisori di frequenza.

Confronto tra flip-flop SR, JK, D e T

Confronto tra flip-flop SR JK D e T con tabelle caratteristiche e applicazioni
Confronto tra i flip-flop SR, JK, D e T: simboli, ingressi, comportamento, tabelle caratteristiche ed esempi di utilizzo.

Diagramma temporale del flip-flop D

Il diagramma temporale aiuta a capire la relazione tra D, clock e Q. Consideriamo un flip-flop D attivo sul fronte di salita.

  1. D può cambiare liberamente tra due fronti;
  2. al fronte ↑ il flip-flop campiona D;
  3. Q assume il valore campionato;
  4. Q lo mantiene fino al fronte successivo.
Il valore importante è quello presente su D in prossimità del fronte attivo. È qui che entrano in gioco setup time e hold time.

Clock, ingresso D e uscita Q nel tempo

Diagramma temporale del flip-flop D con clock ingresso D uscita Q e Q complementare
Diagramma temporale di un flip-flop D a fronte di salita: Q campiona D sul fronte attivo del clock e mantiene lo stato fino al fronte successivo.

Preset e Clear asincroni

Molti flip-flop integrati possiedono ingressi aggiuntivi di Preset e Clear, talvolta indicati come PRE e CLR.

IngressoEffetto tipico
PresetForza Q = 1 indipendentemente dal clock.
ClearForza Q = 0 indipendentemente dal clock.
Molti ingressi PRE e CLR sono active-low. Il datasheet e il simbolo devono essere controllati: una bolla sul pin indica normalmente attivazione a livello basso.

Setup time e hold time

Perché il dato venga memorizzato correttamente, D deve rimanere stabile per un certo tempo prima e dopo il fronte di clock.

Setup time

Tempo minimo durante il quale il dato deve essere stabile prima del fronte.

Hold time

Tempo minimo durante il quale il dato deve restare stabile dopo il fronte.

Clock-to-Q

Ritardo tra il fronte attivo e l’aggiornamento osservabile su Q.

Violando setup o hold il flip-flop può entrare in metastabilità. L’uscita può impiegare un tempo imprevedibile per stabilizzarsi su 0 o 1.

Dove vengono utilizzati i flip-flop?

ApplicazioneRuolo del flip-flop
RegistriMemorizzano parole binarie.
ContatoriMemorizzano e aggiornano il conteggio.
Divisori di frequenzaIl toggle può dimezzare la frequenza.
Macchine a statiConservano lo stato corrente.
PipelineSeparano e sincronizzano stadi di elaborazione.
SincronizzatoriAiutano a portare segnali asincroni nel dominio di clock.
Divisore per 2 Un flip-flop T con T = 1 commuta a ogni fronte. Q completa un periodo ogni due fronti di clock, quindi la sua frequenza è circa metà di quella del clock.

Errori comuni

  • confondere latch e flip-flop;
  • pensare che Q cambi continuamente seguendo l’ingresso;
  • dimenticare il fronte attivo del clock;
  • confondere Q e Q̅;
  • ignorare la condizione critica dell’SR classico;
  • pensare che JK e T siano identici;
  • dimenticare che D viene campionato solo al momento previsto;
  • ignorare setup time e hold time;
  • trattare PRE e CLR come ingressi sempre sincroni;
  • non verificare se ingressi asincroni e clock sono active-high o active-low.