edutecnica

Reti sequenziali e contatori

Viene definita rete sequenziale ogni rete logica le cui uscite ad un certo istante non dipendono solo dai valori assunti dagli ingressi in quell'istante, ma anche da quelli precedenti all'istante considerato. Una rete è sequenziale solo se possiede elementi di memoria (ad esempio flip-flop) elementi cioè in grado di ricordare precedenti stati logici degli ingressi. In figura è illustrato lo schema a blocchi di una rete sequenziale,
dove indichiamo I1, I2,...In gli ingressi della rete.
Q1, Q2, ..Qn le sue uscite, x1, x2, xn gli ingressi della memoria. Ed y1, y2, yn le uscite della memoria.

Si può trovare che Q e x sono funzioni sia degli ingressi I1,I2,..,In che delle uscite y1,y2,..yn della memoria.

Q=Q(I1,I2,..In ; y1,y2,..yn)
x=x(I1,I2,..In ; y1,y2,..yn)

Queste sono le equazioni di stato della rete. Una piccola rete sequenziale può essere considerata lo stesso flip flop
Infatti dalla sequenza degli stati si nota che quando J=K=0 l'uscita Q mantiene il valore dello stato precedente all'attuale.


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 a modulo otto,mentre uno a decadeva modulo dieci etc.

Contatori asincroni e sincroni

Un contatore è detto asincrono quando l'impulso comanda solo il primo flip flop della serie è l'uscita di ogni flip flop comanda l'ingresso ci 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

E' il contatore di più facile realizzazione 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) ciascuna delle 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.

Contatore binario asincrono modulo 4


I due flip flop usati, sono sufficienti per ottenere 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 :



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 (down counter)

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 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  quindi se X=1 il contatore conta in avanti, altrimenti conta all'indietro.

Contatori sincroni

Noi, 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.

Progetto di un contatore binario sincrono modulo 4

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 ff T:
                         
In questo caso, definito il tipo di ff 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: