Reti sequenziali
Stato e memoria nelle reti sequenziali, latch e flip-flop, il flip-flop JK e il flip-flop D, il contatore modulo 4 con diagramma degli stati e diagramma temporale.
L’uso della memoria
Per descrivere quei sistemi nei quali è necessario memorizzare determinate informazioni, le reti combinatorie non sono più sufficienti, pertanto si ricorre alle cosiddette reti sequenziali.
Le reti sequenziali sono quelle in cui il valore delle uscite nell’istante presente dipende sia dai valori degli ingressi nello stesso istante sia dai valori degli ingressi negli istanti passati. Questi valori vengono mantenuti in una memoria che rappresenta lo stato del sistema. Si ricorda che con l’espressione stato del sistema si intende l’insieme di tutte le sue variabili di stato.
Da un punto di vista matematico formale si scrive:
- : stato passato, cioè all’istante precedente ;
- : stato presente, cioè all’istante ;
- : stato futuro, cioè all’istante successivo .
Questa rappresentazione nasce perché la linea del tempo viene rappresentata in maniera discreta e non continua, come una successione di istanti separati.

Una rete sequenziale si può descrivere come una rete combinatoria dotata di memoria.

Gli elementi di memoria
I componenti elementari di memoria sono i latch e i flip-flop. Entrambi sono in grado di memorizzare un bit e pertanto sono detti elementi bistabili. Per memorizzare un’informazione completa non basta un solo bit, ma occorre una sequenza di bit, quindi un byte (8 bit) o una word (16 bit) e successivi.
Mentre i latch sono circuiti asincroni, cioè commutano il proprio valore nello stesso istante in cui cambia l’ingresso, i flip-flop sono memorie sincrone, cioè l’uscita può commutare solo in corrispondenza di un segnale detto di clock, che abilita l’operazione. Ci si concentra su questi ultimi.
Tutti questi componenti sono descrivibili mediante la loro tabella di verità.
Flip-flop
Dei tanti tipi di flip-flop si esamina quello denominato JK.

Il componente presenta due uscite, e ( negato), tali che quando commuta una commuta anche l’altra, in maniera negata. Il funzionamento è il seguente, indicando con il valore memorizzato prima del fronte di clock e con quello presente dopo il fronte di clock:
- per e l’uscita resta quella memorizzata, (mantenimento, block);
- per e si ha : avviene il cosiddetto reset della memoria;
- per e si ha : avviene il cosiddetto set della memoria;
- per si ha il cosiddetto toggle del dato in memoria, cioè commuta il proprio valore, .
Gli ingressi e impostano quindi il bit ai valori 0 (reset) e 1 (set). La caratteristica ingresso-uscita si può scrivere nel seguente modo:
Si può visualizzare il comportamento del flip-flop JK mediante il suo diagramma temporale. Si noti la commutazione esclusivamente sul fronte di salita dell’impulso di clock.

È possibile trasformare il flip-flop JK in un flip-flop di tipo D collegando i due ingressi attraverso un inverter, in modo che e . Lo schema è il seguente:

Come si vede, le combinazioni possibili si sono ridotte a due soltanto: set () e reset ().
Collegando in serie più flip-flop si possono ottenere i cosiddetti contatori.
Esempio: contatore modulo 4
Un contatore è un sistema che incrementa il conteggio di una quantità fissa. Un sistema che conta da 0 a 3 per incrementi unitari e poi ricomincia da capo è detto contatore modulo 4 incrementale. La sua uscita è il valore contato, dunque:
L’insieme delle uscite è dunque ed è composto da numeri (da cui il nome); per realizzarlo occorrono 2 bit, in base alla nota relazione , con = numero di bit. Si possono allora individuare 4 stati del sistema:
Il contatore si può descrivere usando la tabella degli stati e delle uscite:
| Stato | Bit | Uscita |
|---|---|---|
| 0 | ||
| 1 | ||
| 2 | ||
| 3 |
oppure si può tracciare il diagramma degli stati come segue.

Si può realizzare un contatore utilizzando dei flip-flop e un segnale di clock. Una realizzazione con flip-flop JK e un clock a 1 Hz è la seguente.

Il funzionamento è descritto dal diagramma temporale delle forme d’onda.

Come si vede, la commutazione avviene in corrispondenza dei fronti di discesa del segnale di temporizzazione (perciò i flip-flop hanno il pallino sull’ingresso del clock).

Che cosa succederebbe se invece si usassero i fronti di salita?
Esercizi
Es. 1. Trovare i valori dell’uscita del seguente flip-flop.

Fonte: edutecnica
Es. 2. Trovare l’andamento dell’uscita.

Fonte: edutecnica
Soluzioni
Es. 1. Le operazioni svolte a ogni fronte di discesa del clock sono, nell’ordine: set (S), reset (R), mantenimento (B), set (S), toggle (T), toggle (T), set (S), mantenimento (B), mantenimento (B).

Es. 2. Con il flip-flop D l’uscita assume il valore di in corrispondenza di ogni fronte di salita del clock. Nella figura le lettere B e T indicano rispettivamente che l’uscita resta invariata o commuta.

