Indice

5C - Registri

1 Classificazione

Un registro è una memoria da n bit realizzata con dei flip-flop. Un registro permette di memorizzare temporaneamente un dato digitale - parola o word - ed è particolarmente utile in tutte quelle operazioni dove è necessario trasferire dati tra ingressi e uscite. Vengono utilizzati sia come dispositivi indipendenti che direttamente integrati all'interno di componenti più complessi. Sono utili in tantissime applicazioni, ad esempio per mantenere temporaneamente i dati in un decoder, o per conservare operandi e risultati di operazioni nei microprocessori.

Tra i registri si distinguono quelli a scorrimento, dove i dati vengono caricati nel primo FF e spostati (scorrono) in quelli successivi, ad ogni fronte del clock.

Registro SISO

La figura 1 mostra un registro a scorrimento con ingresso seriale e uscita seriale (serial input serial output). Il circuito comprende quattro flip-flop JK, comandati dallo stesso segnale di clock. I FF sono di tipo D 1) e il dato presente nell'ingresso IN scorre verso l'uscita ad ogni fronte del clock. Questo registro memorizza una parola di 4 bit; i dati entrano in modo seriale - uno dopo l'altro - ed escono dall'uscita, sempre in modo seriale, dopo 4 fronti del clock. E' presente un ingresso CL (clear attivo basso) per azzerare la memoria.

Registro SIPO

La figura 2 mostra un registro a scorrimento con ingresso seriale e uscita parallela (serial input parallel output). Lo schema è simile al precedente ma l'uscita viene prelevata in parallelo - tutti i bit contemporaneamente - quando le quattro porte AND vengono abilitate dal segnale RE (read enable) dopo il caricamento dei quattro bit. Naturalmente occorre gestire i segnali di clock e abilitazione per evitare di prelevare i dati nel momento sbagliato o evitare che vengano cambiati durante la lettura.

Registri PISO

La figura 3 mostra un registro a scorrimento con ingresso parallelo e uscita seriale (parallel input serial output). Lo schema riprende quelli precedenti ma in questo caso il dato viene caricato attraverso le porte NAND abilitate dall'ingresso WE (write enable). Inoltre l'ingresso J del primo FF è collegato allo zero logico. Il funzionamento è questo:

Registro PIPO

La figura 4 mostra un registro con ingresso parallelo e uscita parallelo (parallel input parallel output). Non si tratta di un registro a scorrimento; infatti i quattro FF non sono collegati tra loro e il dato digitale, inserito contemporaneamente con gli ingressi da I3 a I0 quando WE è attivo, viene trasmesso alle uscite da Q3 a Q0 in modo parallelo dopo un fronte del clock.

Extra

2 Dispositivi commerciali

Il testo propone l'integrato 74HC595, un registro da 8 bit che funziona sia come SISO e PIPO. Lo schema circuitale è mostrato in figura 8. Si riconosce un registro con ingresso e uscita seriale realizzato con DFF; il dato entra dall'ingresso SER e scorre verso il basso ad ogni fronte di salita del clock seriale SCK. Un altro segnale di clock, RCK, permette il trasferimento degli otto bit dal registro seriale (SISO) a quello parallelo (PIPO) posto alla sua destra. Il segnale di controllo attivo basso `bar G` abilita le uscite, che altrimenti sono nello stato di alta impedenza. E' presente anche l'ingresso asincrono `bar {SCLR}` che azzera il contenuto del registro seriale quando è posto al livello basso.

Osserviamo che:

Non ci soffermiamo sugli altri dispositivi proposti, il registro PISO 74597 e l'ancora più versatile 74194, che consente tutti i possibili funzionamenti da registro.

Extra

3 Applicazioni dei registri

Le applicazione più ovvie per i registri PISO e SIPO sono la conversione parallelo-serie e serie-parallelo. Un registro SISO può essere usato anche per ritardare un segnale, come mostrato in figura 7: il dato esce dal registro dopo averlo attraversato e quindi dopo un certo numero di fronti del clock.

Ricordando le proprietà dei numeri binari è possibile usare il registri a scorrimento per dividere o moltiplicare per due (o per le potenze del due). Infatti traslando un numero binario a destra lo si divide per due (0100 diventa 0010, ovvero 4 diventa 2) mentre traslandolo a sinistra si ottiene un valore doppio (0011 diventa 0110, ovvero 3 diventa 6). I circuiti di figura 8 e 10 mostrano due possibili implementazioni per shiftare a destra o a sinistra numeri da quattro bit.

Un'altra applicazione è quella di figura 12 dove un registro PISO e SISO insieme viene usato per caricare una parola di quattro bit che poi viene ripetuta ciclicamente (l'uscita seriale è collegata all'ingresso seriale)2).

Torna all'indice.

1)
è ovvio per il primo, gli altri tre “copiano” il primo
2)
questa soluzione è usata nella scheda non solo teoria 1 per realizzare un dado elettronico