Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate
Architettura degli elaboratori
Bistabili e Clock
Marco Tarini
Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it
Memoria:
la traccia lasciata dal passato
Una rete combinatoria è sempre priva di memoria:
la sua uscita dipende solo
dai valori applicati ai suoi ingressi in quel momento out t= F( int ) [comportamento ideale]
(anzi, per la precisione, poco prima)
outt= F( in t-Dt) [comportamento reale, con ritardo]
Il circuito «non sa nulla» di cosa sia successo prima di allora Invece, per eseguire certe elaborazioni, anche molto semplici, occorrerebbe conservare memoria di eventi passati
uscita del circuito
al tempo t
funzione booleana
calcolata
ingressi del circuito a tempo t - Δt
tempo di commutazione
del circuito
comportamento reale, con ritardo comportamento ideale
Vorremmo insomma un circuito che «si ricordi» cosa gli è successo prima la sua uscita deve dipendere anche dalla storia dei suoi ingressi e non solo da quelli attuali!
I circuiti sequenziali
possono avere questo comportamento vediamo come e perché
Il primo che vediamo
è chiamato bistabile SR, o SR latch usa due porte logiche
di tipo NOR (OR con uscita negata) in modo retroazionato
si tratta di un semplice
blocco funzionale (sequenziale)
Può un circuito «memorizzare» qualcosa?
Il clock e i bistabili
Architettura degli elaboratori - 3 -
def: quelli che hanno anche collegamenti retroazionati
(a differenza dei circuiti combinatori) Si chiamiano sequenziali proprio perché il loro output
può dipendere anche dalla sequenza degli input.
Il primo che vediamo è
chiamato bistabile SR, o SR latch si tratta di un semplice
blocco funzionale (sequenziale) due entrate
(chiamiamole R e S) due uscite
(chiamiamole Q e \Q) usa due porte logiche di tipo NOR
(OR con uscita negata) in modo retroazionato
Può un circuito «memorizzare» qualcosa?
a b a NOR b
0 0 1
0 1 0
1 0 0
1 1 0
NOR
Bistabile SR (SR latch)
Il clock e i bistabili
Architettura degli elaboratori - 5 -
retroazione
retroazione
S
R
Q
Q
Come si comporta questo circuito?
Proviamo ad adottare la tecnica della simulazione…
Come si comporta il bistabile SR:
con input mantenuto a S = 0, R = 0
soluzione 1
(in cui Q = 0 e \Q = 1)
soluzione 2
(in cui Q = 1 e \Q = 0)
In entrambe le soluzioni, ogni porta produce l’output corretto dato il suo input.
S
R
Q
Q 0
0
1 0
0 1
S
R
Q
Q 0
0
0 1
1 0
Stati di memorizzazione del bistabile
Quando i due input (S e R) sono a 0,
il Latch ammette quindi due stati stabili (per questo è detto «bistabile») in un dato momento, si troverà in uno dei due stati
Possiamo dire che lo stato attuale «memorizza» un bit
quando Q = 1 (e \Q = 0), il bistabile «sta memorizzando 1»
quando Q = 0 (e \Q = 1), il bistabile «sta memorizzando 0»
Nota:
a parità di ingressi (cioè S = R = 0) l’uscita Q ammette due possibili valori.
E’ un comportamento ben diverso da qualsiasi rete combinatoria!
Non è possibile descrivere il comportamento un circuito così con una tabella di verità
(cosa dovremmo mettere a riga S,R =0 0 ?)
Il clock e i bistabili
Architettura degli elaboratori - 7 -
S,R Q
0,0 ???
Se in input passo R = 0, S = 1 Transizione da 0 a 1
S
R
Q
Q 1
0 10
0 1 0 t 0
t 1
t 2 0 t 3
transizione da 1 a 0
Il clock e i bistabili
Architettura degli elaboratori - 9 -
S
R
Q
Q 0
0 0
1
01 1
t 0 t 1
t 2
0 t 3
In totale:
Come si comporta il latch SR (bistabile SR)
Se non mando segnali, cioè «a riposo» (S = 0 , R = 0) il latch può stare memorizzando 1 (Q = 1, /Q = 0) oppure anche 0 (Q = 0, /Q = 1)
Se mando un segnale sul canale S (Set) (S = 1 , R = 0) il latch passa a memorizzare lo stato 1 (Q = 1, /Q = 0) indipendentemente dallo stato precedente!
quando poi il segnale su S cessa (si torna a S = 0 , R = 0) il latch continua a memorizzare lo stato 1
Se mando un segnale sul canale R (Reset) (S = 0 , R = 1) il latch passa a memorizzare lo stato 0 (Q = 0, /Q = 1) indipendentemente dallo stato precedente!
quando il segnale su R cessa, (si torna a S = 0 , R = 0) il latch continua a memorizzare lo stato 0
Se mando un segnale su entrambi i canali (S = 1 , R = 1)
e rimane com’era
Digressione:
Cosa succede in un bistabile SR se S = R = 1
Fino a che S = R = 1, entrambe le uscite valgono 0
Q = 1 , \Q = 0 (nessuna semantica è associata a questo stato) Ma se tento di tornare a riposo (S = R = 0),
l’evoluzione successiva è imprevedibile:
se R va a 0 prima (anche poco) di S, rimango nello stato Q = 1 , \Q = 0 se S torna a 0 prima (anche poco) di R, rimango nello stato Q = 0 , \Q = 1 è sostanzialmente impossibile fare commutare S e R simultaneamente In pratica, non è mai utile mettere entrambi gli input S-R di un latch ad 1
Il clock e i bistabili
Architettura degli elaboratori - 11 -
Come descrivere formalmente il
comportamento di un circuito sequenziale?
La tabella di veritànon è un modo adeguato
per rappresentare il comportamento di un circuito sequenziale es: tentativo di tabella di verità per il bistabile SR:
Modi adeguati per descrivere il comportamento di un circuito sequenziale:
macchina a stati finiti
mostra come il circuito si comporta (o deve comportare) in astratto diagramma temporale
mostra come il circuito si è comportato in uno specifico caso
S R Q
0 0 0 oppure 1
0 1 0
1 0 1
1 1 0
Quale delle due?
Dipende dallo stato attuale, che dipende dagli input precedenti dueconfigurazioni stabili!
una sola configurazione stabile
Inoltre, un circuito sequenziale potrebbe anche non presentare alcuna configurazione stabile
che descrive il comortameno del SR-latch
Il clock e i bistabili
Architettura degli elaboratori - 13 -
stato
1
Q = 1
\Q = 0
stato
0
Q = 0
\Q = 1
S=0,R=0 S=0,R=1 S=0,R=0 S=1,R=0
S=0,R=1 S=1,R=0
la FSM
che rappresenta il comportamento del bistabilie SR
input in verde output in blu
Macchina a Stati Finiti
Finite State Machine (FSM) o
Finite State Automata (FSA)
Un modo per descrivere formalmente il comportamento di un agente (o un agente, o un automa…)
dotato di memoria
che interagisce con il mondo esterno input e output:
interazioni col mondo esterno lo stato interno:
cosa “si ricorda” il dispositivo;
= la sua memoria.
= La traccia che le interazioni passate hanno lasciato nel dispositivo.
Quello desiderato,
quando parliamo di sintesi.
Quello effettivo,
quando parliamo di analisi.
Macchina a Stati Finiti: note
E’ un grafo: nodi (i pallini!) collegati da archi (le freccette!)
Ogni nodo rappresenta uno stato (qui: «configurazione stabile che il circuito può assumere») Ogni arco rappresenta una potenziale transizione fra stati
è associato ad (cioè etichettato con) un input (qui: del circuito) Arco da A a B etichettato con X significa:
«se il circuito è nello stato A e riceve l’input X, allora passa allo stato B»
Nota: un arco può connettere un nodo a se stesso (è un «cappio») Scorciatoia grafica: associare diverse etichette ad un solo arco (rappresenta tanti archi, uno con ciascuna etichetta)
Nota: ogni nodo dovrebbe avere un arco uscente per ogni possibile input (o almeno per ogni input «legale», es: S=R=1 non è considerato legale) Output del circuito:
modo 1: associarlo ad ogni arco (modo più generale)
modo 2: associarlo ad ogni nodo (se l’output dipende solo dallo stato)
Il clock e i bistabili
Architettura degli elaboratori - 15 -
Macchina a Stati Finiti:
un esempio
Domanda:
In che stato arriva il dispositivo se parte dallo stato 1, e riceve in input:
AABABC?
𝐴, 𝐶 𝐵
𝐵, 𝐶 𝐴
𝐵 𝐴, 𝐶
1
3
2
(di un segnale)
Durante l’uso del circuito, il valore logico (0 o 1) di ciascun segnale è una funzione del tempoX = F( t )
Posso disegnare questa funzione con un plot:
in ascissa: il tempo t
diviso in intervalli discreti
in ordinata: il valore logico del segnale
su ciascun intervallo di tempo, varrà costante 0 o costante 1
Il clock e i bistabili
Architettura degli elaboratori - 17 -
t X
t
1t
2t
30 1
di input, di output o anche interno del circuito
al tempo t3, X passa da 0 a 1 («fronte», in ascesa) dal tempo t1 al tempo t2,
il segnale X vale 1
Il diagramma temporale (di un circuito)
Il diagramma temporaledi un circuito è costituito da tanti plot disegnati in parallelo
(uno per ciascun segnale di input, output, e, se necessario, interno)
t
0 1
X
0 1
Y
0 1
Z
Un diagramma temporale che illustra il bistabile SR in uso
Qui, il Latch, riceve in input prima S=1, poi R=1
Il clock e i bistabili
Architettura degli elaboratori - 19 -
effetto
Al tempo T1 si ha: S = R = 0 e Q = 1 Al tempo T2 si ha: S = R = 0 e Q = 0
Tempo S
R Q
1
1 0 1 0
0
T1 T2
osservazione al tempo T1
osservazione al tempo T2
causa
rapporto causa-effetto
La freccia blu indica un rapporto tra i
fronti di tipo causa-effetto E’ raffigurato il comportamento
ideale (senza ritardi)
Altro esempio di diagramma temporale
Tempo S
R Q
1
1 0
1
0
0 0
T1 T2
osservazione
al tempo T1 osservazione al tempo T2
T3 osservazione
al tempo T3 1
1
0
Domanda: valori di Q, S e R ai tempi T1, T2, T3?
causa-effetto
causa-effetto Qui, il Latch, riceve in input un impulso S=1, poi uno R=1, poi ancora uno S=1,