−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:
- quando WE è alto si abilitano contemporaneamente le quattro NAND
- i quattro bit da I3 a I0, se valgono 1, attivano gli ingressi PR (preset) dei FF memorizzando il valore 1
- i bit di ingresso con valore 0 non attivano PR e il valore memorizzato da FF corrispondente vale 0 perché precedentemente azzerato
- dopo quattro fronti del clock il dato viene trasmesso in modo seriale all'uscita
- mentre il dato scorre verso l'uscita i FF vengono azzerati perché il primo, collegato da flip-flop D, ha l'ingresso a massa
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
- non solo teoria 1: dado elettronico (registro SISO con cinque bit a 0 e un bit a 1 con l'uscita collegata all'ingresso; interrompendo il clock il bit a 1 si trova in una posizione casuale tra le 6)
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 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:
- l'uscita seriale permette il collegamento in cascata di più integrati
- le sigle che identificano ingressi e uscite possono essere diverse nei datasheet
- le correnti in uscita sono sufficienti per pilotare dei LED (20mA per uscita, 70mA in totale)
- l'impiego principale per questo tipo di registro è la conversione seriale-parallela
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
- tutorial per Arduino che spiega come pilotare 8 LED con solo tre pin sfruttando il registro 74HC595
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).
Navigazione
Torna all'indice.