PDF - 340 kB - Tadeusz Łuba
Transkrypt
PDF - 340 kB - Tadeusz Łuba
Realizacje funkcji boolowskich Omawiane do tej pory metody minimalizacji funkcji boolowskich związane są z reprezentacją funkcji w postaci wyrażenia boolowskiego typu suma iloczynów (Sum-ofproducts - SOP), co prowadzi do tzw. realizacji AND-OR. Na przykład: I T P Tadeusz Łuba W y = x1x 2 + x1x 3 + x 2 x 3 ZCB ZPT 1 Realizacja AND-OR …uzyskane z tablicy Karnaugha: x3 0 1 00 0 0 01 1 0 11 1 1 10 1 0 x1x2 x1 x2 x1 x3 I T P Tadeusz Łuba W y = x1x 2 + x1x 3 + x 2 x 3 y x2 x3 ZCB ZPT 2 Realizacje funkcji boolowskich Możliwe są również inne realizacje np. w postaci iloczynu sum (Product-of-sums - POS) Na przykład… y = (x1 + x 2 )( x1 + x 3 )( x 2 + x 3 ) I T P Tadeusz Łuba W Obie te realizacje są wynikiem dwóch różnych form kanonicznych… ZCB ZPT 3 Postaci (formy) kanoniczne Kanoniczna postać sumacyjna (suma iloczynów) Kanoniczna postać iloczynowa (iloczyn sum) I T P Tadeusz Łuba W ZCB ZPT 4 Kanoniczna postać sumacyjna f(X) = 2n −1 V k =0 x, x = x, e e1k e 2k x1 x 2 ⋅ ⋅ ⋅ x nenk f(Xk ) gdy e = 1 gdy e = 0 Minterm I T P Tadeusz Łuba W f(X) = x1x 2 x 3 + x1x 2 x 3 x1 x2 x3 f 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1 + x 1x 2 x 3 + x 1x 2 x 3 + x 1x 2 x 3 ZCB ZPT 5 Kanoniczna postać iloczynowa f(X) = ∧ (x 2n −1 k =0 x, e x = x, e1k 1 + x e22k + ⋅ ⋅ ⋅ + x nenk + f(Xk ) gdy e = 0 gdy e = 1 Maxterm I T P Tadeusz Łuba W ZCB ) x1 x2 x3 f 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1 f = (x 1 + x 2 + x 3 ) ( x 1 + x 2 + x 3 ) ( x + x + x ) 1 2 3 ZPT 6 Minimalizacja wg iloczynu sum Czy możliwa jest minimalizacja funkcji dla postaci iloczynu sum. Oczywiście TAK… …ale proces minimalizacji funkcji dla kanonicznej postaci iloczynowej musi być inny. Różnice wynikają ze sposobu interpretacji zmiennej w… Kanonicznej Postaci Sumy: I T P Tadeusz Łuba W x, x = x, e gdy e = 1 gdy e = 0 Kanonicznej Postaci Iloczynu: x, x = x, e gdy e = 0 gdy e = 1 ZCB ZPT 7 Przykład minimalizacji dla „iloczynu sum” f = Σ[0, 5, 6, 7, 10, (2, 3, 11, 12)] x3x4 00 01 x1x2 I T P Tadeusz Łuba W 11 10 00 1 0 – – 01 0 1 1 1 11 – 0 0 0 10 0 0 – 1 f = (x1 + x 3 )( x1 + x 2 )( x 2 + x 4 )(x 2 + x 3 + x 4 ) ZCB ZPT 8 Realizacje bramkowe Oprócz realizacji AND-OR (wg sumy iloczynów) y = x1x 2 + x1x 3 + x 2 x 3 Realizacja OR-AND (wg iloczynu sum) y = (x1 + x 2 )( x1 + x 3 )( x 2 + x 3 ) I T P Tadeusz Łuba W ZCB ZPT 9 Realizacja OR-AND Product-of-sums (POS) x3 0 1 00 0 0 01 1 0 11 1 1 10 1 0 x1x2 I T P Tadeusz Łuba W x1 x2 x1 x3 y = (x1 + x 2 )(x1 + x 3 )( x 2 + x 3 ) y x2 x3 ZCB ZPT 10 Inne operatory (bramki) logiczne NAND NOR EX-OR y =a•b y =a+b y = a ⊕ b = ab + a b NAND (NOT-AND) I T P Tadeusz Łuba W NOR (NOT-OR) EXOR (Exclusive OR) ZCB ZPT 11 Realizacja NAND x3 0 1 00 0 0 01 1 0 11 1 1 10 1 0 x1x2 y = x1x 2 + x1x 3 + x 2 x 3 y = x1x2 • x1x3 • x2x3 x12 x23 3 x12 x13 y x23 I T P Tadeusz Łuba W ZCB x1 x2 x1 x3 y x2 x3 ZPT 12 Realizacja NOR x3 0 1 00 0 0 01 1 0 11 1 1 10 1 0 x1x2 x1 x2 x1 x3 I T P Tadeusz Łuba W y = (x1 + x 2 )( x1 + x 3 )( x 2 + x 3 ) y = x1 + x2 + x1 + x3 + x2 + x3 y x2 x3 ZCB ZPT 13 Realizacja zespołów funkcji Przykład sygnalizujący problem: Należy zaprojektować układ realizujący zespół trzech funkcji czterech argumentów: I T P Tadeusz Łuba W f1 = Σ(3,7,11,14,15) f2 = Σ(3,7,12,13,14,15) f3 = Σ(3,7,11,12,13,15) a b c d Układ logiczny f1 f2 f3 ZCB ZPT 14 Przykład sygnalizujący problem… Jeśli każdą funkcję zminimalizujemy oddzielnie: cd ab 00 01 11 10 00 0 0 1 0 01 0 0 1 0 0 0 1 1 11 0 0 1 0 10 I T P Tadeusz Łuba W f1 = abc + cd cd cd 00 01 11 10 ab 00 01 11 10 ab 00 0 0 1 0 00 0 0 1 0 0 0 1 0 0 0 1 0 01 1 1 1 0 01 11 10 1 1 1 1 0 0 0 0 f2 = ab + a cd 11 10 0 0 1 0 f3 = ab c +cd ZCB ZPT 15 … to uzyskamy… a b c c d f1 = abc + cd f1 f2 = ab + a cd f3 = ab c +cd a b I T P Tadeusz Łuba W a c d a b c c d f2 Do realizacji tych trzech funkcji potrzebujemy 9 bramek. Czy można f3 zredukować ich liczbę? Patrz następna plansza. ZCB ZPT 16 …usuwamy niektóre bramki a b c c d f1 Bramka AND dla f1 f2 może być usunięta przez wykorzystanie bramki AND z f3. f3 Teraz potrzebujemy 8 bramek. a b a c d a b I T P Tadeusz Łuba W c c d ZCB ZPT 17 …co dalej a b c c d f1 Bramkę AND z f2 f2 można usunąć przez wykorzystanie faktu ab = abc + ab c f3 Teraz potrzebujemy zaledwie 7 bramek. a b a c d a b I T P Tadeusz Łuba W c c d ZCB ZPT 18 Komentarz Przykład sugeruje, że w realizacji zespołu funkcji stosowanie minimalnej sumy implikantów prostych nie zawsze prowadzi do rozwiązania z minimalnym kosztem. Aby się o tym przekonać warto przeanalizować… I T P Tadeusz Łuba W ZCB ZPT 19 Przykład 4.7 ze skryptu Synteza logiczna y1 = Σ(2,3,5,7,8,9,10,11,13,15) y2 = Σ(2,3,5,6,7,10,11,14,15) y3 = Σ(6,7,8,9,13,14,15) w którym bezpośrednia minimalizacja: y1 = a b + bd + b c y2 = c + a bd y3 = bc + acd+ a b c I T P Tadeusz Łuba W …wymagać będzie 7 bramek AND ZCB ZPT 20 c.d. przykładu 4.7 ze skryptu Synteza logiczna …natomiast minimalizacja ze wspólnymi implikantami y = b c + a bd + abd + a b c 1 y = b c + a bd+ bc 2 y = abd + a b c + bc 3 mimo pozornie większego skomplikowania wymagać będzie… I T P Tadeusz Łuba W … zaledwie 5 bramek AND!!! ZCB ZPT 21 Zalety Espresso… Z powyższego przykładu wynika, że dla metod klasycznych synteza wielowyjściowych funkcji boolowskich jest procesem bardzo złożonym – trudnym do zalgorytmizowania. Metoda Espresso jest szczególnie efektywna w minimalizacji zespołów funkcji boolowskich. W przykładzie tym po żmudnych obliczeniach uzyskujemy wynik na 5 bramkach AND! I T P Tadeusz Łuba W ZCB ZPT 22 I T P Tadeusz Łuba W ZCB ZPT .type fr .i 4 .o 3 .p 16 0000 000 0001 000 0010 110 0011 110 0100 000 0101 110 0110 011 0111 111 1000 101 1001 101 1010 110 1011 110 1100 000 1101 101 1110 011 1111 111 .e Jak obliczy Espresso? F,D Complement Expand Essential primes Irredundant-Cover Reduce FM Last-gasp .i 4 .o 3 .p 5 11-1 10001-1 -01-11.e 101 101 110 110 011 Można sprawdzić, że jest to taki sam wynik jak na planszy 21 23