You are on page 1of 35

3 Boolova prekidačka algebra

3.1. UVOD

Digitalni sistemi manipulišu sa diskretnim elementima informacija predstavljenim sa fizikalnim


veličinama nazvanim signalima. Signali su obično ograničeni na dvije moguće vrijednosti i za njih se
kaže da su binarni. Kao što smo vidjeli u poglavlju 2., dva su nivoa dovoljna, zbog toga što se bilo
koja željena poruka, bez obzira koliko je složena može kodirati u binarnom sistemu koristeći nizove 0
i 1. Prema tome, uređaji sa dva stanja kao što su prekidači, diode, magnetne jezgre i tranzistori mogu
se koristiti za procesiranje informacija zbog toga što dva stanja (uključeno prema isključeno,
provođenje prema neprovođenje, pozitivno magnetiziranje prema negativnom magnetiziranju, visoki
potencijal prema niskom potencijalu ) mogu predstavljati dva binarna simbola 0 i 1.
U svom najosnovnijem nivou digitalni sistemi su nešto malo više od prostih uređaja sa dva
stanja koji reduciraju čak i najsloženije informacije u jednostavne oblike od 1-ce i 0-le. Posmatrajući
iz ove perspektive Claud Shannon je pokazao 1938. godine kako se mogu analizirati i projektovati
digitalni krugovi korištenjem algebarskih izraza koji sadrže varijable koje imaju samo dvije
vrijednosti. On je zasnivao ovaj pristup na konceptu Boolove algebre originalno razvijene u
devetnaestom vijeku od starne matematičara George Boola. Boolov interes je bio otkrivanje zakona
kojima se upravlja ljudska pamet. Ono što je primjetio Shannon je da isti zakoni upravljaju ponašanje
digitalnih krugova. Vodeći princip iz Shaunnovog pristupa je sljedeći: svedi problem projektovanja i
analize digitalnog kruga na proučavanje izraza Boolove algebre.
Otpočećemo našu diskusiju Shannonovog sistema izlistavajući u sljedećoj sekciji bazične
formulacije fundamentalnih aksioma Boolove algebre. Nakon toga u sekciji 3.3 diskutovat ćemo neke
neposredne i korisne posljedice ovih aksioma. Ali čitalac treba da bude unaprijed upozoren da zakoni
obične algebre koje smo naučili u školi su slični u nekim, ali dramatično različiti u drugim
aspektima. Čitalac, dakle, treba da zapazi ove razlike i sačuva ih u svojoj memoriji.
U osnovi možemo koristiti Boolovu algebru kao oruđe za analizu i projektovanje digitalnih
krugova zbog toga što skup svih Boolovih funkcija sa n-varijabli formira Boolovu algebru. Šta više,
za ovu Boolovu algebru možemo (u sekciji 3.6) izvesti značajan teoretski rezultat. Svaka Boolova
funkcija sa n-varijabli može se izvesti preko tri operatora (I, ILI i NE) u jednoj od dvije kanonske
forme. Ove kanonske forme odgovaraju na jedan prema jedan način za implementaciju funkcije preko
digitalnog kola, gdje su blokovi koji grade krug I, ILI i NE vrata. Nadalje u sekciji 3.5 pokazat ćemo
da postoje također drugi tipovi operatora koji se mogu koristiti za izražavanje Boolovih funkcija. Kao
posljedica, možemo implementirati digitalni krug za funkciju koristeći druge tipove vrata. U sekciji
3.7, uvodimo standardna vrata koja se široko koriste u projektovanju digitalnih sistema.
Ali treba konstatirati da se Boolove funkcije uvijek ne implementiraju u njihovoj kanonskoj
formi. U stvari, ovo je rijedak slučaj. Postojanje kanonske forme upravo garantira da možemo
implementirati sve funkcije sa I, ILI i NE vratima, ali kanonska forma rijetko je najbolja
implementacija funkcije. Umjesto navedenog možemo koristiti zakone Boolove algebre za pretvaranje
jednog algebarskog izraza u jednostavniju ekvivalentnu formu u cilju konstrukcije najjednostavnijeg
kruga. Ovo pojednostavljenje diskutovaćemo u poglavlju 4.

3.2 AKSIOMI BOOLOVE ALGEBRE

Koristićemo veliko slovo da označimo skupove dobro definiranih objekata i malo slovo da označimo
objekte. Fraza “je elemenat (objekt) od” označena je simbolom є. Dakle, pišemo aєA kad je “a
element skupa A”.
Boolova algebra je algebarska struktura koja se sastoji od skupa elemenata B, zajedno sa dvije
binarne operacije {+} i {.} i unarnom operacijom {’} tako da slijedeći aksiomi vrijede:
1. Skup B sadrži bar dva elementa a,b takva da je a≠b
2. Osobine zatvaranja binarnih operacija: za svako a,b єB

(i) a +b є B
(ii) a*bєB
3. Komunitativni zakoni: za svako a,b єB
(iii) a+b=b+a
(iv) a*b=b*a
4. Egzistencije identiteta:
(i) Postoji jedan element identiteta u odnosu na {+}, označen sa 0, takav da je a+0=a za
svako aєB
(ii) Postoji jedan element identiteta u odnosu na {*}, označen sa 1, takav da je a*1=a za
svako aєB.
5. Distributivni zakon: za svako a,b,c є B
(i) a + (b*c) = (a+b) * (a+c)
(ii) a * (b+c) = a * b + a * c
6. Egzistencija komplementa: za svako a є B postoji element a є B ( komplement od a)
tako da je
(i) a + a’= 1
(ii) a * a’= 0

Poznato je da je ova lista aksioma koji definiraju Boolovu algebru i konzistentna i nezavisan,
dakle ni jedan od postulata nije kontradiktoran bilo kom drugom aksiomu i nijedan od navedenih
postulata ne može biti dokazan preko ostalih aksioma liste.
Notacije {*} i {+} koje su usvojene za označavanje binarnih operacija često su korištene od
strane projektanata digitalnih sistema. Termini sum (suma), join i disjunction često se koriste
izmjenljivo u Boolovoj algebri da označe {+} operaciju, kao i product (proizvod), meet i conjuction,
da označe {*} operaciju.
Operatorski prioriteti u Boolovoj algebri su takvi da izraz unutar zagrade mora biti
evaluiran prije svih ostalih; sljedeća operacija koja dolazi je komplement; onda slijedi {*} i na kraju
{+}. Na primjer da bi se evaluirao izraz (a+b)' , moramo prvo evaluirati a+b i potom komplementirati
rezultat. Slično, izraz a’ * b’ je evaluiran prvo preko komplementiranja a i b , a zatim
primjenjivanjem {*} operacije. U onom što slijedi, kada se ne koriste zagrade, može se razumijeti da
su {*} operacije izražene prije {+} operacija. Takođe, {*} operacija biti će radi kratkoće izostavljena
tako da će umjesto a*b biti napisano ab.
Uočimo da su aksiomi Boolove algebre aranžirani u parovima. Svaki iskaz može da se
dobije iz drugog međusobnom zamjenom {+} i {*} operatora i elemenata identiteta 0 i 1. Ovo se
naziva princip dualnosti i ilustrovan je sljedećim primjerom.

■ Primjer 3.1 (a) Aksiom 5(i) može da se dobije iz aksioma 5(ii) i obrnuto, kao što slijedi:

a+(b*c)=(a+b)*(a+c)

a*(b+c)=(a+b)+(a*c)

(b) Aksiom 6(i) može da se dobije iz aksioma 6(ii) i obrnuto, kao što slijedi:

a + a’ = 1

a * a’ = 0

Ova značajna karakteristika Boolove algebre vrijedi za svaki algebarski izraz (theorem) izvodiv iz
aksioma. Ovakav algebarski izraz ostaje vrijedan kada su operatori i elementi identiteta međusobno
zamjenjeni. Općenito, svaki teorem koji može biti dokazan Boolovom algebrom ima dualni iskaz koji
je također istinit.

3.3 BAZIČNI TEOREMI BOOLOVE ALGEBRE

Cilj ove sekcije je predstavljanje nekih od osnovnih realizacija Booolove algebre. Koristićemo često
ove rezultate u analizi i projektovanju digitalnih krugova pa je imperativ da čitalac bude s njima
potpuno familijariziran. Dokazi nekih od teorema prikazani su detaljno da se ilustruje korištenje
aksioma i način na koji se algebarski izrazi mogu manipulirati. Ali teorijski dokazi Boolove algebre
neće biti glavni naglasak, nego će njena korisnost biti naš glavni interes. Prema tome, bićemo
zadovoljni da čitaocu prepustimo da izvede dokaze kao vježbe.
Tokom ove sekcije, utvrdit ćemo dualne rezultate kod jedne teoreme, ali dokazati samo
jedan rezultat. Dokaz drugug rezultata može se dobiti korištenjem principa dualnosti.

□ Teorema 3.1 Idempotentni zakoni. Za svako a є B, a + a = a i aa = a

Dokaz
a+a = (a+a) * 1 Aksiom 4(ii)

=(a+a) (a+a’) Aksiom 6(i)

=(a+aa’) Aksiom 5(i)

=a+0 Aksiom 6(ii)

=a Aksiom 4(i)

□ Teorema 3.2 Za svako a є B, a+1=1 i a0=0

Dokaz
(a+1)=(a+1) * 1 Aksiom 4(ii)

=( a+1 ) (a+a’ ) Aksiom 6(i)

=a + 1a’ Aksiom 5(i)

=a + a’ Aksiom 4(ii) i 2(ii)

=1 Aksiom 6(i) □

□ Teorema 3.3 Elementi 0 i 1 su jedinstveni □


□ Teorema 3.4 Elementi 1 i 0 su distinktivni; 1’=0 I 0’=1. □
□ Teorema 3.5 Za svako a є B postoji jedinstven komplement a’. □
□ Teorema 3.6 Involucioni zakon. Za svako a є B, (a’)’=a. □
□ Teorema 3.7 Absorpcioni zakoni. Neka je a,b є B, onda a+ab=a i a(a+b)=a

Dokaz

a+ab=a1 + ab Aksiom 4(ii)

=a1 Aksiom 3.2

=a Aksiom 4(ii) □

□ Teorema 3.8 Boolova algebra je asocijativna pod operacijama {+} i {*}; dakle za sve a,b,c є B
a+(b+c)=(a+b)+c
i
a(bc)=(ab)c

Dokaz: Neka je:

A = [(a + b) + c][a + (b + c)]

Tada je:
A = [(a + b) + c]a + [(a + b) + c](b + c)

= [(a + b)a + ca] + [(a + b) + c](b + c)


= a + [(a + b) + c](b + c)

= a + [(a + b) + c]b + [(a + b) + c]c

= a + (b + c)

Ali, također,

A = (a + b)[a + (b + c)] + c[a + (b + c)]

= (a + b) [a + (b + c)] + c

= a[a + (b + c) + b[a + (b + c)] + c

= (a + b) + c

Dakle, a+(b+c)=(a+b)+c

□ Teorema 3.9 Teorema DeMorgana. Za bilo koje a,b є B, (a+b)’ = a'b'


i (ab)’=a’+b’

Tabela 3.1 daje listu nekih aksioma i teorema prethodno diskutiranih, kao i značajne
identitete Boolove algebre. Oni su izlistani u dualnim parovima i označeni sa dijelovima (a) i (b).
Uočimo da neki od identiteta sadrže dvije ili tri varijable, dok ostale sadrže proizvoljan broj (n)
varijabli.
Možemo koristiti identitete za dokazivanje ostalih identiteta ili za manipuliranje Boolovim
algebarskim izrazima u nekim drugim formama kao što prikazuje naredni primjer. U svakom stepenu
ovog primjera, poziva se tabela 3.1 označavanjem broja identiteta koji je korišten. Svaki dokazani
identitet posjeduje dualnu istinu na osnovu principa dualnosti.

■ Primjer 3.2 (a) Dokaži indentitet (7b); xy' + y = x + y

xy' + y = (x + y) (y + y') (2b)


= (x + y)1 (3a)
=x+y (1b)

(b) Dokazati indentitet (9b); xy + x'z + yz = xy + x'z

