Vai al contenuto
Elettronica e Didattica

Risorse di elettronica, elettrotecnica e tecnologia varia per studenti curiosi.

Classe quarta

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:

  • s(tk−1)s(t_{k-1}): stato passato, cioè all’istante precedente tk−1t_{k-1};
  • s(tk)s(t_k): stato presente, cioè all’istante tkt_k;
  • s(tk+1)s(t_{k+1}): stato futuro, cioè all’istante successivo tk+1t_{k+1}.

Questa rappresentazione nasce perché la linea del tempo viene rappresentata in maniera discreta e non continua, come una successione di istanti separati.

Linea del tempo discreta con gli istanti passati, l'istante presente tk e gli istanti futuri
Il tempo come successione di istanti discreti.

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

Rete combinatoria collegata a un blocco di memoria (latch o flip-flop), con ingressi e uscite
Rete sequenziale: rete combinatoria più 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.

Simbolo del flip-flop JK con ingressi J, K e Ck, uscite Q e Q negato, e tabella di verità
Fig. 1 – Simbolo e tabella di verità del flip-flop JK.

Il componente presenta due uscite, QQ e Q‾\overline{Q} (QQ negato), tali che quando commuta una commuta anche l’altra, in maniera negata. Il funzionamento è il seguente, indicando con QnQ_n il valore memorizzato prima del fronte di clock e con Qn+1Q_{n+1} quello presente dopo il fronte di clock:

  • per J=0J = 0 e K=0K = 0 l’uscita resta quella memorizzata, Qn+1=QnQ_{n+1} = Q_n (mantenimento, block);
  • per J=0J = 0 e K=1K = 1 si ha Qn+1=0Q_{n+1} = 0: avviene il cosiddetto reset della memoria;
  • per J=1J = 1 e K=0K = 0 si ha Qn+1=1Q_{n+1} = 1: avviene il cosiddetto set della memoria;
  • per J=K=1J = K = 1 si ha il cosiddetto toggle del dato in memoria, cioè commuta il proprio valore, Qn+1=Qn‾Q_{n+1} = \overline{Q_n}.

Gli ingressi (0,1)(0, 1) e (1,0)(1, 0) impostano quindi il bit ai valori 0 (reset) e 1 (set). La caratteristica ingresso-uscita si può scrivere nel seguente modo:

Qn+1=J⋅Qn‾+K‾⋅Qn.Q_{n+1} = J\cdot\overline{Q_n} + \overline{K}\cdot Q_n .

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.

Diagramma temporale con clock, ingressi J e K e uscita Q del flip-flop JK; le operazioni successive sono B, S, R, T, B, T, T
Fig. 2 – Diagramma temporale del flip-flop JK.

È possibile trasformare il flip-flop JK in un flip-flop di tipo D collegando i due ingressi attraverso un inverter, in modo che J=DJ = D e K=D‾K = \overline{D}. Lo schema è il seguente:

Flip-flop JK con l'ingresso D collegato a J e, attraverso un inverter, a K; tabella D, J, K, Q
Fig. 3 – Flip-flop D.

Come si vede, le combinazioni possibili si sono ridotte a due soltanto: set (D=1D = 1) e reset (D=0D = 0).

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:

0→1→2→3→0(eˋ ciclico).0 \to 1 \to 2 \to 3 \to 0 \qquad\text{(è ciclico).}

L’insieme delle uscite è dunque Y={0,1,2,3}Y = \{0, 1, 2, 3\} ed è composto da N=4N = 4 numeri (da cui il nome); per realizzarlo occorrono 2 bit, in base alla nota relazione N=2kN = 2^k, con kk = numero di bit. Si possono allora individuare 4 stati del sistema:

S0={0,0},S1={0,1},S2={1,0},S3={1,1}.S_0 = \{0,0\},\quad S_1 = \{0,1\},\quad S_2 = \{1,0\},\quad S_3 = \{1,1\}.

Il contatore si può descrivere usando la tabella degli stati e delle uscite:

StatoBitUscita
S0S_0{0,0}\{0,0\}0
S1S_1{0,1}\{0,1\}1
S2S_2{1,0}\{1,0\}2
S3S_3{1,1}\{1,1\}3

oppure si può tracciare il diagramma degli stati come segue.

Diagramma degli stati S0, S1, S2, S3 collegati in successione ciclica
Fig. 4 – Diagramma degli stati del contatore mod4.

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.

Contatore modulo 4 realizzato con due flip-flop JK, clock a 1 Hz e due diodi LED sulle uscite Q0 (LSB) e Q1 (MSB)
Fig. 5 – Contatore MOD4 con flip-flop JK.

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

Diagramma temporale del clock e delle uscite Q0 e Q1 con la sequenza di conteggio 0, 1, 2, 3, 0
Fig. 6 – Diagramma temporale del contatore MOD4.

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

a) flip-flop con pallino sul clock (fronte di discesa); b) flip-flop senza pallino (fronte di salita)
Fig. 7 – a) fronte di discesa; b) fronte di salita.

Che cosa succederebbe se invece si usassero i fronti di salita?

Esercizi

Es. 1. Trovare i valori dell’uscita del seguente flip-flop.

Flip-flop JK con clock a fronte di discesa e andamenti di Ck, J e K

Fonte: edutecnica

Es. 2. Trovare l’andamento dell’uscita.

Flip-flop D realizzato con un JK e andamenti di Ck e D

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).

Soluzione dell'esercizio 1 con l'andamento dell'uscita Q e le operazioni S R B S T T S B B

Es. 2. Con il flip-flop D l’uscita assume il valore di DD 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.

Soluzione dell'esercizio 2 con l'andamento dell'uscita Q che segue D sui fronti di salita del clock