Reti Logiche-2

Transcript

Reti Logiche-2
Sintesi di una rete combinatoria
Mappe di Karnaugh
Offrono uno strumento per esprimere una funzione booleana
f: {0,1}n à {0,1} in una forma SP o PS minima.
Invece della tabella di definizione si impiegano delle mappe che
ad una “adiacenza logica” (configurazioni che differiscono per un
solo bit) fanno corrispondere una “adiacenza geometrica”.
X2
n =2
n=4
X3 X4
X1
X1 X2
a
a
b
b
a
a
n=3
b
b
X2 X3
X1
b
c
b
c
n=5
Caselle contrassegnate con la stessa lettera sono adiacenti
Rappresentazione di una funzione
Per rappresentare una funzione con una mappa si scrive 1 in tutte
le celle corrispondenti alle configurazioni in cui la f vale 1.
b
f=ab
a
1
Ogni funzione rappresentabile con un prodotto di k variabili
dirette o negate avra’ 1 in un insieme di 2n-k celle che formano un
rettangolo sulla mappa.
f2 = a bc + a bc
= bc
f= ab c + a bc = ac
f1 = ab c + a b c = a c
L’insieme delle caselle contrassegnate con 1 si dice sottocubo
relativo ad f; le caselle con 1 vengono dette vertici del sottocubo.
In modo duale ogni funzione rappresentabile con una OR di
variabili dirette o negate avra’ 0 in un insieme di celle che
formano un rettangolo sulla mappa.
Implicanti ed implicati
Una funzione prodotto p si dice implicante di una funzione f se
f=1 (almeno) in tutti i vertici del sottocubo relativo ad f.
p =ab d
p implica f
p' implica f
p’= a b d
Sia p1, p2, … , ph un insieme di implicanti di f. Se f vale 1 in tutti e
soli i vertici dei sottocubi relativi ai pi , allora f si puo’ esprimere
come:
f = p1+ p2+ … + ph
⇒ Ogni forma SP per f e’una somma di implicanti per f.
Ricordiamo che la prima forma canonica per una funzione f è
l’OR di tutti i mintermini pi per le configurazioni i dove f=1.
⇒ Ogni mintermine relativo ad una configurazione i dove f=1 è
implicante di f.
Sia p → f. Diciamo che p è un implicante primo di f se non esiste
un altro implicante p’→ f tale che p → p’.
p’ “copre” p
p’
p
Per ogni funzione f esiste almeno un insieme Q di implicanti
primi tale che f si puo’esprimere come somma degli elementi di
Q: f =∑ p∈ Q p
Un insieme di implicanti primi puo’contenere delle ridondanze.
R e’un insieme irridondante di implicanti primi di f se
f =∑ p∈ R p ma per ogni T ⊂ R: f ≠∑ p∈ T p
Forme prime irridondanti e forme minime
Se R e’ un insieme irridondante di implicanti primi di f , allora la
forma ∑ p∈ R p si dice forma SP prima irridondante per f.
Ogni funzione f puo’essere espressa in forma
SP (somma di prodotti)
prima (i prodotti sono implicanti primi)
irridondante (nessun prodotto può essere scartato).
Sia Nb il numero di blocchi logici (di tipo AND, OR, NAND,
NOR) utilizzati in una rete a due livelli ed Nm il numero di
morsetti di ingresso a tali blocchi.
Definizione
Una forma SP minima per f è una forma che minimizza il valore
di Nb, e a parita’di Nb il valore di Nm.
Ogni forma SP minima di una funzione f è una
forma SP prima irridondante per f.
La ricerca della forma SP minima si divide in due fasi.
Fase A. Si determinano tutti gli implicanti primi per f.
Fase B. Si seleziona un insieme irridondante di implicanti primi
la cui somma copra f ed il cui costo complessivo sia minimo
Un implicante primo p → f si dice implicante primo essenziale di
f se esiste almeno un vertice del sottocubo relativo a p, che non
appartiene al sottocubo di alcun altro implicante primo di f.
In ogni forma SP prima irridondante appaiono tutti gli implicanti
primi essenziali di f.
z1= b c d
z2 = acd
z7 = a b d
z3 = b cd
z6 = a b c
z4 = a c
z5= ab d
z1
S1 = z1 + z3 + z5 + z6 + z7
Nb = 6
S2 = z2 + z4 + z5 + z6
Nb = 5
Metodo di Quine-McCluskey
Il metodo di Quine-McCluskey, applicato a forme SP, permette di
determinare in una prima fase (fasa A) tutti gli implicanti primi di
una funzione, e nella seconda fase (fase B) le forme minime.
Esempio (n=4)
f = p0 + p2 + p4 + p6 + p7 + p9 + p11 + p15
(prima forma canonica per f )
0
2
4
6
9
7
11
15
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
Le configurazioni in cui f vale 1
vengono ordinate in classi
a secondo del “peso”, cioè
del numero di 1 presenti nella
configurazione.
Ogni configurazione di una classe viene confrontata con tutte
quelle della classe successiva; le coppie di configurazioni che
differiscono per un bit vengono fuse.
0/2
0/4
2/6
4/6
6/7
9/11
7/15
11/15
0
0
0
0
0
1
1
0
1
1
0
1
-
0
1
1
1
1
0
0
0
0
1
1
1
è una applicazione ripetuta
della proprietà:
a b + a b = a
0
0
1
1
0/2
0/4
2/6
4/6
6/7
9/11
7/15
11/15
0
0
0
0
0
1
1
0
1
1
0
1
-
1
0
1
-
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
*
*
*
*
0/2/4/6
0/4/2/6
0
0
-
-
0
0
Le configurazioni che non sono
state usate per al fusione sono
tutti gli implicanti primi
ad
a b c
ab d
bcd
acd
Fine prima fase A
Fase B: selezione degli implicanti primi
Viene prima costruita una tabella di copertura le cui righe
rappresentano gli implicanti primi, le colonne le configurazioni in
cui f vale 1.
ad
a b c
ab d
bcd
acd
0 2 4 6 7 9 11
X X X X
X X
X X
X
X
15
X
X
ad
0
2
X
X X X
a b c
4
6
7
acd
11
15
X X
ab d
bcd
9
X
X
X
X
X
X
L’insieme degli implicanti primi deve coprire f, cioè ogni colonna
deve contenere almeno una X (c’e’ un implicante che copre quella
configurazione).
Una riga si dice riga essenziale se è l’unica che possiede una X in
una certa colonna.
(Nell’esempio: ad e ab d sono righe essenziali).
Una riga r domina una riga s se l’insieme delle colonne
contrassegnate con X su r contiene quello su s (r “copre” s”).
(Nell’esempio non ci sono righe dominanti perche’ stiamo
partendo da un insieme di implicanti primi).
La fase B procede applicando finchè è possibile le due regole:
- dominanza
- essenzialità
Regola della dominanza: se r domina s allora la riga s viene
eliminata dalla tabella.
Regola dell’essenzialità: se p è un implicante essenziale allora
- la riga p viene eliminata dalla tabella;
- l’implicante p viene memorizzato;
- tutte le colonne contrassegnate con X sulla riga p vengono
cancellate.
ad
0
2
4
X
X X X
a b c
6
7
X
bcd
X
X
7
9
X
11 15
ab d è essenziale
X
ab d
acd
15
X
X
acd
bcd
11
X X
ab d
a b c
9
X X
X
X
X X
7
a b c
bcd
acd
15
X
X X
bcd domina sia a b c
che a c d
X
Fine fase B.
Gli implicanti memorizzati (ad, ab d, b c d ) sono essenziali e
coprono tutti gli 1 di f .
NOTA.
Non sempre il procedimento termina con successo, ci sono
situazioni cicliche in cui nessuna regola è applicabile pur non
avendo raggiunto una situazione di minimalità. Si può in questo
caso applicare una ricerca esaustiva scegliendo, in tutti i modi
possibili, un implicante “come se” fosse essenziale e confrontando
poi i risultati per determinare la soluzione minima.