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 bc + a bc = bc f= ab c + a bc = ac f1 = ab 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 =ab 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 = acd z7 = a b d z3 = b cd z6 = a b c z4 = a c z5= ab 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 ad a b c ab 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. ad a b c ab d bcd acd 0 2 4 6 7 9 11 X X X X X X X X X X 15 X X ad 0 2 X X X X a b c 4 6 7 acd 11 15 X X ab 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: ad e ab 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. ad 0 2 4 X X X X a b c 6 7 X bcd X X 7 9 X 11 15 ab d è essenziale X ab d acd 15 X X acd bcd 11 X X ab 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 (ad, ab 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.