Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
Introduzione
I circuiti digitali possono essere così classificati• Circuiti combinatori
– Il valore delle uscite ad un determinato istante dipendeunicamente dal valore degli ingressi in quello stessoistante
• Circuti sequenziali– Il valore delle uscite in un determinato istante dipende
dal valore degli ingressi in quell’istante E dal valore degliingressi in istanti precedenti
Esempio: bistabile
Y1
Y2
0001 A
B
AB
X2
X1
X1=1X2=0
Y1
Y2X2
X1
1
0 1
0
1
0
0
0 1
X1=0X2=1
1
10
0
0
1
1
Tabella verità NOR
Se un ingresso vale 1allora l’uscita vale 0Se un ingresso vale 0 allora l’uscita vale l’altro ingresso negato
Bistabile
Y1
Y2
00
01A
B
X2
X1
X1=0X2=0
Y1
Y2X2
X1
0
0 1
0
10
0
0 1
X1=0X2=0
0
10
0
0
1
1
Y1
Y2X2
X1
X1=1X2=1
10
0
1 0
0
Equazioni bistabileQ stato attuale, Q’ prossimo stato
Q
QS
R
Q’ = SR + RQ
00 01 11 100 0 0 x 1
1 1 0 x 1
SRQ
0111
1011
0101
1001
0110
1010
0100
0000
Q S R Q’
NOTA Con R=S=0 il bistabile mantiene lo stato precedente (Q’=Q)Questa rete è in grado di memorizzare un bit
Bistabile: temporizzazione
Set
Reset
Q
Q Q
0
1
R
1
0
S
0
1
Q
1
0
Q-100 Q-1
Non usata11
Reset
Set
Q
Q
tempo
Bistabile: input ammissibili
• Con R=S=0 il bistabile mantiene (hold) lo stato acquisito• Con R o S diversi da 0 si cambia lo stato• La configurazione di ingresso R=S=1 non è ammessa, poiché
se da questa si passa a R=S=0 sono possibili dueconfigurazioni per l’uscita. La configurazione effettiva non ècioè prevedibile
S R Q’0 0 Q0 1 01 0 11 1 ?
R
S
Q
Q
HoldResetSet
SincronizzazioneAl tempo t0 sia A=0, =0 e Q=0Se i valori A e B cambiano
“contemporaneamente” al tempot1 allora, l’uscita Q rimane a 0
Tuttavia nella realtà i cambiamentidi A e B non sono contemporanei:ad esempio può succedere che Acambi prima di B (che cambia at2)
In questo modo si avrà unaconfigurazione temporanea A=B=1e Q commuta a Q=1
Quando B varia, Q continuerà ancoraa valere Q=1
R=0 Q=0
Q
FF
S=0
A=0
B=1
A
B
Q
t0 t1 t2
Segnale di sincronizzazione
Un clock ha le seguenti caratteristiche:– E’ un segnale binario– E’ un segnale periodico (durata T)– frequenza del clock f=1/T
Fronte di discesa
Fronte di salitaPeriodo T
1
0
In realtà le transizioni 0->1 e 1-> non sono istantanee
Bistabili Sincroni
Utilizzano un segnale di controllo CK, detto Clock• Livello, chiamati Latch trasparenti
– L’ingresso viene sentito, e l’uscita può variare, durante tutto ilperiodo in cui C=1 (oppure C=0)
• Fronte di salita, chiamati (positive edge triggered) Flip-Flop– L’uscita cambia in base al valore dell’ingresso in corrispondenza
della transizione di C da 0 ad 1• Fronte di discesa (negative edge triggered) Flip-Flop
– L’uscita cambia in base al valore dell’ingresso in corrispondenzadella transizione di C da 1 ad 0
• Master-Slave Flip-Flop– Segnale d’ingresso campionato su un fronte, uscita cambia
sull’altroNota: Spesso letteratura si usa il termine Flip-Flop per indicare
in modo generico un bistabile (quindi anche i latch)
Esempio, Latch RS
R
S
Q
Q
CK
R Q
QS
CK
?111
1011
0101
Q001
Q110
Q010
Q100
Q000
CK S R Q’
Quando CK=1 allora si ha il consenso alla transizione
Perché abilitare sui fronti?
Sia d il tempo in cui CK=1 e t il ritardo di propagazione del FF• assumiamo che d>t
Esiste un problema nel collegamento in cascata di bistabili.Durante CK=1 l’uscita di FF1 modifica l’uscita di FF2 poichéd>t. In alcuni casi questo non è il comportamento voluto(registri a scorrimento)
FF1 FF2
CK
R=0
S=1
CK
Q1
Q2
Q1 Q2
t
d
Ritardo di propagazione
Durata clock alto
Abilitazione sul fronte di discesa
Usando FF con abilitazione sul fronte di discesa si ottiene ilcomportamento desiderato. Ad ogni ciclo di clock cambia lostato di un solo flip-flop
CK
R=0
S=1
CK
Q1
Q2
Q1 Q2
Latch D
• Un solo ingresso più uno di abilitazione• Usato come unità elementare di memorizzazione
– Presenta in uscita ciò che era presente in ingresso quandoil era presente il segnale per l’abilitazione (CK=1)
R Q
S
CK
Q
D
CK
D Q
D
CK
Q
Master-Slave
Nel caso di master-slave si ha in corrispondenza del fronte didiscesa.
S
CK
Q
Q
S
R
CK
Q
QR
S
CK
Master Slave
R
Q
Q
S
CK
R
Registri
Un registro è un elemento di memoria– in grado di memorizzare un insieme di n bit– composto da un insieme di bistabili– l’informazione memorizzata in un registro prende il nome
di parolaScrittura
Scrittura Lettura
Lettura
Registri
Modalità di scrittura/lettura dei dati– Parallelo– Seriale
Operazioni sui dati:– Scorrimento a destra– Scorrimento a sinistra– Scorrimento circolare
Registri
FFn
C
IN1
Un registro è composto da più flip-flop D che utilizzano gli stessi segnali di controllo
IN2
IN3
INn
OUT1
OUT2
OUT3
OUTn
FF1
FF2
FF3
REG
IN(n:1) OUT(n:1)
C
C
IN(4:1) 0xC 0xD 0xE 0xF
OUT(4:1) 0xC 0xD 0xE 0xF
Reti sequenziali
Il valore in uscita è funzione della sequenza di valoriforniti in input fino a quel momento
• Hanno una memoria• Varie classi di reti, vedremo la più semplice Level
Level Clocked (LLC)• La sequenza è definita mediante un segnale di clock• Gli ingressi e le uscite sono “a livelli”:
• il livello del segnale d’ingresso determina il livello del segnaled’uscita
• L’ingresso cambia solo dopo che l’uscita è stabile• Altre reti (es. ad impulsi…)
Addizionatore (macchina sequenziale)
Al clock i-esimo arriva in ingresso una coppia di bit del numeroda sommare; l’uscita è pari al bit i-esimo della somma
Macchine LLC
RETECOMBINATORIA
w,d
FF1
FF2
FFk
z1
z2
zm
y1
y2
yk
y’1
y’2
y’k
Ingressi Uscite
Stato Presente Stato Futuro
Registri di stato
Clock f
La rete combinatoriarealizza le funzioni d ew (tabelle di verità)
Rete sincrona LLC (LevelLevel Clocked)
La macchina cambia stato adogni fronte attivo del clock(ogni “colpo di clock”)
Le uscite dipendono dai livellidei valori d’ingresso (nondalle variazioni)
Prima di cambiare nuovamentele uscite diventano stabili
x1
x2
xn
Macchina a stati finiti (FSM)
• FSM = <I,O,S, d,w>– I alfabeto finito di ingresso (per comodità |I|=2n)– S insieme degli stati, |S|= 2k
– O alfabeto di uscita, |O|= 2m
– d : S x I Æ S, funzione stato successivo– w : S Æ O (Moore) oppure w : S x I Æ O (Mealy)
funzione di uscita
• Se serve specificare uno stato iniziale s Œ S,FSM= <I,O,S, d,w,s >
• Una FSM può essere realizzata come rete LLC
Diagramma degli stati
Il diagramma degli stati è un grafo orientatoetichettato G(V,A,L)
• i nodi rappresentano gli stati della macchina• gli archi le transizioni di stato• le etichette le condizioni di transizione
Macchina di Mealy: l’uscita dipende dallostato e dall’ingresso
Macchina di Moore: l’uscita dipende solo dallostato
Flip/Flop S-R
• Ingresso: Set – Reset (S-R) – solo uno deidue ingressi può essere pari ad uno.
• Stati: 0, 1
uscita= stato del flip flop: macchina di Moore
0 1
10
01
00,10
00,01
Riconoscitore di sequenza
Macchina che riconosce la sequenza ciao• Input: {a,b,c,...,z}
Per semplicità assumiamo che il simbolo dinegazione su una lettera individui unaqualunque lettera tranne la lettera stessa(ad es. a indica b,c,...,z); analogamente perpiù lettere
• Uscita: Si, No
Diagramma degli stati (Moore)
1: aspetto c2: aspetto i3: aspetto a , 4: aspetto o; 5: parola completa
1/no 2/no 3/no 4/no 5/sic i a o
cc
c,i c c,a
c
c,o
c
c
Diagramma degli stati (Mealy)
1: attesa c2: attesa i3: attesa a4: attesa o
1 2 3
4
c/no i/no
a/noo/si
cno c/no
c,i/no c/noc,a/no
c/no
FSM Esempio evoluzione (Moore)
INPUT
OUTPUT
SP
SF
Registri di statoClock f
INPUT
s1/o1s2/o2
I1
SP
OUTPUT
O1
S1 S2
O2
TpFFTd
n d : S x I Æ S
nw : S Æ O
Tw
I1d
w
SF S2
s3/o3
I2
I2
S3
O3
S1 S3
f
Dalla macchina sequenziale alla rete• Per realizzare una macchina sequenziale è
necessario– Codificare gli insiemi I,S,O con variabili di commutazione– Realizzare le funzioni d ed w con reti combinatorie
• Comportamento temporale delle variabili diingresso/uscita– Ogni circuito digitale risponde ai nuovi valori di ingresso
producendo la nuova uscita in modo stabile solo un tempodi ritardo d durante il quale sono esauriti tutti itransitori
• Considereremo solo la realizzazione di reti di tipoLLC (Level Level Clocked)
Dalla macchina alla rete
• x1,x2,..,xn variabili di ingresso a livelli– 2n ≥ |I|
• z1,x2,..,zm variabili di uscita a livelli– 2m ≥ |O|
• y1,y2,..,yk variabili di stato– 2k ≥ |S|
• Variabile impulsiva, ck, che ha lo scopo di farcommutare lo stato
Reti LLC
La rete sequenziale lavora con le seguenti ipotesi:• Variabili d’ingresso di tipo a livello (i valori in ingresso
rimangono fissi per un periodo T sufficientemente lungo perfar assumere all’uscita il nuovo valore di regime, ossia T>d)
• Variabili di uscita a livello• Segnale di abilitazione “positive or negative edge trigger”, o
a livello (in quest’ultimo caso la variabile di commutazionedeve essere pari ad 1 per un periodo di tempo sufficiente perfar commutare i flip-flop, ma inferiore al minimo tempo dicommutazione dei circuiti combinatori che calcolano lo statosuccessivo, altrimenti si potrebbero avere più commutazioni)
Rete LLC per macchine di Mealy(flip-flop di tipo D)
RETECOMBINATORIA
w,d
FF1
FF2
FFk
x1
x2
xn
z1
z2
zm
y1
y2
yk
y’1
y’2
y’k
Ingressi Uscite
Stato Presente S Stato Successivo S’
Registro di stato
Clock
Esempio: contatore UP-DOWN modulo 4
0 1
23
U
U
U
U D
D
D
D
I={U,D}O={0,1,2,3}S={0,1,2,3}
320213102031
U D uscitaingresso
stato
0123NOTA: uscita = stato
Codifica simboli
I x
U 0D 1
S y2 y1
0 0 01 0 12 1 03 1 1
O z2 z1
0 0 01 0 12 1 03 1 1
11100010011101001000110100
011011
y2 y1 0 1 z2 z1
x
320213102031
U D uscitaingresso
stato
0123
Sintesi funzioni d e w
• In questo semplice esempio, l’uscita è uguale allo stato– w(y2y1)=z2z1
100001110010110100
011011
y2 y1 0 1x
0110011000
011110
y2 y1 0 1x
1100001100
011110
y2 y1 0 1x
y’1 y’2
y’1= y1
Mappe di Karnaugh
y’2=y2 y1 x+y2y1x +y2y1x + y2y1x
Realizzazione mediante retecombinatoria
RETECOMBINATORIA
w
FF1
FF2
z1
z2
y1
y2
y’1
y’2
Ingresso Uscita
Clock
x