pokój EA 540, wpr@eti.pg.gda.pl Układy Logiczne i Technika Cyfrowa Część III minimalizacja funkcji logicznych Dr in\. Paweł Raczyński 2008-03-07 P. R. KSA WETI PG 1 Reguły sklejania (1) W poprzedniej części spotkaliśmy się z zagadnieniem upraszczania funkcji logicznych. Obecnie zaprezentujemy dwie, spośród wielu algorytmicznych metod minimalizacji funkcji logicznych. Minimalizacja funkcji logicznych polega na wielokrotnym stosowaniu do upraszczania funkcji reguł sklejania (19) i (20). Ax +Ax = A reguła dla postaci sumacyjnej (A + x)*(A + x) = A reguła dla postaci iloczynowej Zauwa\my, \e w wyniku sklejania redukcji ulega jedna ze zmiennych, ta która występuje w obu składnikach/czynnikach w postaci prostej i zanegowanej. 2008-03-07 P. R. KSA WETI PG 2 Reguły sklejania (2) Aby wyeliminować dwie zmienne z postaci funkcji nale\y zastosować reguły sklejania w poni\szej postaci: Ax y +Axy + Axy + Axy = A (A+x+y)*(A+x+y)*(A+x+y)*(A+x+y) = A Jak widać, zmienne, które zamierzamy wyeliminować na mocy reguły sklejania muszą występować w składnikach/czynnikach we wszystkich mo\liwych wariacjach poło\enia negacji. Istotnym spostrze\eniem jest, \e składniki/czynniki podlegające sklejaniu ró\nią się poło\eniem negacji nad jedną ze zmiennych, a więc są sąsiednie w sensie Hamminga. 2008-03-07 P. R. KSA WETI PG 3 Reguły sklejania przykład zastosowania Zminimalizować funkcję: f (x1,x2,x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 = Ł Ł (2,3,4,5,7) Ł Ł Je\eli skleimy składniki o numerach 2 i 3 oraz 5 i 7 otrzymamy: f (x1,x2,x3) = x1x2 + x1x3 + x1x2x3 W której to postaci nie mo\na dokonać dalszych sklejeń. Nie nale\y tak\e wykonywać wszystkich mo\liwych sklejeń tzn. składników o numerach 2i 3, 3 i 7, 4 i 5 oraz 5 i 7 bo otrzymamy: f (x1,x2,x3) = x1x2 + x2x3 + x1x2 + x1x3 Nale\y skleić składniki o numerach 2 i 3, 4 i 6 oraz 5 i 7 otrzymując: f (x1,x2,x3) = x1x2 + x1x2 + x1x3 Co jest postacią minimalną. 2008-03-07 P. R. KSA WETI PG 4 Reguły sklejania wnioski Analiza powy\szego przykładu prowadzi do następujących wniosków: " pierwszym problemem jest znalezienie wszystkich składników/czynników, które są sąsiednie w sensie Hamminga i mogą potencjalnie wziąć udział w operacji sklejania; " drugim problemem jest wybór składników/czynników sklejanych w celu osiągnięcia postaci minimalnej. Algorytmiczna metoda minimalizacji powinna określić efektywne metody rozwiązania obydwu problemów oraz zapewnić gwarancję osiągnięcia postaci minimalnej w określonym sensie. 2008-03-07 P. R. KSA WETI PG 5 Metoda tablic Karnaugha (1) Metoda polega na wykorzystaniu tablic funkcji zapisanych w odpowiednio skomponowanej tablicy zamieniającej sąsiedniość w sensie Hamminga składników/czynników na sąsiedztwo w sensie geometrycznym zawdzięczamy to właściwości kodu Gray a. cd bc ab 00 01 11 10 a 00 01 11 10 0 1 3 2 0 1 3 2 00 0 4 5 7 6 4 5 7 6 01 1 12 13 15 14 11 8 9 11 10 10 cde ab 000 001 011 010 110 111 101 100 b 0 1 3 2 6 7 5 4 00 a 0 1 8 9 11 10 12 13 15 14 01 0 1 0 24 25 27 26 30 31 29 38 11 2 3 1 16 17 19 18 22 23 21 20 10 Linią przerywaną zaznaczono osie symetrii tablic. 2008-03-07 P. R. KSA WETI PG 6 Metoda tablic Karnaugha (2) f (x1,x2,x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 = Ł Ł (2,3,4,7) Ł Ł a b c f(a,b,c) 0 0 0 0 0 0 1 0 bc 0 1 0 1 a 00 01 11 10 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 2008-03-07 P. R. KSA WETI PG 7 Metoda tablic Karnaugha (3) W tablicy Karnaugh poszukujemy elementów sąsiednich tego samego typu: 0 czynników zera funkcji, 1 składników jedności funkcji. Elementami sąsiednimi są cd 0 i 2 (0000 i 0010) z uwagi na poło\enie symetryczne ab 00 01 11 10 względem osi symetrii 00 1 0 0 1 tablicy 01 0 0 0 0 11 0 1 0 0 Elementami sąsiednimi są 10 0 1 0 0 9 i 13 (1001 i 1101) z uwagi na poło\enie w sąsiadujących polach tablicy tablicy 2008-03-07 P. R. KSA WETI PG 8 Metoda tablic Karnaugha (4) Z reguł sklejania Ax y +Axy + Axy + Axy = A (A+x+y)*(A+x+y)*(A+x+y)*(A+x+y) = A wynika, \e dla minimalizacji funkcji nale\y poszukiwać grup składników/czynników o liczebności 2, 4, 8 itd. Ogólnie o liczebności 28 elementów sąsiednich. Ka\da jedynka i ka\de zero mogą brać dowolną ilość razy w sklejaniu, co wynika z x+x=x (11). Ka\da utworzona grupa jedynek/zer reprezentuje bc jeden iloczyn/sumę zmiennych w postaci a 00 01 11 10 minimalnej funkcji. Stąd, 0 0 0 1 1 aby zachować wartość logiczną funkcji konieczne 1 1 0 1 0 jest, aby tworzenie grup objęło wszystkie jedynki/zera funkcji. 2008-03-07 P. R. KSA WETI PG 9 Metoda tablic Karnaugha (5) Algorytm: " wychodząc z postaci ZNPS lub ZNPI zapisujemy wartości funkcji (0 i 1) w tablicy Karnaugha; " dokonujemy sklejeń elementów sąsiednich (1 dla postaci sumacyjnej, 0 dla postaci iloczynowej) tworząc mo\liwie jak największe grupy pamiętając \e: sąsiednie są elementy zajmujące sąsiednie pola tablicy lub poło\one symetrycznie względem jej osi symetrii,liczebność grup musi być równa 2n patrz reguły sklejania; " staramy się utworzyć jak najmniejszą liczbę jak największych grup przy zachowaniu zasady pokrycia wszystkich 1(0) funkcji; " utworzone grupy reprezentują iloczyny (dla 1) lub sumy (dla 0) których suma (dla 2) lub iloczyn (dla 0) tworzą minimalną postać funkcji. Metoda tablic Karnaugha prowadzi do minimalnej (wyra\onej przy pomocy najmniejszej ilości zmiennych i wykonanych na nich operacji) postaci sumacyjnej (NPS) dla minimalizacji wg 1 lub postaci iloczynowej (NPI) dla minimalizacji wg 0. Nie jest to jednak\e postać minimalna globalnie, to znaczy spośród wszystkich mo\liwych reprezentacji! 2008-03-07 P. R. KSA WETI PG 10 Metoda tablic Karnaugha minimalna NPS Pojedyncza 1 reprezentuje pełny iloczyn zmiennych funkcji, jego postać odczytujemy analizując współrzędne pola a b c f(a,b,c) tablicy a=0, b=0, c=0. Pamiętając przyporządkowanie 0 0 0 1 przyjęte dla 0 0 1 0 postaci sumacyjnej xk <-> 1, xk <-> 0 0 1 0 0 otrzymujemy iloczyn a b c 0 1 1 0 bc 1 0 0 0 1 0 1 1 a 00 01 11 10 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 Para 1 reprezentuje iloczyn zmiennych funkcji, w którym wyeliminowano jedną zmienną na mocy operacji sklejania. Postać iloczynu odczytujemy analizując współrzędne pól tablicy a=1, b opis w obrębie grupy zmienia się, zmienna wyeliminowana, c=1. Pamiętając przyporządkowanie przyjęte dla postaci sumacyjnej xk <-> 1, xk <-> 0 f(a,b,c)mins= a b c + ac otrzymujemy iloczyn a c 2008-03-07 P. R. KSA WETI PG 11 Metoda tablic Karnaugha minimalna NPI Pojedyncze 0 reprezentuje pełną sumę zmiennych funkcji, a b c f(a,b,c) jego postać odczytujemy analizując współrzędne pola tablicy, pamiętając przyporządkowanie przyjęte dla 0 0 0 1 0 0 1 0 postaci iloczynowej xk <-> 1, xk <-> 0 0 1 0 0 0 1 1 0 bc 1 0 0 0 1 0 1 1 a 00 01 11 10 1 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 Para 0 reprezentuje sumę zmiennych funkcji, w której wyeliminowano jedną zmienną na mocy operacji sklejania. Postać sumy odczytujemy analizując współrzędne pól tablicy a=1, b opis w obrębie grupy zmienia się, zmienna wyeliminowana, c=0. Pamiętając przyporządkowanie przyjęte dla postaci sumacyjnej xk <-> 1, xk <-> 0 f(a,b,c)mini= (a+c)(a+c)(a+b) otrzymujemy iloczyn a + c 2008-03-07 P. R. KSA WETI PG 12 Więcej ni\ jedna postać minimalna Porównajmy przedstawione dwie wersje minimalizacji przykładowej funkcji bc a 00 01 11 10 0 1 0 0 0 f(a,b,c)mini= (a+c)(a+c)(a+b) 1 0 1 1 0 bc a 00 01 11 10 0 1 0 0 0 f(a,b,c)mini= (a+c)(a+c)(b+c) 1 0 1 1 0 Obie postacie są równowa\ne: 3 zmienne, 3 sumy, 2 iloczyny, 3 negacje. Świadczy to o tym, \e funkcja mo\e mieć więcej ni\ jedną postać minimalną. 2008-03-07 P. R. KSA WETI PG 13 Minimalizacja przykłady (1) bc a 00 01 11 10 0 0 0 1 1 1 1 1 1 0 f(a,b,c)min1= ab + ab + ac f(a,b,c)min2= ab + ab + bc Dwie postacie minimalne funkcji. W praktyce do realizacji wybiera się dowolnie jedną z równowa\nych postaci minimalnych. 2008-03-07 P. R. KSA WETI PG 14 Minimalizacja przykłady (2) cd ab 00 01 11 10 00 1 1 1 1 01 0 0 0 1 11 0 1 0 1 f(a,b,c,d)min=b + cd + acd 10 1 1 1 1 cd ab 00 01 11 10 00 1 1 0 1 01 0 1 1 0 11 0 0 1 0 f(a,b,c,d)min= bc + abd + abd + bcd 10 1 1 0 0 2008-03-07 P. R. KSA WETI PG 15 Minimalizacja przykłady (3) cd ab 00 01 11 10 00 1 0 0 1 01 0 1 1 0 11 0 1 1 0 f(a,b,c,d)min=bd + bd 10 1 0 0 1 Grupa 4 jedynek w środku tablicy jest nadmiarowa.Cztery cd konieczne do sklejenia pary ab 00 01 11 10 pokrywają wszystkie jedynki 00 0 0 1 0 funkcji. 01 1 1 1 0 11 0 1 1 1 f(a,b,c,d)min= abc + acd + abc + acd + bd 10 0 1 0 0 2008-03-07 P. R. KSA WETI PG 16 Minimalizacja przykłady (4) cde ab 000 001 011 010 110 111 101 100 00 0 1 1 1 1 0 0 0 01 1 1 1 1 1 0 0 1 11 0 1 1 0 0 1 1 0 10 0 1 1 0 0 1 1 0 f(a,b,c,d,e)min= ce + ae + ade + abe 2008-03-07 P. R. KSA WETI PG 17 Minimalizacja przykłady (5) bc a 00 01 11 10 0 1 1 0 1 f(a,b,c)min= (a+c)(a+b)(b+c) 1 1 0 0 0 bc a 00 01 11 10 0 0 1 0 0 f(a,b,c)min= c(a+b) 1 0 1 1 0 2008-03-07 P. R. KSA WETI PG 18 Minimalizacja przykłady (6) cd ab 00 01 11 10 00 0 0 1 1 01 0 1 1 0 11 0 1 1 0 f(a,b,c,d)min=(b+d)(a+d)(a+b+c) 10 0 1 1 0 cd ab 00 01 11 10 00 0 0 1 1 01 1 0 0 1 11 1 1 0 0 f(a,b,c,d )min= 10 0 1 1 0 = (a+b+c)(a+b+d)(a+b+c)(a+b+d) 2008-03-07 P. R. KSA WETI PG 19 Funkcje nie w pełni określone a b c f(a,b,c) 0 0 0 1 W tablicy obok przedstawiono przykład 0 0 1 0 funkcji nie w pełni określonej. X w 0 1 0 x kolumnie wartości funkcji oznacza, \e 0 1 1 0 funkcja mo\e w tym punkcie przyjąć 1 0 0 x wartość dowolną ze swojej 1 0 1 x przeciwdziedziny, a więc wartość albo 1. 1 1 0 0 1 1 1 1 Istnienie punktów nieokreśloności funkcji rozszerza mo\liwości jej minimalizacji,pozwalając na przyjęcie w punktach x wartości 0 albo1 w zale\ności od tego, która wersja umo\liwia uzyskanie prostszej postaci funkcji. 2008-03-07 P. R. KSA WETI PG 20 Minimalizacja funkcji nie w pełni określonych Przyjmując, \e funkcja w bc a 00 01 11 10 punktach nieokreśloności 2 i 3 0 0 1 0 0 przyjmuje wartość 0 1 0 1 0 0 bc uzyskujemy prostszą postać funkcji a 00 01 11 10 0 0 1 x x f(a,b,c)min= bc 1 0 1 0 0 bc a 00 01 11 10 0 0 1 1 0 bc 1 0 1 1 0 a 00 01 11 10 0 0 1 x 0 f(a,b,c)min= c 1 0 x 1 0 Uwaga: ka\da funkcja nie w pełni określona po minimalizacji staje się w pełni określona. 2008-03-07 P. R. KSA WETI PG 21 Implikant i implikant prosty Implikant funkcji f to taka funkcja g, \e je\eli f = 1, to w tym samym punkcie f = 1. Implikant zatem pokrywa jedną lub więcej jedynek funkcji. Implikant prosty funkcji f to taki iloczyn zmiennych, który jest implikantem i który zmniejszony o dowolną zmienną przestaje być implikantem. x1x2x3 x1x3+x1x2 x2x3 x2 x3 Sprawdz czy iloczyn x2x3 jest implikantem prostym funkcji 000 0 0 0 0 f = x1x3 +x1x2 001 1 0 0 1 010 0 0 1 0 Jest implikantem, co wynika z definicji i tabeli obok patrz 011 1 1 1 1 czerwone strzałki. Jest implikantem 100 0 0 0 0 prostym, bo po zmniejszeniu o 101 0 0 0 1 dowolną zmienną przestaje być 110 1 0 1 0 implikantem patrz niebieskie strzałki. 111 1 1 1 1 2008-03-07 P. R. KSA WETI PG 22 Implicent i implicent prosty Implicent funkcji f to taka funkcja h, \e je\eli f = 0, to w tym samym punkcie f = 0. Implicent zatem pokrywa jedno lub więcej zer funkcji. Implicent prosty funkcji f to taka suma zmiennych, która jest implicentem i która zmniejszona o dowolną zmienną przestaje być implicentem. Oczywiste jest (ale mo\e być udowodnione) twierdzenie, \e ka\da funkcja mo\e być przedstawiona w postaci wszystkich jej implikantów prostych postać NPS. Podobnie mo\na wykazać, \e ka\da funkcja mo\e być przedstawiona w postaci iloczynu wszystkich jej implicentów prostych. n m f = Ł gi = hi i=1 i=1 2008-03-07 P. R. KSA WETI PG 23 Funkcja w postaci sumy implikantów prostych Dokonując wszystkich mo\liwych sklejeń w wyra\eniu f = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 Otrzymujemy zestaw wszystkich implikantów prostych funkcji f f = x1x2 + x2x3+x1x2+ x1x3 Z tablicy obok widać, \e do pokrycia wszystkich x1x2x3 x1x2x3 x1x2x3 x1x2x3 x1x2x3 jedynek funkcji nie x1x2 X X X potrzeba wszystkich x2x3 X X X implikntów, w wystarczy x1x2 X X X pewien ich podzbiór x1x3 X X zwany zbiorem X X X X X implikantów zasadniczych. 2008-03-07 P. R. KSA WETI PG 24 Metoda Quine a McCluskey a Przedstawione wy\ej rozumowanie stanowi podstawę algorytmicznej metody minimalizacji zwanej metodą Quine a McCluskey a. Metoda ta jest dwuetapowa: " w pierwszym etapie znajduje się zbiór wszystkich implikantów prostych lub implicentów prostych funkcji w zale\ności od tego czy poszukujemy minimalnej postaci odpowiednio NPS czy NPI; " w drugim etapie spośród zbioru wszystkich implikantów lub implicentów prostych wybiera się zbiór implikantów lub implicentów zasadniczych, czyli minimalny zestaw implikantów / implicentów prostych pokrywających wszystkie jedynki/ zera funkcji. 2008-03-07 P. R. KSA WETI PG 25 Metoda Quine a McCluskey a procedura (1) 1. Wszystkie składniki ZNPS(czynniki ZNPI) wypisuje się w postaci kolumny liczb binarnych pisząc 0(1) zamiast xi oraz1(0) zamiast xi. 2. Porządkuje się otrzymaną kolumnę liczb binarnych według rosnącej liczby jedynek. 3. W uporządkowanej kolumnie wydziela się grupy liczb o liczbie jedynek równej 0, 1, 2, 3 itd. 4. Tworzy się następną kolumnę liczb binarnych, która jest rezultatem sklejeń liczb w kolumnie poprzedniej, przy czym: " skleja się tylko liczby nale\ące do sąsiednich grup; " sklejane liczby mogą ró\nić się tylko na jednej pozycji; " wynik sklejania jest liczbą, w której w miejsce ró\niących je cyfr wstawiono symbol - ; " liczby biorące udział w sklejaniu oznacza się np. symbolem v ; " ka\da liczba mo\e brać udział w sklejaniu dowolną ilość razy; " nale\y wyczerpać wszystkie mo\liwości sklejeń; " Wynikisklejeń pomiędzy poszczególnymi grupami tworzą nowe grupy; " Wyników powtarzających się nie wpisujemy. 2008-03-07 P. R. KSA WETI PG 26 Metoda Quine a McCluskey a procedura (2) 5. Ka\dą następną kolumnę tworzymy z poprzedniej według tych samych zasad uwzględniając dodatkowo, \e warunkiem dalszych sklejeń jest wystąpienie symbolu - na tych samych pozycjach. 6. Proces sklejania kończy się, gdy w ostatnio otrzymanej kolumnie nie mo\na ju\ przeprowadzić dalszych sklejeń. 7. Liczbami (ze wszystkich kolumn), które nie podległy sklejeniom, opisujemy wiersze tablicy implikantów (implicentów), gdy\ odpowiadają one implikantom (implicentom) prostym. Liczbami odpowiadającymi składnikom ZNPS (czynnikom ZNPI) opisujemy kolumny tej tablicy. 8. Przy pomocy tak opisanej tablicy eliminujemy zbędne implikanty (implicenty), a pozostałe przekształcamy do jawnej postaci na mocy odpowiedniego przyporządkowania. Punkty 1-6 procedury opisują przebieg poszukiwania zbioru wszystkich implikantów (implicentów) prostych funkcji.Punkty7 i 8 opisują metodę znajdowania zbioru implikantów (implicentów) zasadniczych. 2008-03-07 P. R. KSA WETI PG 27 Metoda Quine a McCluskey a przykład (1) y = abcd + abcd + abcd + abcd + abcd + abcd + abcd + abcd 0011 0100 v 010- -1-1 0100 0011 v 0-11 0101 0101 v 01-1 v 0111 1001 v -101 v 1001 0111 v 1-01 1101 1101 v -111 v 1110 1110 v 11-1 v 1111 1111 v 111- Zaznaczone czerwoną czcionką liczby tworzą zbiór wszystkich implikantów prostych naszej funkcji. 2008-03-07 P. R. KSA WETI PG 28 Metoda Quine a McCluskey a przykład (2) abcd 0011 0100 0101 0111 1001 1101 1110 1111 010- X X X 0-11 X X X 1-01 X X X 111- X X X -1-1 X X X X X X X X Jak widać z tabeli implikant -1-1 jest nadmiarowy. Minimalna postać funkcji: f = abc + acd + acd + abc 2008-03-07 P. R. KSA WETI PG 29 Metoda Quine a McCluskey a przykład (3) Jak widać z tabeli implikant -1-1 (bd) jest nadmiarowy. Minimalna postać funkcji: f = abc + acd + acd + abc Porównajmy osiągnięty wynik z poprzednio analizowanym przykładem zastosowania metody tablicy Karnaugha. Grupa 4 jedynek w środku tablicy jest nadmiarowa.Cztery cd konieczne do sklejenia pary ab 00 01 11 10 pokrywają wszystkie jedynki 00 0 0 1 0 funkcji. 01 1 1 1 0 11 0 1 1 1 f(a,b,c,d)min= abc + acd + abc + acd + bd 10 0 1 0 0 2008-03-07 P. R. KSA WETI PG 30 Metoda Quine a McCluskey a przykład (4) 0011 3 0100 v 4 v 010- 4,5(1) -1-1 3,5,7,13(2,8) 0100 4 0011 v 3 v 0-11 3,7(4) 0101 5 0101 v 5 v 01-1 v 3,5(2) v 0111 7 1001 v 9 v -101 v 5,13(8) v 1001 9 0111 v 7 v 1-01 9,13(4) 1101 13 1101 v 13 v -111 v 7,15(8) v 1110 14 1110 v 14 v 11-1 v 13,15(2) v 1111 15 1111 v 15 v 111- 14,15(1) f = Ł(3,4,5,7,9,13,14,15) implikanty proste mo\na znalezć znacznie szybciej przeprowadzając sklejenia wprost na dziesiątkowym zapisie numerów składników jedności. Ró\nicy składników na jednej pozycji odpowiada ró\nica ich numerów o 2n. Sklejane są numery składników jedności np. 4,5. Numer w nawiasie wskazuje wagę pozycji, na której w składniku jedności występuje symbol - . 2008-03-07 P. R. KSA WETI PG 31 Obszary zastosowań metod minimalizacji Metoda tablic Karnaugha jest przyjazna dla u\ytkownika posługującego się kartką papieru i ołówkiem. Jednak\e jej wadą jest to, \e reguły sąsiedztwa w tablicy Karnaugha komplikują się ze wzrostem liczby zmiennych. Wią\e się to ze wzrostem liczby osi symetrii tablicy. Utrudnia to implementację.metody w postaci programu komputerowego. W praktyce metoda jest ograniczona do minimalizacji funkcji o 5-6 zmiennych. Metoda Quine a McCluskey a jest niezbyt przyjazna dla u\ytkownika posługującego się kartką papieru i ołówkiem. Jednak\e jej zaletą jest stałość reguł niezale\nie od liczby zmiennych minimalizowanych funkcji. Metoda doskonale nadaje się do implementacji w postaci programu komputerowego. 2008-03-07 P. R. KSA WETI PG 32