Minimalizacja funkcji boolowskich Zagadnienie intensywnych prac badawczych od początku lat pięćdziesiątych 20 wieku. Ogromny wzrost zainteresowania minimalizacją f.b. powstał ponownie w latach 80. rzyczyna: możliwość realizacji układów logicznych w strukturach scalonych o złożoności milionów bramek logicznych. adeusz ASC Z
Minimalizacja funkcji boolowskich ciągu kilkudziesięciu lat powstało wiele metod Graficzne Analityczne Komputerowe Najprostszą metodą minimalizacji jest metoda tablic Karnaugha Mimo swoich niedoskonałości metoda K. jest często wykładaną metodą minimalizacji funkcji boolowskich. aradoksalnie to co jest jej wadą prostota jest jednocześnie jej zaletą, gdyż można szybko ją opanować i stosować w obliczeniach ręcznych adeusz Z Należy jednak pamiętać, że w praktyce projektowania inżynierskiego metoda tablic K. jest absolutnie nieprzydatna. 2
ablice Karnaugha adeusz Z ablica K. jest prostokątem złożonym z 2 n kratek, zktórych każda reprezentuje jeden pełny iloczyn (minterm) zmiennych binarnych. x 3 00 0 0 kratki wpisuje się wartości funkcji. - 0 0 0 0 xxx xxx 2 3 2 3 + 2 tablicy K. różniącym się tylko o negację pełnym iloczynom przyporządkowane są leżące obok siebie pola tablicy (sąsiednie kratki). Ułatwia to skorzystanie z faktu, że dla dowolnego A: A x + Ax = A = xx Dla uzyskania efektu sąsiedztwa współrzędne pól opisuje się kodem Gray a 3
Kod Gray a 00 000 0000 0 0 0 00 0 00 000 00 000 0 00 0 0 000 00 0 00 0 00 00 000 00 0 0 0 00 0 00 adeusz Z Z 4 000
rzykładzik wprowadzający do metody adeusz Z x 3 f 0 0 0 0 0 0 2 0 0 3 4 0 0 0 5 6 7 ) pisanie funkcji do tablicy 2) Zakreślanie pętelek Z pętelkami kojarzymy iloczyn zmiennych (prostych lub zanegowanych) x 3 00 0 0 f = x + x 3 5
pisywanie funkcji ułatwia opis kratek tablic Karnaugha wg NKB adeusz Z x 3 00 0 2 3 6 7 0 4 5 x 3 x 4 00 3 2 0 4 5 7 6 2 3 5 4 0 8 9 0 x 2 x 3 x 0 3 2 4 5 7 6 x 3 00 0 0 A n ( ) j D = LANKB = aj2 j= 0 x 3 f 0 0 0 0 0 0 2 0 0 3 4 0 0 0 5 6 7 6
Zakreślanie pętelek i tworzenie iloczynów x 3 x x x 3 2 x 00 0 x 2 0 0 0 0 0 0 0 f = x +xx 2 x +x x 3 2 3 0 0 adeusz Z x x 3 0 3 0 x 3 x x 2 0 0 0 0 0 0 0 0 x2 x 0 0 0 0 0 0 0 0 x 2 x 0 0 x 2 0 0 x 3 x 3 7
Algorytm minimalizacji adeusz Z ) Zapisujemy funkcję do tablicy K. 2) Zakreślamy pętelki. a) ętelki zakreślamy wokół grup sąsiadujących kratek zawierających -ki albo -ki i (kreski). b) Liczba kratek objętych pętelka musi wynosić:, 2, 4,,2 k. c) Staramy się objąć pętelką jak największą liczbę kratek. 3) ętelki zakreślamy tak długo, aż każda -ka będzie objęta co najmniej jedną pętelką, pamiętając o tym aby pokryć wszystkie -ki możliwie minimalną liczbą pętelek. 4) Z każdą pętelką kojarzymy iloczyn zmiennych prostych lub zanegowanych. Suma tych iloczynów, to minimalne wyrażenie boolowskie danej funkcji. 8
rzykłady prawidłowych pętelek adeusz Z xx x 2 00 0 x 3 x 2 x 3 x 0 x 4 x 5 0 x x 2x 3 000 x x 00 3 4 0 00 0 0 00 0 0 00 9
rzykładzik dla funkcji zupełnej adeusz Z a b c d f 0 000 000 0 2 00 3 00 0 4 000 0 5 00 6 00 0 7 0 0 8 00 9 00 0 0 2 0 3 0 4 5 ab cd 00 3 2 0 4 5 7 6 2 3 5 4 0 8 9 0 f = Σ(0, 2, 5, 8, 9, 0,, 2, 3, 4, 5) cd ab 00 0 0 0 0 0 f = a + bd +bcd 0
rzykład funkcja niezupełna f = Σ[0, 5, 6, 7, 0, (2, 3,, 2)] ] xx 3 x 4 0 0 0 0 0 0 0 0 0 x 3 x 4 xx x 2 00 3 2 0 4 5 7 6 2 3 5 4 0 8 9 0 Czy to ma znaczenie? adeusz Z f = x + + x 3 x x x + x 2 x 3 x 2 4 x2x4 f = xx x x + xx x x + xx x x + xx x x + xx x x 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4
Różne wyniki f = Σ[0, 2, 3, 4, 5, 7)] c ab 00 0 0 0 c ab 00 0 0 0 adeusz Z = a b + ac + bc = a b + bc + ac 2
mplikant funkcji boolowskiej Celem minimalizacji jest reprezentacja funkcji w postaci sumy iloczynów dlatego taki najkrótszy iloczyn nazywa się implikantem v i v j v k + v p v q v r v s + (v oznacza afirmację albo negację zmiennej x) i j k p q r s z najmniejszą liczbą składników oraz najmniejszą łączną liczbą literałów, co zapewnia realizację z najmniejszą liczbą bramek AND adeusz f czyli najmniejszą liczbą połączeń (ścieżek metalizowanych) Z 3 i najmniejszą liczbą wejść do tych bramek
mplikant funkcji boolowskiej mplikantdanej funkcji f jest to iloczyn literałów (zmiennych prostych i zanegowanych) taki, że odpowiadający mu zbiór wektorów binarnych nie zawiera wektora zerowego funkcji. adeusz rosty implikantjest to implikant, który zmniejszony o dowolny literał przestaje być implikantem. Z 4
f = Σ[0, 5, 6, 7, 0, (2, 3,, 2)] x xx 2 3 rzykład z planszy x 3 x 4 00 3 2 0 4 5 7 6 jest implikantem, 0 2 3 5 4 bo zbiór wektorów: 0 0 8 9 0 adeusz Z x 3x 4 0 0 0 0 0 0 0 0 0 f = nie zawiera żadnego wektora (mintermu), dla którego wartość funkcji jest 0 Ale nie jest to implikant prosty,gdyż można usunąć x uzyskując: x 2 x 3 x + x + x x + x 3 2 x 3 x 2 4 xx2x4 5
mplikant funkcji boolowskiej- interpretacja interpretacji tablic Karnaugha implikant odpowiada prawidłowo zakreślonej grupie jedynek (i kresek). Natomiast implikant prosty odpowiada grupie jedynek (i kresek), której nie można powiększyć. adeusz Z x 3 x 4 0 0 0 0 0 0 0 0 0 mplikant xx3x4 rosty implikant o nie jest mplikant! x x 3 6