Elementi di memoria: i flip-flop
Da Hacknowledge.
Il registro è una macchina sequenziale con il compito di memorizzare un valore di ingresso per un tempo sufficientemente lungo, finché non venga esplicitamente indicato che un valore diverso deve sostituirlo, esso si compone di:
- K valori di uscita (valori memorizzati);
- K ingressi attivi (valori da memorizzare);
- M ingressi neutri (non cambiano il valore memorizzato);
Il registro è una macchina sequenziale poiché la sua uscita è in generale funzione dello stato precedente, oltre ad essere un elemento di memoria è fondamentale nella realizzazione di macchine sequenziali ed in particolare di quelle sincrone, un registro viene tipicamente rappresentato in questo modo:
T sono gli ingressi attivi che determinano l’uscita U. Un particolare registro è il flip-flop, capace di memorizzare un dato binario (e quindi i valori logici 1 oppure 0). Essendo il flip-flop adatto a memorizzare un bit b, la sua uscita ha solo due possibili stati stabili che sono detti rispettivamente:
- Stato di SET, o alto oppure stato “1”, corrispondente a b=1;
- Stato di RESET, o basso oppure stato “0”, corrispondente a b=0;
Affinché sia possibile fornire il dato all’esterno ed il suo complemento, utile in diverse applicazioni, gli stati sono codificati usando variabili di tipo booleane (b è il valore memorizzato, F è il nuovo valore memorizzato). In base a quanto detto per i registri anche il flip-flop, che è un particolare registro, deve possedere distinti stati di ingresso ed in particolare almeno uno di questi deve essere neutro poiché questo sarà destinato al mantenimento di un bit, altri stati attivi consentono poi al flip-flop di posizionarsi in uno dei due stati. Gli stati attivi sono:
- ingresso di SET per la memorizzazione di b=1 (F=1 ed not F=0);
- ingresso di RESET per la memorizzazione di b=0 (F=0 ed not F=1);
Oltre a questi due stati alcuni flip-flop sono dotati di un ingresso particolare quale è l’ingresso di commutazione: se in ingresso è impostato questo stato il flip-flop commuta lo stato di uscita su b=1 se prima esso valeva b=0. I flip-flop possono essere macchine asincrone o sincrone, ad ingressi impulsivi oppure non, ed inoltre diversi flip-flop si ottengono in funzione delle diverse variabili binarie usate di ingresso. I flip-flop più usati sono essenzialmente quelli di tipo RS (i cui ingressi sono i segnali R ed S) e quelli di D dett. Ecco una classificazione dei flip-flop:
- Classificazione in base alle tempificazioni dei segnali:
- latch;
- edge/trigger;
- master/slave;
- Classificazione in base alle funzionalità:
- RS;
- D;
- T;
- JK;
La tempificazione caratterizza il modo in cui il segnale di uscita cambia al variare del segnale di ingresso mentre le funzionalità distinguono i flip-flop in funzione del tipo di ingresso che accetta e nella modalità in cui esso è elaborato.
[modifica] Il flip-flop RS
Il flip-flop RS è una macchina asincrona (come si può notare dagli auto-anelli presenti nel suo grafo) con ingresso di tipo impulsivo, essa è caratterizzata da:
- due ingressi R ed S;
- una uscita (corrispondente al bit memorizzato);
entrambi i bit R ed S non possono mai essere 1, deve essere cioè mantenuto il vincolo RS=0. Il segnale R alto, cioè R=1, significa che il flip-flop memorizza il bit 0 (condizione di RESET); il segnale S alto, cioè S=1, significa che il flip-flop memorizza il bit 1 (condizione di SET), il grafo del flip-flop RS è:
La tabella di transizione che descrive l’evoluzione degli stati per la macchina è la seguente:
| Stato\RS | 00 | 01 | 11 | 10 |
| q0 | q0 | q1 | - | q0 |
| q1 | q1 | q1 | - | q0 |
Per la codifica degli stati basta un solo bit, infatti:
- Stato q0 bit 0;
- Stato q1 bit 1;
La codifica delle uscite è associata allo stato, gli ingressi sono già codificati per cui la mappa di Karnough è:
| F\RS | 00 | 01 | 11 | 10 |
| 0 | 0 | 1 | - | 0 |
| 1 | 1 | 1 | - | 0 |
La funzione logica che si ottiene, detta equazione di stato del flip-flop,è la seguente:
Come già visto per le macchine combinatorie, ad ogni funzione logica è possibile associare un circuito logico equivalente alla funzione logica, per il flip-flop RS tale circuito è mostrato nella seguente figura:
[modifica] Il flip-flop D latch
Il registro e/o flip-flop latch è un modello valido per ingressi impulsivi. Il flip-flop di tipo D latch detto anche flip-flop abilitato è ottenuto da quello RS fondamentale con l’aggiunta di una variabile di abilitazione A, analizziamone il progetto. Si tratta di una macchina con:
- 2 ingressi, a e D;
- 1 uscita, F;
Quando il valore del bit a, detto bit di abilitazione, è alto cioè a=1 allora il flip-flop memorizza i valori dell’ingresso al bit D, l’uscita F è uguale al valore memorizzato. Il grafo degli stati è:
Il flip-flop D latch è una macchina asincrona perché dato un valore in ingresso la macchina si blocca sicuramente in uno dei suoi stati (osservare il grafo). La tabella di transizione per gli stati è la seguente:
| F\aD | 00 | 01 | 11 | 10 |
| q0 | q0 | q0 | q1 | q0 |
| q1 | q1 | q1 | q1 | q0 |
Per codificare gli stati basta un solo bit , poiché si deve codificare q0 e q1, pertanto:
- q0=0;
- q1=1;
Gli ingressi al flip-flop sono già codificati trattandosi infatti di bit. Per la codifica delle uscite si decide di utilizzare lo stato del flip-flop. La tabella della verità che si ottiene codificando gli stati del flip-flop è:
| F | a | D | F' |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
Dalla quale si ricava questa mappa di Karnough:
| F\aD | 00 | 01 | 11 | 10 |
| 0 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
La variazione di due ingressi non adiacenti avente tra l’altro lo stesso valore nella funzione di uscita genera un alea statica, affinchè si possa risolvere il problema decidiamo di introdurre nella funzione logica che scriveremo tutti gli implicanti ridondanti. La funzione logica:
è viziata da alea statica, mentre la funzione logica:
non è viziata da alea statica poiché abbiamo aggiunto l’implicante ridondante escluso dalla minimizzazione, il circuito logico è:
Nel disegno delle tempificazioni si può osservare come i dispositivi di tipo D latch ripropongano l’uscita fintanto che il bit di abilitazione a è alto:







