Upload
durante-crippa
View
224
Download
2
Embed Size (px)
Citation preview
ARCHITETTURA DEI SISTEMI ELETTRONICI
LEZIONE N° 9• Implicanti• Inclusione• Implicanti principali• Mappe di Karnaugh• Fenomeni transitori• Somma e differenza di due numeri in C2• Half Adder, Full Adder• Sommatori e Sottrattori di due word di n
bit• Livelli di logica 9.1A.S.E.
Richiami
• Enumerazione di funzioni• Reti logiche• Reti logiche combinatorie• Reti logiche sequenziali• Simboli• Concetto di ciclo• Realizzazioni diverse della stessa
funzione• Teorema di Shannon
9.2A.S.E.
Implicanti
• Date due funzioni f1 e f2 di n variabili
• f1 implica f2 se non c’è un assegnazione di valori alle n variabili tale che risulti f1 =1 e f2 =0
• Per funzioni booleane completamente definite
• Se f1 vale 1 anche f2 vale 1 – (Il fatto che f1 vale 1 implica che anche f2 vale 1)
• Ovvero Se f2 vale 0 anche f1 vale 0 9.3A.S.E.
Esempio 1
• Per zxyzxyzyxf
yzxyzyxf
,,,,
2
1
x y z f1 f20 0 0 0 00 0 1 0 10 1 0 0 00 1 1 1 11 0 0 0 01 0 1 0 01 1 0 1 11 1 1 1 1
9.4A.S.E.
Esempio 2
• Per ))((,,
))()((,,4
3zyyxzyxf
zxzyyxzyxf
x y z f3 f40 0 0 0 00 0 1 0 00 1 0 1 10 1 1 1 11 0 0 0 01 0 1 1 11 1 0 0 11 1 1 1 1
9.5A.S.E.
Osservazione
• Per una f funzione nella forma SP– Ogni termine di prodotto è
implicante di f
• Per una f funzione nella forma PS– La funzione f è implicante di ciascun
temine di somma
)( 21 nxxx
)( 21 nxxx
9.6A.S.E.
Inclusione
• Dati due termini di prodotto p1 e p2– p1 include p2 se e solo se tutti i letterali di p2 sono
presenti in p1
• Dati due termini di somma s1 e s2– s1 include s2 se e solo se tutti i letterali di s2 sono
presenti in s1
• Se p1 include p2 allora p1 implica p2• Se s1 include s2 allora s2 implica s1
9.7A.S.E.
Esempio
• Il termine di prodotto• Include il termine di prodotto• Quindi implica
• Il temine di somma• Include il termine di somma• Quindi implica
yxp 2
zyxp 1
1p 2p
zyxs 1
zxs 2
2s 1s
9.8A.S.E.
Implicanti principali
• Osservazioni– Tutti i termini di prodotto di una funzione
booleana, nella forma SP, sono implicati della funzione
– Tutti i mintermini di una funzione sono implicanti
• Un termine di prodotto che è implicante di una funzione è detto Implicante Principale se non include nessun altro implicate della funzione con un numero minore di letterali 9.9A.S.E.
Esempio
• Per la funzione definita dalla tabella di verità • Sono implicanti di
• I termini non sono implicanti principali
• I terminisono implicanti principali( include , include
x y z f0 0 0 10 0 1 10 1 0 10 1 1 11 0 0 01 0 1 11 1 0 01 1 1 0
zyxzyx e
zyx e
zyzyxxzyx ,,,
f
zyzyxxzyx
9.10A.S.E.
Sintesi ottima
• È necessario definire una funzione COSTO da minimizzare
• Definiti letterali le variabili dirette o complementate presenti in una funzione
• Date due forme diverse della stessa funzione • La forma “A ” ha un costo minore della
funzione “B ” se A contiene meno letterali.• Minimizzare una funzione vuol dire trovare la
forma con meno letterali• Si possono definire altre funzioni COSTO in
funzione della tecnologia realizzativa
9.11A.S.E.
Mappe di Karnaugh 1
• Tecnica tabulare di descrizione delle reti combinatorie
• Struttura a matrice• Esempi
• 2 variabili 3 variabili
• si riportano solo gli “0” o solo gli “1”
0 1
0 f(0,0)
f(0,1)
1 f(1,0)
f(1,1)
ba 00 01 11 10
0 f(0,0,0)
f(0,0,1)
f(0,1,1)
f(0,1,0)
1 f(1,0,0)
f(1,0,1)
f(1,1,1)
f(1,1,0)
b, ca
9.12A.S.E.
Adiacenza
• Una combinazione delle variabili d’ingresso è detta logicamente adiacente a un’altra se le due combinazioni sono differenti solo in corrispondenza di un solo bit
• Nelle mappe, l’ordine delle combinazioni delle variabili è scelto in modo tale che due combinazione geometricamente adiacenti siano anche logicamente adiacente
9.13A.S.E.
Mappe di Karnaugh 2
• 4 variabili
• due colonne adiacenti differiscono per una sola variabile• due righe adiacenti differiscono per una sola variabile• la prima i l’ultima colonna sono adiacenti
• La mappa è scritta su un cilindro verticale• la prima i l’ultima riga sono adiacenti
• La mappa è scritta su un cilindro orizzontale (ovvero la mappa sta su un toroide)
c d
a b00 01 11 10
00
f(0000)
f(0001)
f(0011)
f(0010)
01
f(0100)
f(0101)
f(0111)
f(0110)
11
f(1100)
f(1101)
f(1111)
f(1110)
10
f(1000)
f(1001)
f(1011)
f(1010)
9.14A.S.E.
Mappe di Karnaugh 3
• 5 variabili
e = 0 e = 1• Le caselle con la stessa lettera sono adiacenti
• Attenzione alle caselle con lettere in rosso SONO ADIACENTi
c da b 00 01 11 10
00 a z
01 a x
11 y
10 b b
c da b 00 01 11 10
00 c z c e
01 d x
11 d y
10 e
9.15A.S.E.
Esempio
• Per la funzione prima trovata si ha
a b c z
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
00 01 11 10
0 1 1
1 1 1 1
a
b, c
00 01 11 10
0 0 0
1 0
a
b, c
9.16A.S.E.
Osservazioni
• Data una funzione di “n” variabili• Ogni casella della mappa corrisponde a
un mintermine della funzione (prodotto di “n” termini)
• Due caselle adiacenti danno luogo a un prodotto di (n-1) termini
• Quattro caselle adiacenti danno luogo a un prodotto di (n-2) termini
• Otto caselle adiacenti danno luogo a un prodotto di (n-3) termini
9.17A.S.E.
Esempio 1
• Funzione “f ”di 4 variabili
• La forma canonica SP si ottiene sommando le caselle dove f vale “1”
dcbacdbadcbadcbadabcabcddcabdcabdbcabcdadcbadcbadcbacdbadcbadcba
abcd
10110100
10110100
9.18A.S.E.
Esempio 2
• Data la funzione definita dalla seguente mappa:
• si ha:
11101111
1011100
10110100abcd
cabcdacba
bbcabcdacbacbacabbcdacba
ddcbaddcabbcdaddcba
dcbadcbadcabdcabbcdadcbadcbaz
9.19A.S.E.
Definizione
• Il prodotto “p ” si definisce implicante della finzione “f “ se p e f valgono “1” per la stessa configurazione degli ingressi
• I mintermini della funzione sono tutti implicanti della funzione
• Una funzione si può sempre scrivere come somma di implicanti
• Una casella delle mappe di Karnaugh è un implicante di ordine 1 (0) [1]
• Due caselle adiacenti sono un implicante di ordine 2 (1) [2]
• Quattro caselle adiacenti sono un implicante di ordine 3 (2) [4]
• Otto caselle adiacenti sono un implicante di ordine 4 (3) [8]
• L’espressine di un implicante si ricava direttamente dalle mappe di Karnaugh
9.20A.S.E.
Esempio
• Per la funzione prima vista si ha:
cabcdacba
bbcabcdacbacbacabbcdacba
ddcbaddcabbcdaddcba
dcbadcbadcabdcabbcdadcbadcbaz
Impicante di “z “
Impicante di ordine 2 Impicante di ordine 3Impicante di ordine 1
9.21A.S.E.
Esempio
• Esempio di implicanti di ordine 2
111101111
0111100
10110100abcd
cba
cab
cdb
dca
dba
9.22A.S.E.
Esempio
• Esempio di implicanti di ordine 3
1111101111
11011100
10110100abcd
ca
da
ba
9.23A.S.E.
Esempio
• Esempio di implicanti di ordine 4
11111011111101
111100
10110100abcd
c
b
9.24A.S.E.
Definizione
• Richiamo– Una funzione si può sempre scrivere come
somma di implicanti
• Un implicante p* si dice implicante principale se non esiste nessun altro implicante p’ tale che p’ copra p*
• Per ogni funzione f esiste almeno un insieme di implicanti principali tale che f può essere espressa come somma di soli implicanti principali
npppf 21
9.25A.S.E.
Esempio
• Per la funzione prima vista :
• si ha:
• L’implicane verde non è principale
11101111
1011100
10110100abcd
cabcabcdacbaz
9.26A.S.E.
Ottimizzazione mediante le Mappe di Karnaugh
• Passo 1• individuare sulla mappa tutti gli implicanti
di ordine superiore possibile che coprono tutta la funzione
• Passo 2• Scegliere un insieme più piccolo possibile
di implicanti principali che coprono la funzione
• NOTA• L’ottimizzazione si fa per ispezione visiva
9.27A.S.E.
Esempio
• Per la funzione prima vista :
• si ha:
• La scelta 3 da luogo ad una funzione migliore delle altre
11101111
1011100
10110100abcd
bcdacacbz
11101111
1011100
10110100abcd
11101111
1011100
10110100abcd
9.28A.S.E.
Esempio di minimizzazione
• Data la funzione precedentemente vista:
a b c z
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
Si ha:
bacz
00 01 11 10
0 1 1
1 1 1 1
a
b, c
9.29A.S.E.
Condizioni non specificate
» Può capitare che in particolari applicazioni alcune configurazioni degli ingressi non si possano verificare, quindi l’uscita per tali uscite non è specificata (Don’t-Care Conditions)
» Se i don’t care si considerano “0” si ottiene la prima funzione
» Se alcuni don’t care si considerano “1” si ottiene la seconda funzione
01111
0111
11011
10011
01101
00101
11001
0001
11110
00110
01010
00010
1100
10100
11000
10000
zdcba
110
1111
101
11100
10110100
ab
cdbcdadcacabdbacbaz
cacdabaz
9.30A.S.E.
Un cattivo esempio
0001111110011111010110000011101110101101010111001101000110111100110110011101010100100001100110010011010000000000uwzdcba
11101111
11011100
10110100abcd wzwzwzu
dcbau
cdbadcbadabcdcabcdbadcbadcbadcbau
bababaz
dcdcdcw
9.31A.S.E.
Tecniche strutturate
• Il procedimento di sintesi per “ispezione visiva” si può utilizzare fino a 4 ÷ 5 variabili
• Il procedimento di sintesi per “ispezione visiva” può essere anche descritto come processo formale strutturato
• Metodo di Quine McCluskey• Può essere tradotto in un programma• La complessità del programma cresce in
modo esponenziale con l’aumentare delle variabili
• I programmi attuali usano tecniche euristiche 9.32A.S.E.
Transitori 1
• Sistema ideale
Le uscite commutano istantaneamente Nessun ritardo fra ingresso e uscita
az
cb
a
z
c
b
t
9.33A.S.E.
Transitori 2
• Sistema reale
Le uscite commutano in ritardo
az
cb
a
z
c
b
t Dt Dt
9.34A.S.E.
Ritardo di propagazione
• tpHL e tpLH
in
out
t tpHL tpLH
2pLHpHL
pd
ttt
in out
9.35A.S.E.
Transitori 3
• Sistema reale stilizzato
Le forme d’onda sono idealiSi conservano i ritardi
az
cb
a
z
c
b
t Dt Dt
9.36A.S.E.
Transizioni multiple su gli ingressi
• Possono dare luogo a glitch
• Transizione 010 ž 111
a
z
c
b11
1110
10110100a
bc
a
b
c
z
a
b
c
z010 011 111 010 110 111
bccaz
9.37A.S.E.
Alee Statiche • Transizione 011 ž 010
• Alea statica di “1”
a
z
c
b11
1110
10110100abc
a
b
c
x
x
y
011 010
y
z
9.38A.S.E.
Correzione • Aggiungere implicanti per coprire gli “1”
adiacenti a
z
c
b11
1110
10110100abc
a
b
c
x
x
y
011 010
y
z
k
k
9.39A.S.E.
Aritmetica binaria 1
• Somma di due bit• x + y• s = Somma• c = Carry (RIPORTO)
• Esempio
x y s c
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
1 1 1 1
1 0 1 1 0 0 1
1 1 1 0 1 0 1
1 1 0 0 1 1 1 0
carry
89 + 117 = 206
9.40A.S.E.
Aritmetica binaria 2
• Sottrazione di due bit• x -y• d = Differenza• b = Borrow (Prestito)
• Esempio
x y d b
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
1 1 1 1
1 1 0 0 1 1 1 0
1 1 1 0 1 0 1
1 0 1 1 0 0 1
borrow
206 - 117 = 89
x y s c
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
9.41A.S.E.
Half Adder
• Somma di due bit
ai bi
si ci+1
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
iii
iii
bacbas
1
ai
bi
si
ci+1
H A
ai
bi
si
ci+1
9.42A.S.E.
Full Adder 1
• Somma di due bit compreso il Carryci a
i
bi
si ci+
1
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
00 01 11 10
0 1
1 1 1 1
00 01 11 10
0 1 1
1 1 1
ci
si
ci+1
ai ,bi
ci
ai ,bi
9.43A.S.E.
Full Adder 2
• Lo schema risulta iiiiiii
iiiiiii
cbcabac
cbacbas
1
ai
bi si
ci+1
ci
F A
ai
bi
si
ci+1
ci
ai
bi
si
ci+1
ci
F A
9.44A.S.E.
Full Adder 3
• ci a
i
bi
si ci+
1
aibi ai + bi
(ai + bi)ci
(ai + bi)ci+aibi
0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 1 0 0
0 1 0 1 0 0 1 0 0
0 1 1 0 1 1 0 0 1
1 0 0 1 0 0 0 0 0
1 0 1 0 1 0 1 1 1
1 1 0 0 1 0 1 1 1
1 1 1 1 1 1 0 1 19.45A.S.E.
Full Adder 4
• Somma di due bit compreso il Carry
ci ai
bi
si ci+
1
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
iiiii
iiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiiii
iiiiiii
babac
ccbababac
cbacbabacbac
cbacbacbacbac
cbacbas
1
9.46A.S.E.
Full Adder 5
• Full Adder realizzato con due Haslf Adder
iii
iii
bacbas
1
si
ci+1
H A
ai
bi
si
ci+1
H A
ai
bi
si
ci+1
ai
bi
ci
9.47A.S.E.
Half Subtractor
• Differenza fra due bit (x – y)xi yi d
i
bi+
1
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
iii
iii
yxb
yxd
1
xi
yi
di
bi+1
H S
ai
bi
si
ci+1
9.48A.S.E.
Full Subcrtactor 1
• Differenza fra due bit compreso il Borrow (x – y)bi xi yi di bi+
1
0 0 0 0 0
0 0 1 1 1
0 1 0 1 0
0 1 1 0 0
1 0 0 1 1
1 0 1 0 1
1 1 0 0 0
1 1 1 1 1
00 01 11 10
0 1
1 1 1 1
00 01 11 10
0 1 1
1 1 1
bi
di
bi+1
xi ,yi
bi
xi ,yi
9.49A.S.E.
Full Subtractor 2
• Lo schema risulta iiiiiii
iiiiiii
bybxyxb
byxbyxd
1
xi
yi di
bi+1
bi
F S
xi
yi
di
bi+1
bi
xi
yi
di
bi+1
bi
F S
9.50A.S.E.
Sommatore a riporto seriale(Ripple-Carry Adder)
• Somma di due parole di 4 bit in C. 2c
i+1
FA
ci
ai
si
bi
b0 a0b1 a1
ci+
1FA
ci
ai
si
bi
b2 a2
ci+
1FA
ci
ai
si
bi
b3 a3
s0s1s3 s2
c4
c0
FA
ci
ai
si
bi
ci+
1
9.51A.S.E.
Proprietà dello XOR
• Lo XOR può essere visto come un inverter “programmabile”
inoutS
inoutS
è 1per
è 0per
in
S
out
S in out
0 0 0
0 1 1
1 0 1
1 1 0
9.52A.S.E.
Considerazioni sulla sottrazione
• Si ricorda che
• Operando in complemento a 2 si ha
• Quindi
BABAW
1 BABAW
1 BB
9.53A.S.E.
Sommatore/Sottrattore
• In base alle proprietà dello XOR e come si può eseguire la differenza (A – B) in C. 2 si ha:
a0 b0a1 b1a2 b2a3 b3
s0s1s3 s2
c4
ci+
1FA
ci
bi
si
ai
ci+
1FA
ci
bi
si
ai
ci+
1FA
ci
bi
si
ai
ci+
1FA
ci
bi
si
ai
kA–B K=
1
A+B k=0
9.54A.S.E.
Livelli di logica
• Data una rete combinatoria
• Definizione• Livelli di logica della rete = numero MAX di blocchi base
attraversati passando da un ingresso a una uscita• NOTA
• La negazione degli ingressi non conta
db
a
c
g
y
x
1
23
4
9.55A.S.E.
Sintesi a due livelli
• Le tecniche fin ora viste sono di sintesi a due livelli
11110111111
01100
10110100abcd
dcbaadacabz
a
z
d
c
b
9.56A.S.E.
Sintesi a tre livelli
• Si usa un numero inferiore di porte e con meno ingressi
11110111111
01100
10110100abcd
dcbadcba
dcbaadacabz
a
zdc
b
9.57A.S.E.
Reti a più uscite
• Casi visti• più ingressi una uscita
• Tecniche di minimizzazione viste• Una sola uscita
• Casi frequenti nella pratica• più ingressi più uscite
• La minimizzazione delle singole uscite (separatamente) non garantisce la minimizzazione dell’intera rete
• Il procedimento di minimizzazione globale risulta molto complesso
9.58A.S.E.
Esempio
• Rete a due uscite• z w
11110
10110100acd
11110
10110100acd
addcz cadcw
dcdcaw
addcaz
9.59A.S.E.
Tempo di ritardo
• Per una porta logica si ha
,
1,maxgate gate in ii n
t T t
U
I1
I2
I3
t3 t1 t2 tz
gatet
9.60A.S.E.
Ritardi del FULL ADDER 1
ci
ai si
ci+1
bi
1
,2
,3
max ,
max , ,
i i i
i i i i i i i
s xor i a b
c or a b a c b c
t T c t
t T t t t
Consente di anticipare il calcolo di a b
9.61A.S.E.
Ritardi del FULL ADDER 2
• Per il Ci+1 si ha
1
,2
,3 ,2
,2
,3 ,2
max , ,
max max , ,
max ,
max max , ,
i i
i i i
i i
i i i
and a b
c or and a c
and b c
or and a b c
T t t
t T T t t
T t t
T T t t t
9.62A.S.E.
Tempo di ritardo nel Sommatore
• Tc = ritardo del Carry, Ts = ritardo della somma
ci+
1FA
ci
ai
si
bi
b0 a0b1 a1
ci+
1FA
ci
ai
si
bi
b2 a2
ci+
1FA
ci
ai
si
bi
b3 a3
s0s1s3 s2
c4
c0
FA
ci
ai
si
bi
ci+
1
1 1 1 1 12 2max ,
n n n n ns xor c a b xor ct T t t t T t
9.63A.S.E.
Ritardo del sommatore Ripple Carry
• Per il Carry iesimo si ha:
• Per il Full Adder si ha:
• QuindiRitardo del sommatore Ripple Carry
1 ,3 ,2
,3 ,2
max max , ,i i i i
i
c or and a b c
or and c
t T T t t t
T T t
,3 ,2c or andT T T
1
1 ,2
1
1
n
n
c c
s xor c
t n T
t T n T
9.64A.S.E.
Conclusioni
• Implicanti• Inclusione• Implicanti principali• Mappe di Karnaugh• Fenomeni transitori• Somma e differenza di due numeri in C2• Half Adder, Full Adder• Sommatori e Sottrattori di due word di n
bit• Livelli di logica
9.65A.S.E.