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.
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.
Latch e flip-flop: qual è la differenza?
| Latch | Flip-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. |
Le uscite Q e Q̅
Molti flip-flop forniscono due uscite: Q, che rappresenta lo stato memorizzato, e Q̅, che ne rappresenta il complemento.
| Q | Q̅ |
|---|---|
| 0 | 1 |
| 1 | 0 |
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.
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.
| S | R | Q successivo | Funzione |
|---|---|---|---|
| 0 | 0 | Q precedente | Memoria |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | Non ammesso / dipende dalla realizzazione | Condizione critica |
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.
| J | K | Q successivo | Funzione |
|---|---|---|---|
| 0 | 0 | Q | Memoria |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | Q̅ | Toggle |
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.
| D | Q successivo |
|---|---|
| 0 | 0 |
| 1 | 1 |
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.
| T | Q successivo | Funzione |
|---|---|---|
| 0 | Q | Memoria |
| 1 | Q̅ | Toggle |
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.
| Tipo | Ingressi principali | Uso tipico |
|---|---|---|
| SR | S, R | Set/reset e funzioni bistabili semplici. |
| JK | J, K | Contatori, controllo di stato, toggle. |
| D | D | Registri, pipeline, memorizzazione dati. |
| T | T | Contatori e divisori di frequenza. |
Confronto tra flip-flop SR, JK, D e T
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.
- D può cambiare liberamente tra due fronti;
- al fronte ↑ il flip-flop campiona D;
- Q assume il valore campionato;
- Q lo mantiene fino al fronte successivo.
Clock, ingresso D e uscita Q nel tempo
Preset e Clear asincroni
Molti flip-flop integrati possiedono ingressi aggiuntivi di Preset e Clear, talvolta indicati come PRE e CLR.
| Ingresso | Effetto tipico |
|---|---|
| Preset | Forza Q = 1 indipendentemente dal clock. |
| Clear | Forza Q = 0 indipendentemente dal clock. |
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.
Dove vengono utilizzati i flip-flop?
| Applicazione | Ruolo del flip-flop |
|---|---|
| Registri | Memorizzano parole binarie. |
| Contatori | Memorizzano e aggiornano il conteggio. |
| Divisori di frequenza | Il toggle può dimezzare la frequenza. |
| Macchine a stati | Conservano lo stato corrente. |
| Pipeline | Separano e sincronizzano stadi di elaborazione. |
| Sincronizzatori | Aiutano a portare segnali asincroni nel dominio di 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.

