Amare è così breve, e dimenticare così lungo
ELETTRONICA DIGITALE
… studiare, studiare ed ancora studiare,
è il solo modo di capire quanto possa
essere grande sia la propria ignoranza!
REGISTRI
I registri sono circuiti sequenziali che svolgono varie funzioni quali:
•
locazioni temporanee di memoria;
•
convertitori di dati da parallelo a seriale e viceversa;
•
linee di ritardo dei segnali digitali;
•
locazioni per lo scambio seriale dei dati nei sistemi digitali
quando le distanze sono di qualche decina di centimetri; inoltre
nello scambio di dati con le periferiche i registri sono utili per
ridurre il numero di collegamenti;
•
generatori di forme d’onda periodiche; i registri abbastanza
lunghi, con il collegamento di feedback, possono generare codici
pseudo-noise (o random noise); vengono definiti Linear Feedback Shift Registers, ovvero
generatori di una sequenza di bit pseudo casuali.
In tutti i sistemi digitali i registri si trovano embedded in molti componenti ma sono
disponibili in commercio anche in logica sparsa.
I registri interni al microprocessore si possono ritenere il livello di memoria più veloce in
quanto, utilizzati come block notes per annotare gli indirizzi delle celle di memoria, gli
operandi delle operazioni aritmetiche e logiche; sono accessibili con tempi inferiori alle altre
memorie.
Costruttivamente i registri sono formati da un gruppo di latch o flip-flop, necessariamente
tutti dello stesso tipo e con le stesse caratteristiche, che svolgono la stessa operazione e
con un segnale di clock comune a tutti.
Classificazione e caratteristiche
Il registro può essere definito come una memoria:
•
di piccole dimensioni, perché è in grado di memorizzare un numero limitato di bit;
•
di natura temporanea, in quanto viene utilizzato per contenere un dato in fase di
elaborazione;
•
volatile, perché, venendo a mancare la tensione di alimentazione, il dato memorizzato
viene irrimediabilmente perso.
Il dato immagazzinato da un registro è costituito da n bit, tanti quanti sono i latch o flip-flop
di cui è costituito.
Per costruire un registro si deve utilizzare il latch o il flip-flop di tipo D, che è particolarmente
idoneo all’operazione di memorizzazione di un bit; ciò non toglie che si possano ugualmente
impiegare altri latch o flip-flop, quali gli SR e i JK.
Da un punto di vista dell’organizzazione circui-
-ale possiamo distinguere i registri a scorri-
-mento dai registri di memoria (mostrato nella
figura a destra.
I registri a scorrimento, differentemente da
quelli di memoria, sono organizzati in maniera
tale che, a ogni impulso di clock il contenuto di
ogni flipflop, shifta (scorre), secondo la
direzione, programmabile o imposta dal costrut-
-tore, nel flip-flop successivo.
I registri a scorrimento realizzati con tecnologia
MOS possono essere statici e dinamici.
Si dicono statici quando ogni singola cella di
memoria che immagazzina un bit è un latch o
un flip-flop, mentre si dicono dinamici se la cella è
un condensatore
Classificazione dei registri secondo
l’organizzazione circuitale.
Registri a scorrimento (shift register)
Gli shift register sono così chiamati perché il dato
memorizzato scorre da un flip-flop all’altro.
Possono essere implementati con qualsiasi
tipo di flip-flop (SR, JK e D) e con qualsiasi
tipo di temporizzazione.
Sono caratterizzati da un collegamento in
cascata: infatti l’uscita di ogni flip-flop rap-
-presenta l’ingresso per il flip-flop successivo.
La struttura è riportata nella figura (a) a lato.
Si ipotizzi di aver resettato inizialmente tutti
i flip-flop, operazione indispensabile trattandosi
di un circuito in logica temporizzata e di voler
inserire nel registro il dato (01) tramite l’ingresso
DATA IN.
Sul fronte di salita del primo impulso di clock,
il flip-flop A trasmetterà in uscita il bit presente
in ingresso (1); contemporaneamente il flip-flop
B sarà sempre nello stato 0, poiché il bit presente
sul suo ingresso è 0 (figura b).
In corrispondenza del secondo colpo di clock, il
flip-flop A acquisisce il secondo bit (0) mentre il
flip-flop B memorizza il bit 1 (figura c).
Il funzionamento del registro è illustrato dal
diagramma dei tempi di figura (d).
Inserimento del dato 01 nel registro a scorrimento:
(a) situazione di partenza,
(b) situazione dopo il primo impulso di clock,
(c) situazione dopo il secondo impulso di clock,
(d) diagramma temporale
L’inserimento del dato nel registro può essere
seriale o parallelo.
Si dice che l’inserimento è seriale quando
i bit del dato vengono inviati uno alla volta
nell’ingresso del primo flip-flop della catena.
L’inserimento è di tipo parallelo quando i bit del
dato vengono inseriti tutti simultaneamente
nei flip-flop.
Analogamente alla scrittura anche la lettura può
essere seriale e parallela.
La lettura è seriale quando i bit escono dall’ultimo
flip-flop uno alla volta, in sincronismo con il
segnale di clock.
L’uscita è parallela quando i bit vengono letti sulle uscite dei flip-flop simultaneamente.
In base al tipo di inserimento e di lettura del dato, i registri si distinguono in:
• SISO (Serial In/Serial Out);
• SIPO (Serial In/Parallel Out);
• PISO (Parallel Out/Serial In);
• PIPO (Parallel In/Parallel Out);
• bidirezionali universali;
• ad anello.
Gli shift registers sono prodotti in gran parte come circuiti integrati MSI.
Registro a scorrimento SISO
Il registro a scorrimento più semplice circuitalmente è il SISO. Il dato viene inserito
un bit alla volta nell’ingresso seriale del primo flip-flop della catena e letto sempre un
bit alla volta all’uscita seriale (come mostrato nella sottostante figura).
Lo scorrimento del bit avviene in sincronismo con l’impulso di clock.
Se il registro è utilizzato come linea di ritardo, il dato giunge in uscita con un tempo di
ritardo che dipende dal numero di stadi e dalla frequenza del clock.
Struttura circuitale del registro SISO.
Un esempio di registro a scorrimento SISO integrato è il 7491A.
Esso è costituito da 8 flip-flop SR master-slave che commutano sul fronte di discesa del
clock, ma l’effettiva commutazione avviene sul fronte positivo, perché internamente il
costruttore ha inserito una porta NOT sugli ingressi di clock per ridurre il fan-out
dell’integrato.
Il primo flipflop SR si resetta in corrispondenza di un segnale di clock se l’ingresso R è a
livello 1; ciò si ottiene ponendo un livello 0 su A o su B o su entrambi.
Gli altri flip-flop si resettano inviando altri sette impulsi di clock, non disponendo
l’integrato di una linea comune di clear.
Registro a scorrimento SIPO
Nel registro SIPO i dati vengono inseriti serialmente all’ingresso della prima cella di
memoria e letti tutti simultaneamente sulle uscite (vedi sottostante figura).
Il SIPO è un convertitore di dati da seriale a parallelo.
Può essere utilizzato anche come SISO.
Un esempio di shift register SIPO integrato è il 74ACT164.
Struttura circuitale di un registro SIPO.
Registro a scorrimento PISO
Lo shift register PISO è un convertitore di dati da parallelo a seriale. Una possibile
struttura è proposta nella sottostante figura.
Struttura circuitale di un registro PISO
Con un livello 0 sulla linea SH / LD il dato entra nel registro in sincronismo con il
clock.
Il dato può essere shiftato quando il livello di SH / LD è 1.
Un esempio di registro PISO integrato è il 74LS165.
Il registro è formato da 8 flip-flop D con ingressi asincroni S (set) e R (reset).
L’ingresso D del primo flip-flop funge da ingresso seriale del registro.
I pin S e R invece fungono da ingressi paralleli.
Registro a scorrimento PIPO
Lo shift register PIPO è strutturato per il caricamento e la lettura della parola sia in modo
parallelo sia in modo seriale.
La complessità del circuito è tale da esigere un maggior numero di pin e pertanto il numero
di flip-flop in esso contenuto è limitato di solito a quattro o cinque al massimo.
I dati vengono inseriti parallelamente negli ingressi asincroni.
Nella sottostante figura è riportato un possibile schema circuitale.
Se la linea Load viene posta a massa, le due porte NAND sono disabilitate infatti le loro
uscite sono a 1.
Con un 1 logico su Load invece i dati sono abilitati a entrare nel registro, indipendentemente
dal segnale di clock.
Un tipico registro PIPO integrato è il 74HC194.
Questo registro a 4 bit è dotato di un Master Reset asincrono (MR) che provvede ad azzerare
tutti i flip-flop.
Schema circuitale di un registro PIPO.
Registro universale bidirezionale
Tutti gli shift register fanno scorrere i dati solo in un verso.
Esistono in commercio alcuni registri definiti universali bidirezionali nei quali il dato può
scorrere da sinistra verso destra e da destra verso sinistra, con possibilità di introdurre e
leggere i dati in modo parallelo e in modo seriale.
Si tratta in definitiva di un registro che racchiude in sé le caratteristiche di tutti i registri
a scorrimento e in più la possibilità dello scorrimento in entrambe le direzioni.
Un integrato che contiene un registro universale bidirezionale è il 74HC194
Registro ad anello
Il registro ad anello (o a ricircolazione) è un registro a
scorrimento in cui l’uscita è connessa in retroazione all’ingresso per ottenere la
ricircolazione dei dati .
Nello schema sottostante semplificato è stato utilizzato un registro SISO che consente il
caricamento seriale dei dati.
La ricircolazione è possibile per il collegamento tra l’uscita dell’ultimo flip-flop e l’ingresso
del primo.
Su ogni uscita si ha la stessa forma d’onda: un impulso sfasato di un colpo di clock per
ogni flip-flop successivo.
Il registro ha operato una divisione di frequenza con un rapporto di 4 a 1.
Il registro ad anello viene utilizzato per la generazione di codici continui e ciclici, ad
esempio per l’attivazione di circuiti in sequenza.
Non è idoneo come contatore, anche se ne porta il nome, perché è scarsamente efficiente.
Infatti per contare n numeri sono necessari n+1 flip-flop mentre un contatore classico è
realizzato con un numero decisamente inferiore.
Ad esempio nel caso di 4 flip-flop un contatore conterebbe 15 numeri mentre il ring counter
ne conta 3.
Registri di memoria
I registri di memoria, a differenza di quelli a scorrimento non consentono di shiftare il
dato memorizzato.
Sono costituiti da latch o da flip-flop collegati tra loro soltanto per il comando di clock e di
clear, evidenziati nel sottostante schema circuitale.
Struttura semplificata di un contatore ad anello.
Organizzazione circuitale di un registro di memoria.
I flip-flop D vengono settati o resettati individualmente in corrispondenza del fronte
positivo del clock.
I bit devono essere presenti sugli ingressi prima dell’arrivo del fronte di salita del clock.
Successivamente i dati sono disponibili sulle rispettive uscite.
Sono disponibili in commercio vari tipologie di registri di memoria aventi funzioni
aggiuntive:
• registri con readback;
• registri indirizzabili;
• registri con uscite tri-state.
Esistono in commercio alcuni componenti che hanno embedded i registri per la
memorizzazione del dato:
• multiplexer con memorizzazione;
• transceiver/multiplexer.
Registri con uscite tri-state
Sono registri che hanno buffer tri-state sulle uscite per essere interfacciati direttamente
con i bus.
Possono essere realizzati sia con i latch sia con i flip-flop entrambi di tipo D.
I buffer di uscita sono non invertenti e vengono attivati con un livello alto.
Le celle di memoria hanno in comune l’abilitazione dei buffer per abilitare le uscite e,
come in tutti i registri di memoria, hanno in comune la linea dell’ingresso di clock.
Gli integrati 74S373 e 74LS373 contengono 8 latch di tipo D.