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.
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.
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.
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:
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.
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 abilita le uscite, che altrimenti sono nello stato di alta impedenza. E' presente anche l'ingresso asincrono 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.
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.