Sintesi Reti Combinatorie Sintesi di Reti Combinatorie Corso di Architetture degli Elaboratori
Problema della sintesi 1 Il problema della sintesi di reti combinatorie Data una funzione combinatoria f Si vuole individuare una rete logica (a due livelli) Che implementi f Che abbia costo minimo Funzione di costo: Numero di porte A parità di numero di porte, numero di morsetti di ingresso RETI LOGICHE
Problema della sintesi 2 Esempio Prima rappresentazione: y= ¬x1¬x2x3+¬x1x2+x1x2¬x3 x3 x2 x1 y 1 ¬ x1 x2 x3 y x1 ¬ x2 ¬ x3 RETI LOGICHE
Problema della sintesi 3 Esempio Altra rappresentazione: y= ¬x1x3+x2¬x3 x3 x2 x1 y 1 ¬ x1 x2 x3 y x1 ¬ x2 ¬ x3 RETI LOGICHE
Tabella di 2n elementi in {0,1}, uno per ogni assegnamento Mappe di Karnaugh 1 Mappe di Karnaugh Mappa di Karnaugh MK(f) per una funzione f di n variabili Tabella di 2n elementi in {0,1}, uno per ogni assegnamento di verità sulle n variabili. Due assegnamenti di verità adiacenti (differenti su una sola variabile) corrispondono ad elementi contigui nella tabella. Si assume che la tabella sia chiusa su sé stessa. RETI LOGICHE
Struttura delle mappe di Karnaugh Struttura delle MK 1 Struttura delle mappe di Karnaugh 01 00 1 x1 x2 x3 n=3 10 11 x1 x2 n=2 1 01 00 x3 x4 n=4 10 11 x1 x2 RETI LOGICHE
Struttura delle mappe di Karnaugh Struttura delle MK 2 Struttura delle mappe di Karnaugh 01 00 x1 x2 x3 x4 n=5 10 11 x5=0 x5=1 Una MK di n variabili è composta da due MK di n-1 variabili RETI LOGICHE
Rappresentazione di funzioni su MK 1 Rappresentazione di funzioni su mappe di Karnaugh Una funzione f di n variabili è rappresentata da un MK su n variabili dove un elemento di MK ha valore 1 se e solo se corrisponde ad un assegnamento di verità per il quale la funzione ha valore 1. x3 x2 x1 y 1 1 01 00 x1 x2 x3 10 11 RETI LOGICHE
Funzioni prodotto 1 Funzioni prodotto Funzione prodotto f : rappresentata da un AND di k£n termini (variabili vere o negate). Su una MK su n variabili, l’insieme degli elementi per cui f ha valore 1 è un insieme rettangolare (sottocubo) di 2k elementi adiacenti, corrispondente ad una sottomappa con elementi 1. RETI LOGICHE
1 1 Funzioni prodotto 01 00 x1 x2 x3 x4 10 11 ¬ x1¬ x2¬ x3 x1 x2 01 00 RETI LOGICHE
Una funzione combinatoria, essendo rappresentabile in Funzioni prodotto 3 Funzioni prodotto Una funzione combinatoria, essendo rappresentabile in forma SP, e quindi mediante un insieme di funzioni prodotto, corrisponde su MK ad un insieme di regioni rettangolari. Problema della sintesi su MK Data una funzione rappresentata su MK, trovare l’insieme più piccolo di rettangoli che copra esattamente gli elementi di valore 1. RETI LOGICHE
Funzioni somma 1 Funzioni somma Funzione somma f: rappresentata da un OR di k£n termini (variabili vere o negate). Su una MK su n variabili, l’insieme degli elementi per cui f ha valore 0 è un insieme rettangolare di 2n-k elementi adiacenti, corrispondente ad una sotto-mappa con elementi 0. RETI LOGICHE
Funzioni somma x1 x2 x3 x4 00 01 11 10 00 x1+x2+x3 01 x1 x2 x3 x4 00 x1+x2+x3 01 x1 x2 x3 x4 00 01 11 10 11 x3 00 10 01 x1+¬x2 11 x1+¬x3 10 x1+x2+¬x3+x4 RETI LOGICHE
Una funzione combinatoria, essendo rappresentabile in Funzioni somma 3 Funzioni somma Una funzione combinatoria, essendo rappresentabile in forma PS, e quindi mediante un insieme di funzioni somma, corrisponde su MK ad un insieme di regioni rettangolari. Problema della sintesi su MK Data una funzione rappresentata su MK, trovare l’insieme più piccolo di rettangoli che copra esattamente gli elementi di valore 0. RETI LOGICHE
Rappresentazione di funzioni su MK 2 x1 x2 x3 00 01 11 10 1 SP PS 1 x1 x2 x1 x2 x3 00 01 11 10 x3 00 01 11 10 1 1 1 1 y = ¬x1x2+x1¬x3 y = (x1+x2)(¬x1+¬x3) RETI LOGICHE
Implicanti primi Implicanti primi Data una funzione booleana f ed un suo implicante p: p è primo se non esiste p’ ® f tale che p ® p’ Su una MK p è primo se e solo se il sottocubo corrispondente non è incluso in un sottocubo più grande x1 x2 x3 x4 00 01 11 10 00 1 1 1 1 01 1 1 11 x1¬x2¬x3 primo ¬x1x2x4 non primo (x2x4) 10 RETI LOGICHE
Data una funzione booleana f ed un suo implicato p: Implicati primi Implicati primi Data una funzione booleana f ed un suo implicato p: p è primo se non esiste p’ , f ® p’ , tale che p’ ® p Su una MK p è primo se e solo se il sottocubo corrispondente non è incluso in un sottocubo più grande x1 x2 x3 x4 00 01 11 10 00 01 11 ¬x3+x4 primo x1+x2 +¬x4 non primo (x1+x2 ) 10 RETI LOGICHE
Rappresentazione con implicanti primi Rappresentazione di funzione mediante implicanti primi x1 x2 x3 x4 00 01 11 10 00 1 1 ¬x2¬x3 primo 1 1 1 1 01 ¬x3x4 primo 1 1 x2x4 primo 11 10 y=¬x1¬x2¬x3¬x4+¬x1¬x2¬x3x4+¬x1x2¬x3x4 +¬x1x2x3x4 +x1x2¬x3x4 +x1x2x3x4 +x1¬x2¬x3¬x4 +x1¬x2¬x3x4 y=¬x2¬x3+x2x4+¬x3x4 Non tutti gli implicanti primi sono necessari: y=¬x2¬x3+x2x4 RETI LOGICHE
Rappresentazione con implicati primi Rappresentazione di funzione mediante implicati primi x1 x2 x3 x4 00 01 11 10 00 ¬x2 +x4 primo 01 x2+¬x3 primo ¬x3+x4 primo 11 10 y=(x1+¬x2+x3+x4)(¬x1+¬x2+x3+x4)(x1+x2+¬x3+¬x4) (¬x1+x2+¬x3+¬x4)(x1+x2+¬x3+x4)(x1+¬x2+¬x3+x4) (¬x1+¬x2+¬x3+x4)(¬x1+x2+¬x3+x4) y=(¬x2+x4)(¬x3+x4)(x2+¬x3) Non tutti gli implicati primi sono necessari: y=(¬x2+x4)(x2+¬x3) RETI LOGICHE
Implicanti primi essenziali Un implicante primo essenziale copre un assegnamento di verità (avente valore 1) non coperto da altri implicanti primi. x1 x2 x3 x4 00 01 11 10 00 1 1 ¬x2¬x3 essenziale 1 1 1 1 01 ¬x3x4 non essenziale 1 1 x2x4 essenziale 11 10 Un implicante primo essenziale deve necessariamente comparire in qualunque rappresentazione della funzione mediante implicanti primi RETI LOGICHE
Implicati primi essenziali Un implicato primo essenziale copre un assegnamento di verità (avente valore 0) non coperto da altri implicati primi. x3 x4 00 01 11 10 00 ¬x2 +x4 essenziale 01 x2+¬x3 essenziale ¬x3+x4 non essenziale 11 10 Un implicato primo essenziale deve necessariamente comparire in qualunque rappresentazione della funzione mediante implicati primi RETI LOGICHE
Costruzione di rappresentazione SP minima 1 Individuare iterativamente un implicante primo essenziale (se esiste) fino alla copertura di tutti gli assegnamenti di verità (1). x1 x2 x3 x4 00 01 11 10 00 1 1 ¬x2¬x3 essenziale 1 1 1 1 01 1 1 x2x4 essenziale 11 10 y=¬x2¬x3+x2x4 RETI LOGICHE
Costruzione di rappresentazione SP minima 2 Non sempre il procedimento funziona. Coperture cicliche x1 x2 x3 x4 00 01 11 10 ¬x2¬x3x4 ¬x1¬x2x4 ¬x1x3x4 ¬x1x2x3 x2x3¬x4 x1x2¬x4 x1¬x3¬x4 x1¬x2¬x4 00 01 11 10 RETI LOGICHE
Costruzione di rappresentazione SP minima 3 Nel caso di coperture cicliche: selezionare un implicante primo nella copertura. fare l’ipotesi che l’implicante faccia parte della rappresentazione e procedere fino a derivare una rappresentazione fare l’ipotesi che l’implicante non faccia parte della Selezionare la rappresentazione migliore tra le due. RETI LOGICHE
Costruzione di rappresentazione SP minima 4 Ipotesi: ¬x2¬x3x4 nella rappresentazione Risultato: y=¬x2¬x3x4 +¬x1x3x4 +x2x3¬x4 + x1¬x3¬x4 x1 x2 x3 x4 00 01 11 10 00 01 11 10 RETI LOGICHE
Costruzione di rappresentazione SP minima 5 Ipotesi: ¬x2¬x3x4 non nella rappresentazione Risultato: y= ¬x1¬x2x4 +¬x1x2x3 +x1x2¬x4 + x1¬x2¬x4 x3 x4 00 01 11 10 00 In questo caso le due soluzioni sono equivalenti 01 11 10 Le stesse considerazioni valgono per rappresentazioni PS RETI LOGICHE
Costruzione di rappresentazione SP minima 6 Metodo alternativo: metodo di Petrik Associamo ad ogni implicante primo una variabile booleana che assume valore 1 se l’implicante compare bella rappresentazione ¬x2¬x3x4 : A1 ¬x1¬x2x4 : A2 ¬x1x3x4 : A3 ¬x1x2x3 : A4 x2x3¬x4 : A5 x1x2¬x4 : A6 x1¬x3¬x4 : A7 x1¬x2¬x4 : A8 RETI LOGICHE
Costruzione di rappresentazione SP minima 7 Ad ogni mintermine viene associata una espressione Booleana pari all’OR di tutte le variabili corrispondenti a Implicanti che lo coprono. Queste espressioni sono messe in AND, a rappresentare il fatto che tutti i mintermini devono essere coperti. (A1+A2) (A2+A3) (A3+A4) (A4+A5) (A5+A6) (A6+A7) (A7+A8) (A8+A1) = … A1A3A5A7 + A2A4A6A8 … RETI LOGICHE
In molti casi la funzione non è definita per alcuni Condizioni don’t care 1 Condizioni don’t care In molti casi la funzione non è definita per alcuni assegnamenti di verità, che ad esempio non possono manifestarsi in input. x1 x2 x3 x4 00 01 11 10 00 1 1 01 1 1 11 * * * * 1 10 * * Per le condizioni don’t care si possono assumere a piacere i valori 0 o 1 RETI LOGICHE
Considerando i soli valori 1 x1 x2 x3 x4 00 01 11 10 Condizioni don’t care 2 Condizioni don’t care Considerando i soli valori 1 x1 x2 x3 x4 00 01 11 10 00 1 1 01 1 1 11 * * * * 1 10 * * Risultato: y= ¬x1¬x2¬x3¬x4+x1x2¬x3¬x4+¬x1x2¬x3x4+ x1¬x2¬x3x4+ ¬x1x2x3¬x4 RETI LOGICHE
Considerando i valori 1 e le condizioni don’t care x1 x2 x3 x4 00 01 11 10 00 1 1 01 1 1 11 * * * * 1 10 * * * Risultato: y= ¬x1¬x2¬x3¬x4+x1x2¬x4+¬x1x2x4+x1¬x2x4+x2x3 RETI LOGICHE
Individuare iterativamente un implicante primo (per 1 e *) Condizioni don’t care 4 Condizioni don’t care Individuare iterativamente un implicante primo (per 1 e *) che sia essenziale (se esiste) per i valori 1, fino alla copertura di tutti gli assegnamenti di verità (1). Nel caso di coperture cicliche (sugli 1) si applica lo stesso metodo già esposto. RETI LOGICHE
Metodo di Quine-McCluskey 1 Fornisce un procedimento più rigoroso (algoritmo) delle MK. Si applica per n (numero di variabili) qualunque. Il metodo opera su due fasi: Individuazione implicanti primi Costruzione copertura minima RETI LOGICHE
Metodo di Quine-McCluskey 2 Individuazione implicanti primi ¬x1¬x2¬x3¬x4 ¬x1¬x2¬x3x4 ¬x1x2¬x3x4 ¬x1x2x3x4 x1x2¬x3x4 x1x2x3x4 x1¬x2¬x3¬x4 x1¬x2¬x3x4 0000 1000 1010 1110 1011 1111 0001 1001 RETI LOGICHE
Metodo di Quine-McCluskey 3 Individuazione implicanti primi 000- -000 10-0 100- -001 101- 1-10 10-1 1-11 111- 0000 1000 0001 1010 1001 1011 1110 1111 RETI LOGICHE
Metodo di Quine-McCluskey 4 Individuazione implicanti primi 000- -000 10-0 100- -001 101- 1-10 10-1 1-11 111- 0000 1000 0001 1010 1001 1011 1110 1111 -00- 10-- 1-1- y=¬x2¬x3+x2x4+¬x3x4 RETI LOGICHE
Metodo di Quine-McCluskey 5 Costruzione copertura minima Tabella implicanti primi essenziali 0000 1000 1010 1110 1011 1111 0001 1001 -00- X 10-- 1-1- y=¬x2¬x3+x2x4 RETI LOGICHE
Minimizzazione di reti a più uscite 1 Sintesi di una rete combinatoria (a due livelli) che calcoli più funzioni booleane date utilizzando il minimo numero di porte logiche. E’ necessario considerare eventuali implicanti multipli, che implichino cioè più di una funzione. RETI LOGICHE
Minimizzazione di reti a più uscite 2 x3 x2 x1 y1 y2 1 x2¬x3 è un implicante multiplo (non primo per y1) ¬x1x2x3 è un implicante multiplo (non primo né per y1 né per y2) RETI LOGICHE
Minimizzazione di reti a più uscite 3 Procedimento Trovare gli implicanti primi (multipli o meno) dell’insieme di funzioni. Gli implicanti multipli vengono individuati mediante la rappresentazione MK (o l’applicazione della prima fase di Quine-McCluskey) agli AND delle funzioni. Selezionare un sottoinsieme minimo degli implicanti trovati, applicando la seconda fase di Quine-McCluskey. RETI LOGICHE
Minimizzazione di reti a più uscite 4 y1= S(2,4,10,11,12,13)={2,10}+{4,12}+{10,11}+{12,13} y2= S(4,5,10,11,13) ={4,5}+{5,13}+{10,11} y3= S(1,2,3,10,11,12)={2,3,10,11}+{1,3}+{12} y1 y2 = S(4,10,11,13) ={4}+{10,11}+{13} y1 y3 = S(2,10,11,12) ={2,10}+{10,11}+{12} y2 y3 = S(10,11) ={10,11} y1 y2 y3 = S(10,11)={10,11} Un implicante primo multiplo viene considerato una volta, quando implica l’AND più esteso. RETI LOGICHE
Minimizzazione di reti a più uscite 5 Ridenominazione implicanti: A123={10,11} B13={2,10} C13={12} D12={4} E12={13} F1={4,12} G1={12,13} H2={4,5} K2={5,13} L3={2,3,10,11} M3={1,3} y1= S(2,4,10,11,12,13)= B13 + F1 + A123 + G1 y2= S(4,5,10,11,13) = H2 + K2 + A123 y3= S(1,2,3,10,11,12)= L3 + M3 + C13 y1 y2 = S(4,10,11,13) =D12+ A123 + E12 y1 y3 = S(2,10,11,12) = B13 + A123 + C13 y2 y3 = S(10,11) = A123 y1 y2 y3 = S(10,11)= A123 RETI LOGICHE
Minimizzazione di reti a più uscite 6 Tabella implicanti primi essenziali y1 y2 y3 2 4 10 11 12 13 5 1 3 L3 X A123 B13 F1 G1 H2 K2 C13 D12 E12 M3 RETI LOGICHE
Minimizzazione di reti a più uscite 7 Tabella implicanti primi essenziali y1 y2 y3 2 4 10 11 12 13 5 1 3 L3 X A123 B13 F1 G1 H2 K2 C13 D12 E12 M3 RETI LOGICHE
Minimizzazione di reti a più uscite 8 Tabella implicanti primi essenziali y1 y2 y3 2 4 10 11 12 13 5 1 3 L3 X A123 B13 F1 G1 H2 K2 C13 D12 E12 M3 RETI LOGICHE
Minimizzazione di reti a più uscite 9 Tabella implicanti primi essenziali y1 y2 y3 2 4 10 11 12 13 5 1 3 L3 X A123 B13 F1 G1 H2 K2 C13 D12 E12 M3 RETI LOGICHE
Minimizzazione di reti a più uscite 10 Tabella implicanti primi essenziali y1 y2 y3 2 4 10 11 12 13 5 1 3 L3 X A123 B13 F1 G1 H2 K2 C13 D12 E12 M3 RETI LOGICHE
Minimizzazione di reti a più uscite 11 Resta una situazione ciclica: metodo di Petrik. 1=(F1+D12) (G1+E12) (H2+D12) (H2+K2)(K2+E12) = = F1 G1 H2 K2 + F1 H2 E12 + H2 D12 E12 + G1 K2 D12 + K2 D12 E12 Costi delle selezioni 3+3+3+3=12 F1 G1 H2 K2 3+3+4=10 F1 H2 E12 3+4+4=11 H2 D12 E12 3+3+4=10 G1 K2 D12 3+4+4=11 K2 D12 E12 Le migliori selezioni sono quindi F1 H2 E12 e G1 K2 D12 RETI LOGICHE
Minimizzazione di reti a più uscite 12 Selezione di implicanti risultante {A123,B13,C13,M3 ,F1,H2,E12} y1 y2 y3 x1 ¬x1 x2 ¬x2 x3 ¬x3 x4 ¬x4 RETI LOGICHE