Minimalizacja funkcji boolowskich Zagadnienie intensywnych prac badawczych od początku lat pięćdziesiątych 2 wieku. Ogromny wzrost zainteresowania minimalizacją f.b. powstał ponownie w latach 8. rzyczyna: możliwość realizacji układów logicznych w strukturach scalonych o złożoności milionów bramek logicznych. Z
Metody minimalizacji funkcji boolowskich Graficzne Analityczne Komputerowe Absolutnie nieprzydatne do obliczeń komputerowych ablice Karnaugha Metoda Quine a McCluskey a Omówienie całego Espresso jest ierwsze skuteczne narzędzie do minimalizacji wieloargumentowych nierealne! i wielowyjściowych funkcji boolowskich (Uniwersytet Kalifornijski w Berkeley) : Metoda i system Espresso (984) Z Ze względu na ograniczony zakres wykładu omówimy wyłącznie: Metodę tablic Karnaugha Metodę Ekspansji (przykładową procedurę Espresso) 2
Metoda tablic Karnaugha ablica K. jest prostokątem zło onym z 2 n kratek, z których ka da reprezentuje jeden pełny iloczyn (minterm) zmiennych binarnych. 2-7,9 5 8: 8,794. :3. 9,-. 7 3. 28 9 44 3,. 5 3 2 4. 342 57 547 / 4,38.4-4 8-54,9,-. 8 8 /3 7,9 47 89, 8, 9: /,/4 4 3 4 A + A = A Z + 2 3 2 3 2 = Dla uzyskania efektu sąsiedztwa współrzędne pól opisuje się kodem Gray a 3
Kod Gray a Z 4
rzykładzik 2 f ) pisanie funkcji do tablicy 2) Zakreślanie pętelek 2 3 Z pętelkami kojarzymy iloczyn zmiennych (prostych lub zanegowanych) 4 5 6 7 2 f = 2 + Z 5
pisywanie funkcji ułatwia opis kratek tablic Karnaugha wg NKB 2 2 6 4 3 7 5 2 4 5 3 7 2 6 ( ) ANKB = j= AD = L a j2 4 5 2 3 2 n j Z 4 2 4 2 8 5 3 9 3 7 5 2 6 4 4 2 8 24 28 2 6 5 3 9 25 29 2 7 7 5 27 3 23 9 6 4 26 3 22 8 6
rzykładzik 2 f pisanie funkcji do tablicy 2 3 4 5 6 7 2 2 2 6 4 3 7 5 Z Zakreślanie pętelek i kojarzenie z nimi odpowiednich iloczynów jest trudniejsze 7
rzykład 2 2 f = 2 3 + 2 + Z 2 2 2 2 2 2 8
Algorytm minimalizacji 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. 9
rzykłady pętelek 2 2 4 5 2 Z 4 2
rzykład - minimalizacja dla KS f = Σ[, 5, 6, 7,, (2, 3,, 2)] 4 2 3 2 4 5 7 6 4 2 2 8 3 9 5 4 f = + + + 2 2 4 2 4 Z
rzykład - minimalizacja dla K Różnice wynikają ze sposobu interpretacji zmiennej w szystkie czynności są takie same Kanonicznej ostaci Sumy: Kanonicznej ostaci loczynu: e =,, gdy e gdy e = = e =,, gdy e = gdy e = Z c 9: 89 4239,7 9 4/,9..4 chodzą na wykłady) 2
rzykład f = Σ[, 5, 6, 7,, (2, 3,, 2)] 4 2 f = ( ) ) ( ) ( ) ( 2 2 4 2 3 4 Z 3
mplikant funkcji boolowskiej mplikant 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. rosty implikant jest to implikant, który zmniejszony o dowolny literał przestaje być implikantem. Z 4
mplikant funkcji boolowskiej 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ć. 4 2 mplikant 3 4 rosty implikant o nie jest mplikant! Z 5
Realizacje bramkowe Realizacja AND-OR (wg sumy iloczynów) y = + 2 + 3 23 Realizacja OR-AND (wg iloczynu sum) y = ( + 2 )( + 3 )( 2 + 3 ) Z 6
Sum-of-products (SO) Realizacja AND-OR 2 y + = 2 + 3 2 3 2 3 2 3 y Z 7
roduct-of-sums (OS) Realizacja OR-AND 2 y = ( + 2 )( + 3 )( 2 + 3 ) 2 3 2 3 y Z 8
nne operatory (bramki) logiczne NAND y = a b NOR y = a + b EX-OR y = a b = ab + ab NAND (NO-AND) NOR (NO-OR) EXOR (Eclusive OR) Z 9
nne realizacje bramkowe Realizacja NAND Realizacja NOR y = + 2 + 3 23 Z 2
23 3 23 23 Realizacja NAND 2 y = 2 + 3 + 23 y = 2 3 23 Z 2 3 2 3 y 2
Realizacja NOR 2 y = ( + 2 )( + 3 )( 2 + 3 ) y = + + 2 + + 3 + 2 3 2 3 2 3 y Z 22
Minimalizacja funkcji wielowyjściowych rzykład sygnalizujący problem: Należy zaprojektować zespół trzech funkcji czterech argumentów: f = Σ(3,7,,4,5) f 2 = Σ(3,7,2,3,4,5) f 3 = Σ(3,7,,2,3,5) Z 23
rzykład sygnalizujący problem Jeśli każdą funkcję zminimalizujemy oddzielnie: ab cd cd ab ab cd f = abc + cd f 2 = ab+ acd f 3 = abc+ cd Z 24
to uzyskamy a b c c d a b a c d a b c c d f f 2 f 3 Do realizacji tych trzech funkcji potrzebujemy 9 bramek. Czy można zredukować ich liczbę? atrz następna plansza. Z 25
usuwamy niektóre bramki a b c c d a b a c d f f 2 Bramka AND dla f może być usunięta przez wykorzystanie bramki AND z f 3. a b c c d f 3 eraz potrzebujemy 8 bramek..cdn. Z 26
co dalej a b c c d a b a c d a b c c d f f 2 f 3 Bramkę AND zf 2 można usunąć przez wykorzystanie faktu ab = abc + abc eraz potrzebujemy zaledwie 7 bramek. Z 27
Komentarz rzykład sugeruje, że w realizacji zespołu funkcji stosowanie minimalnej sumy implikantów prostych nie zawsze prowadzi do rozwiązania z minimalnym kosztem. Z 28
rzykład 3.5 z książki SUL y = Σ(2,3,5,7,8,9,,,3,5) y 2 = Σ(2,3,5,6,7,,,4,5) cd ab 3 2 y 3 = Σ(6,7,8,9,3,4,5) 4 2 5 3 7 5 6 4 8 9 cd ab cd ab cd ab Z y = ab + bd + bc y 2 = c+ abd y 3 = bc+ acd+ abc 7 bramek AND 29
rzykład 3.5 z książki SUL cd ab cd ab cd ab Z 2 3 4 y = bc+ abd + abd +abc y 2 = bc 2 5 +abd +bc 3 4 5 +abc y = abd + bc 3 5 bramek AND a poprzednio było 7 bramek AND!!! 3