xy + x'z + yz = xy + x'z + yz(x + x') (3a),(1b)


' '
= xy + x z + xyz + x yz
= xy(1+z) + x'z(1+ y) (2a)
■ Tabela 3.1 Neki značajni identiteti Boolove algebre

(1a) x+o=x (1b) x*1=x Aksiom 4


(2a) x(y+z)=xy+xz (2b) x+yz=(x+y)(x+z) Distributivnost
(3a) x+x’=1 (3b) xx’=0 Aksiom 6
(4a) x+x=x (4b) xx=x Idempotencija
(5a) x+1=1 (5b) x*0=0 Teorema 3.2
(6a) x+xy=x (6b) x(x+y)=x Absorpcija
(7a) (x+y’)y=xy (7b) xy’+y=x+y
(8a) (x+y)(x+y’)=x (8b) xy+xy’=x Logičko susjedstvo
(9a) (x+y)(x'+z)(y+z)=(x+y)(x’+z) (9b) xy+x’z+yz=xy+x’z Konsensus
(10a) (x1+x2+ . . . +xn)’=x’1x’2 . . . x’n DeMorganove
(10b) (x1x2 . . . xn)'=x1'+x2’ + . . . +xn’ teoreme
(11a) f(x1,x2 . . . xn)=xi f(x1,x2, . . . xi-1,1,xi+1, . . . ,xn) Shannonove teoreme
+ xi'f(x1,x2, . . . xi-1,0,xi+1, . . . ,xn) razvoja
(11b) f(x1,x2 . . . xn)=[ xi +f(x1,x2, . . . xi-1,0,xi+1, . . . ,xn)]
+ [xi'+f(x1,x2, . . . xi-1,1,xi+1, . . . ,xn)]

=xy1+x'z1 (5a)
=xy+x'z (1b)

(c) Pokaži da je x'y'z+yz+xz=z

x'y'z+yz+xz = (x'y'+y+x)z
= ( x' + y + x )z (7b)
=(1+y)z (3a)
=1z (5a)
=z (1b)

(d) Pokaži da je (x+y)[x'(y'+z')]'+x'y'+x'z'=1

(x+y)[x'(y'+z')'+x'y'+x'z' (10b)
=(x+y)(x+yz)+x'y'+x'z' (10a)
' ' '
=x+xy+xyz+yz+x y +x z'
=x(1+y+yz)+yz+x'y'+x'z' (2a)
=x+yz+x'y'+x'z' (5a),(1b)
'
=x+x (y'+z')+yz (2a)
' '
=x+y +z +yz (7b)
' '
=x+y +z+z (7b)
'
=x+y +1 (3a)
=1 (5a)
' ' ' '
(e) Pokaži da je w x+wxz+wx yz +xy=x(w'+z)+wyz

w'x+wxz+wx'yz'+xy=x(w'+wz)+y(x+x'wz') (2a)
' '
=x(w +z)+y(x+wz ) (7b)
' '
=w x+xz+xy+wyz
=w'z+xz+xy(w+w')+wyz' (3a),(1b)
' '
=w x+xz+w'xy+wyz
=w'x+xz+wxy+wyz' (2a)
=w'x+xz+wxy+wyz' (5a),(1b)
=w'x+xz+wyz' (9b)

=x(w’+z)+wyz' (2a)

3.4 PREKIDAČKA ALGEBRA

Najjednostavniji primjer Boolove algebre je onaj u kojem je domen B upravo skup {0,1}.
Pošto svaki element skupa B može imati jednu od dvije vrijednosti, 0 ili 1, radi se o dvo-vrijednosnoj
Boolovoj algebri označenoj kao prekidačka algebra.
Operacije prekidačke algebre definirane su u tabeli 3.2, a alternativna predstava tabele istine
(vidi sekciju 1.2) data je u Tabeli 3.3. U ovom kontekstu digitalnih sistema, operacije {+}, {.}, {'}
uobičajeno se označavaju sa ILI, I i NE, respektivno. Prema tome, npr. x i y i xy predstavljaju isti
izraz i mogu se koristiti zamjenjivo. Kako ćemo vidjeti kasnije svaka od ovih operacija može da se
implementira preko fizikalnog uređaja poznatog pod imenom vrata. Korištenjem I, ILI i NE vrata,
možemo implementirati Boolove izraze u formi logičkih krugova. Postoje drugi tipovi vrata koja se
takođe mogu koristiti zamjenjivo da označe raznovrsnost logičkih operacija. Ovo će se razmatrati u
sekcijama 3.5 i 3.7.
Možemo verificirati da prekidačka algebra zadovoljava ove aksiome i relacije Boolove algebre
korištenjem algebarskih manipulacija kako je urađeno u primjeru 3.2. Kao alternativu možemo
konstruirati tabelu istine i evaluirati obe strane identiteta za moguće kombinacije vrijednosti varijabli.
Ovaj pristup poznat je pod imenom savršene indukcije (perfect induction), u narednom primjeru:

■ Primjer 3.3 Dokaži identitet 2(b) u Tabeli 3.1 x + yz = (x + y)(x + z),

Pošto imamo tri varijable, od kojih se za svaku može pretpostaviti da poprima dvije vrijednosti
(0 ili 1), broj mogućih kombinacija je 23=8. Tabela istine ima,dakle, osam cifri kako pokazuje
Tabela 3.4. Za svaku kombinaciju varijabli tabela istine pokazuje odgovarajuće vrijednosti
lijeve i desne strane identiteta. Da bi evaluirali preko ove vrijednosti koristimo definicije
operatora u Tabeli 3.3. Upoređivanjem

■ Tabela 3.2 Definicije operacija Boolove algebre sa dvije vrijednosti

ILI operator I operator NE operator

+ 0 1 0 1

0 0 1 0 0 0 0 1

1 1 1 1 0 1 1 0
■ TABELA 3.3 Alternativna predstava ILI, I i NE

ILI I NE
x y x+y x y xy x x'
0 0 0 0 0 0 0 1
0 1 1 0 1 0 1 0
1 0 1 0 0 0
1 1 1 0 1 1

kolona x + yz i (x + y)(x + z), vidimo da za svaku kombinaciju imaju iste vrijednosti. Boolova
algebra u nekim aspektima podsjeća na običnu algebru. Ali kako smo vidjeli u sekciji 3.1 postoje
neke razlike među njima. Ovo se posebno odnosi na aksiome 5(i) i 6 (distributivnost (+) preko (*) i
definicija komplementa, respektivno) ne vrijede za običnu algebru. Pored toga, neke teoreme obične
algebre nisu istinite za Boolovu algebru. Npr. zakon poništavanja za sabiranje u običnoj algebri je:

Ako je x + y = x + z onda je y = z

Međutim ovaj zakon poništavanja ne vrijedi za Boolovu algebru. Da bi smo ovo vidjeli, neka je: x =
1, y = 0 i z =1. Sada imamo x + y = 1+ 0 = 1 i x + z =1+1 = 1, ali je y ≠z.
S druge strane iskaz:

Ako je y = z onda je x + y = x + z

istinit za obje algebre, te se njegova verifikacija ostavlja čitatelju za vježbu.

■ TABELA 3.4 Tabela istine za primjer 3.3

x y z yz x+yz x+y x+z (x+y)(x+z)

0 0 0 0 0 0 0 0

0 0 1 0 0 0 1 0

0 1 0 0 0 1 0 0

0 1 1 1 1 1 1 1

1 0 0 0 1 1 1 1

1 0 1 0 1 1 1 1

1 1 0 0 1 1 1 1

1 1 1 1 1 1 1 1
3.5 BOOLOVE PREKIDAČKE FUNKCIJE

Koncept polinoma je bez sumnje dobro poznat onima koji dobro poznaju običnu algebru, ali to
isto ne mora da vrijedi kad je riječ o Boolovim (algebarskim) izrazima koji predstavljaju analogni
koncept. Da bi uveli koncept Boolovog izraza neka je (xn-1·········x1,x0) skup simbola nazvanih varijable.
Tada je Boolov (algebarski) izraz po (xn-1·········x1,x0) izraz formiran od varijabli, konstanti, 0 i 1,
binarnih operatora I i ILI, te unarnog operatora NE. Drugim riječima, možemo dobiti Boolove izraze
primjenjujući sljedeća dva pravila konačan broj puta:
1. Konstante 0 i 1 i Boolove varijable {xn-1,·········x1, xo} su Boolovi izrazi u {xn-1,·········x1, xo}
2. Uz to, ako su E1 i E2 Boolovi izrazi u {xn-1,·········x1, xo} onda su i to E1', E2', E1 + E2 i E1E2
Na primjer, po definiciji, izrazi

E1=[(x1x2)' +( x1x3)]'

E2=x1x2+x1'x3+x1x3'

E3=x1’x2( x3+x1x2’)+x2’x3

su Boolovi izrazi po x1, x2 i x3


Prethodne definicije Boolovog izraza je primjer rekursivne (ili induktivne) definicije. Pravilo
1 daje nam osnovni korak; on ukazuje na neke konačne objekte koji su Boolovi izrazi. Potom pravilo
2 opisuje kako izgradiiti složenije izraze na osnovu već postojećih. Mnoge konstrukcije u
računarskim naukama, uključujući elemente mnogih programskih jezika, definisani su rekurzivno.
Sada, međutim, dolazi krucijalna observacija. Upravo kao što polinomski izrazi u običnoJ
algebri mogu da se posmatraju kao funkcije, isto tako Boolovi algebarski izrazi mogu se posmatrati
kao Boolove (ili prekidačke) funkcije. Ono što mislimo je: Neka B i Bn, respektivno označavaju
skup (0,1) i skup 2n mogućih n - tiple (riječi dužine n) od 0-la i 1-ca. Tada, za Boolov izraz F u
varijablama {Xn-1, … , X1X0} vrijednost od F u (bn·1, … , b1,b0) є Bn je element od B dobiven
asigniranjem (pridodjeljivanjem) svaku vrijednost bi odgovarajućoj varijabli Xi. Pošto Boolova
varijabla može samo uzimati dvije vrijednosti 0 ili 1, Boolova prekidačka funkcija je funkcija koja
upravo prihvata n – tiple od 0-la i 1-ca i proizvodi bilo 0 ili 1 kao svoju vrijednost na n – tipl. Prema
tome, svaka prekidačka funkcija je u potpunosti određena listom svojih vrijednosti funkcija u 2n n–
tipla. Kao posljedica, postoji 22n takvih prekidačkih funkcija.
Tabela istine je kolona vrijednosti funkcije zajedno sa n–tipla viđenih kao binarni brojevi od 0 do 2n-
1. Međutim, dok tabela istine definiše samo jednu prekidačku funkciju, mnogi različiti Boolovi izrazi
u {XN-1,…,X1,X0} mogu odrediti istu tabelu istine. Npr, izraz:

E1=x1'x2'x3+ x1'x2x3+ x1x2x3'+ x1x2x3

E2= x1x2+ x1'x3+x2x3

E3= x1x2+ x1'x3

svi specificiraju istu tabelu istine u kojoj vrijednosti funkcije u 3 – tiplima (0,0,1), (0,1,1), (1,1,0) i
(1,1,1) su 1 i 0 u svim ostalim 3 – tiplima. U stvari, dva Boolova izraza će specificirati istu tabelu
istine, ako se jedan izraz može transformirati u drugi preko aksioma i zakona Boolove algebre.
U sekciji 3.6 pokazaćemo, da svaka Boolova funkcija određuje Boolov izraz u kanonskoj formi.
Tada, među ostalim stvarima zaključit ćemo da se svaka Boolova funkcija može realizovati sa
varijablama i oparatorima I, ILI i NE.
Ako je F(xn-1,…,x1,x0) prikazat ćemo funkcije od n – varijabli, onda je komplement F’(xn-1,…,x1,x0)
funkcije čija je vrijednost 1 kad god je vrijednost F je 0 i 0 kad god je vrijednost F jednaka 1. Prema
tome, tabela istine od F’ može se dobiti na osnovu F kompletiranjem svakog ulaza u kolonu
vrijednosti funkcije F. Suma (ILI) F+G dvaju funkcija F i G je funkcija čija je vrijednost 1 za svaki
n-tipl za koji je bilo F ili G (ili obadvije) jednaka 1, dok je proizvod (I) FG jednak 1. Dakle, tabela
istine za F+G i FG dobijene su sabiranjem (ILI-ing) ili množenjem (I-ing) odgovarajućih ulaza iza
tabela istine za F i G. Slijedeći primjer ilustruje ove procedure.

■ Primjer 3.4 Dvije prekidačke funkcije varijabli {x1,x2,x3} specificirane su u


kolonama F i G Tabele 3.5 . Rezultantni komplement F’, suma F+G
i proizvod FG specificirani su u respektivnim kolonama. ■
■ TABELA 3.5 Komplementiranje, sabiranje i množenje prekidačkih funkcija

x3 x2 x1 F G F' F+G FG
0 0 0 1 1 0 1 1
0 0 1 0 0 1 0 0
0 1 0 1 1 0 1 1
0 1 1 0 0 1 0 0
1 0 0 1 0 0 1 0
1 0 1 0 1 1 1 0
1 1 0 0 1 1 1 0
1 1 1 1 1 0 1 1

Sa definicijama {+}, {.} i {‘} možemo zaključiti da skup prekidačkih funkcija od n-varijabli
formira Boolovu algebru. Posebno ćemo razmotriti u sljedećoj sekciji Boolovu algebru svih
prekidačkih funkcija od dvije varijable.

Operacije binarne logike

Kada je broj varijabli n=2 postoji 16 (22)2 mogućih Boolovih funkcija. Operatori I i ILI
odgovorni su za dvije ovakve funkcije, dok unarni operator NE odgovara za druge dvije.
Razmotrimo, dakle, 12 preostalih funkcija.
Tabela istine za 16 Boolovih funkcija od dvije varijable grupisane su i izlistane u Tabeli 3.6.
Svaka od 16 kolona, F0 do F15 zajedno sa četiri binarne kombinacije nezavisnih varijabli A i B,
predstavljaju tabelu istine jedne od mogućih funkcija ovih varijabli. Među njima možemo
identificirati F1,F7,F10 i F12 kao respektivne represetante I operacije, ILI operacije i dva (unarna)
komplementa (NOT) operacija.
■ Tabela 3.6 Boolove funkcije od dvije varijable

A B F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15


0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

F0=0 Binarna konstanta 0


F1=AB I
F2=AB' Inhibicija (Inhibition) (A ili ne B)
F3=A Prenos (Transfer)
F4=A'B Inhibicija (B ali ne A)
F5=B Prenos
F6=AB'+A'B Ekskluzivno (Exclusive)- ILI (XOR)
=A⊕B
F7=A+B ILI
F8=(A+B)' NOR (ne-ILI; označeno u matematičkoj logici kao Peirce-ova strijela (or
=A'B' dagger)
F9=A'B'+AB Ekvivalencija ( Exclusive-NOR)
=A~ B
F10=B' Komplement (NOT)
F11=A+B' Implikacija (Implication) (B implicira A)
F12=A' Komplement (NOT)
F13=A+B Implikacija (Implication) (A implicira B)
F14=(AB)' NAND (not-AND označeno u matematičkoj logici kao Shefferov udar)
=A'+B'
F15=1 Binarna konstanta 1
Tabela 3.6 takođe izlistava Boolove izraze za svaku od 16 funkcija.
Skenirajući listu funkcija uočavamo dvije konstantne funkcije F0 i F15, četiri funkcije sa
unarnim operacijama F3,F5,F10 i F12 i deset funkcija sa binarnim operatorima. Sve ove funkcije
formirane su sa Boolovim operatorima ILI, I i NE, ali neke od njih često su označene specijalnim
imenima. Dva od navedenih binarnih operatora inhibicija i implikacija rijetko se koriste od strane
projektanata digitalnih sistema. Prema tome razmotrimo četiri binarna operatora, drugačija od I i ILI,
koja se široko koriste u projektovanju digitalnih sistema.
Iz tabele istine iz F14 ,vidimo da je NAND komplement od AND i da njegovo ime znači ne-I
(not-AND). Na osnovu De Morganove teoreme [(10b) u Tabeli 3.1] NAND se takođe može izraziti
kao A’+B’. Ponekad se koristi posebni simbol nazvan Shefferov udar (Sheffer stroke) za označavanje
NAND operatora.
Upoređujući tabele istine za F7 i F8 , vidimo da je NE ILI (NOR) funkcija komplement od
ILI [njegovo ime je ne-ILI (not-OR)]. Funkcija NILI(NOR) može se takođe izraziti kao A’B’ preko
De Morganove teoreme (10a) i, ponekad, je označena specijalnim simbolom nazvanim Peirce-ova
strijela (Peirce arrov) ili dogger. (Kako Shefferov udar tako i Peirce-ova strijela su simboli koji često
koriste matematičari ali ne i projektanti digitalnih sistema.)
Ekskluzivno-ILI (exclusive-or) (F6) koji je dat operatorskim simbolom ⊕ i koji se označava
kao XILI (XOR) je sličan sa ILI izuzev što je F6 =0 kada je A=B=1. Funkcija ekvivalencije
(equivalence), kojoj je dodijeljen operatorski simbol ~ izvodi svoje ime iz činjenice da dostiže
vrijednost 1 ako i samo ako je A=B. Na osnovu tabele istine za F6 i F9 pokazuje se da su XOR od 2-
varijable i funkcije ekvivalencije komplementarni. U stvari F9 je eksluzivno NOR (NILI) funkcija.

Proširenje na multiple varijable

Operator binarne logike može da se proširi da obuhvati mutiple varijable ako je operacija i
komutativna i asocijativna.Već smo spomenuli da se inhibicija i implikacija rijetko koriste u
projektovanju digitalnih sistema. Dakle, razmotriti ćemo samo proširenje na mutiple varijable binarne
operatore I, ILI, XILI ekvivalenciju, NAND i NILI (NOR).
Na osnovu aksioma 3 i teoreme 3.8 znamo da su oba operatora ILI i I komutativna

x+y=y+x i xy = yx

i asocijativna

x + ( y + z ) = ( x + y ) + z = x + y + z i x ( yz ) = ( xy ) z = xyz

■ TABELA 3.7 Proširenje I ili ILI na tri varijable

x y z xyz x+y+z

0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 0 1
1 0 0 0 1
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Prema tome oba operatora mogu da se prošire na više od dvije varijable. Tabela 3.7 izlistava tabelu
istine za I i ILI sa tri nezavisne varijable. (Treba uočiti da smo zajedno grupisali dvije tabele istine u
jednu.)
Možemo, takođe pokazati da je binarno XILI ili (XOR) operacija, komutativna i
asocijativna; odnosno da vrijede,

A⊕B=B⊕A
i
(A ⊕ B) ⊕ C = A ⊕ (B ⊕ C) = A ⊕ B ⊕ C

Na sličan način, operacija binarne ekvivalencije je i komutativna i asocijativna, pošto je komplement


od (XOR) operatora. Dakle obe operacije mogu se proširiti na multiple ulaze. Međutim, za funkcije I
i ILI, proširenje na (XOR) i ekvivalenciju ne više od dva ulaza nije pravolinijsko. Razlozi za ovo
leže u činjenici da je (XOR) neparna (odd) funkcija, dok je ekvivalencija parna (even) funkcija.
Neparna funkcija jednaka je 1, ako je neparni broj nezavisnih varijabli jednak 1. Kao kontrast, parna
funkcija jednaka je 1, ako nezavisne varijable imaju paran broj 0-la.
Kao ilustracije problema razmotrimo u Tabeli 3.8 proširenje operatora XILI (XOR) i ekvivalencije na
tri i četiri varijable. Da bi dobili tabele istine prvo moramo izraziti Boolove funkcije preko operatora
ILI, I i NE.
Na primjer:

A ⊕ B ⊕ C = (A ⊕ B) ⊕ C = (A' B + A B') ⊕ C

= (A' B + A B')' C + (A' B + A B') C'

= A B C + A' B' C + A' B C' + A B' C' (3.1)

Na osnovu jednačine (3.1) možemo dobiti odgovarajuću tabelu istine prikazanoj u tabeli 3.8. Ostale
tabele istine izvedene su na sličan način.

■TABELA 3.8 Proširenje X ILI (XOR) i ekvivalencije na tri i četiri varijable.

XILI (XOR) Ekvivalencija


A B C A⊕B⊕C A~B~C
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 0
1 0 0 1 1
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1

XILI(XOR) Ekvivalencija
A B C D A⊕B⊕C⊕D A~B~C~D
0 0 0 0 0 1
0 0 0 1 1 0
0 0 1 0 1 0
0 0 1 1 0 1
0 1 0 0 1 0
0 1 0 1 0 1
0 1 1 0 0 1
0 1 1 1 1 0
1 0 0 0 1 0
1 0 0 1 0 1
1 0 1 0 0 1
1 0 1 1 1 0
1 1 0 0 0 1
1 1 0 1 1 0
1 1 1 0 1 0
1 1 1 1 1 1

.
Kao sljedeće učinit ćemo naredne observacije. Ako imamo n varijabli onda 2n/2 od 2n
mogućih binarnih kombinacija imat će neparan broj 1-ca i 2n/2 kombinacija ima parni broj 0-la. Ali
ako je n neparan onda kombinacije koje imaju neparan broj 1-ca su iste kombinacije koji imaju paran
broj 0-la. S druge strane, ako je n parno, tada kombinacije koje imaju neparan broj 1-ca formiraju
komplementarni skup prema kombinacijama koje imaju paran broj 0-la. Možete verificirati ove
observacije pregledavanjem binarnih kombinacija za n = 3 i n = 4 varijabli u Tabeli 3.8.
Ako sada uporedimo kolone sa zaglavljima XILI (XOR) i ekvivalencije u Tabeli 3.8. vidjet
ćemo da su za n = 3 (neparno) dvije funkcije jednake dok za n = 4 (parno) one su komplementarne.
Ove observacije su takođe općenito istinite. Ako je broj varijabli n paran onda su XILI (XOR) i

■ TABELA 3.9 Proširenje NOR i NAND na tri varijable


NOR NAND
A B C (A+B+C)' (ABC)'
0 0 0 1 1
0 0 1 0 1
0 1 0 0 1
0 1 1 0 1
1 0 0 0 1
1 0 1 0 1
1 1 0 0 1
1 1 1 0 0

ekvivalencije komplementarne, ali ako je n neparan onda su XILI (XOR) i ekvivalencije jednake.
Pogledajmo najzad NOR i NAND operatore. Oba binarna operatora su komutativna ali nijedan nije
asocijativan. Prema tome, govoreći striktno, nijedan od operatora ne može biti proširen na multiple
varijable. Ipak, možemo prevazići ovu teškoću podsjećajući da je NOR (NILI) ne-ILI (not-OR) i
NAND(NI) ne-I (not-AND). Sada možemo jednostavno definisati NILI (NOR) operator multiple-
varijable kako slijedi
( x1 + x2 + . . . + xn )’

i NI (NAND) operator multiple varijable kao

( x1 x2 . . . xn )’

Kao primjer Tabela 3.9 izlistava proširenje NILI (NOR) i NI (NAND) na tri varijable bazirajući se na
ovim definicijama.

Funkcionalna kompletnost

Skup operacija je funkcionalno kompletan (functionally complete) (ili universal-univerzalan) ako i


samo ako se svaka Boolova funkcija može izraziti preko operatora u skupu. Pošto su Boolove
funkcije formirane korištenjem operatora ILI, I i NE, skup {+,.,'} je prema tome funkcionalno
kompletan. Ali, prema De Morganovom zakonu (10a) (vidi Tabelu 3.1) skup {.,'} je također
funkcionalno kompletan pošto je (x+y)=(x’y’)’, pa dakle, I i NE mogu zamijeniti operaciju ILI u
svakoj Boolovoj funkciji. Slično, De Morganov zakon (10b) kaže da je skup {+,’} također
funkcionalno kompletan.
Postoji mnogo funkcionalno kompletnih skupova operacija. Uobičajena tehnika dokazivanja
da je dati skup operacija funkcionalno kompletan je da se pokaže da dati operatori mogu generisati
svaki od operatora poznatog funkcionalno kompletnog skupa (kao što su npr. {+,'} ili {.,'}).
Neki funkcionalno kompletni skupovi sadrže jedan (single) operator. Npr, NILI (NOR) operator je
funkcionalno kompletan zbog toga što možemo da ga koristimo za generisanje funkcionalno
kompletnog skupa {+,'} kako slijedi:

x ↓ x = x’ x’ = x’ (NE) (NOT)
( x ↓ y ) ↓ ( x ↓ y ) = [(x + y)’ + (x + y)’]’ = x + y (ILI) (OR)

Slično, NI (NAND) operator je funkcionalno kompletan zbog toga što generira funkcionalno
kompletan skup {.,’} kako slijedi:

x | x = x’ (NE) (NOT)
( x | y ) | ( x | y ) = [( x y )’ ( x y )’]’ = x y (I) (ILI)

Pošto možemo implementirati svaku Boolovu funkciju sa bilo kojim od ovih jedno-operatorskih
skupova, NILI (NOR) i NI (NAND) vrata su veoma popularna u projektovanju digitalnih sistema i
stoje na raspolaganju u formi čipova sa integriranim krugovima bilo koje logičke familije.
Drugi funkcionalno kompletni skupovi operacija ilustrirani su u sljedećim primjerima.

■ Primjer 3.5 Skup {f},gdje je f(x,y,z)=x’yz+y’z’+x’y’ je funkcionalno kompletan pošto je:

f (x, y, z) = x’yz + xx’ = x ↓ y NILI(NOR) ■

■ Primjer 3.6 Skup {f,1}, gdje je f(x,y)=x’y funkcionalno komplementan pošto su:

f (x, 1) = x’ (NE) (NOT)

f ( x’y)=xy (I) (AND) ■

■ Primjer 3.7 Skup {f,1}, gdje je f(x,y,z)=x’y’+x’z’+y’z’ funkcionalno kompletan pošto su :


pošto su:

f (x, x, x) = x’ (NE) (NOT)

f (x’, y’, 1) = x y (I) (AND) ■

Ohrabrujemo čitatelja da verificira da ni (XILI) (XOR) ni ekvivalencije nisu funkcionalno


komplentni skupovi, dok se s druge strane skupovi {XILI,ILI,1}, {XOR,OR,1} i
{ekvivalencija,ILI,0}, { ekvivalencija, OR,0} funkcionalno kompletni.

Komplementi

Komplement f' prekidačke funkcije f se dobija međusobnom zamjenom vrijednosti 0 i 1 u f. Možemo


dobiti f' iz tabele istine od f kao što to ilustrira primjer 3.4. Možemo, također izvesti komplement
algebarski, korištenjem De Morganovih teorema (10a) i (10b), (vidi Tabelu 3.1) kao što je pokazano
u slijedećim primjerima.

■ Primjer 3.8 (a) Pronađi komplement od f =(x' + y) ( xz + yz')

f' =[(x' + y) (xz + yz')]'

= (x' + y)' + (xz + yz')' (10b)

= xy' + (xz)' (yz')' (10a)

= xy' + (x' + z') (y' + z) (10b)

(b) Pronađi komplement f = xy'z + x'yz'

f' = (xy'z + x'yz)'

= (xy'z)' (x'yz')' (10a)

= (x' + y + z') (x + y' + z) (10b)


Alternativno, komplement funkcije može ce dobiti kada se prvo izvede dualna funkcija i nakon toga
komplementira svaka varijabla. (Podsjetimo da dual fd od f se dobija međusobnom zamjenom I-ija i
ILI-ija (ANDs and ORs), te 0-tog i 1-vog; vidi primjer 3.1). Pogledajmo ovu proceduru na sljedećim
primjerima.
■ Primjer 3.9 Ponovi primjer 3.8 preko nalaženja duala i nakon toga komplementiranja svake varijable.

(a) fd =x’y+(x+z)(y+z’). Komplementiranjem svake varijable imamo

xy’+(x’+y’)(y’z’)=f’

(b) fd=(x+y’+z)(x’+y+z’). Komplementiranjem ove varijable imamo

(x’+y+z’)(x+y’+z)=f’

3.6 BOOLOVE KANONSKE FORME

U dosadašnjim razmatranjima naglasak je bio dat na konverziju Boolovih izraza u prekidačke


funkcije u formi tabele istine. Promijenimo sada našu perspektivu i razmotrimo obrnuti proces u
izvođenju algebarskog izraza za prekidačku funkciju na osnovu njene predstave preko tabele istine.
Dvije binarne varijable, x i y, na čije operacije je primjenjen I (AND) operator, daju četiri
kombinacije članova produkta: x’y’, x’y, xy’ i xy. Na sličan način korištenjem ILI (OR) operacije kao
rezultat dobijaju se četiri kombinacije članova sume: x+y’,x+y,x’+y i x’+y’. Treba uočiti da u svakom
od ovih generisanih članova varijable se pojavljuju bilo kao komplementirane ili nekomplementirane,
ali ne u obe forme. Međutim, dvije varijable x i x’(ili y i y’) nisu dvije različite varijable zbog toga što
sadrže samo x (ili y). Da bi ih razlikovali označićemo obe mogućnosti kao x* (ili y*) i nazvaćemo ih
literalnim (literal). Dakle, literalno definiše varijable sa i bez crtice. Prema tome, x i x’ odnose se na
istu varijablu, ali su dva različita litarala. Uzimajući u obzir ovu definiciju vidimo da je svaki član
proizvod ili suma, formiran od različitih literala.
Općenito, član u obliku proizvoda (product term) formiran od n različitih literala i naziva se
minterm od n varijabli, dok član u obliku sume (sum term) formiran od n različitih literala sa
označava kao maksterm (maxterm) od n varijabli. Kako ćemo ubrzo vidjeti mintermovi i
makstermovi predstavljaju ključ za dobijanje Boolovih izraza njihove predstave preko funkcionalne
tabele istine.
Tabela 3.10 izlistava u formi tabele istine mintermove i makstermove tri binarne varijable x,
y i z. Treba uočiti da svaka binarna kombinacija od tri varijablie jedinstveno definira minterm
(maksterm). Obrnuto (the converse) je također istinito, dakle, svaki minterm (maksterm) je pridružen
samo sa jednom binarnom kombinacijom. Ali, pošto postoji jedan prema jedan korespodencija
između binarnih kombinacija i njihovih dekadnih (decimal) ekvivalenata, postoji jedan prema jedan
korespodencija između svakog dekadnog i minterma (maksterma). Npr., dekadnom 6 jedinstveno
korespondira binarno 110, minterm xyz' (označen sa m6) i maksterm x'+y'+z (označen M6).

■ TABELA 3.10 Mintermovi i makstermovi od tri varijable

Dekadno (decimal) x y z Minterm Maksterm

0 0 0 0 x`y`z` (m0) x+y+z (M0)


1 0 0 1 x`y`z (m1) x + y + z` (M1)
2 0 1 0 x`y z` (m2) x + y`+ z (M2)
3 0 1 1 x`y z (m3) x + y`+ z` (M3)
4 1 0 0 x y`z` (m4) x`+ y + z (M4)
5 1 0 1 x y`z (m5) x`+ y + z` (M5)
6 1 1 0 x y z` (m6) x`+ y`+z (M6)
7 1 1 1 x y z (m7) x`+ y`+z` (M7)

Istaknimo, da ako je broj varijabli specificiran ne postoji dvosmislenslenost u ovom lancu


korespodencije jedan prema jedan. Npr. m6 za četiri varijable w,x,y i z je w'xyz'. U suprotnom slučaju,
ako broj varijabli nije specificiran i želimo da izrazimo m6 tada sve što možemo da kažemo je da se
zahtijeva minimum od tri varijable. Ne možemo specificirati maksimalni broj varijabli, niti možemo
izvesti (deduce) aktuelni broj varijabli
Da se dobije minterm koji odgovara datoj binarnoj kombinaciji, formiramo član u obliku
proizvoda u kojem je varijabla komplementirana, ako je njena utvrđena binarna vrijednost 0 ili je
nekomplementirana ako je binarna vrijednost 1. Makstermovi su generirani primjerom principa
dualnosti; varijabla je komplementirana ako je njena utvrđena binarna vrijednost 1 ili je ne
komplementirana ako je binarna vrijednost 0. Možemo verificirati ova pravila generisanjem
mintermova i makstermova od 3 varijable prema Tabeli 3.10. Međutim, ova pravila su primjenjiva
na bilo koji broj varijabli. Na primjer, binarnu kombinaciju 01101 (dekadno 13). Potrebno nam je bar
pet varijabli za specificiranje njenih odgovarajućih mintermova i makstermova. Ako označimo ove
varijable kao: v,w,x,y, i z, gdje je v najznačajniji bit onda su m13 = v’wxy’z i M13 = v+w’+x’+y+z’.
Općenito, postoji 2n mintermova (makstermova) generiranih n binarnih varijabli {xn-1,…x1,x0}.
Za karakteriziranje strukture minterma (maksterma), neka sa (K)10 označimo dekadni ekvivalent K- te
binarne kombinacije (kn-1,….,k1,k0)2 od n varijabli; dakle K=0,1,2,…,2n-1. Sa mk =x*n-1,…x1*x0* K-ti
minterm, odnosno

xi* = x’i ako je ki = 0

= xi ako je ki = 1

Na sličan način ako se sa MK= x*n-1+,…+x1*+x0* označi K-ti maksterm onda je

xi* = xi ako je ki = 0

= xi’ ako je ki = 1

Zapazimo da je vrijednost svakog minterma 1 ako i samo ako varijable poprimaju vrijednost
svojih odgovarajućih binarnih kombinacija i jednaka je 0 za svaku drugu kombinaciju. Također,
vrijednost svakog maksterma je 0 ako i samo ako varijable poprimaju vrijednost svojih odgovarajućih
binarnih kombinacija i jednaka je 1 za svaku drugu kombinaciju. Prema tome, za istu binarnu
kombinaciju, odgovarajući minterm i maksterm su komplementi jedan drugog. Na primjer, sa tri
varijable m6=1 (M6=0) vrijede ako i samo ako x=1, y=1 i z=0 i M6=0 (M6=1) za svaku drugu
kombinaciju. Ove osobine vrijede za bilo koji broj varijabli i može da se sumira na sljedeći način:

mimj=0 ako je i ≠ j (3.2a)


=mi ako je i = j
Mi +Mj = 1 ako je i ≠ j (3.2b)
= Mi ako je i = j
mi = Mi' i Mi = mi' za svako i (3.2c)

Sada možemo koristiti ove koncepte za izvođenje algebarskog izraza Boolove funkcije iz
date tabele istine. Ovo možemo učiniti na dva načina:
1. Sumiranjem (ORing) onih mintermova za koje funkcija poprima vrijednost 1
2. Množenjem (ANDing) onih maksterma za koje funkcija poprima vrijednost 0

U narednom primjeru ove procedure biti će detaljnije ilustrirane.

■ Primjer 3.10 Razmotrimo sljedeću tabelu istine Boolove funkcije od tri varijable f(x2,x1,x0)

Dekadno x2 x1 x0 f
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1

(a) Pošto je f=1 za binarne kombinacije čiji su dekadni ekvivalenti 1,4,5,6 i 7 funkcija se može
izraziti kao:

(x2,x1,x0)=m1+m4+m5+m6+m7
Svaki od ovih mintermova može se eksplicitno specificirati preko tri varijable kako bi se dobio
sljedeći Boolov algebarski izraz za f:

f(x2,x1,x0)= x2'x1'x0+ x2x1'x0'+ x2x1'x0+ x2x1x0'+ x2x1x0

(b) Pošto je f=0 za binarne kombinacije čiji su dekadni (decimal) ekvivalenti 0, 2, i 3 fukcija se može
alternativno izraziti kao:

(x2,x1,x0)=M0M2M3

Svaki od ovih makstermova može se eksplicitno specificirati preko tri varijable kako bi se dobio
sljedeći algebarski izraz za f:

f(x2,x1,x0)=(x2+x1+x0)+ (x2+x1'+x0)+ (x2+x1'+x0')

Kasnije ćemo pokazati kako konvertirati jednu formu u drugu. U međuvremenu, međutim,
preporučujemo čitatelju, da verificira, korištenjem indetiteta iz tabele 3.1, da su izrazi u dijelovima
(a) i (b) jednaki iIi da se f može u pojednostavljenoj formi predstaviti kao x2+x1'x0 [ili ekvivalenti
kao (x2+x1') (x2+x0)]. ■

U primjeru 3.10 funkcija f predstavljena je kao suma [ILI, (OR) od mintermova koji odgovaraju
binarnim kombinacijama x2,x1,x0 za koje f poprimi vrijednost 1. Pošto postoji jedan prema jedan
korespodencija između ovih binarnih kombinacija, njihovi dekadni ekvivalenti, i njihovi mintermovi
možemo koristiti skraćenu notaciju i izraziti f kao

f(x2,x1,x0)=∑( 1,4,5,6,7) (3.3)

Simbol ∑ u jednadžbi (3.3) vrijedi za ''logičku sumu [ILI(OR)] mintermova indiciranih dekadnim
brojevima''. Na sličan način, pošto se f može takođe izraziti kao produkt [I(AND)] ovih makstermova
koji korespondiraju vrijednostima x2,x1 i x0 za koje je f jednako 0, možemo f predstaviti kao

f(x2,x1,x0)=∏ (0,2,3) (3.4)

Simbol ∏ u jednačini (3.4) vrijedi za ''logički produkt [I(AND) ] makstermova indiciranih dekadnim
brojevima (decimals)''. Zapazimo da nema dvosmislenosti kod korištenja bilo kojeg od ovih formata
za izražavanje svake Boolove funkcije. Umjesto da predstavljamo druge izraze preko ovih varijabli,
možemo konvencionalno predstaviti funkciju korištenjem skraćenih formi.
Nazvaćemo predstavu sume mintermova Boolove funkcije kanonskom formom sume
produkata [the canonical sum-of-product (SOP) form].(Ponekad kanonski (SOP) se naziva minterm
formom ili disjunktivnom normalnom formom). Predstava produkata maxtermova Boolove funkcije
naziva se kanonskom formom produkta suma [the canonical product of sums (POS) form].
(Kanonski (POS) se takođe naziva maksterm forma ili konjuktivna normalna forma).

Svaka Boolova funkcija može se izraziti bilo kao kanonsko SOP ili kanonsko POS. Ovu tvrdnju
možemo rezimirati preko sljedeće teoreme.

□ Teorema 3.10. Svaka Boolova funkcija f (xn-1,…,x1,x0) od n varijabli može da se napiše u jednoj od
dvije sljedeće forme:

kanonska suma produkata

kanonski proizvod suma


Svaki od koeficijenata αk i βk može da poprimi vrijednost 1 ili 0. Ako je f=1 za K-ti minterm ili
maksterm, onda će ovi koeficijenti biti 1; u ostalim slučajevima bit će 0. Drugim riječima,

αk=βk=f(k n-1,…,k1,k0)
Podsjetimo da postoji 22n funkcija od n binarnih varijabli. Jednadžbe (3.5) i (3.6) daju dvije
alternative za izražavanje svake od ovih Boolovih funkcija bilo kao kanonsko SOP ili kao kanonsko
POS. Možemo izvesti ove forme ponovljivom primjenom Shannonovih teorema razvoja (11a) i (11b)
respektivno, (vidi tabelu 3.1). U cilju ilustracije predpostavimo da je n=3. Dakle, postoji (22)n =28=
256 Boolovih funkcija od tri varijable. U sljedećem primjeru pokazat ćemo kako izvesti svih 256
kanonskih SOP predstava preko ponovljive primjene Shannonove teoreme razvoja (11a).

■ Primjer 3.11 Preko ponovljive primjene Shannonove teoreme razvoja (11a) dobijamo

f(x,y,z)

= xf (1, y, z) + x'f (0, y, z)

= x [yf (1, 1, z) + y'f (1, 0, z)] + x' [yf (0, 1, z) + y'f (0, 0, z)]

= xy [zf (1, 1, 1) + z'f (1, 1, 0)] + xy' [zf (1, 0, 1) + z'f (1, 0, 0)]

+ x'y [zf (0, 1, 1) + z'f (0, 1, 0)] + x'y' [zf (0, 0, 1) + z'f (0, 0, 0)]

Množenjem i grupisanjem članova, imamo

f(x,y,z) = f(0, 0, 0) x'y'z' + f(0, 0, 1)x'y'z + f(0, 1, 0) x'yz'


+ f(0, 1, 1) x'yz + f(1, 0, 0) xy'z' + f(1, 0, 1) xy'z
+ f(1, 1, 0) xyz' + f(1, 1, 1) xyz (3.8)

Svaki od množitelja f(., ., .) je bilo 0 ili 1 zavisno da li je f 0 ili 1, respektivno, za specificiranu


binarnu kombinaciju. Množitelji su, prema tome, αK-ovi jednadžbe (3.7), dok je jednadžba (3.8)
upravo ponavljanje jednadžbe (3.5) za n=3. Pošto svaki od osam množitelja može da bude 0 ili 1,
ukupan broj binarnih kombinacija koje oni mogu poprimiti je 28=256 što je totalni broj funkcija od tri
varijabli.
Ostavljamo čitatelju da izvede kanonsku POS za tri varijable korištenjem bilo Shannonove teoreme
razvoja (11 b) ili principa dualnosti. ■

Relacije između kanonskih formi

Pošto dvije kanonske forme daju dvije alternative za izražavanje iste Boolove funkcije, jedna se
forma može izvesti iz druge. Da bi se ovo uočilo, podsjetimo da je funkcija u jednadžbi (3.10)
opisana jednadžbom (3.3) na sljedeći način.

f(x2,x1,x0)=∑(1,4,5,6,7) (3.9)

Komplement gornje relacije ima oblik:

f'(x2,x1,x0)=∑(0,2,3)

Uzimajući komplement komplementa i koristeći DeMorganov zakon (10a), (vidi tabelu 3.1)
dobijamo:

f(x2,x1,x0)=[∑(0,2,3)]'=m0'm2'm3'=M0M2M3

gdje je posljednji izraz dobijen korištenjem jednadžbe (3.2c). Dakle,


f(x2,x1,x0)=∑(1,4,5,6,7)= ∏ (0,2,3) (3.10)

Alternativno, možemo posmatrati proces konvertiranja jedne kanonske forme u drugu na sljedeći
način: Označimo sa U skup dekadnih brojeva (decimals) pridruženih funkciji. Ako je A skup
dekadnih brojeva (decimals) kanonskog SOP, onda je U-A skup dekadnih brojeva kanonskog POS i
obrnuto. U sljedećem primjeru ilustrirat ćemo ovu proceduru.
■ Primjer 3.12 Skup dekadnih brojeva pridruženih bilo kojoj Boolovoj funkciji od 3 varijable je
U={0,1,2,3,4,5,6,7}. Skup dekadnih brojeva (decimals) kanonskog SOP od f u jednadžbi (3.9)
je A={1,4,5,6,7}. Dakle, U-A=(0,2,3) je skup dekadnih brojeva (decimalnih) koji odgovara
kanonskom POS od f, u saglasnosti sa jednadžbom (3.10). ■

Komplementi i duali

Ako je funkcija od n-varijabli specificirana kao kanonska SOP, onda je njen komplement dat sa :

(3.11)

Drugi dio jednadžbe (3.11) dobijen je korištenjem De Morganove teoreme (10a) Tabele 3.1, a treći
dio je dobijen korištenjem jednadžbe (3.2c).
Ako je funkcija specificirana kao kanonski POS, onda je komplement dat sa :

Drugi dio jednadžbe (3.12) dobijen je iz DeMorganove teoreme (10b), a treći dio dobijen je iz
jednadžbe (3.2c).
Da se dobije dual funkcije f od n-varijabli treba koristiti jednadžbu (3.13), ako je f u kanonskom SOP,
a jednadžbu (3.14) ako je f u kanonskom POS.

U sljedećem primjeru ilustriraju se primjene jednadžbi (3.11) do (3.14)

■ Primjer 3.13 Razmotri funkciju

f=∑(1,2,3,4)= ∏ (0,5,6,7)

Prema tome α-fe za kanonsku SOP formu su:

α0=α5=α6 = α7 =0, α1=α2=α3=α4=1


a β-te za kanonsku POS formu su:

β0=β5=β6 = β7 =0, β1=β2=β3=β4=1


(a) Sa f u kanonskoj SOP formi, dobijen je komplement iz jednadžbe (3.11):

f’=M1M2M3M4

(b) Ako je f u kanonskoj POS formi, iz jednačine (3.12) dobijamo:


f`=m0+m5+m6+m7

(c) Sa f u kanonskoj SOP formi dobijamo dual iz jednačine (3.13):

fd=m1dm2dm3dm4d=M6M5M4M3

(d) Ako je f u kanonskoj POS formi dobijamo iz jednačine (3.14):

fd=M0d+M5d+M6d+M7d=m7+m2+m1+m0

Kao što smo spomenuli u sekciji 3.5, komplement se također može dobiti nalaženjem prvog duala i
potom komplementiranjem. Dakle ako je f u kanonskom SOP, komplementiraj varijable u jednakosti
(3.13) da dobiješ jednadžbu (3.11). Slično ako je f u kanonskoj POS, komplementiraj varijable u
jednadžbi (3.14) da dobiješ jednadžbu (3.11).

Nekanonske forme

Podsjetimo da smo u primjeru 3.10 dobili dvije kanonske forme [jednadžbe (3.3) i (3.4) ] za datu
funkciju f(x2,x1,x0). Kako smo tamo istaknuli sa bilo kojom od ovih kanonskih formi možemo
algebarskom manipulacijom dobiti njihove jednostavnije forme bilo kao:

f(x2,x1,x0) = x2+x1’x0

ili kao:
f(x2,x1,x0) = (x2+x1’)(x2+x0)

Prvi izraz je suma produkata (SOP), dok je drugi izraz u produkt suma (POS) formi pri čemu je svaki
izraz kombinovan, zbog toga što produktni članovi (članovi sume) nisu mintermi (makstermi). Kad je
riječ o njima jednostavno će se izostaviti riječ kanonski i koristiti skraćenice SOP i POS. U slijedećoj
sekciji, pokazat ćemo kako konvertovati nekanonske u kanonske forme.

Konverzija u kanonske forme

Da bi konvertovali izraz sume produkata u njegovu kanonsku SOP formu koristićemo identitet
x+x’=1. Ako jedna ili više varijabli nedostaju u bilo kojem produktu mi ih podvrgavamo operaciji
I(AND) koristeći ovaj identitet pa potom odstrenjujemo zagrade koristeći zakon distribucije. Ova
procedura ilustrirana je u sljedećem primjeru:

■ Primjer 3.14 Pretvori funkcije f(x, y, z) = x'y + z + xy' u kanonsku SOP formu.

f(x, y, z) = x'y (z + z') + (x' + x)(y' + y)z + xy'(z + z')


= x'yz + x'yz' + x'y'z + xy'z + x'yz + xyz + xy'z + xy'z'
= x'yz + x'yz' + x'y'z + xy'z + xyz + xy'z'
Treba uočiti da se prilikom ovog izvođenja i x'yz i xy'z pojavljuju dva puta. Ovakva suvisnost
(redundancy) eliminiše se korištenjem identiteta (4a) tabela 3.1

■ Primjer 3.15 Ponovi primjer 3.14 pretvarajući funkciju u kanonsku POS formu. Pošto je f(x, y, z) =
∑(1,2,3,4,5,7) onda je f jednaka ∏ (0,6). Dakle,

f (x, y, z) = (x + y + z)(x' + y' + z)


Za pretvaranje izraza produkt suma u kanonsku POS formu koristimo identitet xx'=0. U ovoj
konverziji ako jedna ili više varijabli nedostaju iz bilo kojeg produkta na njih primjenjujemo
operaciju ILI koristeći ovaj identitet, a nakon toga ponovo koristimo identitet (2b) tabele 3.1 da
dobijemo kanonsku POS. Ova procedura je objašnjena u sljedećem primjeru.
■ Primjer 3.16 Pretvaranje f(x, y, z) = x(y’+ z) u kanonsku POS formu.
U prvom produktu sa x, nedostaju i y i z . Preko ILI (ORing) yy’ s njim i koristeći zakon distribucije
(2b) imamo:

x = x + yy’ = (x + y) (x + y’)

Pošto je z odsutno u svakom od ovih produkata možemo pisati:

x+y = x + y + zz’ = (x + y + z) (x + y + z’)


x+y’ = x + y’ + zz’ = (x + y’ + z) (x + y’ + z’)

Varijabla x nedostaje u drugom produktu funkcije f ; prema tome:

y’ + z = xx’ + y’ + z = (x + y’ + z) (x’ + y’ + z)

Preko I-ranja (AND-ing) svih ovih izraza i odstranjivanja onih koji su suvišni (redundant) odnosno
pojavljuju se više od jednog puta, dolazimo do sljedećeg kanonskog POS-a:

f(x,y,z)=(x+y+z)(x+y+z’)(x+y’+z)(x+y’+z’)(x’+y’+z) ■

Za konverziju izraza proizvod suma u kanonsku SOP formu, jednostavno je prvo izvršiti
konverziju u kanonski POS, a potom u kanonski SOP.

■ Primjer 3.17 Ponovi primjer 3.16 konvertirajući funkciju u kanonski SOP. Pošto
je f(x,y,z)=∏(0,1,2,3,6) slijedi da je f jednaka ∑(4,5,7)

f(x,y,z)=xy’z’+xy’z+xyz

3.7 IMPLEMENTACIJA DIGITALNE LOGIKE

Najznačajnija primjena Boolove algebre leži u području projektovanja digitalnih sistema. Raznovrsne
funkcionalne jedinice digitalnih sistema poznate kao logički (ili prekidački) krugovi koji prihvataju
kolekciju ulaza i generišu kolekciju izlaza. Svaki ulazni i izlazni signal predstavlja varijablu koja
poprima samo dvije različite vrijednosti i nosi jedan bit informacije . Sa svakom informacijom se
može raditi na taj način što se binarni signal propusti kroz različite kombinacije logičkih krugova. U
poglavljima koja slijede diskutovati ćemo sa znatnim detaljima analizu i projektovanje različitih
digitalnih krugova. Ipak, sa idejama koje su do sada prezentirane već raspolažemo sa osnovnim
alatima za projektovanje koji se mogu primjeniti na brojne probleme projektovanja. Prema tome cilj
ove sekcije je dvostruk: (1) uvesti standardne izgradne blokove (building blocks) nazvane vrata
(gates) koji se koriste za implementaciju digitalnog projekta, i (2) uvesti proces projektovanja preko
netrivijalnih primjera. Drugi problemi projektovanja mogu da se nađu kao zadaci na kraju ovoga
poglavlja.

Logička vrata

Logički krugovi koji izvršavaju logičke operacije kao što su I, ILI, i NE nazivaju se vrata. Vrata su
hadverski blok koji proizvodi logičko 0 ili logičko 1 izlaznog signala kao odziv na binarne signale
primjenjene vratima.
Od 16 Boolovih funkcija definiranih u Tabeli 3.6 dvije su konstantne dok su četiri
(komplement, transfer, inhibicija i implikacija) ponavljaju dva puta. Inhibicija i implikacija ne koriste
se kao standardna vrata, zbog toga što nisu komutativne i asocijativne. Dakle samo osam funkcija su
implementirane kao standardno logička vrata: I, ILI, komplement (NE), transfer, NI (NAND), NILI
(NOR), eksluzivno – ILI i ekvivlencija.
Osam standardnih vrata prikazano je na slici 3.1. Grafički simboli označavaju se kao simboli
osobitog oblika prema (ANSI/IEEE standardu No 91-1937). U novije vrijeme, međutim, pojavili su
se novi standardi grafičkih simbola za logičke funkcije (ANSI/IEEE standard No 91-1984). Novi
standard je veoma moćan simbolički jezik za opis relacija između svakog ulaza i svakog izlaza
digitalnog kruga, bez eksplicitnog prikazivanja interne konstrukcije kruga. Ipak da ne opterećujmo
suvišno čitatelja sa prilično složenim novim standardima izabrali smo za korištenje simbole osobitog
oblika tokom ove knjige, a i dali smo kratak pregled novih standarda u dodatku na kraju knjige.
Na slici 3.1. mali krug na izlazu vrata ukazuje na komplementarnu NE(NOT) operaciju.
Vrata NE(NOT) često se još nazivaju inverzna pošto invertiraju (komplementiraju) binarni signal na
svom ulazu. Funkcije transfera ne djeluju na ulaznu varijablu i na izlazu se proizvodi ista vrijednost
ulaza.
Transferska vrata se uglavnom koriste kao bafer (buffer) u digitalnim kolima za povećanje
višestrukosti (fan-out-a) (vidi sekciju 1.2.) izvora signala. Na primjer, predpostavimo da dati uređaj
treba da pogoni 12 ulaza, ali je njegov fan-out samo 5. Prema tome, uređaj može da pogoni pet
bafera, (broj bafera nužno zavisi od njihovih fan-out sposobnosti) pa možemo koristiti njihove izlaze
za pogon 12 ulaza.
Zapazimo da izuzev vrata sa jednim ulazom sva ostala vrata prikazana na slici 3.1. imaju dva
ulaza. Uz to, već smo u sekciji 3.5 utvrdili da binarni operatori I, ILI, XILI (XOR), ekvivalencija, NI
(NAND) i NILI(NOR) mogu da se prošire na multiple ulaze. Što se tiče njihovih grafičkih simbola,
možemo izvršiti modifikaciju svakog od njih jednostavnim dodavanjem odgovarajućeg broja
dodatnih ulaznih linija.

Žičana logika

Ako su izlazi dvoja ili više vrata direktno spojeni zajedno, rad kola može da bude neodređen. Postoje
međutim, brojne primjene gdje su dva ili više izlaza vrata ili uređaja vezana na zajedničku liniju,
nazvanu sabirnica (bus-line) ili (jednostavnije bus).

■ SLIKA 3.1 Standardna logička vrata


■ SLIKA 3.2 Ožičena logika

Na primjer, od digitalnog računara može da se zahtijeva da pošalje ili primi podatke od velikog broja
ulazno/izlaznih uređaja. Pošto je nepraktično da svaki uređaj ima svoj vlastiti (odvojen) skup linija,
većina računara komunicira sa ulazno/izlaznim uređajima preko sabirnice koja ove uređaje spaja
paralelno. Jedan tip logike koja se koristi u sabirničko orijentisanim digitalnim sistemima naziva se
ožičena logika koja je podržana nekom od IC logičkih familija što omogućava da dva ili više izlaza
budu međusobno spojeni kako bi proizveli signal sa pravim značenjem. Slika (3.2a) pokazuje da je
logička funkcija generirana međusobnim spajanjem izlaza dvoja NILI (NOR) vrata ILI (OR) funkcije.
Ovaj tip spajanja često se naziva žična ILI (wired-OR). Slično slika 3.2(b) prikazuje implementaciju
žične-I funkcije (wired-AND function). Na obe slike linije su povučene kroz centar vrata da bi se
razlikovale od regularnih vrata. Treba uočiti da žični–I ili žično-ILI nisu fizikalna vrata već simbol
koji označava funkciju implementiranu datim žičnim spojevima.

Primjer logičkog projektovanja

U narednim poglavljima uvest ćemo proces projektovanja digitalnih krugova na sistematski način i
diskutirati brojne algoritme koji se mogu koristiti da bi se došlo do dobrih projekata. Ipak koncepti
uvedeni do sada već se mogu integrisati na taj način da ilustriraju kako projektovanje digitalnih
prekidačkih krugova može da se izvršii od specifikacija zahtjevnog kruga do izvođenja dijagrama
logičkog kola. Prvi korak u procesu projektovanja je koncizno formulisanje problema. Ovo se čini
preko preslikavanja generalnog opisa problema bilo u Boolovu jednačinu ili u oblik tabele istine. Da
bi smo shvatili kako se ovo radi, razmotrimo uređaj nazvan displej od sedam segmenata (seven-
segment display) (SSD) koji se koristi za prikazivanje dekadnih (decimalnih) digita.
■ SLIKA 3.3 Logički projekat kola sa sedam segmenata

Slika 3.5(a) prikazuje sedam segmenata označenih slovima od a do g . Svaki segment može
se odvojeno osvijetliti (uključiti svijetlost), tako da pogodnim odabiranjem segmenata možemo
prikazati dekadne digite od 0 do 9 kako to prikazuje slika 3.3(b).
Naš problem je, prema tome, projektovanje logičkog kola koje će uključiti svjetlost u
korektni segment kao odgovor na binarno – kodirani dekadni (BCD) ulaz (vidi sekciju 2.2). Pošto je
BCD kod predstavljen varijablom od četiri bita krug će imati četiri ulaza, jedan za svaki bit. Pošto
postoji sedam segmenata krug mora imati sedam izlaza, od kojih će svakli prekidati odgovarajući
segment bilo na uključeno (on), ili isključeno (off). Dakle blok dijagram zahtjevanog kola dat je na
Slici 3.3 (c).
Možemo tabelirati izlaze koji odgovaraju svakoj validnoj binarnoj kombinaciji ulaza kako je
pokazano u tabeli istine na slici 3.3 (d). Ulazni kodovi su BCD predstave prikazanih digita, dok su
izlazne kolone popunjene preko nadziranja (by inspecting) displeja datih na slici 3.3 (b). Stavlja se 1
u pogodnu kolonu ako odgovarajući segment treba da bude uključen i 0 ako treba da je isključen. Na
primjer, digit 7 zahtijeva samo segmente a, b i c pa, prema tome upisujemo 1110000 u odgovarajuću
izlaznu sekciju tabele istine.
Uočimo da je tabela istine na slici 3.3 (d) nepotpuna. Sa četiri ulazne varijable, možemo
garantirati 16 binarnih kombinacija. Dakle, potpuna tabela istine treba da sadrži 16 vrsta. Međutim
samo deset vrsta se stvarno zahtijeva za specifikaciju našeg problema, pa se postavlja pitanje šta je sa
preostalih šest kombinacija? Pošto je ulazni kod BCD možemo predpostaviti da binarne kombinacije
koje odgovaraju dekadnim brojevima od 10 do 15 se nikad neće desiti. Ako se nikad ne dešavaju neće
se odgovarajući izlaz generisati. Drugim riječima, stvarno nas nije briga kakvi su izlazi za ove ulaze.
U potpunoj tabeli istine ovo može da se pokaže stavljanjem X-sa na izlazne kolone suprotne vrstama
kojie odgovaraju dekadnim 10 do 15. Ovdje se X-ks označava sa ne vodi brigu (don’t cares), može
biti 0 ili 1, te ne postoji razlika koju vrijednost svaki od njih poprima, pošto se predstavlja da se
odgovarajuća ulazna kombinacija nikad ne dešava. Dakle, njihovo izostavljanje iz tabele na sl.3.3.
implicira istu stvar “kao ne vodi brigu”. Oznaka ”ne vodi brigu “ biće detaljnije razmatrana u sekciji
4.6.
Nakon predstavljanja rada kruga u formi tabele istine možemo sada dati Boolove funkcije koje
predstavljaju njihovo ponašanje. Razmotrimo, na primjer, segment d koji treba da bude uključen
(d=1) kada prikazujemo digite 0,2,3,5,6, ili 8. Izražavajući ove uslove u kanonskoj SOP formi,
dobijamo iz tabele istine

d=∑(0,2,3,5,6,8)

Slični izrazi mogu se dobiti iz preostalih izraza

a=∑(0,2,3,5,7,8,9)
b=∑ (0,1,2,3,4,7,8,9)
c=∑ (0,1,3,4,5,6,7,8,9)
e=∑ (0,2,6,8)
f=∑(0,4,5,6,8,9)
g=∑(2,3,4,5,6,8,9)

Možemo također izraziti ove izlazne funkcije u alternativnoj kanonskoj POS formi. Na primjer, d
izraženo u ovoj formi biti će dato sa:

d=∏ (1,4,7,9)

Možemo zamijeniti odgovarajuće mintermove ili makstermove sa dekadnim i implementirati svaki


izlaz kao funkciju od četiri ulazne varijable koristeći ILI, I i NE vrata. Naravno možemo, također
koristiti bilo koji funkcionalno potpuni skup operatora da bi implementirati krug. Slika 3.4. prikazuje
dva primjera implementacije kanonske POS funkcije segmenta d; u dijelu (a) korištena su I, ILI i NE
vrata, dok su u dijelu (b) implementiran samo NILI(NOR). (Zapazimo kako su NILI vrata korištena
samo za implementaciju invertora.)

(a) Sa I, ILI i NE vrata

■ SLIKA 3.4.Implementacija segmenta d=∏ (1,4,7,9)


(b) Samo sa NILI (NOR) vratima

■ SLIKA 3.4 Nastavak

■ SLIKA 3.4 Nastavak

3.8 OSOBINE BOOLOVIH FUNKCIJA

U ovoj sekciji razmotrit ćemo neke značajne osobine Boolovih funkcija i diskutirati strukture nekih
klasa funkcija. Većina ovih osobina biti će korištena u sljedećoj sekciji 3.9 i Poglavlju 4. U ovoj
sekciji biti će riječi o Boolovoj prekidačkoj funkciji sa n-varijabli f(x1,x2,……xn) sa izostavljanjem
argumenta gdje god se to podrazumijeva.

□ Definicija 3.1 Za dva Boolova izraza f i g iste varijable kaže se da su (logički) ekvivalentni ako
određuju istu tabelu istine, u kom slučaju možemo pisati f = g.
Dakle, logička ekvivalencija Boolovih izraza je ekvivalentna relacija nad skupom svih
Boolovih izraza od n varijabli. Prema tome, skup Boolovih izraza od n varijabli može biti razbijen na
rastavljene ekvivalentne klase, gdje je svaka ekvivalentna klasa povezana sa jedinstvenom tabelom
istine, specificiranom bilo kojim izrazom te klase. Broj različitih ekvivalentnih klasa je najviše (22)n
različitih tabela istine prekidačkih funkcija od n varijabli. U stvari teorema 3.10, u sekciji 3.6,
pokazuje da bilo koja prekidačka funkcija od n varijabli određuje Boolov uzraz u kanonskoj formi.
Dakle, broj ekvivalentnih klasa Boolovih izraza od n varijabli je tačno isti kao broj prekidačkih
funkcija od n varijabli. Slijedi, da su dva Boolova izraza ekvivalentna, ako i samo ako su njihove
kanonske SOP (kanonski POS) forme identične.

Implikacija i ekvivalencija

□ Definicija 3.2 Za Boolov izraz f se kaže da uključuje (inplay) drugi Boolov izraz g, što se
označava kao f⇒g, ako, kada se f i g razmatraju kao funkcije, g ima vrijednosti 1, bar u svakoj
kombinaciji u kojoj f ima vrijednost 1.
Prema tome, f⇒g kad god su pridružene tabele istine takve, da vrste tabele istine od g, gdje g ima
vrijednost 1, sadrže sve vrste tabele istine od g za koje f ima vrijednost 1. Zapazimo da prema
principu dualnosti f⇒g da, ako i samo ako, f ima vrijednost 0 bar u svakoj kombinaciji u kojoj g ima
vrijednost 0.

■ Primjer 3.18. Neka su f=y’ i g=x+x’y’, tada je y=1 ako je x=1 ili x=0 i y=0. Pošto je f=1,ako je y=0 i x bilo1
ili 0 (uoči da je f nezavisan od x), onda f⇒g ■
Sljedeći je rezultat neposredno posljedica teoreme 3.2.

□Teorema 3.11. Dva Boolova izraza f i g su ekvivalentna ako i samo


ako f ⇒g i g⇒f. □
Možemo testirati implikaciju upoređivanjem tabela istine dva izraza ili korištenjem
sljedećeg rezultata.

□Teorema 3.12. Ako su f i g Boolovi izrazi onda f⇒g ako i samo ako f + g=g i fg=f

■ Primjer 3.19 Ponovo razmatrajući primjer 3.18. zapažamo da


f+g=y’+x+x’y'=x+y=g.
[ pošto x+y’=x+’x’y’ prema identitetu (7b) tabele 3.1.] i
fg=y’(x+x’y’)=y’=f ■

Na kraju navešćemo jedan dodatni koristan zaključak o ekvivalenciji Boolovih izraza.

□ Teorema 3.13. Dva Boolova izraza f i g su ekvivalentni ako i samo ako jedan izraz može biti
transformiran u drugi korištenjem aksioma i zakona Boolove algebre.

Neformalno govoreći, ono što ova posljednja observacija implicira je da su aksiomi
Boolove algebre dovoljni da odrede da li ili ne dva Boolova izraza daju istu tabelu istine. Dakle,
možemo zaključiti da su aksiomi i zakoni Boolove algebre sve što trebamo za analizu onog što mogu
biti dvije dramatično različite konfiguracije digitalnog kruga.

□ Definicija 3.3 Neka je p produkat (suma) literala, dok je f funkcija. Ako p⇒f onda se za p kaže
da je implikant (implicate) od f. □

■ Primjer 3.20 Neka su p=wxy' i f=wx+yz. Na osnovu teoreme 3.12 pošto je p+f=wxy'+wx+yz=wx+yz=f i
pf=wxy'=p, onda p⇒f, pa je wxy' implikant od f. ■

□ Definicija 3.4 Produkt (suma) literala je prvi implikant (prime implicant) od f, ako p⇒f i ako
brišući bilo koji literal u p rezultira novi član produkta (sume) koji ne implicira f. □

■ Primjer 3.21 Ako je p1= wxy’ i f=wx+yz , onda p1 jasno nije prvi implikant od f, pošto brišući y’ iz njega
rezultira novi produktni član, p2=wx koji također implicira od f. Međutim p2 je primarni
implikant od f, pošto je p2 ⇒ f, te brisanjem bilo kojih w ili x iz p2 rezultira produktni član koji
ne implicira f. ■

Klasifikacije varijabli

□ Definicija 3.5 Za funkciju f se kaže da je pozitivna (negativna) po xk , ako i samo ako je moguće
izraziti f u SOP ili POS formi bez xk’ (xk). □

■ Primjer 3.22 (a) Funkcija f (x,y,z)=xy+z’ je pozitivna po x i y,a negativna po z.


(b) Funkcija f (x,y)=x⊕y=x’y+zy’ nije ni pozitivna ni negativna
po x i y.
(c) Funkcija f (x,y)=xy’+y izgleda da je pozitivna po x ,a niti pozitivna niti negativna po y.
Međutim, korištenjem identiteta (7 b) tabele 3.1 f (x,y)=x+y pokazuje da je pozitivna i
po x i po y. ■

Funkcija f je pozitivna po xi ako se mijenja od 0 do 1 ili ostaje nepromijenjena kad god se x mijenja
od 0 do 1. Negativna je po x bilo ako se x mijenja od 1 do 0 ili ostaje nepromjenjena kad god se x
mijenja od 0 do 1. Kao što smo vidjeli u primjeru 3.22 (c) moramo se pobrinuti o tome da li je
funkcija pozitivna ili negativna po bilo kojoj od varijabli.
□ Definicija 3.6 Funkcija je unitarna po xi ako je bilo pozitivna ili negativna po xi. □

Ako je f bilo pozitivno ili negativno po xi tada se i xi i xi’ moraju pojaviti u svojim SOP ili POS
izrazima. Ako se ni xi ni xi’ ne pojavljuju u svom SOP izrazu, onda je f nezavisna od xi pa je onda
trivijalno i pozitivno i negativno po xi. U ovom slučaju f se često označava kao prazna (vacuous) po
xi, i za xi se kaže da je suvišan (redundant). Sve nesuvišne varijable se nazivaju bitne (essential) za f.
Aku su sve varijable suvišne onda f mora biti konstantan, bilo da je f=0 ili f=1. Naredni primjer
ilustrira ove koncepte.

■ Primjer 2.23 Razmotrimo funkciju f(w,x,y,z)=xy+x`z`. Varijable x,y,z su bitne za f. Funkcija ne zavisi od
w (w je suvišno), pozitivna je po y i w, negativna po z i w i unitarna po y i z. ■

Klasifikacija funkcija

□ Definicija 3.7 Za funkciju se kaže da je monotono neopadajuća ako i samo ako je pozitivna po
svim svojim varijablama. □

□ Definicija 3.8 Za funkciju se kaže da je monotono nerastuća ako i samo ako je negativna po svim
svojim varijablama. □

■ Primjer 3.24 Od 16 funkcija od dvije varijable (x i y) postoji 6 monotono neopadajućih funkcija,


0,x,y,xy,x+y i 1, te šest monotono nerastućih funkcija 1,x',y',x'y',x'+y' i 0. ■

Unitarne funkcije

□ Definicija 3.9 Funkcija f se naziva unitarna ako i samo ako je unitarna po svim svojim
varijablama. □

Koristeći definiciju 3.6 možemo alternativno utvrditi da je f unitarna ako i samo ako je
pozitivna ili negativna po svakoj od svojih varijabli. Drugim riječima f je unitarna funkcija ako i
samo ako se svaka varijabla pojavljuje bilo komplementirano ili nekomplementirano, ali ne obadvoje.
Iz ovih razloga unitarna funkcija je ponekad označena kao miješana monotona funkcija. Prema
tome, ako X={x1, x2, … xn} označava skup varijabli onda je f unitarna funkcija ako i samo ako X se
može razbiti u dva podskupa Y i Z takvo da X=Y ∪ Z i Y ∩ Z = Ø, (gdje ∩ i ∪ označavaju uniju i
presjek dva skupa, respektivno dok Ø označava prazan skup) tako da je f monotona neopadajuća
(pozitivna) funkcija u Y i monotono nerastuća (negativna) funkcija u Z.

■ Primjer 3.25 (a) Funkcija f (x,y,z)= x'y+x'z+yz je unitarna, pa možemo razbiti X = {x, y, z} u
Y={y,z} i Z={x} tako da je Y∪Z=X, Y∩Z=Ø, što znači da je f pozitivno u Y i negativno u Z.
(b) Jasno je da je funkcija f(x,y)=x'y+xy' neunitarna. ■

Simetrične funkcije

□ Definicija 3.10 Funkcija f se naziva totalno simetrična ako i samo ako ostaje nepromjenjena pri
bilo kojoj permutaciji njenih varijabli. □

■ Primjer 3.26 (a) Funkcija f(x,y)=xy'+x'y je totalno simetrična, pošto x,y igraju identične uloge u određivanju
vrijednosti f, pa je prema tome f nepromjenjena pri ovoj permutaciji.
(b) Funkcija f(x,y,z)=xy+xz+yz je jasno totalno simetrična. ■

□ Definicija 3.11 Funkcija f je parcijalno simetrična, ako i samo ako postoji bar jedan podskup od
bar dvije varijable po kojima je f totalno simetrično. □
■ Primjer 3.27 (a) f(x,y,z)=xy+z' je parcijalno simetrična po x i y.
(b) f(x,y,z)=x'y'z+xy'z' nije totalno simetrična pošto međusobna zamjena x i y daje x'y'z +x'yz'
što nije jednako f. Međutim, f je parcijalno simetrična po x i z, pošto njihova
međusobna zamjena daje isti izraz xy'z'+x'y'z. ■

□ Definicija 3.12 Funkcija f je miješano simetrična, ako i samo ako nije totalno simetrična, ali može
biti promijenjena u totalno simetričnu, zamjenom nekih njenih varijabli njihovim komplementima.

■ Primjer 3.28 Funkcija f (x,y,z)=xyz’ nije totalno simetrična. Međutim zamjenom z’ sa z dobijamo xyz što je
totalno simetrično. ■

Nesastavljive funkcije

Razmotrimo proces formiranja funkcije od n varijabli uzimanjem sastava više funkcija, od kojih
svaka zavisi manje od n varijabli. Ako je funkcija f tako formirana, onda se za f kaže da je
nesastavljiva funkcija, a proces se označava kao funkcionalna dekompozicija. U ovoj sekciji
razmotrićemo samo jednu klasu sastavljivih funkcija, koja se odnosi na jednostavne nesastavljive
funkcije.

□ Definicija 3.13 Neka je X={x1,x2,…,xn} skup od n varijabli. Neka su Y={y1,y2,…,ys}, 1≤s≤n–1, i


Z={z1,z2,…,zr} dva podskupa od X tako da Y∪ Z=X. Tada se za funkciju f(x) kaže da je jednostavno
nesastavljiva funkcija ako i samo ako postoje dvije funkcije G i H tako da:
f(X) = G [H(Y),Z] (3.15)
( Uoči da su ovdje y i z samo nova imena za x-ove ) □
□ Definicija 3.14 Ako je r=n-s, G i H predstavljaju jednostavnu disjunktivnu dekompoziciju od
f.
Uočimo da, ako je r=n-s onda su Y i Z razdvojeni, dakle Y ∩ Z = Ø (gdje Ø označava prazan skup).
Na slici 3.5 prikazan je jednostavna disjunktivna dekompozicija od f u formi blok dijagrama.
Uočimo da kada je s=1 ili s=n -1 da je dekompozicija trivijalna. Zapazimo također da su 0 i 1
nesastavljivi po dogovoru.
■ Primjer 3.29 (a) Razmotrimo funkciju: f(w,x,y,z) =wy’z+x’y’z+w'xz. Gornja funkcija može se napisati u
sljedećoj formi
f(w,x,y,z)=(w+x’)y’z+(w+x’)’yz

Ako odaberemo H(w,x)=w+x’, onda

f(w,x,y,z)=Hy’z+H’yz

Uzimajući u obzir jednadžbu (3.15), Y={w,x}, Z={y,z} f je predstavljen kao

■ SLIKA 3.5 Predstava u formi blok dijagrama disjunktivne dekompozicije

f (w,x,y,z)=G[H(w,x),y,z]
Dijagram ovog logičkog kruga funkcije f prikazan je na slici 3.6(a).

(b) Razmotrimo funkciju f (w,x,y,z)=Σ(0,5,7,9,11,12). Prošireno u SOP formu, f se može


napisati i kao

f(w,x,y,z) = w’x’y’z’ + w’xy’z + w’xyz + wx’y’z + wx’yz + wxy’z’ =

= (w’x’ + wx) y’z’+ (w’x + wx’) yz + (w'x + wx’) y’z =

= (w’x’ + wx’)y’z’ + (w’x + wx’) (yz + y’z) =

= (w’x’ + wx) y’z’ + (w’x + wx’) z

Neka je H (w,x) = w’x + wx’ = w ⊕ x’ ; tada


f(w,x,y,z) = (H + y + z)’ + Hz = G [H (w,x) y,z]

Dijagram ovog logičkog kruga prikazan je na slici 3.6(b).

■ SLIKA 3.6 Dijagrami logičkog kola za primjer 3.29


ZADACI

3.1 Dokaži teoremu 3.3.


3.2 Dokaži teoremu 3.4.
3.3 Dokaži teoremu 3.5.
3.4 Dokaži teoremu 3.6.
3.5 Dokaži teoremu 3.9.
3.6 Operacija XOR naziva se također simetrična razlika (∆) u Boolovoj algebri i definirana
je kao x∆y=xy' + x'y. Dokaži da je x∆(x+y)=x'y.

3.7 Napiši duale sljedećih iskaza:


(a) (x'+y')=xy (b) xy'=0 ako i samo ako xy=x
(c) x=0 ako i samo ako y=xy'+x'y=x za sve y.

3.8 Dokaži sljedeće identitete:


(a) (x~y~z)'=x~y⊕z.
(b) (x⊕y⊕z)'=x⊕y~z.

3.9 Pokaži da
(a) ako je f(x,y,z)=x⊕y⊕z,onda je f(x,y,z)=x~y~z.
(b) ako je g(x,y,z)=x~y~z,onda je f(x,y,z)=x~y⊕z.

3.10 Koristeći pravilo Boolove algebre pojednostavi slijedeće Boolove izraze:


(a) {[(xy)'x]'[(xy)'y]'}'
(b) {[x'yw'+xwz]'+[(xwz)'+y'w'z+ywz']'}'
(c) (x+y)'(x'+y')'
(d) y(wz'+wz)+xy
(e) xyz+x'y'z+x'yz+xyz'+x'y'z

3.11 Pronađi komplemente slijedećih Boolovih izraza i reduciraj ih na minimalan broj literala.
(a) (xy'+wz')(wx'+yz) (b) wx'+y'z'
(c) x'z+wx'y'+wyz+w'xy

3.12 Odredi tabele istine za slijedeće funkcije.


(a) F1(w,x,y,z)=xy+x'z
(b) F2(w,x,y,z)=wx'+yz+w'y'

3.13 Odredi tabele istine za F1+F2 i F1F2 date u problemu 3.12 (a) i (b).
3.14 Samo-dualna (self-dual) Boolova funkcija je funkcija čija tabela istine ostaje nepromjenjena kad se sve 0-le
i 1-ce međusobno zamijene. Koliko samo-dualnih Boolovih funkcija postoji na n varijabli.
3.15 Utvrdi da li su sljedeći skupovi operatora funkcionalno kompletni.
(a) {f,0}, gdje je f(x,y)=x'+y
(b) {f,1}, gdje je f(x,y,z)=x'y'+x'z'+y'z.
3.16 Koliko Boolovih funkcija od četiri varijable poprima vrijednost 1; tačno dva puta? Tri puta?
3.17 Pokaži da ako je m1+...+mk kanonska SOP forma od f(x1,...,xn) onda je m1'...mk' kanonska POS forma od
f'(x1,...,xn).
3.18 Pronađi kanonsku SOP formu od f1:

x y f1
0 0 1
0 1 1
1 0 0
1 1 1
3.19 Pronađi kanonsku SOPformu svake od slijedećih funkcija

x y z f2 f3 f4
0 0 0 1 1 1
0 0 1 1 1 0
0 1 0 0 1 0
0 1 1 0 0 0
1 0 0 1 0 1
1 0 1 0 1 0
1 1 0 1 1 0
1 1 1 1 1 1

3.20 Odredi kanonsku POS formu funkcije f2 u problemu 3.19.


3.21 Odredi Boolove izraze i tabele istine za logičke krugove prikazane na slici P3.21 (a) i (b)

SLIKA P3.21

3.22 (a) Pokaži da su krugovi sa slike P3.22 (a) i (b) ekvivalentni.


(b) Pokaži da su krugovi sa slike P3.22 (c) i (d) ekvivalentni.
SLIKA P3.22

3.23 (a) Pokaži da su pozitivna logička I vrata negativna logička ILI vrata i obrnuto.
(b) Pokaži da su pozitivna logička NI (NAND) vrata negativna logička NEILI (NOR) vrata i obrnuto.

(Zapazi: pozitivna i negativna logika definirane su u sekciji 1.2)

3.24 Pri korištenju I i ILI vrata sa multiplim ulazom, koliki je maksimalni zahtijevni broj vrata za
implementaciju Boolove funkcije od n varijabli, f(x1,...,xn) u kanonskoj SOP formi?
3.25 Odredi logički dijagram kruga NEI (NAND) vrata sa 3 ulaza preko više NAND vrata od 2 ulaza.
3.26 Objasni zašto sve 4-ulazne, jednoizlazne Boolove prekidačke funkcije ne mogu biti zamijenjene sa tri 2-
ulazne, jednoizlazne Boolove prekidačke funkcije kao na slici P3.26.

SLIKA P3.26

3.27 Izrazi slijedeće funkcije u SOP i POS formi


(a) F(w,x,y,z)=z(w'+x)+x'z
(b) F(w,x,y,z)=w'x'z+y'z+wxz'+wxy'
(c) F(w,x,y,z)=(xy+z)(y+xz)

3.28 Pretvori ono što slijedi u druge kanonske forme


(a) F=∑(0,2,6,11,13,14) (b) F=∏ (1,2,4,6,12)
(c) F=∏(0,3,6,7) (d) F=∑ (1,3,7)

3.29 Projektuj krug sa tri ulaza i jednim izlazom tako da je izlaz tačno 1 kada dva ili tri ulaza imaju vrijednost 1.
3.30 Takozvani 2-gi modul je kolo koje ima dva ulaza, A i FLAGIN, te dva izlaza B i FLAGOUT. Ako je
FLAGIN=1 onda je A=B' i FLAGOUT=1. Ako je FLAGIN=0 i A=1, onda je FLAGOUT=1. Ako je
FLAGIN=0 i A=0, onda je FLAGOUT=0. Ako je FLAGIN =0, onda je A=B. Projektuj krug za
implementaciju 2-gog modula.
3.31 Koristeći 2-ge module (zadatak 3.30) projektuj logički krug koji sračunava 2-gi komplement y3y2y1 3-
bitnog binarnog broja x3x2x1.
3.32 Dati 4-bitni binarni broj predstavljen kao A3A2A1A0 (A0 je posljednji značajni bit). Projektuj logički krug
koji će odrediti kad je binarni broj veći od 6.
3.33 Slika P3.33 prikazuje krug za množenje koji na ulazu ima dva 2-bitna broja x1x0 i y1y0. Na njegovom izlazu
pojavljuje se binarni broj z3z2z1z0 koji je jednak aritmetičkom produktu dva ulazna broja. Predpostavi da
su x0, y0 i z0 posljednji značajni biti (lsb). Projektuj logički krug množača.

SLIKA P3.33

3.34 Neka x1x0 i y1y0 predstavljaju 2-bitne binarne brojeve. Projektuj logički krug koristeći x1, x0, y1 i y0 kao
ulaze čiji je uslov z=1 kada i samo kada su ova dva broja jednaka.
3.35 Razmotri blok dijagram prikazan na slici P3.35. Neka su date f1=ab+b'c'=x' i f2=a'(bc'+b'c)=xy', odredi
x(a,b,c) i y(a,b,c).

x f1
a
b
y f2
c

SLIKA P3.35

3.36 Projektuj logički krug koji prihvata 3-bitni broj i generiraj na njegovim izlazima binarni broj jednak
kvadratu ulaznog broja.
3.37 Četiri velika tanka hemijskog postrojenja sadrže različite tečnosti koje se griju. Senzori nivoa tečnosti
koriste se da detektuju nivoe u tenkovima A i B kad god nivoi porastu iznad unaprijed određenog
nivoa. Temperaturni senzori u tankovima C i D vrše detekciju temperature u ovim tankovima kad god
temperatura u njima opadne ispod unaprijed date temperaturne granice. Predpostavimo da izlazi senzora
nivoa tečnosti (A i B) su NISKO (LOW) (0) kada je nivo zadovoljavajući i VISOKO (HIGH) (1) kada je
nivo suviše visok. Također, izlazi senzora temperature (C i D) su (NISKO) (LOW) (0) kada je
temperatura zadovoljavajuća i VISOKO (HIGH) (1) kada je temperatura suviše niska. Projektuj logički
krug koji će detektovati kad god je nivo tanku A ili tanku B suviše visok, a u isto vrijeme temperatura
bilo u tanku C ili tanku D suviše niska.
3.38 Slika P3.38 prikazuje raskrsnicu dva puta. Senzori za detekciju vozila stavljeni su uzduž linije A,B,C i D.
Izlazi senzora su NISKI (LOW) (0) kada vozila nisu prisutna i VISOKO (HIGH) (1) kad je vozilo
prisutno. Svjetlost semafora raskrsnice kontroliše se kako slijede:
(1) Svjetlost E-W semafora biti će zelena kad god su obe linije C i D zauzete.
(2) Svjetlost E-W biti će zelena kad god bilo C ili D je zauzeto, dok obe linije A i B nisu
zauzete.
(3) Svjetlost N-S biti će zelena kad god su obe linije A i B zauzete, dok obe linije C i D nisu
zauzete.
(4) Svjetlost N-S biti će također zelena kada bilo A ili B su zauzete, dok su obe linije C i
D slobodne.
(5) Svjetlost E-W biti će zelena kad vozila nisu prisutna-

Koristeći izlaze senzora A,B,C i D kao ulaze, projektuj logički krug za kontrolu svjetlosti semafora.
Treba da postoje dva izlaza N/S i E/W koji postaju 1 kada odgovarajuća svjetlost treba da bude zelena.

SLIKA P3.38

3.39 Projektuj logički krug koji testira rad semafora. Ako kontrolni krug semafora loše funkcioniše, moguće
je da se pojavi naopaka kombinacija signala. Jedini cilj test kruga je da detektuje naopaku kombinaciju i
potom generira signal greške koji može biti prenesen u područje grada za održavanje semafora. Ispravne
kombinacije prikazane na slici P3.39. Koristi E za signal greške i označi za E=1 loše funkcioniranje
semafora.

SLIKA P3.39

3.40 Da li je funkcija f(w,x,y,z)=xyz'+w'xyz unitrna. Opravdaj svoj odgovor.


3.41 Tabela istine simetrične Boolove funkcije ostaje nepromijenjena za svaku permutaciju n kolona razmotrenih
varijabli. Koliko simetričnih Boolovih funkcija od n varijabla postoji?
3.42 Izrazi slijedeće kao simetrične funkcije

(a) A'S0,1,4 (B,C,D,E)+AS'0,3,4 (B,C,D,E)


(b) A'S0,1,4 (B,C,D,E)+AS0,3,4 (B,C,D,E)
(c) A'S0,1,4 (B,C,D,E)+AS0,3,4 (B',C',D',E')

3.43 Neka je f(w,x,y,z)=w'x'z'+wx'z+w'yz+wyz'. Odredi netrivijalnu dekompoziciju od f.


3.44 Da li je funkcija f(x1,x2,x3,x4)=x1'x2'x3'x4'+x1'x2x3x4+x1x2'x3'x4+x1x2x3x4' nesastavljiva (decomposale).
3.45 Odredi koja je od slijedećih funkcija, funkcija s pragom. Za svaku od funkcija s pragom odredi
odgovarajući otežani prazni vektor (weight-threshold vector).

(a) f1(x1,x2,x3,)=∑ (1,2,3,7)


(b) f2(x1,x2,x3,)=∑ (0,2,4,5,6)
(c) f3(x1,x2,x3,)=∑ (0,3,5,6)

3.46 Pronađi funkciju f(x1,x2,x3,x4) implementiranu vratima sa pragom prikazanim na slici P3.46.

SLIKA P3.46

3.47 Odredi funkciju f(x1,x2,x3,x4) implementiranu od strane kruga sa pragom prikazanim na slici P3.47.

SLIKA P3.47

You might also like