Circuiti sequenziali
- I circuiti sequenziali sono caratterizzati dal fatto che, in un dato istante tn+1 le
uscite dipendono dai livelli logici di ingresso nell'istante tn+1 ma anche dagli stati
assunti dalle uscite nell'istante precedente tn. Ciò significa che il circuito
mantiene memoria degli stati assunti precedentemente dagli ingressi e dalle uscite.
Le strutture circuitali che realizzano la funzione di memoria sono varie ma si
basano tutte su un collegamento di reazione (feedback) fra le uscite e gli ingressi.
- Il più semplice circuito sequenziale è il latch, un dispositivo bistabile a porte NOR o
NAND, che presenta due uscite complementari (Q e Q) permette di
immagazzinare un bit di valore 1 o 0 e di mantenerlo memorizzato. Gli schemi e le
relative tavole di verità sono qui riportati.
- I latch con abilitazione, o latch dinamici, presentano la stessa funzionalità dei latch
suddetti ma sono provvisti di un ingresso di abilitazione (EN) che abilita le funzioni
di Set e di Reset; se EN è inattivo, il latch rimane in stato di memoria.
- I latch di tipo D derivano sostanzialmente dal latch SR a porte nand, ma presentano,
oltre all'ingresso di abilitazione, un solo ingresso dati D = S = R. Viene eliminato lo
stato degli ingressi non utilizzato.
- I flip-flop sono dispositivi bistabili provvisti di ingressi dati e di un ingresso di
temporizzazione a cui viene applicato un segnale di clock. La commutazione delle
uscite, benché determinata dallo stato degli ingressi, avviene in coincidenza di una
ben determinata transizione del clock, che viene perciò chiamato anche segnale di
trigger o di comando. I flip-flop possono essere classificati considerando le
modalità con cui interviene il segnale di clock, oppure considerando la funzionalità
globale.
- I flip-flop edge-triggered sono attivati dal fronte di salita (positive edge-triggered)
o dal fronte di discesa (negative edge- triggered) del segnale di clock. La
transizione del clock genera infatti all'interno del flip-flop un breve impulso, che
abilita lo stadio di ingresso a ricevere i dati e innesca la commutazione delle uscite;
subito dopo l'impulso cessa disabilitando gli ingressi, cosicché le uscite, completata
la commutazione, rimangono stabili. I flip-flop con comando sul fronte di
transizione del clock sono decisamente i più utilizzati.
- I flip-flop master-slave sono costituiti da due latch con ingresso di abilitazione posti
in cascata, denominati rispettivamente master e slave. Al master è applicato un
segnale di clock CK mentre allo slave e applicato il segnale complementato CK.
Quando CK = 1, è abilitato il master, che memorizza i dati di ingresso; quando poi
CK = 0, si ha CK = 1 e risulta abilitato lo slave, che, isolato dal master, determina la
commutazione delle uscite. Poiché la memorizzazione di un dato presuppone che il
clock compia una transizione
0 1 e una transizione 1 0 ossia che si completi un impulso, questi flip-flop vengono
chiamati pulse triggered. Data la loro sensibilità ai disturbi e alle commutazioni
degli ingressi quando il clock è a livello alto, i flip-flop master-slave trovano ormai
scarse applicazioni.
- I flip-flop presentano solitamente ingressi supplementari, detti ingressi diretti o
asincroni, che consentono di azzerare (Reset, R, RD, CLR) o impostare al livello 1
(Set, S, SD, PRE) le uscite, indipendentemente dal controllo del clock e
indipendentemente dallo stato degli ingressi dati. Nei dispositivi integrati, questi
ingressi sono in genere attivi bassi.
- Considerando la funzionalità globale si distinguono principalmente i flip-flop di tipo D
e quelli di tipo JK. Si riportano qui il simbolo generico di un flip-flop di tipo D, con
clock attivo sul fronte di salita, e quello di un flip-flop JK, attivato dal fronte di
discesa del clock, con le relative tavole di verità.
- La particolare configurazione con J = K = 1, che porta il flip-flop JK a commutare,
invertendo lo stato delle uscite, ad ogni fronte attivo del clock, viene denominata
toggle (T).
- I registri sono costituiti da flip-flop (solitamente di tipo D) disposti in cascata e
consentono di memorizzare temporaneamente un certo numero di bit.
Particolarmente importanti sono i registri a scorrimento (shift register), che
permettono lo scorrimento dei dati da un flip-flop all'altro in sincronismo con il
segnale di clock. È così possibile:
- introdurre i dati informa seriale (serial input), usando l'ingresso dati del primo
flip-flop e facendoli scorrere lungo la catena di flip-flop;
- introdurre i dati in forma parallela (parallel input), usando contemporaneamente
gli ingressi dati di tutti i flip-flop;
- prelevare i dati in forma seriale (serial output) usando l'uscita di uno dei flip-flop;
- prelevare i dati in forma parallela (parallel output) usando le uscite di tutti i flipflop dopo che il registro è stato completamente caricato.
In alcuni dispositivi è anche possibile ottenere lo scorrimento verso destra oppure
verso sinistra, a seconda dello stato di un ingresso di controllo. Inoltre è possibile
ottenere una ricircolazione dei bit che, per effetto dello scorrimento, andrebbero
perduti.
- I contatori sono costituiti da una serie di flip-flop collegati in modo che, ad ogni
ciclo di un segnale di ingresso (clock), le uscite commutino da uno stato all'altro. Lo
stato complessivo delle uscite (stato del contatore), rappresenta in codice binario
il numero degli impulsi di clock applicati. Se, partendo da uno stato iniziale, il
contatore ritorna allo stesso stato dopo k impulsi di clock, si dice che il contatore
ha modulo k o base k.
- I contatori asincroni o a propagazione del comando (ripple counter) sono costituiti
da una serie di N flip flop in configurazione toggle disposti in cascata. Al primo
flip-flop viene applicato il segnale di clock mentre gli ingressi CK degli altri vengono
pilotati dalle uscite Q delle celle precedenti. Con N flip-flop si ottiene un
contatore binario modulo k=2N. Si noti che sul primo flip-flop si presenta un
segnale con frequenza fCK /2, sul secondo un segnale con frequenza fCK /4, ecc.;
pertanto un contatore a N stadi funziona come divisore di frequenza per 2N.
In molte applicazioni si utilizzano contatori con modulo 10 (contatori decadici o
BCD) o modulo 6 o comunque con modulo diverso da una potenza di 2. Si possono in
questi casi sfruttare gli ingressi diretti dei flip-flop per troncare la sequenza di
conteggio al valore desiderato.
Si ottengono contatori con modulo elevato, ad esempio 100, collegando in cascata
più contatori, ad esempio 2 contatori a decade.
- I contatori sincroni sono caratterizzati dal fatto che il segnale di clock viene
applicato simultaneamente (in sincronismo) a tutti i flip-flop della serie. I flip-flop
sono in genere di tipo JK o D. Per ottenere una data sequenza di conteggio occorre
fare in modo che, in ciascuno stato della sequenza, gli ingressi dati dei flip-flop si
trovino nelle condizioni adeguate per consentire il passaggio allo stato successivo.
I contatori sincroni sono molto adatti a realizzare sequenze di conteggio
particolari e moduli arbitrari; è infatti sufficiente progettare la rete
combinatoria opportuna per condizionare gli ingressi dei flip-flop. È inoltre
possibile definire sequenze di conteggio che dipendono da uno o più ingressi, ad
esempio contatori avanti-indietro (up/down) con prestazioni decisamente superiori
a quelle ottenibili con sistemi asincroni.
- Il progetto dei contatori sincroni, che costituiscono un caso particolare di macchina
a stati finiti (automa di Moore), si sviluppa con una procedura alquanto rigorosa,
che può essere così riassunta.
- Valutazione del numero N di flip-flop necessari per ottenere il contatore modulo k
(k = 2N).
- Definizione della sequenza di conteggio (tabella e/o diagramma degli stati).
- Definizione della tabella delle transizioni che deve compiere ciascun flip-flop.
- Scelta dei flip-flop da usare (JK o D) e quindi della tabella di eccitazione degli
ingressi.
- Definizione della rete di eccitazione ossia delle funzioni logiche che condizionino
opportunamente gli ingressi dei flip-flop (mappe K per ciascun ingresso).
- Verifica dell'inesistenza di situazioni di blocco (lockout), nel caso in cui il
contatore si venga a trovare in uno stato indesiderato, ed eventuale
determinazione di una rete correttrice.
- I contatori ad anello costituiscono una categoria particolare di contatori sincroni e
sono realizzati mediante registri a scorrimento. Per ottenere un contatore modulo
k è necessario un registro con k flip-flop. Caricato inizialmente il registro
impostando un solo bit ad 1 (100…0), ad ogni impulso di clock il bit di valore 1 si
sposta lungo la catena di k flip-flop, realizzando così k diverse configurazioni o
stati.
Una struttura alternativa è costituita dal contatore Johnson, che presenta un
collegamento fra l'uscita Q dell'ultimo flip-flop e l'ingresso D del primo. Esso
richiede l'azzeramento iniziale del registro e consente di ottenere, con soli k flipflop, 2k stati.
Scarica

Circuiti sequenziali