1 Minimalizacja funkcji boolowskichZagadnienie 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.
2 Metody minimalizacji funkcji boolowskichGraficzne Analityczne Komputerowe Absolutnie nieprzydatne do obliczeń komputerowych Tablice Karnaugha Metoda Quine’a – McCluskey’a Omówienie całego Espresso jest nierealne! Pierwsze skuteczne narzędzie do minimalizacji wieloargumentowych i wielowyjściowych funkcji boolowskich (Uniwersytet Kalifornijski w Berkeley) : Metoda i system Espresso (1984) Ze względu na ograniczony zakres wykładu omówimy wyłącznie: Metodę tablic Karnaugha Metodę Ekspansji (przykładową procedurę Espresso)
3 Metoda tablic KarnaughaTablica 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 1 00 01 11 10 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). Korzysta się z faktu, że dla dowolnego A: - 1 Dla uzyskania efektu sąsiedztwa współrzędne pól opisuje się kodem Gray’a
4 Kod Gray’a 1 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
5 Przykłady sklejeń x2x3 x1 00 01 11 10 1 x3 x1x2 1 00 01 11 10 x4x5x2x3 x1 00 01 11 10 1 x3 x1x2 1 00 01 11 10 x4x5 x1x2x3 00 01 11 10 000 001 011 010 110 111 101 100 x3x4 x1x2 00 01 11 10
6 Przykładzik f = x1x2 + x3 1 x3 x1x2 00 01 11 10 1 1 11) Wpisanie funkcji do tablicy x1 x2 x3 f 1 2 3 4 5 6 7 2) Zakreślanie pętelek Z pętelkami kojarzymy iloczyn zmiennych (prostych lub zanegowanych) x3 x1x2 1 00 01 11 10 1 1 1 f = x1x2 + x3
7 Wpisywanie funkcji ułatwia……opis kratek tablic Karnaugha wg NKB x3 x1x2 1 00 01 2 3 11 6 7 10 4 5 x2x3 x1 00 01 11 10 1 3 2 4 5 7 6 x4x5 x1x2x3 00 01 11 10 000 1 3 2 001 4 5 7 6 011 12 13 15 14 010 8 9 110 24 25 27 26 111 28 29 31 30 101 20 21 23 22 100 16 17 19 18 x3x4 x1x2 00 01 11 10 1 3 2 4 5 7 6 12 13 15 14 8 9
8 Przykładzik 1 x3 x1x2 00 01 11 10 1 1 1 Wpisanie funkcji do tablicy1 2 3 4 5 6 7 x3 x1x2 1 00 01 2 3 11 6 7 10 4 5 x3 x1x2 1 00 01 11 10 1 1 1 Zakreślanie pętelek i kojarzenie z nimi odpowiednich iloczynów jest trudniejsze
9 Przykład = x f x3 x1x2 1 00 01 11 10 x1 x3 x2 1 1 x1 x3 x2 1 x1 x2 x3x3 x1x2 1 00 01 11 10 x1 x3 x2 1 = 3 2 x f 1 x1 x3 x2 1 x1 x2 x3 x3 1 x1 x2
10 Przykład x3x4 x1x2 00 01 11 10 1 3 2 4 5 7 6 12 13 15 14 8 9 f = 0, 5, 6, 7, 10, (2, 3, 11, 12) x3x4 x1x2 00 01 11 10 1 –
11 Implikant funkcji boolowskiej Implikant danej funkcji f jest to iloczyn literałów (zmiennych prostych i zanegowanych) o następującej własności: dla wszystkich kombinacji wartości zmiennych, dla których implikant jest równy jedności, również funkcja f jest równa jedności. Prosty implikant Prosty implikant jest to implikant, który zmniejszony o dowolny literał przestaje być implikantem.
12 Implikant funkcji boolowskiejW interpretacji tablic Karnaugha implikant prosty odpowiada grupie jedynek (i kresek), której nie można powiększyć. Implikant x3x4 x1x2 00 01 11 10 1 – To nie jest Implikant! Prosty implikant
13 Kanoniczna forma sumacyjna (suma iloczynów)Formy kanoniczne Kanoniczna forma sumacyjna (suma iloczynów) Kanoniczna forma iloczynowa (iloczyn sum)
14 Kanoniczna forma sumacyjnax1 x2 x3 f 1 2 3 4 5 6 7
15 Kanoniczna forma iloczynowax1 x2 x3 f 1 2 3 4 5 6 7
16 Formy kanoniczne – realizacje bramkoweRealizacja AND-OR Realizacja NAND Realizacja OR-AND Realizacja NOR
17 Realizacja AND-OR x3 x1x2 1 00 01 11 10
18 Realizacja NAND x3 x1x2 1 00 01 11 10
19 Realizacja OR-AND x3 x1x2 1 00 01 11 10
20 Realizacja NOR x3 x1x2 1 00 01 11 10
21 Przykład f = 0, 5, 6, 7, 10, (2, 3, 11, 12) x3x4 x1x2 00 01 11 10 1 –
22 Układy wielowyjściowe - przykładcd ab 00 01 11 10 1 3 2 4 5 7 6 12 13 15 14 8 9 1 10 11 01 00 cd ab 1 10 11 01 00 cd ab 1 10 11 01 00 cd ab 7 bramek AND
23 Układy wielowyjściowe - przykładcd ab 00 01 11 10 1 cd ab 00 01 11 10 1 cd ab 00 01 11 10 1 1 2 3 4 5 bramek AND 1 2 5 … a poprzednio było 7 bramek AND!!! 4 3 5