Flip flop
Cos'è un flip flop
I flip flop sono circuiti sequenziali usati come memoria elementare. Esistono diverse tipologie di flip-flop: SR (Set Reset), JK, T (Toggle), D (Delay).
Perché si chiamano flip flop? I primi flip flop furono realizzati in passato usando dei relé meccanici che emettevano un rumore (o doppio rumore) a ogni cambiamento di stato.
Come funziona un flip flop
Esistono diversi modi per realizzare un flip flop.
Ad esempio, posso usare due porte logiche NOR con retroazione.
E' un flip-flop SR.
Si tratta di un circuito sequenziale, perché l'output non dipende soltanto dallo stato degli input correnti ma anche dallo stato precedente.
Nota. La lettera S significa SET mentre la letter R significa RESET.
Esempio
Se invio il segnale S=1, l'output U è sicuramente 1.
Se invio il segnale R=1, l'output U è sicuramente 0.
Qual è l'output se invio i segnali S=0 e R=0 ?
In questo caso l'output dipende dalle retroazioni ossia dallo stato precedente del circuito.
Se segue un reset (R=1) l'uscita è U=0
Se segue un S=1 (set) l'uscita è U=1.
Pertanto, lo stato precedente del flip flop influisce sul output del circuito sequenziale.
La tabella di verità del flip-flop SR è la seguente:
$$ \begin{array}{cr|cc} S & R & Q & \bar{Q} \\ \hline 0 & 0 & nc & nc \\ 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 \\ 1 & 1 & - & - \end{array} $$
Dove la sigla nc vuol dire nessun cambiamento rispetto all'uscita precedente.
In genere, in un circuito sequenziale il flip flop è rappresentato semplicemente come una scatola a più ingressi e uscite.
Esempio
Per spiegarlo meglio rappresento gli stati su un diagramma temporale.
Inizialmente S e R sono uguali a zero ma non posso determinare l'uscita U.
Quando il reset diventa uno (R=1) l'uscita viene impostata a zero (U=0).
Poi l'uscita resta a zero anche se R torna a zero (R=1).
Quando il set diventa uno (S=1) l'uscita diventa uguale a uno (U=1).
Infine, l'uscita a uno anche se S torna a zero (S=0).
La differenza tra latch e flip flop
I latch e i flip flop si distinguono per l'evento che determina il cambio di stato.
- Latch. In un latch il cambio di stato avviene se è attivo un segnale enable (E). Quando il segnale enable è disattivato, il latch è tagliato fuori dal circuito ed è detto "fantasma".
- Flip flop. In un flip flop il cambio di stato avviene in base al segnale di clock (CK). In genere, si verifica sul fronte di salite del clock ossia quando il segnale di clock passa da 0 a 1. Può comunque essere definito nel circuito sequenziale anche sul fronte di discesa.
Tipi di flip flop
Esistono diverse tipologie di flip flop
- Flip flop RS (Reset-Set)
E' uno dei più semplici flip flop. Lavora su due segnali: Reset e Set. La combinazione R=0 e S=0 lascia immutato lo stato del flip flop. Se Q era 1 resta 1, se Q era 0 resta zero. La sigla nc significa nessun cambiamento. Se R=1 e S=0 il flip flop viene resettato a zero (Q=0). Se R=0 e S=1 lo stato del flip flop è impostato a Q=1. La combinazione 1-1 è invece non significativa.
- Flip flop JK
Il flip flop JK lavora come il flip flop RS nelle combinazioni 0-0, 1-0 e 0-1. Quindi J=R e K=S. Cambia soltanto il risultato 1-1. Se R=1 e S=1 il flip flop JK è una funzione TOGGLE che inverte lo stato logico corrente delle uscite.
- Flip flop D (Delay)
Il flip flop D ha un solo segnale in entrata (D). Quando il clock ha il fronte di salita il flip flop aggiorna lo stato Q. In tutti gli altri casi (a parte il fronte di salita del clock) il flip flop conserva lo stato logico corrente indipendentemente dallo stato D. In pratica Q cambia soltanto quando il clock sale a 1. Non a caso D significa Delay ossia ritardo.
- Flip flop T ( Toggle )
In questo flip flop funziona soltanto la funzione TOGGLE. Se T=1 effettua lo switch ossia inverte lo stato logico corrente del flip flop con il suo complemento. Se invece T=0 lo stato logico corrente non cambia.
E così via.