Reti combinatorie Flip flop Il circuito S-R e` bistabile

Reti combinatorie
Utili per implementare la ALU e la
connessione tra parti della CPU
Non sono in grado di memorizzare uno
stato, quindi di possono essere usate per
implementare la memoria
Per questo servono le reti sequenziali
Reti sequenziali
Appendice A + dispensa
L’output
dipende non solo dall’input corrente,
ma anche dalla storia passata degli input
1
Flip flop
Il circuito S-R e’ bistabile
Forma piu’ semplice di una rete sequenziale
Tanti tipi, ma due proprieta’:
Bistabili:
Possono trovarsi in uno di due stati diversi
Rimangono nello stato in cui sono in assenza di input
Memoria per un bit
Due
2
output
Uno e’ sempre il complemento dell’altro
Supponiamo S=R=0 e Q=0
Output Q negato = 1
Stabile finche’ S=R=0
Memoria di 1 bit (Q)
S e R servono per scrivere 1 o
0 in memoria
Nello stato S=R=0 e Q=0, se S
passa a 1, Q diventa 1 (dopo
un po’ di tempo) e rimane cosi’
finche’ non cambia l’input
Quando R passa a 1, Q
diventa 0 indipendentemente
da cosa era prima
3
Due stati stabili
4
Tabella caratteristica del flip flop S-R
•S (setting) imposta
lo stato 1
•R (reset) imposta
lo stato 0
•Q è l’output
•Q è il complemento di Q
5
Ingresso Stato
Prossimo
(SR)
attuale stato
(Qn)
(Qn+1)
00
00
01
01
10
10
11
11
0
1
0
1
0
1
0
1
0
1
0
0
1
1
_
_
Quando S=R=0, Q
rimane lo stesso
6
Tabella semplificata del flip flop S-R
Input S
0
0
1
1
Input R Prossimo
stato
(Qn+1)
0
1
0
1
Qn
0
1
__
Esempio
S=R=0: stato
stabile
R diventa 1: stato
diventa 0
S diventa 1: stato
diventa 1
S=R=1 non
permesso
t
0
1
2
3
4
5
6
7
8
9
S
1
0
0
0
0
0
0
0
1
0
R
0
0
0
1
0
0
1
0
0
0
Qn+1 1
1
1
0
0
0
0
0
1
1
7
8
Importanza della sincronia
Sincronia
In una descrizione astratta di una rete, il
tempo di stabilizzazione e’ nullo
In realta’ c’e’ un ritardo non nullo per la
stabilizzazione delle uscite, a partire da
quando gli ingressi sono stabili
Per dare gli ingressi contemporaneamente
(sincronia), ingresso di clock (circuito SR
temporizzato)
In un circuito non sincronizzato (asincrono) si
possono creare problemi di stabilizzazione del
segnale, o meglio fenomeni transitori, detti
alee di commutazione, che possono
determinare un comportamento non atteso
della rete sequenziale
In particolare, una alea di commutazione è
determinata dal ritardo di propagazione della
variazione dei segnali all’interno del circuito
9
10
Flip flop D
SR temporizzato
Se clock=0 S=R=0 (stato stabile)
S
Come evitare la situazione S=R=1?
Un solo input (D)
Quando clock =0, gli output dei due AND sono 0 (stato stabile)
Quando clock=1, gli input sono uno l’opposto dell’altro (S=1 o
R=1) Q=D
clock
R
11
12
Registro di tipo D
Registri paralleli
Insieme di memorie di 1 bit che possono
essere lette o scritte simultaneamente
Ogni bit puo’ essere implementato con un
flip flop
Ogni input puo’ essere l’output di un
multiplexer
E’ il circuito sincrono più semplice
che realizza un registro
Memorizzazione (store): dati
presentati in ingresso e clock da 0 a
1 (uscita riproduce ingresso)
Mantenimento (hold): clock da 1 a 0
(poi costante); l’uscita rimane
invariata indipendentemente dal
valore degli ingressi
13
14
Registro a scorrimento
Registri a scorrimento
Dati in ingresso solo al flip flop piu’ a
sinistra
Ad ogni inpulso di clock, i dati vengono
traslati di una posizione
C=0
scorrimento verso l’alto dei bit, e
valore “0” inserito sul bit meno
significativo
C=1
store degli ingressi
Permette la conversione
“parallelo/seriale”: si memorizzano i
dati in parallelo e si “trasmettono”
uno alla volta su Q3
15
Memoria principale (RAM)
16
RAM statiche
Insieme di celle identificate da un numero (indirizzo)
Ogni cella è in grado di codificare n bit (es. n=8 [byte],
n=16, …)
Ogni cella deve preservare nel tempo il suo contenuto
(memoria) a meno di operazioni di scrittura
Una cella deve poter essere letta fornendo l’indirizzo della
stessa (lettura)
La lettura di una cella non deve cancellare l’informazione
letta
Una cella deve poter essere scritta fornendo sia l’indirizzo
della stessa che l’informazione da memorizzare
(compatibile con il valore di n) (scrittura)
17
Implementate tramite registri di tipo D
Problema: realizzare un meccanismo per consentire
l’accesso in scrittura e lettura di una singola cella di
memoria alla volta (specificata dall’indirizzo in ingresso alla
memoria)
Gli indirizzi della memoria saranno specificati come numeri
interi progressivi rappresentati in base 2 (rappresentazione
binaria; es. ind da 0 a 7, richiede 3 bit: ind=5 è
rappresentato da 101, ind=6 è rappresentato da 110, ... )
Vediamo come realizzare separatamente i meccanismi per
implementare la lettura e quelli per implementare la
scrittura
18
Lettura
Scrittura
4 celle di 8 bit
realizzate tramite
registri sincroni di
tipo D
2 bit di indirizzo
(I0, I1)
strobe è il
segnale di clock
MPX è un
multiplexer
19
4 celle di 8 bit
realizzate tramite
registri sincroni di
tipo D
D è il dato da
memorizzare
all’indirizzo
specificato da I1I0
strobe è il segnale
di clock
DPX è un
demultiplexer
20