Strumenti Utente

Strumenti Sito


sezione_5c

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 integrati che realizzati all'interno di componenti più complessi - in tantissime applicazioni, dai decoder ai contatori - per mantenere temporaneamente i dati - ai microprocessori - per conservare operandi e risultati di operazioni.

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

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 `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:

  • 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).

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
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information
sezione_5c.txt · Ultima modifica: 2020/07/03 17:58 (modifica esterna)