edutecnica

Reti sequenziali

      

In un circuito combinatorio i valori delle uscite dipendono in ogni istante esclusivamente dai valori delle variabili di ingresso. Un circuito digitale è di tipo sequenziale se le sue uscite dipendono non solo dai valori correnti degli ingressi, ma anche da quelli passati.
Un circuito digitale sequenziale (o rete sequenziale) è pertanto dotato, in ogni istante di tempo, di uno stato che, insieme ai valori degli ingressi, ne determina il comportamento futuro.

Lo stato di un circuito sequenziale rappresenta, in un certo senso, una forma di memoria: esso contiene una sorta di descrizione della storia passata del circuito stesso. L'elemento funzionale elementare per la realizzazione di circuiti sequenziali è pertanto un dispositivo bistabile, che è in grado di memorizzare un bit di informazione.

I circuiti sequenziali sono formati da:
Bistabili (di vario tipo) funzione: memorizzare informazione, ovvero dei bit.
Reti combinatorie, funzione: elaborare informazione.

Il circuito sequenziale ha, in ogni dato istante, uno stato che è determinato dai bit memorizzati nei bistabili.

Esistono due famiglie di circuiti digitali sequenziali:
asincroni, che non fanno uso di clock,
sincroni, che necessitano di clock.

Un esempio di circuito sequenziale asincrono è il flip-flop bistabile SR (non sincronizzato) a.k.a. SR-latch. I circuiti sequenziali asincroni sono impiegati raramente, sono difficili da usare e da controllare; i circuiti sequenziali sincroni sono invece universalmente diffusi.

Un esempio di circuito sequenziale sincrono è il flip-flop bistabile di tipo D, che è il componente base dei circuiti sequenziali di tipo sincrono.

Un circuito sequenziale (sincrono) è dunque costituito da Flip-Flop (bistabili di tipo D o T sincroni) + reti combinatorie.

Come per le reti combinatorie, esistono delle procedure di sintesi anche per i circuiti sequenziali sincroni.


Contatori

      

I contatori sono dispositivi realizzati con flip-flop e porte logiche, in grado di cambiare stato in una ben definita sequenza dopo la ricezione di appropriati segnali di ingresso.
L'uscita, o le uscite del contatore, indicano il numero degli impulsi che sono stati applicati all'ingresso . Viene definito binario un contatore in grado di contare 2n impulsi con n il numero di flip-flop utilizzati, la cui uscita indica in valore binario il numero degli impulsi entrati.
Si definisce contatore a decade o decimale un analogo dispositivo capace di contare in sequenza binaria da zero fino a nove per poi ricominciare da capo.
Per modulo di un contatore infine, si intende il numero degli stati diversi che esso assume prima di ripetersi. Ad esempio un contatore binario a tre bit ha un modulo pari a otto,mentre uno a decade ha un modulo dieci etc.

        


Contatori asincroni e sincroni

      

Un contatore è detto asincrono quando l'impulso di clock è applicato solo al primo flip flop della serie, mentre l'uscita di ogni flip flop comanda l'ingresso di clock del successivo.Le commutazioni dei flip flop avvengono quindi sequenzialmente.
Si definisce invece sincrono un contatore in cui l'impulso di conteggio è applicato simultaneamente a tutti gli ingressi di clock dei flip flop che quindi commutano simultaneamente.


Contatore binario asincrono

      

Il contatore binario asincrono è il contatore di più facile da realizzare; in genere è formato dalla connessione di più flip flop, ad un solo ingresso, di solito JK usati come T, disposti in modo tale da poter effettuare il conteggio cambiando di stato ogni qualvolta giunge al suo ingresso un impulso.
Lo stato logico delle uscite dei bistabili istante per istante fornisce sotto forma binaria il numero degli impulsi entrati nel contatore.
Il numero dei flip flop necessari per per realizzare il contatore dipende dalla quantità degli impulsi da contare prima che esso ritorni allo stato iniziale, essendo il funzionamento ciclico. Se si volesse ad esempio realizzare un contatore modulo trentadue capace cioè di contare 31 impulsi per poi ritornare allo stato iniziale con il trentaduesimo, debbono essere utilizzati cinque flip flop in grado di fornire 25 =32 diverse configurazioni di uscita (ogni flip flop può assumere due stati diversi) ciascuno dei quali può essere associata ad uno stato logico del contatore.
In definitiva se K sono gli impulsi da contare, compreso quello di riporto allo stato iniziale, si ha che.

2n=K

con n numero dei flip flop necessari per poter effettuare il conteggio.
Supponiamo di voler costruire un contatore binario a modulo 4; si avrebbe 2n=4 ⟶ n=2 ci vogliono due flip-flop.

I due flip flop usati, sono sufficienti per ottenere le quattro combinazioni diverse che rappresentano i quattro stati del contatore. Poiché le quattro combinazioni 00 01 10 11 sono la rappresentazione dei primi quattro numeri del sistema binario le uscite dei flip flop sono anche le uscite del contatore .

Per il funzionamento del dispositivo gli ingressi J e K debbono essere collegati allo stato logico 1, infatti soltanto in questo stato le uscite dei bistabili commutano ad ogni impulso inviato all'ingresso di clock (J=K=1=toggle).

