Wstęp do Techniki Cyfrowej... Algebra Boole a
Po co AB? Świetne narzędzie do analitycznego opisu układów logicznych. 1854r. George Boole opisuje swój system dedukcyjny. Ukoronowanie zapoczątkowanych w starożytności prac nad usystematyzowaniem reguł wnioskowania. Różne formy definicji: 1904 E. V. Huntington 1938 C. E. Shannon algebra binarnej sieci przełączającej.
Definiowanie systemu algebraicznego zbiór elementów rozważanych zbiór operacji na elementach zbiór relacji między elementami aksjomaty charakteryzujące operacje i relacje
Definicja Algebra Boole a zbiór elementów (zwyczajowo oznaczony B), w którym istnieją co najmniej dwa różne elementy, istnieją dwa elementy wyróżnione (zakładamy, że są one różne) są określone dwa operatory dwuargumentowe, oznaczone najczęściej symbolami sumy i iloczynu (jak w zwykłej algebrze) oraz jeden operator jednoargumentowy zwany dopełnieniem ~a; elementy (a + b), (a b), ~ a należą do B nie wychodzimy poza B, jest określona relacja równoważności, oznaczona =, spełniająca warunek: dla każdego a,b,c B, jeśli a = b, to ~a = ~b oraz a + c = b + c i a c = b c
Definicja c.d. operatory sumy logicznej, iloczynu logicznego i dopełnienia spełniają dla wszystkich elementów zbioru B następujące postulaty (aksjomaty)(a,b,c B): A 1 postulat przemienności sumy i iloczynu A 2 postulat wzajemnej rozdzielności sumy i iloczynu A 3 postulat o elemencie identycznościowym: dla operatora sumy identycznościowym jest element wyróżniony oznaczony 0, tzn. a + 0 = a, dla operatora iloczynu identycznościowym jest element wyróżniony oznaczony 1, tzn. a 1 = a, A 4 postulat o dopełnieniu: dla operatora sumy i iloczynu obowiązują zależności: a + ~a = 1 oraz a ~a = 0
Przykład algebry Boole a Elementy B podzbiory zbioru {a, b} {-} (zbiór pusty) element wyróżniony 0 {a} = e 1 {b} = e 2 {a,b} element wyróżniony 1 Przyjmujemy znane operatory sumy, iloczynu i dopełnienia zbiorów.
Przykład c.d. Aksjomaty A 1 i A 2 wynikają z teorii zbiorów. Aksjomat A 3 łatwo sprawdzić Aksjomat A 4 : przyjmując, że e 1 = ~e 2 {a} {b} = {-}, czyli e 1 e 2 = 0 {a} {b} = {a, b}, czyli e 1 e 2 = 1,
Twierdzenia 1. W każdej algebrze Boole a istnieją tylko dwa różne od siebie elementy wyróżnione. 2. Dla każdego elementu a B istnieje jeden i tylko jeden element będący jego dopełnieniem. 3. x + x = x oraz x x = x 4. x + 1 = 1 oraz x 0 = 0 5. 1 + x = 1 oraz 0 x = 0
Twierdzenia c.d. 6. Dopełnienie dopełnienia elementu a jest równe temu elementowi. 7. Twierdzenie o absorpcji x + (x y) = x oraz x (x + y) = x 8. x + (~x y) = x + y oraz x (~x + y) = x y 9. Prawo łączności: (a + b) + c = a + (b + c) oraz (a b) c = a (b c) 10. Prawa de Morgana: ~(a + b) = (~a ~b) ~(a b) = (~a + ~b)
Interpretacja geometryczna a a b b ~a ~b Wykres Venna dla funkcji dwóch zmiennych
Interpretacja geometryczna c.d. a (b + c) (a b) + (a c) Ilustracja prawa rozdzielności mnożenia
Algebra dwuelementowa Określamy zbiór B={0, 1}, przy czym 0 1. Operatory: a b a+b 0 0 0 0 1 1 1 0 1 1 1 1 a b a b 0 0 0 0 1 0 1 0 0 1 1 1 a ~a 0 1 1 0
Formuły boolowskie Wyrażenia zbudowane ze stałych {0, 1}, oznaczeń zmiennych (literałów) oraz symboli operatorów sumy logicznej, iloczynu i dopełnienia. Pierwszeństwo wykonywania działań: 0 działania w nawiasach, 1 dopełnienie (negacja) 2 mnożenie (iloczyn logiczny) 3 suma logiczna Postać afirmacyjna zmiennej a Postać zanegowana zmiennej ~a
Funkcje boolowskie Zbiór {F} par uporządkowanych <x, y>, będący podzbiorem iloczynu kartezjańskiego {X} {Y}, przy czym x {X}, y {Y}; -dla każdego x {X} istnieje y {Y} takie, że (x, y) {F}, -jeśli (x, y 1 ) {F} i (x, y 2 ) {F}, to y 1 = y 2. Zmienne x i y mogą być w ogólnym przypadku wektorami zmiennymi wielowymiarowymi. Dla każdego z n wyjść układu logicznego o m wejściach funkcję boolowską można zdefiniować jako odwzorowanie zbioru {0, 1}... {0, 1} = {0, 1} m w zbiór {0, 1}. Reguły zapisu odwzorowania: - tablica wartości logicznych (tablica prawdy) - formuła boolowska (postać analityczna funkcji)
Przykład formuły boolowskiej Przykładowo: y = ~x 1 ~x 2 + x 1 x 2 oznacza, że y = 1, gdy x 1 = x 2 = 0 lub x 1 = x 2 = 1 (w pozostałych przypadkach y = 0). x 1 x 2 y 0 0 1 0 1 0 1 0 0 1 1 1 Na podstawie A 2, A 1 i Tw.8: y = (~x 1 ~x 2 )+ x 1 x 2 = (~x 1 ~x 2 + x 1 ) (~x 1 ~x 2 +x 2 ) = = (x 1 + ~x 2 ) (~x 1 +x 2 ) Formuła pierwsza suma jedynek funkcji Formuła druga iloczyn zer funkcji (zamiana postaci zmiennych zeru odpowiada afirmacyjna, jedynce zanegowana)
Pełna suma, pełny iloczyn Pełny iloczyn iloczyn złożony ze wszystkich zmiennych funkcji, przy czym literał każdej zmiennej występuje tylko raz. Przyjmuje wartość 1 tylko dla jednej kombinacji wartości zmiennych. Pełna suma sumazłożona ze wszystkich zmiennych, przy czym literał każdej zmiennej występuje tylko raz. Przyjmuje wartość 0 tylko dla jednej kombinacji wartości zmiennych. Suma wszystkich pełnych iloczynów funkcji jest zawsze równa jedności. Iloczyn wszystkich pełnych sum funkcji jest zawsze równy zeru. Dla m zmiennych można utworzyć 2 m pełnych iloczynów lub pełnych sum.
Mintermy i makstermy Minterm pełny iloczyn uporządkowany zgodnie z tabelą poniżej. Maksterm pełna suma uporządkowana zgodnie z tabelą poniżej. ln x m-1,...,x 1, x 0 minterm maksterm 0 0,..., 0, 0 ~x m-1... ~x 1 ~x 0 m 0 x m-1 +...+x 1 +x 0 M 0 1 0,..., 0, 1 ~x m-1... ~x 1 x 0 m 1 x m-1 +...+x 1 +~x 0 M 1 2 0,..., 1, 0 ~x m-1... x 1 ~x 0 m 2 x m-1 +...+~x 1 +x 0 M 2.................. k=2 m -1 1,..., 1, 1 x m-1... x 1 x 0 m k ~x m-1 +...+~x 1 +~x 0 M k
Postać kanoniczna funkcji boolowskiej Każdą funkcję boolowską binarną można przedstawić: - w postaci sumy mintermów (wskaźnik dotyczy tych mintermów, dla których wartość funkcji jest równa 1) - w postaci iloczynu makstermów (wskaźnik dotyczy tych makstermów, dla których wartość funkcji jest równa 0) Powyższe postaci funkcji noszą nazwę kanonicznych. f f = i = i m i M i
Postać normalna funkcji i jej dopełnienie Postać normalna postać, w której formuła boolowska określająca funkcję jest wyłącznie sumą iloczynów zmiennych (postać normalna dysjunkcyjna alternatywna) bądź iloczynem ich sum (postać normalna koniunkcyjna). Dopełnienie funkcji można znaleźć posługując się rozwinięciem praw de Morgana (tw. 10) na większą liczbę zmiennych. W szczególności: ~(x n-1... x 1 x 0 ) = ~x n-1 +... + ~x 1 + ~x 0 ~(x n-1 +... + x 1 + x 0 ) = ~x n-1... ~x 1 ~x 0 (dowodzenie oparte na iteracyjnym stosowaniu twierdzeń 9 i 10)
Funkcje boolowskie dwóch zmiennych x y f 0 f 1 f 2 f 3 f 4 f 5 f 6 f 7 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 symbol/ operacja 0 x y x/y (x ~y) x y/x (~x y) y XOR x+y f 2 funkcja zakazu y f 4 funkcja zakazu x f 6 ALBO Nazwy funkcji pochodzą z rachunku zdań; wówczas 1 określa się jako prawda, 0 jako fałsz.
Funkcje boolowskie dwóch zmiennych x y f 8 f 9 f 10 f 11 f 12 f 13 f 14 f 15 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 symbol/ operacja f 9 równoważność f 11 implikacja x y f 13 implikacja x y NOR XNOR ~y x+~y ~x ~x+y NAND 1 W teorii układów logicznych operatory implikacji i zakazu nie odgrywają większej roli.
Najważniejsze operatory jedno- i dwuargumentowe Bramki logiczne nazwa używana z uwagi na dwustanowy charakter pracy (włącz-wyłącz).
Systemy funkcjonalnie pełne Zestawy operatorów, pozwalające tworzyć poprawne formuły boolowskie, zawierające, obok nazw zmiennych i elementów 0, 1, symbole odpowiednio zdefiniowanych operatorów. Najbardziej naturalny test: czy w oparciu o dane operatory można skonstruować operatory AND, OR, NOT?
Systemy funkcjonalnie pełne c.d. NAND NOR implikacja, 0 implikacja, NOT implikacja, 1 zakaz, 1 zakaz, NOT XOR, AND, 1 XOR, OR, 1 XNOR, AND, 0 XNOR, OR, 0 AND, NOT OR, NOT
Test pełności NAND i NOR
Realizacje bramkowe funkcji logicznych Symbole graficzne (bramki) mogą być wykorzystywane do graficznego przedstawiania formuł boolowskich. operatory przemienne i łączne mogą być reprezentowane przez bramki wielowejściowe konstruowane wprost z definicji (suma, iloczyn, XOR, XNOR); operatory przemienne NAND NOR mogą być reprezentowane przez bramki dwuwejściowe; dla dwóch argumentów funkcje te tożsame są z systemami AND-NOT i OR-NOT bramki wielowejściowe powstają jako realizacje negacji wielowejściowego iloczynu i sumy; operatory nieprzemienne (implikacja, zakaz) nie mogą być stosowane w układach logicznych i nie są realizowane fizycznie.
Realizacje AND-OR-NOT każda postać normalna daje realizację zawierającą co najwyżej trzy poziomy bramek poziom trzeci (negacje) może nie wystąpić y x z y x z y x F + + = ( ) ( ) ( ) y x z y x z y x F + + + + + =
Minimalizacja formuł boolowskich Najczęstsze kryterium minimalizacja liczby literałów; prowadzi do najprostszej realizacji bramkowej funkcji Metody heurystyczne przekształcenia zgodne z twierdzeniami i aksjomatami algebry Boole a Metody algorytmiczne (do zastosowań komputerowych) Metody intuicyjne diagramy Veitch a tablice Karnaugh
Faktoryzacja funkcji logicznych Minimalizacja formuł boolowskich prowadzona jest w klasie formuł normalnych; otrzymane formuły minimalne są postaciami normalnymi funkcji Faktoryzacja dostosowanie do wymagań technologicznych (ilość wejść bramek, dostępne typy bramek itp.); może zwiększyć skomplikowanie formuły