PDF - 267 kB - Tadeusz Łuba
Transkrypt
PDF - 267 kB - Tadeusz Łuba
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. Przyczyna: możliwość realizacji układów logicznych w strukturach scalonych o złożoności milionów bramek logicznych. I T P Tadeusz W Łuba ASIC ZCB ZPT 1 Minimalizacja funkcji boolowskich W 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. Paradoksalnie to co jest jej wadą – prostota – jest jednocześnie jej zaletą, gdyż można szybko ją „opanować” i stosować w obliczeniach ręcznych… I T P Tadeusz W Łuba ZCB Należy jednak pamiętać, że w praktyce projektowania inżynierskiego metoda tablic K. jest absolutnie nieprzydatna. ZPT 2 Tablice Karnaugha Tablica K. jest prostokątem złożonym z 2n kratek, z których każda reprezentuje jeden pełny iloczyn (minterm) zmiennych binarnych. W kratki wpisuje się wartości funkcji. x3 x1x2 00 01 11 10 I T P Tadeusz W Łuba ZCB ZPT 0 1 - 0 1 1 1 0 0 0 W 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: x1 x2 x3 + x1 x2 x3 = x1 x2 A x + Ax = A Dla uzyskania efektu sąsiedztwa współrzędne pól opisuje się kodem Gray’a 3 Kod Gray’a 0 1 I T P Tadeusz W Łuba ZCB 00 01 11 10 000 001 011 010 110 111 101 100 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 ZPT 4 Przykładzik wprowadzający do metody I T P Tadeusz W Łuba 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 1) Wpisanie funkcji do tablicy 2) Zakreślanie pętelek Z pętelkami kojarzymy iloczyn zmiennych (prostych lub zanegowanych) x3 0 1 6 1 1 0 1 x 1x 2 7 1 1 1 1 00 0 1 01 0 1 11 1 0 1 1 10 f = x 1x 2 + x 3 ZPT 5 Wpisywanie funkcji ułatwia… …opis kratek tablic Karnaugha wg NKB x3 x1x2 0 1 00 0 1 01 2 3 11 6 7 10 4 5 ZCB 11 0 0 1 3 2 1 4 5 7 6 0 1 00 0 1 x 1x 2 11 10 A D = L(A NKB ) = ∑ a j 2 j 10 j=0 x3 x3x4 00 01 x1x2 I T P Tadeusz W Łuba n− −1 1 x2x3 00 01 x1 00 0 1 3 2 01 0 1 01 4 5 7 6 11 11 12 13 15 14 10 1 0 1 1 10 8 11 10 9 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 ZPT 6 Zakreślanie pętelek i tworzenie iloczynów x3 x1x2 I T P Tadeusz W Łuba ZCB ZPT 0 1 00 0 0 01 1 0 11 1 1 10 1 0 x1 x3 x2 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 x1 x3 x2 0 0 0 0 0 x1 x3 x2 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 x1 x1 f = x 2 x 3 + x 1x 2 + x 1x 3 x1 x3 x2 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 x3 x3 1 x2 x2 x2 7 Algorytm minimalizacji 1) Zapisujemy funkcję do tablicy K. 2) Zakreślamy pętelki. a) Pętelki zakreślamy wokół grup sąsiadujących kratek zawierających 1-ki albo 1-ki i „–” (kreski). b) Liczba kratek objętych pętelka musi wynosić: 1, 2, 4, …,2k. c) Staramy się objąć pętelką jak największą liczbę kratek. 3) Pętelki zakreślamy tak długo, aż każda 1-ka będzie objęta co najmniej jedną pętelką, pamiętając o tym aby pokryć wszystkie 1-ki możliwie minimalną liczbą pętelek. I T P Tadeusz W Łuba ZCB ZPT 4) Z każdą pętelką kojarzymy iloczyn zmiennych prostych lub zanegowanych. Suma tych iloczynów, to minimalne wyrażenie boolowskie danej funkcji. 8 Przykłady prawidłowych pętelek… x3 x1x2 0 1 x2x3 00 01 x1 11 10 0 00 1 01 11 x4x5 00 01 x1x2x3 10 11 10 000 x3x4 00 01 x1x2 I T P Tadeusz W Łuba ZCB ZPT 001 11 10 011 00 010 01 110 11 111 10 101 100 9 Przykładzik dla funkcji zupełnej I T P Tadeusz W Łuba ZCB ZPT 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 abcd f 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 cd ab 00 cd ab 00 01 11 10 00 0 1 3 2 01 4 5 7 6 11 12 13 15 14 10 8 9 11 10 01 11 10 00 01 11 10 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 f = a + b d + b cd f = Σ(0, 2, 5, 8, 9, 10, 11, 12, 13, 14, 15) 10 Przykład – funkcja niezupełna f = Σ[0, 5, 6, 7, 10, (2, 3, 11, 12)] x3x4 00 01 x1x2 I T P Tadeusz W Łuba ZCB ZPT f= 11 10 00 1 0 – – 01 0 1 1 1 11 – 0 0 0 10 0 0 – 1 x3x4 00 01 x1x2 11 10 00 0 1 3 2 01 4 5 7 6 11 12 13 15 14 10 8 11 10 9 Czy to ma znaczenie? x1x 3 + x 2 x 3 +x1x 2 x 4 +x1x 2 x 4 f = x x x x +x x x x +x x x x +x x x x +x x x x 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 11 Różne wyniki f = Σ[0, 2, 3, 4, 5, 7)] c ab 00 01 11 10 1 1 0 1 1 0 1 1 1 = ab + a c + bc c ab 00 01 11 10 0 1 1 0 1 1 0 1 1 1 f ZCB f I T P Tadeusz W Łuba 0 = ab + bc + ac ZPT 12 Implikant funkcji boolowskiej Celem minimalizacji jest reprezentacja funkcji w postaci sumy iloczynów …dlatego taki najkrótszy iloczyn nazywa się implikantem vivjvk + vpvqvrvs +… (v oznacza afirmację albo negację zmiennej x) z najmniejszą liczbą składników oraz najmniejszą łączną liczbą literałów, co zapewnia realizację… z najmniejszą liczbą bramek AND f I T P Tadeusz W Łuba …czyli najmniejszą liczbą połączeń (ścieżek metalizowanych) ZCB ZPT i najmniejszą liczbą wejść do tych bramek 13 Implikant funkcji boolowskiej Implikant Implikant danej 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. Prosty implikant jest to implikant, który zmniejszony o dowolny literał przestaje być implikantem. I T P Tadeusz W Łuba ZCB ZPT 14 Przykład z planszy 11 f = Σ[0, 5, 6, 7, 10, (2, 3, 11, 12)] xx x 1 2 10 1010 jest implikantem, bo zbiór wektorów: 11 1011 3 x3x4 00 01 x1x2 I T P Tadeusz W Łuba 11 10 00 1 0 – – 01 0 1 1 1 11 – 0 0 0 10 0 0 – 1 x3x4 x1x2 00 01 11 10 00 0 1 3 2 01 4 5 7 6 11 12 13 15 14 10 8 9 11 10 nie zawiera żadnego wektora (mintermu), dla którego wartość funkcji jest 0 Ale nie jest to implikant prosty, gdyż można usunąć x1 uzyskując: x 2x 3 f = x 1x 3 + x 2 x 3 + x 1x 2 x 4 + x 1x 2 x 4 ZCB ZPT 15 Implikant funkcji boolowskiej - interpretacja W 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ć. x3x4 00 01 x1x2 I T P Tadeusz W Łuba Implikant 11 10 00 1 0 – – 01 0 1 1 1 11 – 0 0 0 10 0 0 – 1 x1x 3 x 4 Prosty implikant x1x 3 To nie jest Implikant! ZCB ZPT 16