Il contatore grazie agli ingressi asincroni di clear può essere forzato a partire dalla condizione Q1=Q2=0 (azzeramento del contatore).

Esaminando il disegno si nota che l'uscita Q1 del primo flip flop si comporta da clock per il secondo. Qui sotto riportiamo la sequenza di conteggio.

Dai disegni è possibile verificare che le uscite del contatore soddisfano la sequenza degli stati illustrata precedentemente e che inoltre, alle uscite Q1 e Q2 sono presenti rispettivamente un segnale a frequenza ½ e ¼ rispetto a quello di ingresso.
Si può quindi dire che un contatore binario è allo stesso tempo un divisore di frequenza in quanto se n è il numero dei flip flop collegati in cascata inviando all'ingresso di clock del primo un segnale binario a frequenza f all'uscita dell'ultimo flip flop sarà disponibile un segnale a frequenza pari a   .
Ogni flip flop divide quindi per due la frequenza di ingresso.


Contatore binario asincrono modulo 16

      

Lo schema di questo contatore è del tutto simile a quello modulo 4; differisce da quest'ultimo solo per il maggior numero di flip flop usati: 4 anziché 2.

Osservando l'evoluzione delle uscite Q, rappresentando in forma tabellare la sequenza, considerando Q0 il bit meno significativo (LSB: least significant bit) e Q3 il bit più significativo (MSB:most significant bit):


Contatore asincrono modulo 10

      

In questo contatore alle cifre decimali che vanno da 0 a 9 sono fatti corrispondere valori binari assunti dalle uscite dei quattro flip flop; mentre le sei combinazioni in eccesso 1010, 1011, 1100, 1101, 1110, 1111 non vengono usate.

Si utilizza un contatore a modulo 16 modificato, in modo da poter ritornare a 0 al decimo impulso di conteggio. Ciò può essere ottenuto collegando una porta logica NAND al contatore in modo che quando agli ingressi della porta sono presenti simultaneamente gli stati logici alti prelevati dalle uscite Q4 e Q2 dei flip flop (ciò accade solo per la combinazione 1010) la sua uscita va ad attivare la linea di clear azzerando il contatore.


Contatore binario asincrono all'indietro

      

Decrementa la quantità immagazzinata di una unità per ogni impulso di clock applicato. Può essere ottenuto con FF-T a logica negativa dove ogni FF successivo riceve il clock dal FF precedente proveniente dall'uscita Q di quest'ultimo; oppure con FF-T a logica positiva dove ogni FF successivo riceve il clock dal FF precedente proveniente dall'uscita diretta Q di quest'ultimo.

      

sfruttando questo principio è possibile implementare contatori di tipo up-down; ad esempio qui sotto è riportato un contatore up-down a modulo 4.

Ad FF1 viene applicato un impulso di clock pari a Ck=X·Q0+X·Q0 quindi se X=1 il contatore conta in avanti, altrimenti conta all'indietro.


Contatori sincroni

      

Negli esempi precedenti, abbiamo supposto, per semplicità, nullo il tempo di commutazione dei flip flop. In realtà, questo tempo anche se piccolo, è diverso da 0, così nel caso di un contatore binario asincrono realizzato con n flip flop, se il tempo di propagazione di ritardo tpd diventa maggior della durata del periodo di clock, lo stato del contatore non rispecchia più istante per istante il numero degli impulsi entrati. Infatti può accadere che all'ingresso del contatore giunga un impulso, successivo a quello appena entrato, che commuta il primo flip flop, mentre l'ultimo della serie a causa del ritardo di propagazione accumulato lungo gli stadi, deve effettuare ancora la propria commutazione. Affinché ciò non si verifichi deve valer la seguente relazione.

Con f frequenza del segnale di clock e tpd tempo di propagazione del flip flop.
Per cercare di ridurre l'inconveniente del ritardo di propagazione sono state approntate diverse soluzioni. Quella più usata consiste nell'agire simultaneamente su tutti gli ingressi Ck dei vari FF in modo che la commutazione degli stessi avvenga contemporaneamente e non più sequenzialmente. Questi dispositivi sono detti contatori sincroni.

Il progetto di un contatore sincrono viene ricondotto all'esecuzione dei seguenti punti
1 scelta del tipo di FF da usare come memoria,
2 definizione del diagramma di flusso che individua il numero degli stati e determina il numero di FF usati,
3 costruzione della tabella degli stati e recupero dalla stessa della rete combinatoria necessaria.

Esempio: usando dei FF T a logica negativa realizzare un contatore che realizzi la seguente sequenza di stati.

Ricordando il comportamento del flip-flop T:

In questo caso, definito il tipo di flip flop da usare e il diagramma degli stati, passiamo alla costruzione della tabella degli stati, da cui risulta che FF0 deve avere l'ingresso costantemente T0=1.

Per desumere a che valore deve essere posto l'ingresso T1 , lo stesso deve essere considerato come funzione delle variabili Q0 e Q1; dalla tabella dello stato attuale:

Utilizzando il metodo delle mappe K avremo T1=Q0 ; il circuito risultante sarà pertanto:

Non bisogna pensare che l'utilizzo dei flip-flop di tipo T sia vincolante, gli stessi problemi possono essere risolti usando dei flip flop di tipo D, come si vede nella pagina degli esercizi.