2. Układy kombinacyjne

2.2. Działania w algebrze Boole’a, typowe bramki podstawowe, symbole bramek

W 2 elementowej algebrze Boole’a definiujemy kilka dodatkowych użytecznych w praktyce działań. Zaczniemy od sumy modulo 2 (suma modulo 2 jest szczególnym przypadkiem sumy modulo m wprowadzanej w zbiorze Z_m=\{0,1,...,m-1\}). Sumę modulo 2 oznaczamy symbolem \oplus i definiujemy za pomocą tabelki.

a b y=a \oplus b
0 0 0
0 1 1
1 0 1
1 1 0


Rys. 3. Tabelka definiująca sumę modulo 2

 

Podstawowe własności sumy modulo 2 są następujące

0 \oplus0=0, \qquad 1 \oplus 1=0, \qquad 1 \oplus 0=1, \qquad 0 \oplus 1=1, \qquad x \oplus x=0

x \oplus 1 = \overline{x}, \qquad x \oplus 0=x, \qquad x_1 \oplus x_2= \overline{x_1} \oplus \overline{x_2}, \qquad x_1 \oplus x_2=x_1 \overline{x_2}+\overline{x_1}x_2

(x_1 \oplus x_2) \oplus x_3=x_1 \oplus (x_2 \oplus x_3) (łączność sumy modulo 2)

x_1 \oplus x_2=x_2 \oplus x_1 (przemienność sumy modulo 2)

x_1\oplus x_2 \oplus x_2=x_1

 

Przypomnijmy (por. rozdz.1), że zbiór Z_m=\{0,1,2,...,m-1\} wraz z działaniami dodawania modulo m i mnożenia modulo m jest pierścieniem przemiennym z jednością a jeśli m=p, (gdzie ppjest liczbą pierwszą) to Z_p jest ciałem. Zatem w szczególności Z_2=\{0,1\} z dodawania działaniami modulo 2 i mnożenia modulo 2 jest ciałem.

Łatwo sprawdzić, że 2 argumentowa suma modulo 2 zdefiniowana tabelką z Rys. 2.3 i suma modulo 2 zdefiniowana jako szczególny przypadek sumy modulo m (dla m=2) to to samo działanie. Z kolei iloczyn modulo 2 zdefiniowany jako szczególny przypadek sumy modulo m (dla m=2) to mnożenie logiczne. Zatem trójka uporządkowana (Z_2,\oplus,\cdot) jest ciałem. Zatem wprowadzenie w algebrze Boole’a sumy modulo 2 jako działania 2 argumentowego pozwala spojrzeć na zbiór \{0,1\} jak na ciało.

Z algebry liniowej wiadomo (jest to prosty do sprawdzenia fakt), że jeśli K jest ciałem, to iloczyn kartezjański \underbrace{K \times K \times ... \times K}_{n}=K^n jest przestrzenią liniową nad ciałem K . Zatem również \underbrace{Z_2 \times Z_2 \times ... \times Z_2}_{n}=Z_2^n jest przestrzenią liniową nad Z_2=\{0,1\}. Można więc słowa binarne o długości n (czyli elementy przestrzeni Z_2^n) nazywać wektorami.

Podobnie jeśli mamy ustalone dowolne ciało K to można rozważać pierścień wielomianów K[x] nad ciałem K. Tak też można zrobić w przypadku Z_2 wprowadzając wielomiany nad ciałem Z_2=\{0,1\}.

a)

Bramka NOT realizuje funkcję y=\overline{x}

b)

Bramka AND czyli bramka iloczynu (dwuwejściowego) realizuje funkcję y=x_1x_1. Stosowane są również bramki wielowejściowe.

c)

Dwuwejściowa bramka OR czyli bramka sumy (dwuwejściowej) realizuje funkcję y=x_1+x_1. Stosowane są również bramki wielowejściowe.

d)

Dwuwejściowa bramka EXOR czyli bramka sumy modulo dwa (dwuwejściowa) realizuje funkcję y=x_1 \oplus x_1. Stosowane są również bramki wielowejściowe EXOR. Bardzo pożyteczna jest w praktyce tożsamość x_1 \oplus x_2=x_1\overline{x_2}+\overline{x_1}x_2

Rys. 4. Symbole typowych bramek a) bramka NOT, b) bramka AND, c) bramka OR d) bramka EXOR

Teoretycznie rzecz biorąc możemy używać bramek OR, AND, NOR, NAND i EXOR o dowolnej liczbie wejść. Jednak w praktyce liczba wejść pojedynczej bramki rzadko większa jest od 4 ponieważ zbyt duża liczba wejść pogarsza parametry elektryczne układu, a przede wszystkim powiększa czas propagacji bramki.

W praktyce nie można też łączyć wyjścia bramki z dowolną ilością wejść współpracujących bramek. Parametr mówiący tym ile wejść można dołączyć do jednego wyjścia nosi nazwę obciążalności bramki lub wzmocnienia logicznego.