Professional Documents
Culture Documents
Digitalna - Upute v4
Digitalna - Upute v4
Digitalna - Upute v4
Booleova funkcija za svaku ulaznu kompleksiju na izlazu daje vrijednost 0 ili 1. U nekim funkcijama neće
biti definirano koju vrijednost funkcija daje ako joj se na ulazu pojavi određena kompleksija, pa kažemo da
za te kompleksije funkcija daje nedefiniranu vrijednost (R). U tom slučaju možemo sami odrediti hoće li
funkcija za tu kompleksiju dati 0 ili 1.
Najjednostavniji način zapisivanja funkcije je tablicom istine: na lijevoj strani se zapišu sve varijable,
počevši od najvažnije, a ispod njih sve moguće kompleksije. S desne strane se zapiše vrijednost funkcije za
svaku od tih kompleksija.
Veitchev dijagram je grafički način zapisivanja vrijednosti Booleove funkcije. U njemu ima onoliko
kockica koliko ima ulaznih kompleksija i svaka kockica odgovara jednoj kompleksiji. U kockicu se zapiše
vrijednost koju funkcija daje za tu kompleksiju. Pritom se u dijagram upišu samo jedinice i R-ovi. Ako
funkcija daje 0 za neku kompleksiju, onda kockicu koja pripada toj kompleksiji ostavimo praznu.
Uz rub Veitchevog dijagrama su označene kockice (tj. kompleksije) u kojima svaka od varijabli ima
vrijednost 1. Tako u Veitchevom dijagramu za 4 varijable, varijabla x1 ima vrijednost 1 u kockicama u dva
lijeva stupca, tj. u kompleksijama koje te kockice predstavljaju, a varijabla x2 ima vrijednost 1 u kockicama
u dva gornja retka tj. u kompleksijama koje te kockice predstavljaju.
Veitchevi dijagrami za 2-4 var. (u svakoj kockici upisan je broj kompleksije koju ta kockica predstavlja):
4 varijable: 3 varijable:
x1
12 14 6 4
x1
x2 13 15 7 5 x2 6 7 3 2
x4 4 5 1 0
9 11 3 1
x3
8 10 2 0
x3
x1 x1
x2 3 1
1 0
2 0
2 varijable 1 varijablu
Ako bi funkciju iz tablice istine iz gornjeg primjera željeli zapisati u Veitchev dijagram, onda bi to bilo:
x1
x2 1 R
1 R 1
x3
Funkcija se preko PDNO zadaje tako da se ispred zagrade stavi oznaka disjunkcije (V), a u zagradi pobroje
kompleksije za koje funkcija daje vrijednost 1 ili R. Ako neka kompleksija nije nabrojana u zagradi, za nju
funkcija daje vrijednost 0.
Na primjer, za funkciju iz tablice istine iz gornjeg primjera:
f(x1, x2, x3) = V(0, R3, 4, R5, 7)
Funkcija se preko PKNO zadaje tako da se ispred zagrade stavi oznaka konjunkcije (&), a u zagradi
pobroje kompleksije za koje funkcija daje vrijednost 0 ili R. Ako neka kompleksija nije nabrojana u zagradi,
za nju funkcija daje vrijednost 1.
Na primjer, za funkciju iz tablice istine iz gornjeg primjera:
f(x1, x2, x3) = &(1, 2, R3, R5, 6)
Kod zadataka s prekodiranjem, u Vetichev se dijagram upiše vrijednost koju funkcija, tj. funkcije trebaju
dati za svaku kompleksiju na ulazu. Pritom se u kockicu upiše nula ako funkcije moraju dati nulu za tu
kompleksiju, a prazne kockice označavaju kompleksije za koje nije definirana vrijednost izlaznih funkcija
(vrijednost je R).
Kod ovakvih zadataka broj funkcija koje trebamo realizirati jednak je broju binarnih znamenki koje su
nam potrebne za napisati najveći broj koji funkcije trebaju dati. Na primjer, ako je najveći broj upisan u
Veitchev dijagram broj 13, onda će nam trebati 4 funkcije (jer je 13 zapisan binarno 1101, pa trebaju 4
znamenke), a ako je najveći broj u dijagramu broj 6, onda će nam trebati 3 funkcije (jer je 6 zapisan binarno
110, pa trebaju 3 binarne znamenke).
2. Minterm, PDNO, maksterm, PKNO
Minterm nekog retka tablice istine je konjunkcija (umnožak) svih varijabli pri čemu varijable koje u tom
retku imaju vrijednost 0 u konjunkciju ulaze negirane, a one koje imaju vrijednost 1 ulaze nenegirane.
Na primjer, kod tablice istine s 4 varijable u petom retku je x1x2x3x4 = 0101, pa je minterm petog retka
tablice istine s 4 varijable jednak m5 = x1 ⋅ x2 ⋅ x3 ⋅ x4
x1 i x3 su negirani jer u petom retku te varijable imaju vrijednost 0.
Minterm nekog retka daje jedinicu samo za taj redak, a za sve druge kompleksije ulaznih varijabli daje nula.
Tako će minterm petog retka iz gornjeg primjera dati jedinicu samo ako mu na ulaz dođe kompleksija
x1x2x3x4 = 0101.
Minterm nekog retka i obično označavamo mi.
PDNO (potpuni disjunktivni normalni oblik) je disjunkcija (V) minterma onih redaka u kojima funkcija
ima vrijednost 1.
Na primjer, za funkciju
x1 x2 x3 y
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
Maksterm nekog retka tablice istine je disjunkcija (v) svih varijabli pri čemu varijable koje u tom retku
imaju vrijednost 1 u disjunkciju ulaze negirane, a one koje imaju vrijednost 0 ulaze nenegirane.
Na primjer, kod tablice istine s 4 varijable u petom retku je x1x2x3x4 = 0101, pa je maksterm petog retka
tablice istine s 4 varijable jednak M5 =x1 V x2 V x3 V x4
X2 i x4 su negirani jer u petom retku te varijable imaju vrijednost 1.
Maksterm nekog retka daje nulu samo za taj redak, a za sve druge kompleksije ulaznih varijabli daje jedan.
Tako će maksterm petog retka iz gornjeg primjera dati nulu samo ako mu na ulaz dođe kompleksija x1x2x3x4
= 0101.
Maksterm nekog retka i obično označavamo Mi.
PKNO (potpuni konjunktivni normalni oblik) je konjunkcija (umnožak) maksterma onih redaka u kojima
funkcija ima vrijednost 0.
Za gornju funkciju, PKNO je
y = M0 · M3 · M5 · M7
Budući da su ti makstermi jednaki
M0 = x1Vx2Vx3
M3 = x1V x2V x3
M5 = x1Vx2V x3
M7 = x1V x2V x3
onda je cijeli raspisani PKNO za ovu funkciju jednak
y = ( x1Vx2Vx3 ) · ( x1V x2V x3 ) · ( x1Vx2V x3 ) · ( x1V x2V x3 )
Maksterme moramo staviti u zagrade da se prvo oni izračunaju, pa tek onda pomnože, jer operacija
konjunkcije ima prednost u redoslijedu izvršavanja nad operacijom disjunkcije (kao što u normalnoj algebri
operacija množenja ima prednost nad operacijom zbrajanja).
3. BCD
BCD (binary coded decimal) kodovi
BCD je način zapisivanja dekadskih znamenki (0, 1, 2, …, 9) korištenjem binarnih znamenki. Budući da
imamo 10 različitih dekadskih znamenki, da bi svaka od njih imala posebnu kombinaciju binarnih znamenki,
tj. posebnu kompleksiju ili posebnu kodnu riječ, trebamo koristiti 4 binarne znamenke. Postoji 16 različitih
kompleksija od 4 binarne znamenke (od 0000 do 1111), pa možemo odlučiti kojih ćemo 10 kompleksija
iskoristiti za zapisivanje dekadskih znamenki, dok će preostalih 6 kompleksija ostati neiskorišteno, tj. neće
predstavljati nijednu dekadsku znamenku.
Kada odlučimo koja kompleksija predstavlja koju dekadsku znamenku i koje kompleksije ostaju
neiskorištene, osmislili smo neki BCD kod. Međutim, postoje i neki već unaprijed poznati BCD kodovi koji
se koriste u praksi i mogu se pojaviti u zadacima.
Najjednostavniji BCD kod je takav da 0000 predstavlja nulu, 0001 jedinicu, 0010 dvojku, …, 1000 osmicu i
1001 devetku. Kompleksije od 1010 do 1111 ostaju neiskorištene. Dakle, prvih 10 kompleksija (od 0000 do
1001) predstavlja znamenke od 0 do 9, a zadnjih 6 kompleksija je neiskorišteno. Ovaj kod se naziva 8421
BCD kod.
Osim 8421 koristi se još i 2421 BCD kod, kod kojega prvih 5 kompleksija (od 0000 do 1000) predstavlja
znamenke od 0 do 4, nakon čega ide 6 neiskorištenih kompleksija (od 1001 do 1010), a zadnjih 5
kompleksija (od 1011 do 1111) predstavlja znamenke od 5 do 9.
0000 0 0
0001 1 1
0010 2 2
0011 3 3
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0100 4 4
0101 5 neiskorišteno
0110 6 neiskorišteno
0111 7 neiskorišteno
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000 8 neiskorišteno
1001 9 neiskorišteno
1010 neiskorišteno neiskorišteno
1011 neiskorišteno 5
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1100 neiskorišteno 6
1101 neiskorišteno 7
1110 neiskorišteno 8
1111 neiskorišteno 9
Dakle, ako u zadatku piše da funkcija koju trebamo realizirati prima dekadske znamenke kodirane 2421
BCD kodom, a na ulazi se pojavi kompleksija 1101, to nam znači da nam je na ulaz došla znamenka 7.
Također, ako se na ulazu mogu pojaviti samo 2421 BCD znamenke, onda znamo da nam na ulaz nikad neće
doći kompleksija 1001, jer ona ne predstavlja nijednu znamenku prema tom kodu, pa će nam funkcija za tu
kompleksiju davati R.
4. Realizacija Booleovih funkcija NI i NILI vratima
DeMorganovi teoremi
DeMorganove teoreme ćemo primjenjivati kada neku disjunkciju želimo pretvoriti u konjunkciju (u
zadacima s NI vratima) i obratno, kada konjunkciju želimo pretvoriti u disjunkciju (u zadacima s NILI
vratima)
NI vrata:
1. Napraviti tablicu istine za zadanu funkciju
2. Funkciju upisati u Veitchev dijagram (upisujemo jedinice i R-ove, nule izostavljamo)
3. Zaokružiti sve jedinice što manjim brojem što većih površina (R-ove možemo i ne moramo
zaokružiti, kako nam više odgovara)
4. Ispisati zaokružene površine, dobije se izraz oblika
y = a·b V c·d·e V f V g·h
5. Disjunkcije se trebaju pretvoriti u konjunkcije, zato cijelu desnu stranu dvostruko negirati, dobije se:
y = a ⋅b V c⋅d ⋅e V f V g ⋅h
8. Jednom negirati i lijevu i desnu stranu, čime se dobije funkcija izražena preko NILI vrata:
y=y= avb V c v d ve V f V g v h
Zaokruživanje površina:
Prilikom zaokruživanja jedinica (i R-ova) u veitchevom dijagramu, zaokružena površina mora biti oblika
pravokutnika ili kvadrata i mora se sastojati od broja kockica koji je potencija broja 2. Dakle, moguće je
zaokružiti jednu kockicu, dvije, četiri, osam, šesnaest…
Moramo zaokružiti sve jedinice i nijednu nulu. R-ove ćemo zaokružiti ako tako možemo napraviti veću
površinu, ali nećemo zaokruživati R-ove ako tom površinom ne zaokružujemo nijednu novu jedinicu.
Ako u veitchu nema niti jedna jedinica (pa nemamo što zaokružiti), onda je ta funkcija jednaka 0.
Ako u veitchu nema niti jedna nula (pa zaokružimo cijeli dijagram), onda je ta funkcija jednaka 1
5. Realizacija Booleovih funkcija multiplekserom
5.1. Multiplekser
Multiplekser je logički sklop koji ima m adresnih ulaza, 2m informacijskih ulaza i jedan informacijski izlaz.
Multiplekser na izlaz propušta vrijednost s onog informacijskog ulaza čiji je redni broj (u binarnom obliku)
prisutan na adresnim ulazima.
U ovom multiplekseru ulaz u3 je najvažniji informacijski ulaz, a u0 najmanje važan. Ulaz a1 je važniji
adresni ulaz, a a0 manje važan. Dakle, ako je a1=1 i a0=0, tada na adresnim ulazima piše 10, tj. binarna
dvojka, pa je selektiran informacijski ulaz u2 te će se vrijednost s tog ulaza proslijediti na izlaz
multipleksera.
Na primjer, neka funkciju y zadanu tablicom istine treba realizirati korištenjem multipleksera s 2 adresna
ulaza (m=2).
x1 x2 y
0 0 0
0 0 1
0 1 0
0 1 1
Budući da je y funkcija 2 varijable (n=2), ovo je slučaj kada je n=m, pa je realizacija jednostavna:
Primjeri:
x1
x1
x2 R R 1
x2 1 R
R 1 R
R 1
x3
x1
x2 R 1
R 1 R
x3
Funkcija u gornjem Veitchu nije funkcija jedne varijable jer, iako možemo zaokružiti sve jedinice jednom
površinom, ta površina nije pola Veitchevog dijagrama.
Ako dijagram podijelimo po varijabli x2 dobit ćemo dvije preostale funkcije, kao na donjoj slici
Funkcije f0 i f1 su funkcije dvije varijable i to varijabli x1 i x3, po kojima nije obavljena podjela Veitchevog
dijagrama:
Slično ovome, ako se Veitchev dijagram podijeli po dvije varijable nastaju četiri Veitcheva dijagrama koja
su 4 puta manja od osnovnog. To su dijagrami za 4 preostale funkcije n-2 varijabli. Nijedna od dvije
varijable po kojima je obavljena podjela osnovnog Veitcha nisu varijable tih funkcija. Preostale funkcije se
označavaju f00, f01, f10 i f11, ovisno o tome koliku vrijednost u promatranom „malom Veitchu“ imaju varijable
po kojima je obavljena podjela. Pritom važnija varijabla po kojoj je obavljena podjela definira vrijednost
važnije znamenke u imenu preostale funkcije, a manje važna varijabla definira vrijednost manje važne
znamenke.
Na primjer, neka imamo funkciju f koja je funkcija 4 varijable, zadana dijagramom:
x1
1 1
x2
1 1 1
x4
1 1
1
x3
Ako ovaj dijagram podijelimo po varijablama x1 i x3, nastat će 4 preostale funkcije, koje su funkcije varijabli
po kojima nije obavljena podjela, tj. varijabli x2 i x4:
Funkcija f10 je u lijevome stupcu zato jer u njenom malom Veitchu važnija varijabla po kojoj je obavljena
podjela (x1) ima vrijednost 1, a manje važna (x3) ima vrijednost 0.
Poseban slučaj realizacije BF muxom je kada je n=m+1, tj. kada treba realizirati funkciju multiplekserom
koji ima za jedan manje adresnih ulaza nego što funkcija ima varijabli. Tada će mali Veitchi nastali nakon
podjele imati po samo dvije kockice. Dakle, bez obzira koju podjelu Veitcha odabrali, sve preostale funkcije
će sigurno biti ili konstante ili funkcije jedne varijable, pa će se funkcija sigurno moći realizirati sa samo
jednim muxom.
6. Realizacija Booleovih funkcija demultiplekserom
6.1. Demultiplekser
Demultiplekser je logički sklop koji ima m adresnih ulaza, jedan informacijski ulaz i 2m informacijskih
izlaza. Demultiplekser vrijednost s onog informacijskog ulaza propušta na onaj izlaz čiji je redni broj (u
binarnom obliku) prisutan na adresnim ulazima, dok se na ostale izlaze stavlja nula.
U ovom demultiplekseru izlaz i3 je najvažniji informacijski izlaz, a i0 najmanje važan. Ulaz a1 je važniji
adresni ulaz, a a0 manje važan. Dakle, ako je a1=0 i a0=1, tada na adresnim ulazima piše 01, tj. binarna
jedinica, pa je selektiran informacijski izlaz i1 te će se vrijednost s ulaza proslijediti na taj izlaz
demultipleksera, dok će na izlazima i0, i2 te i3 biti nula.
Budući da je y funkcija 2 varijable (n=2), ovo je slučaj kada je n=m, pa je realizacija jednostavna:
Na ILI vrata su spojeni izlazi i0, i1 te i3 zato jer funkcija y ima vrijednost 1 u nultom, prvom i trećem retku. U
pravilu će se izlazna ILI vrata realizirati diodnom matricom, pa se u rješenju samo x-om označe izlazi koji
se spajaju na ILI vrata:
6.3. Realizacija BF demuxom za slučaj n>m
Ako je broj varijabli funkcije n koju se treba realizirati veći od broja adresnih ulaza m demultipleksera kojim
se funkcija realizira, realizacija se obavlja sljedećim postupkom:
1) funkciju zapišemo u Veitchev dijagram
2) Veitchev dijagram podijelimo po m varijabli. Pritom je potrebno tako odrediti varijable po kojima
ćemo obaviti podjelu Veitcha da što više preostalih funkcija budu konstante. Dakle, kod demuxa
nam funkcije jedne varijable ne odgovaraju (kao kod muxa), nego samo konstante
3) odredimo oznake preostalih funkcija (tj. redni broj svake funkcije) i njihovu vrijednost (0 ili 1)
4) nacrtamo sklop koji realizira funkciju:
• na informacijski ulaz demultipleksera dovedemo 1,
• na adresne ulaze dovedemo varijable po kojima smo obavili podjelu Veitchevog dijagrama
(redom po važnosti),
• na izlazna ILI vrata spojimo one izlaze demuxa čije su preostale funkcije jednake 1 (f00
odgovara izlazu i0, f01 izlazu i1…)
5) ako neka od preostalih funkcija nije konstanta, tada nju realiziramo dodavanjem novog
demultipleksera na čiji ulaz dovodimo „problematični“ izlaz osnovnog demuxa. Mali Veitch
problematične preostale funkcije opet dijelimo po m novih varijabli (ne po onima po kojima smo već
dijelili), opet s ciljem da tako nastale funkcije budu konstante.
6) postupak pod 5) ponavljamo dok nam sve tako nastale funkcije ne budu konstante