Professional Documents
Culture Documents
DIGEL Zbirka Novo1 PDF
DIGEL Zbirka Novo1 PDF
ZBIRKA RIJEENIH
ZADATAKA IZ
DIGITALNE
ELEKTRONIKE I
DIGITALNE LOGIKE
Zagreb, 2005
Verzija 1.4
Refleksije.
Presluavanja.
Parazitne kapacitivnosti i induktivnosti.
Refleksije dolaze do izraaja kada je duljina vodova kojima signal putuje relativno
velika u odnosu na valnu duljinu samog signala. U tom sluaju vodove treba promatrati
kao prijenosne linije (engl. transmission lines).
1.2. Zadatak
Dugaki vodii (obzirom na valnu duljinu signala koji kroz njih putuje) nazivaju se
prijenosne linije. Prijenosne linije imaju nekoliko karakteristinih parametara:
lL0
lR0
lR0 + jlL0
Z0 =
lG0 + jlCo
lC0 lG0
lL0
L0
Z0 =
Co
lC0
1
Elektromagnetski valovi ire se kroz prostor brzinom v = , pri emu su:
F H
= 0 r , = 0 r , 0 = (1 / 36 ) 10 9 , 0 = 4 10 7 .
m m
1 m
Lako se vidi da je za medij u kojem je r=1 i r=1: v = = 3 10 8 = c .
0 0 s
Kako je kod prijenosnih linija uobiajeno ispunjeno r=1, slijedi da je brzina irenja
signala odreena izrazom:
c
v= .
r
Moe se pokazati da je brzina irenja signala kod prijenosne linije bez gubitaka takoer
odreena izrazom:
Refleksije, presluavanja i utjecaj kapacitivnosti. 3
1
v= .
L0 C 0
Ako je prijenosna linija dugaka l, tada e signalu trebati lT0 vremena da doe do
njezinog kraja, te moemo pisati:
1 l m
v= = T0 = L0 C 0
L0 C 0 l T0 s
1.3. Zadatak
Signal frekvencije 1 GHz putuje vodiem duljine 20 cm (npr. nekom sabirnicom). Poznato je
r=1.44. Da li vodi treba promatrati kao prijenosnu liniju? Da li isti zakljuak vrijedi za sklop
koji je izveden na ipu, gdje je duljina dotinog vodia smanjena na 25 m?
c 3 10 8 m
Brzina irenja signala iznosi v = = = 2.5 10 8
r 1.44 s
v 2.5 10 8
Valna duljina signala iznosi = = = 0.25m
f 1 10 9
Kako je u prvom sluaju 0.25 m priblino jednako duljini vodia od 20 cm, vodi je
potrebno promatrati kao prijenosnu liniju.
U drugom sluaju, gdje je duljina vodia 10000 puta manja od valne duljine signala
vodi nije potrebno promatrati kao prijenosnu liniju.
1.4. Zadatak
Rs Z0
A B
A B
+
Us(t) prijenosna linija RL
-
RS Z 0 RL Z 0
A = i B = .
RS + Z 0 RL + Z 0
Faktor refleksije je mjera diskontinuiteta (razlike u otporu) koji vidi signal, i odreuje
koliko e se signala reflektirati u suprotnom smjeru. Ako je sa X oznaen diskontinuitet,
tada e vrijediti:
Upadni val 1+
X
Transmitirani val
Reflektirani val
Budui da prijenosna linija ima dva mogua diskontinuiteta, refleksije se mogu dogaati
na ulazu i izlazu linije, pa se stanje na liniji obino prikazuje dijagramom odbijanja
(engl. bounce diagram, lattice diagram). Dijagram se sastoji od dvije paralelne linije
gdje lijeva strana predstavlja ulaz linije (toka A) a desna strana izlaz linije (toka B).
Vrijeme tee prema dolje.
Neka u trenutku t=0 na liniju dolazi signal Ui. Ako je duljina linije oznaena s l, a
kanjenje signala po jedinici duljine sa T0, tada je vrijeme potrebno da signal stigne s
ulaza na izlaz linije odreeno izrazom:
Td = l T0
U A (t x ) = U i + U i B + U i B A + U i B2 A + U i B2 A2
= U i (1 + B + B A + B2 A + B2 A2 )
U B (t x ) = U i + U i B + U i B A + U i B2 A
= U i (1 + B + B A + B2 A )
Refleksije, presluavanja i utjecaj kapacitivnosti. 5
A B
t=0 t=0
Ui
t=0+1Td t=0+1Td
U i B
t=0+2Td t=0+2Td
U i B A
t=0+3Td t=0+3Td
U i B2 A
t=0+4Td t=0+4Td
U i B2 A2
t=tx
t=0+5Td t=0+5Td
U i B3 A2
t=0+6Td t=0+6Td
U i B3 A3
Koliko iznosi Ui? Neka izvor generira napon prema step funkciji (do t=0 napon je 0V,
nakon t=0 napon je US, npr. 5V). Otpori Rs i Z0 jedino su to signal "vidi" u trenutku
t=0, te ta dva otpora ine naponsko dijelilo, ime je Ui odreen:
Z0
Ui = US
RS + Z 0
6 Zbirka rijeenih zadataka
1.5. Zadatak
Rs Z0
A B
A B
Z0 Z0
+
RL=Z0
B = =0
Us(t)
-
prijenosna linija Z0 + Z0
Rs Z0
A B
A B
0 Z0
+
RL=0
B = = 1
Us(t)
-
prijenosna linija 0 + Z0
Rs Z0
A B
A B
+ Z0
Us(t) prijenosna linija RL= B = =1
-
+ Z0
1.6. Zadatak
Dva digitalna sklopa povezana su dugakim vodom na tiskanoj ploici. Sklop A alje sklopu
B informaciju podizanjem napona ug=U na izlazu s 0V na +5V. Poznati su slijedei podaci:
izlazni otpor sklopa A iznosi 100, karakteristina impedancija voda iznosi 100, ulazni
otpor sklopa B iznosi 3900. Brzina signala kroz prijenosnu liniju iznosi 2108 m/s, a duljina
samog voda iznosi 40 cm. Prikaite naponsko stanje na vodu.
A B
uiz uul
Poznato je:
l 0 .4
Td = = = 2 ns
v 2 10 8
Rizl R0
A B
ug uA uB Rul
A B
t=0 ns t=0 ns
U i = 2,5V
t=2 ns t=2 ns
U i B = 2,375V
t=4 ns t=4 ns
U i B A = 0V
R0 100
Ui = U g = 5 = 2,5V
Riz + R0 100 + 100
U i B A = 2,5 0,95 0 = 0V
2. t=2Td =4 ns t=2Td =4 ns
uA(4 ns)=2,5+2,375=4,875 V uB(4 ns)=2,5+2,375=4,875 V
Refleksije, presluavanja i utjecaj kapacitivnosti. 9
Objanjenje po fazama
0. Sklop A generira na izlazu napon od 5V. Napon se dijeli na dijelilu Rizl - R0 .
Zatim zapoinje irenje naponskog vala prema izlazu voda. U ovom trenutku
napon u toci B i dalje je 0, jer naponskom signalu treba Td vremena kako bi
stigao do drugog kraja.
1. Naponski val amplitude 2.5V stie do kraja voda. Tu se dogaa refleksija, i
reflektirani val poinje se iriti prema poetku voda. Reflektirani val ima
amplitudu jednaku amplitudi upadnog vala puta faktor refleksije. Signal koji se iz
ove toke iri dalje (prema teretu; transmitirani val) ima amplitudu jednaku
amplitudi upadnog vala pomnoenoj faktorom refleksije uveanim za 1. Dakle,
vraa se 2,375V, a na teret ide 4,875V.
2. Reflektirani val stie do poetka voda. Kako je ovaj kraj otporno prilagoen,
nema refleksije. Napon u toj toki od sada na dalje jednak je naponu koji je
vladao prije dolaska reflektiranog vala (2.5V) uveanom za amplitudu pristiglog
reflektiranog vala (2.375V). Vidi se da je napon na oba kraja voda sada jednak, te
je pad napona na vodu jednak nula, to je i bilo za oekivati.
Grafiki prikaz:
ug
Za vjebu:
5
Kakvo bi bilo stanje na vodu uz: a) Rul=, b)
Rul=0?
uA t
5
uB t
5
t
2 4 6 [ns]
1.7. Zadatak
Dva digitalna sklopa komuniciraju preko dugakog voda na tiskanoj ploici. Poznati su
slijedei podaci: izlazni otpor sklopa A iznosi 150, induktivitet voda po jedinici duljine
0.5H/m, kapacitet voda po jedinici duljine 50pF/m, ulazni otpor sklopa B 3900 a duljina
voda 60 cm. Sklop A alje sklopu B informaciju podizanjem napona na izlazu s 0V na +5V.
Prikaite naponsko stanje na vodu.
Poznato je:
Riz = 150 L0 = 0,5 H / m
Rul = 3900 C0 = 50 pF / m
10 Zbirka rijeenih zadataka
L 0,5
R0 = = = 10000 = 100
C 50 p
l 0 .6
Td = = = 3 ns
v 2 10 8
R0 100
Ui = U g = 5 = 2V
Riz + R0 150 + 100
Refleksije, presluavanja i utjecaj kapacitivnosti. 11
A B
t=0 ns t=0 ns
U i = 2V
t=3 ns t=3 ns
U i B = 1,9V
t=6 ns t=6 ns
U i B A = 0,38V
t=9 ns t=9 ns
U i B2 A = 0,361V
t=12 ns t=12 ns
U i B2 A2 = 0,0722V
t=15 ns t=15 ns
U i B3 A2 = 0,06859V
t=18 ns t=18 ns
U i B3 A3 = 0,013718V
t=3Td =9 ns 3. t=3Td =9 ns
Za vjebu:
Nacrtati stanje na vodu prema izraunatim vrijednostima.
Kojem naponu tei napon na krajevima voda? Zato?
1.8. Zadatak
Izlaz digitalnog sklopa prikljuen je na dugaki vod. Sklop generira jedan idealni pravokutni
impuls amplitude 5V i trajanja 2 ns. Ako je vod neoptereen, prikaite naponsko stanje na
vodu. Jo je poznato: Td=6 ns, karakteristina impedancija voda iznosi 100, izlazni otpor
digitalnog sklopa iznosi 400.
Rul R0 100
B = = =1
Rul + R0 + 100
100 100
Ui = U g = 5 = 1V
400 + 100 400 + 100
Refleksije, presluavanja i utjecaj kapacitivnosti. 13
U trenutku t=0 kroz liniju kree signal amplitude Ui, a 2 ns nakon njega kroz liniju se
poinje iriti signal amplitude Ui. Dijagram odbijanja prikazan je u nastavku:
A B
t=0 ns t=0 ns
U i = 1V
U i = 1V
t=6 ns t=6 ns
U i B = 1V
t=12 ns U i B = 1V t=12 ns
U i B A = 0,6V
U i B2 A = 0,6V
U i B3 A2 = 0,36V
ui [V]
1,5
1V
1
0,5
t [ns]
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
uA [V]
2
1,6V
1,5
1V 0,96V
1
0,576V
0,5
t [ns]
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
uB [V]
2V
2
1,5 1,2V
1 0,72V
0,5
t [ns]
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
1.9. Zadatak
Izlaz digitalnog sklopa prikljuen je na dugaki vod. Sklop u trenutku t=0 generira naponski
skok amplitude 5V. Ako je vod neoptereen, prikaite naponsko stanje na vodu. Vod se
sastoji od dva dijela. Na prvom dijelu kanjenje signala po jedinici duljine iznosi
T01 = 10ns / m a na drugom dijelu kanjenje signala po jedinici duljine iznosi T02 = 5ns / m .
Duljina prvog dijela iznosi 0,2 m, a duljina drugog dijela 0,4 m. Karakteristina impedancija
prvog dijela voda iznosi 100 a drugog dijela voda 60, izlazni otpor digitalnog sklopa
iznosi 150. Prikaite naponsko stanje na liniji.
Vidimo da je kanjenje signala kroz oba dijela vodia je jednako. U zadatku imamo 4
faktora refleksije, odreena sljedeim izrazima:
Refleksije, presluavanja i utjecaj kapacitivnosti. 15
Z 0,1 Z 0, 2 100 60 RL Z 0, 2 60
3 = = = 0,25 , B = = =1
Z 0,1 + Z 0, 2 100 + 60 R L + Z 0, 2 + 60
gdje je RL otpor troila prikljuenog na izlaz voda (u ovom zadatku RL=). Postoje 3
diskontinuiteta: ulaz u prvi vod (toka A), spoj dvaju vodova (toka X) i izlaz iz drugog
voda (toka B). Napon na ulazu voda u trenutku t=0 odreen je iskljuivo naponskim
dijelilom Riz-Z0,1, prema formuli:
Z 0,1 100
Ui = U g = 5 = 2V
Riz + Z 0,1 150 + 100
A X B
0 ns 0 ns
a
2 ns 2 ns
c b
4 ns 4 ns
d e
6 ns 6 ns
f g
8 ns 8 ns
h i
10 ns 10 ns
j k
12 ns 12 ns
l m
14 ns 14 ns
n o
16 ns 16 ns
p q
T2 = 1 + 2 = 0,75 i T3 = 1 + 3 = 1,25
16 Zbirka rijeenih zadataka
a = U i = 2V
b = aT2 = 1,5V
c = a2 = 0,5V
d = c A = 0,1V
e = b B = 1,5V
f = d2 + eT3 = 1,9V
g = e3 + dT2 = 0,3V
h = f A = 0,38V
i = g B = 0,3V
j = h 2 + iT3 = 0,28V
k = i3 + hT2 = 0,36V
l = j A = 0,056V
m = k B = 0,36V
n = l 2 + mT3 = 0,436V
o = m3 + lT2 = 0,132V
p = n A = 0,0872V
q = o B = 0,132V
Obratiti panju na nain izrauna f (slino kao i g, j, k, ...). Kad signal predstavljen sa d
doe u toku X, jedan dio se reflektira natrag prema toki A ( d2 ), a dio se transmitira
dalje prema toki B ( dT2 ). Kako istovremeno u tu toku dolazi i signal iz toke B
predstavljen sa e, jedan dio tog signala reflektira se natrag prema toki B ( e3 ), a dio se
transmitira dalje prema toki A ( eT3 ). Tada ukupni signal koji se vraa prema A sadri
reflektiranu komponentu signala d i transmitiranu komponentu signala e, odnosno:
f = d 2 + eT3 . Isto tako, ukupni signal koji se vraa prema B sadri reflektiranu
komponentu od e, i transmitiranu komponentu od d, dakle: g = e3 + dT2
UA[V]
5 4,5392 V
4,016V
4 3,68 V
3
2V
2 1,4 V
t [ns]
2 4 6 8 10 12 14 16
UX[V]
5 4,452 V
3,96 V
4 3,3 V
2 1,5 V
t [ns]
2 4 6 8 10 12 14 16
UB[V]
5 4,32 V 4,587 V
4 3,6 V
3V
3
t [ns]
2 4 6 8 10 12 14 16
1.10. Zadatak
X Y
W Z
18 Zbirka rijeenih zadataka
RS R0
R0 R0
Idalji=ICm-ILm
RS R0
R0 R0
Vidimo dakle da je utjecaj presluavanja uvijek vei na bliem kraju a manji na daljem
kraju. Struja zbog meukapacitivnosti kod donjeg sklopa uvijek tee prema oba kraja,
dok je smjer struje zbog meuinduktivnosti odreen Lenzovim zakonom (npr. ako struja
u gornjem sklopu potee na desno, u donjem e sklopu potei na lijevo). Detaljnija
matematika obrada prikazana je u sljedeem zadatku.
1.11. Zadatak
B'
Izraunajte i nacrtajte oblik napona koji se pojavi na ulazima sklopova B ako sklop A generira
pravokutni naponski impuls 5V u trajanju od 10 ns. Zanemarite refleksije.
A Rizl
CP
ug B
Rul CT
B'
Rul CT
Ovu shemu moemo nacrtati i na drugaiji nain, tako da grupiramo otpore na jedno
mjesto a kapacitivnosti na drugo:
Rizl Thevenin
Rul Rul CP CT CT
ug
i CTOT
ut
Rul || Rul
ut = u g = 4.873V
Rizl + Rul || Rul
RTOT = Rul || Rul || Rizl CTOT = CT + CT + CP
1
ut (t ) = i (t ) RTOT +
CTOT i(t ) dt
1. sluaj:
20 Zbirka rijeenih zadataka
2. sluaj:
Grafiki prikaz:
ut
Za vjebu:
Izraunati vrijeme porasta, vrijeme pada i trajanje
impulsa prema predavanjima.
t Ako se trajanje impulsa skrati na 1 ns, kako e
10 ns tada izgledati izlazni napon? Hoe li sklop B
ispravno protumaiti da je primio visoku
naponsku razinu (pretpostavimo da napon na
uul ulazu mora biti barem 4V da bi bio shvaen kao
visoka razina)?
t
10 ns
Refleksije, presluavanja i utjecaj kapacitivnosti. 21
1.12. Zadatak
Dva para digitalnih sklopova (X, Y) i (W, Z) povezani su dugakim paralelnim vodovima na
tiskanoj ploici, na sljedei nain: izlaz sklopa X povezan je na ulaz sklopa Y, izlaz sklopa W
povezan je na ulaz sklopa Z. Svi sklopovi su istog tipa. Poznati su slijedei podaci: napon
visoke razine UH=3.8V, napon niske razine UL=0,3V, struja niske razine IIL=-1.6mA, struja
visoke razine IIH0mA, RulH=, RulL=4k, RizlH=100, RizlL=10k. Kapacitet izmeu
vodova iznosi C=10pF, a meuinduktivitet M=100nH. Izlazi sklopova X i W nalaze se na
visokoj razini (UH). Sklop X u trenutku t1 poalje sklopu Y impuls trajanja T, s parametrima
tr=8ns, tf=5ns. Ako su sklopovi X i Z, te Y i W susjedni (vidi sliku), odredite utjecaj tog
impulsa na sklopove W i Z. Analizirati samo utjecaj presluavanja!
X Y
vod A
Z W
vod B
i) zbog meuinduktiviteta
ii) zbog kapaciteta
uC (t1 ) = ( A, t1 ) ( B, t1 ) = U H U H = 0
iI (t1 ) = I IH i iI (t1+ ) = I IL
u1 = 732mV
Kako je u stacionarnom stanju napon na vodu B jednak UH, pod utjecajem presluavanja
napon pada na U H + u1 = 3,8 + ( 0,732) = 3,068V .
Grafiki prikaz:
Zato derivacije nisu delta funkcije?
uA
naponski skok kod uA impulsa takoer nije
savreno okomit. Moemo aproksimirati
trapezom trajanja tf/tr, pa bi derivacije bile
pravokutni impulsi. Meutim, i to je samo
t
diI aproksimacija, stvarno impulsi izgledaju kao na
dt slici...
? t
Za vjebu.
duC Izraunati i nacrtati utjecaj presluavanja u
dt trenutku t=t1+T (dakle, na rastui brid).
Ponoviti analizu uz pretpostavku da su susjedni
?
sklopovi sada X i W, te Y i Z.
t
uB
?
t
t1 t1+T
Refleksije, presluavanja i utjecaj kapacitivnosti. 23
ZADACI ZA VJEBU
etiri-bitni podatak 1011 potrebno je zatititi kodom n-strukog ponavljanja (uz n=5).
Prikazati zatieni podatak i navesti svojstva ovog kodiranja. Pokazati nain ispravljanja
pogreke na primjeru.
Opisani kod spada u najjednostavnije mogue, pri emu kod odjednom moe kodirati
samo jedan bit podatka (dakle 0 ili 1) i zbog toga ima samo dvije kodne rijei {0000,
1111}. Dakle, podatak 0 kodira se sa n nula, a podatak 1 sa n jedinica.
Podatak 1011 tada e uz n=5 biti kodiran kao 11111 00000 11111 11111.
r n 1 4
R= = = = 0 .8
n n 5
Na prikazanoj slici referentna kodna rije je 00000. Isto razmatranje moemo napraviti
ako kao referentnu kodnu rije uzmemo 11111, ime dobijemo simetrinu sliku:
26 Zbirka rijeenih zadataka
d(10101, 00000) = 3
d(10101, 11111) = 2
Openito vrijedi sljedea tvrdnja: kod s minimalnom udaljenou d izmeu svake dvije
ispravne kodne rijei moe ispraviti (d 1) / 2 pogreaka.
2.2. Zadatak
Oktet 213 potrebno je zatititi paritetnim bitom uz uporabu parnog pariteta. Objasniti ovaj
nain zatitnog kodiranja, i svojstva.
Traeno kodiranje obavlja se tako da se podatkovnoj rijei doda jo jedan bit, koji se
postavi na onu vrijednost uz koju je cijela kodna rije traenog pariteta. Ako je n-bitna
podatkovna rije dana bitovima b0, b1, , bn-1, a paritetni bit oznaimo s bn, tada uz
pretpostavku parnog pariteta mora vrijediti:
b0 b1 bn 1 bn = 0
Zatitno kodiranje. Brojevni sustavi. 27
bn = b0 b1 bn 1
Ako se pak koristi neparni paritet, tada paritetni bit mora zadovoljavati izraz:
b0 b1 bn 1 bn = 1
bn = b0 b1 bn 1 1 = b0 b1 bn 1
b8 = 1 0 1 0 1 0 1 1 = 1
b0 b1 bn 1 bn = 1 1 0 1 0 1 0 1 1 = 0
U ovom zadatku podatkovna rije ima k=8 bitova, broj zalihosnih bitova r=1, te je
ukupna duljina kodne rijei n=k+r=9. Redundancija koda tada je odreena izrazom:
r 1
R= = = 0.1111 .
n 9
Ovaj kod otkriva svaku jednostruku pogreku, i svaki neparan broj pogreaka. Kod ne
moe ispraviti niti jednu pogreku.
2.3. Zadatak
Niz okteta {25, 12, 250, 54, 93, 33, 196, 212} potrebno je zatititi uporabom uzdunog i
poprenog pariteta (koristiti parni paritet). Pri tome treba koristiti takav nain kodiranja koji
e osigurati minimalnu redundanciju! Prikaite kodirane podatke i izraunajte redundanciju.
Niz koji kodiramo sastoji se od 8 8 = 64 bitova. Ovaj niz potrebno je presloiti u blok
bitova koji u svakom retku sadri W podatkovnih bitova, a u svakom stupcu H
podatkovnih bitova. Ukupan broj podatkovnih bitova tada e biti p = W H i to mora
biti jednako 64. Cijeli blok oito e biti dimenzija n = (W + 1) (H + 1) . Broj zalihosnih
bitova tada je r = W + H + 1 .
r
R=
n
p
H=
W
to e dati:
p
n = (W + 1) + 1
W
p
r = W + +1
W
pa imamo:
p
W+ +1
R(W ) = W
(W + 1) p + 1
W
p p p p p
2 + 1(W + 1) + 1 + W + 1 + 1 + (W + 1) 2
dR (W ) W W W W W
= =0
dW p
(W + 1) + 1
W
pW 3 p 2W = 0
tj. slijedi:
(
pW W 2 p = 0 )
Kako niti p niti W ne mogu biti 0, slijedi da je trei lan jednak 0, pa imamo:
W = p
p p
H= = = p
W p
W =8
H =8
r = 8 + 8 + 1 = 17
n = (8 + 1)(8 + 1) = 81
17
R= 0.21
81
To znai da emo svaki oktet staviti u jedan redak. Zatieni blok podataka iznosi:
1 0 1 1 0 1 0 1 1
0 0 0 1 1 0 0 1 1
0 0 0 0 1 1 0 0 0
1 1 1 1 1 0 1 0 0
0 0 1 1 0 1 1 0 0
0 1 0 1 1 1 0 1 1
0 0 1 0 0 0 0 1 0
1 1 0 0 0 1 0 0 1
1 1 0 1 0 1 0 0 0
Prvi redak pripada paritetnim bitovima poprenog pariteta, a zadnji stupac pripada
paritetnim bitovima uzdunog pariteta.
2.4. Zadatak
C C P C P P P C P P P P P P P C P
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
20 21 22 23 24
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0
0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Potrebno je poslati ukupno 17 bitova kako bismo mogli sigurno prenijeti 12 bitova
poruke (sigurno u smislu mogunosti ispravljanja jednostruke pogreke).
Upisujemo poruku:
C C P C P P P C P P P P P P P C P
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
? ? 1 ? 0 1 1 ? 0 0 0 1 1 0 1 ? 0
(? oznaava da na ovom mjestu jo ne znamo vrijednost odreenog bita)
C(1) ima 1 u petom (zadnjem) retku. U tom retku 1 imaju jo i P(3), P(5), P(7), P(9),
P(11), P(13), P(15), P(17). Sumiramo vrijednosti svih navedenih P-bitova:
1+0+1+0+0+1+1+0 mod 2 = 4 mod 2 = 0, te je C(1) = 0. Da se trai neparan paritet,
C(1) bi bio komplement dobivenog rezultata, dakle 1.
C(2) ima 1 u etvrtom (predzadnjem) retku. U tom retku 1 imaju jo i P(3), P(6), P(7),
P(10), P(11), P(14), P(15). Sumiramo vrijednosti svih navedenih P-bitova:
1+1+1+0+0+0+1 mod 2 = 4 mod 2 = 0, te je C(2) = 0. Da se trai neparan paritet, C(2)
bi bio komplement dobivenog rezultata, dakle 1.
C(4) ima 1 u treem retku. U tom retku 1 imaju jo i P(5), P(6), P(7), P(12), P(13),
P(14), P(15). Sumiramo vrijednosti svih navedenih P-bitova: 0+1+1+1+1+0+1 mod 2 =
5 mod 2 = 1, te je C(4) = 1. Da se trai neparan paritet, C(4) bi bio komplement
dobivenog rezultata, dakle 0.
C(8) ima 1 u drugom retku. U tom retku 1 imaju jo i P(9), P(10), P(11), P(12), P(13),
P(14), P(15). Sumiramo vrijednosti svih navedenih P-bitova: 0+0+0+1+1+0+1 mod 2 =
3 mod 2 = 1, te je C(8) = 1. Da se trai neparan paritet, C(8) bi bio komplement
dobivenog rezultata, dakle 0.
C(16) ima 1 u prvom retku. U tom retku 1 imaju jo i P(17). Sumiramo vrijednosti svih
navedenih P-bitova: 0 mod 2 = 0, te je C(16) = 0. Da se trai neparan paritet, C(16) bi
bio komplement dobivenog rezultata, dakle 1.
Zatitno kodiranje. Brojevni sustavi. 31
Sumu modulo 2 obavlja operacija iskljuivo ili, koju emo u nastavku oznaavati sa
XOR to je uobiajena oznaka za ovu operaciju u VHDLu koji emo obraditi neto
kasnije. Za parni paritet moemo pisati:
C(1)P(3)P(5)P(7)P(9)P(11)P(13)P(15)P(17)=0
C(2)P(3)P(6)P(7)P(10)P(11)P(14)P(15)=0
C(4)P(5)P(6)P(7)P(12)P(13)P(14)P(15)=0
C(8)P(9)P(10)P(11)P(12)P(13)P(14)P(15)=0
C(16)P(17)=0
C(1)=P(3)P(5)P(7)P(9)P(11)P(13)P(15)P(17)
C(2)=P(3)P(6)P(7)P(10)P(11)P(14)P(15)
C(4)=P(5)P(6)P(7)P(12)P(13)P(14)P(15)
C(8)=P(9)P(10)P(11)P(12)P(13)P(14)P(15)
C(16)=P(17)
Niz zatitnih bitova oitan iz dobivene poruke je: 01100, te je pogreka nastupila na
mjestu koje odreuje sindrom:
oitani niz zatitnih bitova XOR izraunati niz zatitnih bitova = 01100 XOR 00000
= 01100.
2.5. Zadatak
Blok od 8000 okteta alje se komunikacijskim medijem. Koliko je zatitnih bitova potrebno, i
kolika je redundancija, ako za zatitu koristimo:
Poredajmo podatkovne bitove u tablicu koja ima jedan oktet po retku. trebamo 8000
paritetnih bitova za uzduni paritet, i 8 paritetnih
bitova za popreni paritet. Ukupno trebamo: r = o1 on
8000 + 8 + 1 = 8009 paritetnih bitova (+1 zbog p1,1 p1,8 v1
gornjeg desnog bita tablice). Poslati emo n =
80008 + 8009 = 72009 bitova. Redundancija je: p8000,1 p8000,8 vn
r 8009 Za vjebu.
R= = = 0,111
n 72009 Rijeite a) dio zadatka tako da podatkovne
bitove sloite na nain koji e potroiti
to je vie od 11%. minimalno potreban broj zatitnih bitova.
Koliko tada iznosi redundancija? Usporedite s
b) Uporaba Hammingovog koda rjeenjem b) dijela zadatka.
Ako titimo blok od k = 80008 = 64000 bitova, broj paritetnih bitova mora biti:
2r n + 1
Zato? Promatramo li niz zatitnih bitova kao r-bitni binarni broj Cr-1Cr-2C1C0, taj
broj mora moi poprimiti poziciju na kojoj je dolo do pogreke, ili vrijednost nula ako
niti na jednoj poziciji nije dolo do pogreke. Kako titimo n bita, slijedi da zatitni broj
mora moi poprimiti vrijednosti: 0, 1, 2, ..., n-1, n tj. ukupno n+1 vrijednost.
2r k + r + 1
r 16
R= = = 0,00025
n 64016
2.6. Zadatak
Potrebno je zatititi etiri podatka: 00, 01, 10 i 11. Podaci se tite s etiri zatitna bita, tako
da se postavi jedinica na mjesto koje odgovara numerikoj vrijednosti podatka. Koliko se
pogreaka takvim kodiranjem moe otkriti, a koliko ispraviti? Pretpostaviti da je uslijed
djelovanja pogreaka primljena poruka d=000101 (zatitni su bitovi nakon korisnih). Neka
kriterij za otkrivanje ispravne poruke bude minimalna distanca koda.
Izraunajmo minimalnu distancu koda (najmanji broj bitova koji se razlikuju izmeu
dvije kodne rijei):
Npr. ako je primljena poruka d=000101: najblia kodna rije je 000001 s distancom
1 (sve ostale imaju veu distancu do d), pa zakljuujemo da je to poslana kodna rije.
2.7. Zadatak
C(1)=Komplement(
P(3)P(5)P(7)P(9)P(11)P(13)P(15)P(17)P(19)P(21)P(23)
)
34 Zbirka rijeenih zadataka
C(2)=Komplement(
P(3)P(6)P(7)P(10)P(11)P(14)P(15)P(18)P(19)P(22)P(23)
)
C(4)=Komplement(
P(5)P(6)P(7)P(12)P(13)P(14)P(15)P(20)P(21)P(22)P(23)
)
C(8)=Komplement(
P(9)P(10)P(11)P(12)P(13)P(14)P(15)P(24)
)
C(16)=Komplement(
P(17)P(18)P(19)P(20)P(21)P(22)P(23)P(24)
)
2.8. Zadatak
C(1)=P(3)P(5)P(7)P(9)P(11)P(13)P(15)P(17)P(19)
C(2)=P(3)P(6)P(7)P(10)P(11)P(14)P(15)P(18)P(19)
C(4)=P(5)P(6)P(7)P(12)P(13)P(14)P(15)P(20)
C(8)=P(9)P(10)P(11)P(12)P(13)P(14)P(15)
C(16)=P(17)P(18)P(19)P(20)
2.9. Zadatak
Potrebno je zatititi slijedei niz bitova: 1111010001. Potrebno je koristiti Hammingov kod uz
neparni paritet. Pogreka neka djeluje na 12. bit.
C(1)=Komplement( P(3)P(5)P(7)P(9)P(11)P(13) )
C(2)=Komplement( P(3)P(6)P(7)P(10)P(11)P(14) )
C(4)=Komplement( P(5)P(6)P(7)P(12)P(13)P(14) )
C(8)=Komplement( P(9)P(10)P(11)P(12)P(13)P(14) )
2.10. Zadatak
Poznato je da je 001100(2) ispravna Hammingova kodna rije. Napiite sve preostale kodne
rijei koje pripadaju tom kodu.
Kako bismo otkrili o kojem se Hammingovom kodu radi, potrebno je utvrditi broj
podatkovnih bitova u rijei, broj zatitnih bitova u rijei te koriteni paritet. Krenimo
redom. Poznato je da navedena rije pripada (nekom) Hammingovom kodu. To znai da
je oblika:
C C P C P P
1 2 3 4 5 6
? ? ?
C C P C P P
1 2 3 4 5 6
0 0 1 1 0 0
Takoer znamo da je rije ispravna. Ako je koriten parni paritet, tada mora vrijediti:
C(1)=P(3)P(5)
C(2)=P(3)P(6)
C(4)=P(5)P(6)
Provjerimo to.
Uz uporabu parnog pariteta nismo dobili zatitne bitove kakvi se nalaze u zadanoj
kodnoj rijei. tovie, dobili smo tono njihove komplemente, to upuuje na uporabu
36 Zbirka rijeenih zadataka
neparnog pariteta. Provjerimo dakle koje bismo zatitne bitove dobili da je koriten
neparni paritet. Tada mora vrijediti:
C(1)=Komplement(P(3)P(5))=Komplement(10)=Komplement(1)=0
C(2)=Komplement(P(3)P(6))=Komplement(10)=Komplement(1)=0
C(4)=Komplement(P(5)P(6))=Komplement(00)=Komplement(0)=1
Iz zadane kodne rijei takoer moemo proitati i koja je podatkovna rije zatiena.
Radi se o rijei 100(2). Kako je to trobitna rije, postoji jo 7 moguih rijei: 000(2),
001(2), 010(2), 011(2), 101(2), 110(2) te 111(2). Kako sada znamo da trebamo koristiti
neparni paritet, odnosno da mora vrijediti:
C(1)=Komplement(P(3)P(5))
C(2)=Komplement(P(3)P(6))
C(4)=Komplement(P(5)P(6))
2.11. Zadatak
C(1)=P(3)P(5)P(7)P(9)P(11)P(13)P(15)
C(2)=P(3)P(6)P(7)P(10)P(11)P(14)P(15)
Zatitno kodiranje. Brojevni sustavi. 37
C(4)=P(5)P(6)P(7)P(12)P(13)P(14)P(15)
C(8)=P(9)P(10)P(11)P(12)P(13)P(14)P(15)
r 4
R= = = 0,27
n 15
2.12. Zadatak
Zadan je broj x=177,296875(10) (u bazi 10). Potrebno je taj isti broj zapisati u slijedeim
bazama:
a) 2
b) 8
c) 16
a) Baza 2
Broj je potrebno promatrati kao cijeli broj plus decimalni ostatak. Cijeli broj pretvara se
u drugu bazu postupkom uzastopnog dijeljenja novom bazom, a decimalni ostatak
postupkom uzastopnog mnoenja novom bazom.
Moemo pisati:
177,296875(10) = 10110001,010011(2).
b) Baza 8
Moemo pisati:
177,296875(10) = 261,23(8).
c) Baza 16
Moemo pisati:
177,296875(10) = B1,4C(16).
2.13. Zadatak
a) 2
b) 16
Brojeve ije su baze potencije istog broja (npr. 8=23 i 2=21) moemo pretvarati iz baze u
bazu razvojem odnosno grupiranjem.
a) Baza 2
2 6 1 , 2 3 (8)
010 110 001 , 010 011 (2)
b) Baza 16
Kako je 16=24, za prikaz jedne znamenke trebamo 4 bita. Izvorno je broj zapisan u bazi
8=23, te za prikaz jedne znamenke treba 3 bita. Konverziju moemo obaviti posredno,
prevodei broj metodom razvoja iz oktalnog (baza 8) u binarni zapis (baza 2), pa
metodom grupiranja iz binarnog u heksadekadski zapis (baza 16).
2 6 1 , 2 3 (8)
010 110 001 , 010 011 (2)
40 Zbirka rijeenih zadataka
B 1 , 4 C (16)
2.14. Zadatak
a)
AE7,24(16) = 10162+14161+7160+216-1+416-2 = 2791,140625(10).
AE7,24(16) = 1010 1110 0111, 0010 0100(2)
AE7,24(16) = 101 011 100 111, 001 001 000(2) = 5347,110(8)
b)
731,56(8) = 782+381+180+58-1+68-2 = 473,71875(10)
731,56(8) = 111 011 001, 101 110(2)
731,56(8) = 0001 1101 1001, 1011 1000(2) = 1D9,B8(16)
2.15. Zadatak
BCD kod za prikaz jedne dekadske znamenke koristi 4 bita, pri emu se znamenka
zapisuje kao binarni ekvivalent njezine vrijednosti. Za zapis 4-znamenkastog dekadskog
broja trebamo dakle 4 grupe od po 4 bita:
3 7 2 0
0011 0111 0010 0000
2.16. Zadatak
Excess-3 kod za prikaz jedne dekadske znamenke koristi 4 bita, pri emu se znamenka
zapisuje kao binarni ekvivalent njezine vrijednosti uveane za 3. Za zapis 4-
znamenkastog dekadskog broja trebamo dakle 4 grupe od po 4 bita:
3 7 2 0
0110 1010 0101 0011
2.17. Zadatak
Izraunajte distancu bikvinarnog koda. Koliko pogreaka kod moe otkriti, a koliko ispraviti?
Distanca koda je minimalna distanca izmeu bilo koje dvije kodne rijei. Paljivom
analizom prethodne tablice slijedi da je minimalna distanca jednaka 2, to je ujedno i
distanca koda.
Broj pogreaka koje kod moe otkriti je 1. Broj pogreaka koje kod moe ispraviti je 0.
42 Zbirka rijeenih zadataka
2.18. Zadatak
Ispiite sve kodne rijei 3-bitnog Grayevog koda. Koliko pogreaka kod moe otkriti a koliko
ispraviti?
2.19. Zadatak
U nekom digitalnom sustavu potrebno je pohranjivati nenegativne cijele brojeve pri emu je
maksimalni broj koji treba pohraniti 1048575(10). Digitalni sustav projektiran je tako da
brojeve pohranjuje u BCD kodu. Koliko se sklopovlja moe utediti ako se umjesto BCD
koda za prikaz brojeva koristi prirodni binarni kod?
Broj bitova koje sustav troi za pohranu jednog broja u ovom je sluaju odreen
najveim brojem koji treba zapamtiti 1048575. Kako se radi o 7 znamenkastom broju,
oito je da sustav treba troiti 74=28 bitova (svaka BCD znamenka troi 4 bita).
Ukoliko se za prikaz broja odabere prirodni binarni kod, za prikaz svakog broja trebat
emo onoliko bitova koliko trebamo za prikaz najveeg. Pretvorimo li broj 1048575 u
binarni, slijedi:
1048575(10)=11111111111111111111(2)=220-1
ZADACI ZA VJEBU
a
&
b
1
c
& f
d
a i1
&
b
i2
1
c
& f
d
Moemo pisati:
i1 = a b
i 2 = i1 + c
f = i 2 d = (i1 + c ) d = (a b + c ) d
U VHDL-u opis sklopa sastoji se od dva dijela: opis suelja preko kojega sklop
komunicira s vanjskim svijetom (ENTITY kljuna rije), te opis djelovanja sklopa (to
je mogue ostvariti na dva naina: funkcijskim odnosno ponaajnim opisom te
strukturnim opisom; ARCHITECTURE kljuna rije).
46 Zbirka rijeenih zadataka
sklop1
a i1
&
b
i2
1
c
& f
d
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY sklop1 IS
PORT( a, b, c, d: IN std_logic;
f : OUT std_logic );
END sklop1;
c) Kako bismo mogli opisati sklop na strukturnoj razini, najprije je potrebno definirati
sve potrebne "pod"-sklopove. Dakle, najprije emo definirati ILI sklop - sklopOR
(funkcijskim opisom), zatim I sklop - sklopAND (takoer funkcijskim opisom) i
konano traeni sklop - sklop1 strukturnim opisom.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY sklopOR IS
PORT( x1, x2: IN std_logic;
y : OUT std_logic );
END sklopOR;
Opis I sklopa:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY sklopAND IS
PORT( x1, x2: IN std_logic;
y : OUT std_logic );
END sklopAND;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY sklop1 IS
PORT( a, b, c, d: IN std_logic;
f : OUT std_logic );
END sklop1;
Za vjebu.
Ponovite zadatak za sklop prikazan na slijedeoj slici (sklop2). Provjerite uporabom
Xilinx-ovog simulatora s laboratorijskih vjebi da li su opisi koje ste generirali
rjeavajui b) i c) dio zadatka jednaki na ponaajnoj razini.
a
&
b
1 f
& 1
c 1
3.2. Zadatak
R2
a) Provjeriti da li tranzistor ulazi u zasienje i zapiranje prema
oekivanju. -UBB
Provjera zasienja.
IC
IB
hFE
odnosno kada je bazna struja barem dovoljna (a poeljno i vea) od struje potrebne za
potporu kolektorske struje. Zato je potrebno izraunati ove struje i provjeriti da li
prethodna nejednadba vrijedi.
U CC U CEzas
I Czas = = 4.7 mA
RC
4.7 mA
0.262mA = 0.094mA
50
Provjera zapiranja.
U zapiranju, na ulazu je Uul=Uul2, UBE=UBezap=? dok ICB0 sada postoji. U tom sluaju
struju I2 moemo odrediti superpozicijom, pa zatim napon UBezap iznosi:
U BEzap = I 2 R2 U BB
U ul 2 U BB R1
I2 = + + I CB 0
R1 + R2 R1 + R2 R1 + R2
Uvrtavanjem dobivamo:
U ul 2 U BB R1
U BEzap = + + I CB 0 R2 U BB = 0.18V
R1 + R2 R1 + R2 R1 + R2
50 Zbirka rijeenih zadataka
Tranzistor je sigurno u zapiranju jer je UBEzap manji od napona praga voenja U koji
iznosi oko 0.3V.
Provjera zasienja.
IC
IB
hFE
U CC U CEzas
I Czas =
RC
(1 + 0.1) U CC U CEzas
= = 5.78mA
(1 0.1) RC
5.78mA
0.221mA = 0.1156mA
50
Provjera zapiranja.
U U BB R1
U BEzap = ul 2
+ + I CB 0 R U
R1 + R2 R1 + R2 R1 + R2
2 BB
U ul 2 (1 0.1) U BB (1 0.1) R1
= + + I CB 0 (1 + 0.1) R2 (1 0.1) U BB = 0.062V
(1 0.1) R1 + (1 + 0.1) R2 (1 0.1) R1 + (1 + 0.1) R2 (1 0.1) R1 + (1 + 0.1) R2
3.3. Zadatak
Diodni I sklop spojen je s invertorom iz prethodnog zadatka kojemu je na ulaz dodana dioda.
+UCC
RC +UCC
R
R1
Uizl
UulA
Uul
UulB Uizl
R2
-UBB
+UCC
RC
R
R1
UulA Uizl
UulB
R2
-UBB
f = A B = A + B
52 Zbirka rijeenih zadataka
Analizirajmo rad sklopa. Oznaimo na slici dodatne napone koji e nam pomoi u
analizi sklopa.
+UCC
+UCC
RC
IR R
D R1
UulA Uizl
UulB UD
UAB UBE
R2
-UBB
Kada je na jednom ulazu sklopa niska razina, npr. UulA = Uul2 = 0.3V (vrijednost drugog
ulaza neka je visoka razina), dotina dioda provede i na njoj je pad napona od 0.7V.
Tada je:
Tee struja IR za koju osjenani dio sheme uope ne postoji, a njezin iznos je:
U CC U AB 5 1
IR = = = 4mA
R 1000
Tek kada su UulA i UulB oba visoka (UulA=UulB=Uul1=5V) ulazne diode ne vode. Sada je
napon UAB dovoljno visok da provedu dioda D i tranzistor. Imamo slijedeu situaciju:
Osnovni logiki sklopovi. 53
+UCC
+UCC
RC
R
D R1
UulA Uizl
IB
UulB UAB
UD I1
I2 UBE
R2
-UBB
U BEzas + U BB 0.8 + 5
I2 = = = 0.058mA
R2 100k
U AB = U CC I1 R = 5 0.3182m 1k = 4.6818V
U CC U CEzas 5 0.3
IC = = = 4.7 mA
RC 1k
b) Promotrimo najprije situaciju kada je izlaz iz sklopa visoka naponska razina, tj. kada
je barem jedan od ulaza u sklop spojen na nisku naponsku razinu:
54 Zbirka rijeenih zadataka
+UCC
+UCC R
I1
+UCC
RC 1
IR R
D R1
UulA Uizl +UCC
UulB UD
UAB UBE R
R2 I1
-UBB
n
Kako je Uizl visoka naponska razina, ulazne diode slijedeeg stupnja ne vode. Struja
kolektora tada je nula, i broj ulaza slijedeeg stupnja koji je spojen nema nikakvog
utjecaja.
Ako se na oba ulaza spoji visoka naponska razina, imamo slijedeu situaciju:
+UCC
+UCC
IR R
+UCC
1
RC
R I1
D R1
UulA Uizl +UCC
UulB UD
UAB UBE IR R
R2
-UBB
n
Struje I1, I2 i IB izraunali smo ve u prethodnom dijelu zadatka. Meutim, sada struja
kolektora izlaznog tranzistora vie nije uvjetovana samo Strujom kroz otpor RC, ve i
strujama IR koje teku iz ulaznog stupnja sklopova povezanih na izlaz! Struja kolektora
tada iznosi:
U CC U CEzas
IC = + n IR
RC
Struja IR iznosi:
U CC U D U CEzas
IR = = 4mA
R
Osnovni logiki sklopovi. 55
U CC U CEzas U U D U CEzas
IC = + n CC
RC R
Prisjetimo se, da bi tranzistor bio u zasienju, struja kolektora IC ograniena je strujom
baze IB! Mora vrijediti:
I C hFE I B
U CC U CEzas U U D U CEzas
+ n CC hFE I B
RC R
U CC U CEzas
hFE I B
RC
n = 5.33
U CC U D U CEzas
R
I C = hFE I B
Naime, uvidom u izraz koji opisuju IC, vidi se da je ta struja graena od komponente
kroz otpor RC i struje IR (tj. n IR). Obje ove komponente padaju poveanjem napona
UCE.
U CC U D U BEzas U BEzas + U BB
I B = I1 I 2 =
R + R1 R2
U CC U D U BEzas U BEzas + U BB
I B = I1 I 2 = = 0.2248mA
R + R1 R2
U CC U CEzas U U D U CEzas
IC = + n CC
RC R
to je maksimalno ako su svi otpori R sklopova spojenih na izlaz minimalni, kao i otpor
RC u izlaznom krugu tranzistora.
U CC U CEzas U U D U CEzas
IC = + n CC
RC R
Uvrtavanjem u nejednadbu:
I C hFE I B
moe se izraunati n:
U CC U CEzas
hFE I B
RC
n = 3.883
U CC U D U CEzas
R
Dakle, ako se dopuste tolerancije otpora od 10%, u najgorem sluaju faktor grananja
iznosi samo 3 sklopa!
3.4. Zadatak
Za neki logiki sklop zadani su sljedei podaci: UILmax = 2V, UIHmin = 3.5V, UOLmax = 0.5V,
UOHmin = 4.2V. Odredite granice istosmjerne smetnje tog sklopa. Ako se izlaz sklopa pri
niskoj naponskoj razini moe nadomjestiti otporom RL = 100 prema masi, a izlaz sklopa pri
visokoj naponskoj razini otporom RH = 1000 prema napajanju UCC, izraunajte koliko
iznose struje IOLmax i IOHmax. Neka je UCC = 5V. Ako je poznato da su IIHmax = 0.16 mA te IILmax
= 0.8 mA, izraunajte koliko iznosi faktor grananja izlaza (fan-out) zadanog sklopa.
UIHmin predstavlja minimalni potreban napon na ulazu koji e se protumaiti kao visoka
naponska razina. UOHmin predstavlja minimalnu vrijednost napona koju e sklop
generirati na izlazu u sluaju kada je izlaz visok. UOHmin tipino je vei od UIHmin, a
njihova razlika ini granicu istosmjerne smetnje pri visokoj razini:
Granica istosmjerne smetnje tada se definira kao manja od ove dvije vrijednosti, pa
vrijedi:
+UCC
RH
IOLmax IOHmax
a) izlaz je L b) izlaz je H
Slika 1. Nadomjesna shema izlaznog stupnja sklopa
Struja IOL ulazi u sklop i na otporu RL stvara pad napona U izl = I OL RL podiui tako
napon na izlazu sklopa. Kako taj napon ne smije prerasti UOLmax koji je unaprijed zadan,
moe se izraunati kolika je maksimalna struja IOL koja e na izlazu podii napon na
UOLmax, i tu emo struju nazvati IOLmax:
U OL max 0.5
U OL max = I OL max RL I OL max = = = 5 mA
RL 100
Struju IOHmax moemo izraunati koristei pretpostavku da se izlaz sklopa u sluaju kada
je na izlazu visoka naponska razina moe se nadomjestiti otporom RH prema napajanju,
kao to je prikazano na nadomjesnoj shemi (slika 1-b). Struja IOH izlazi iz sklopa i na
otporu RH stvara pad napona ruei tako napon na izlazu sklopa U izl = U CC I OH RH .
Kako taj napon ne smije pasti ispod UOHmin koji je unaprijed zadan, moe se izraunati
kolika je maksimalna struja IOH koja e na izlazu spustiti napon na UOHmin, i tu emo
struju nazvati IOHmax:
U CC U OH min 5 4.2 0 .8
U OH min = U CC I OH max RH I OH max = = = = 0.8 mA
RH 1000 1000
58 Zbirka rijeenih zadataka
Prilikom izrauna faktora grananja izlaza zapravo nas zanima koliko istovjetnih
sklopova moemo prikljuiti na izlaz jednog sklopa (a da sklop, dakako, radi ispravno).
Tu moramo provjeriti opet dva sluaja.
Kada je izlaz sklopa na niskoj naponskoj razini, on moe primati struju ne veu od
IOLmax. No u tom sluaju iz svakog od ulaza sklopova prikljuenih na izlaz promatranog
sklopa u najgorem sluaju dolazi struja IILmax. Kako za ispravan rad sklopa suma tih
struja ne smije prekoraiti iznos IOLmax slijedi:
I OL max 5
nL I IL max I OL max nL = = = 6.25
I IL max 0.8
Kada je izlaz sklopa na visokoj naponskoj razini, on moe davati struju ne veu od
IOHmax. U tom sluaju u svaki od ulaza sklopova prikljuenih na izlaz promatranog
sklopa u najgorem sluaju ulazi struja IIHmax. Kako za ispravan rad sklopa suma tih
struja ne smije prekoraiti iznos IOHmax slijedi:
I OH max 0 .8
nH I IH max I OH max nH = = =5
I IH max 0.16
Kako se faktor grananja definira kao najvei broj ulaza sljedeeg stupnja pri kojem svi
sklopovi jo rade ispravno (neovisno o stanju izlaza), za njegov izraun treba uzeti
manji od izraunatih faktora:
n = min(nL , nH ) = min(6.25,5) = 5
Osnovni logiki sklopovi. 59
3.5. Zadatak
Kao priprema za sljedee zadatke, izvedite izraz za izlazni napon naponskog dijelila zadanog
slikama.
+UCC
+UCC
R1
R1
R2
R2 UX UX
U2
Sluaj a) Sluaj b)
U CC U CC U 2
I= I=
R1 + R2 R1 + R2
Slijedi: Slijedi:
R2 R2
U X = I R2 = U CC U X = U 2 + I R2 = U 2 + (U CC U 2 )
R1 + R2 R1 + R2
R1
= U CC I R1 = U CC (U CC U 2 )
R1 + R2
3.6. Zadatak
Na slici su prikazani neoptereeni/optereeni diodni I sklop kod kojeg su svi ulazu blokirani
(ne utjeu na rad sklopa) osim jednog. Nacrtajte ovisnost napona UD o naponu Uul, ovisnosti
svih struja u sklopu o naponu Uul te prijenosne karakteristike za sklopove sa slike.
Pretpostavite da se napon Uul moe mijenjati od 0V do UCC=5V. Diodu promatrati kao idealni
element (pri voenju UD=0.7V i otpor je 0, pri nevoenju predstavlja beskonani otpor).
R=1k, RT=4k.
60 Zbirka rijeenih zadataka
+UCC +UCC
I R I R
I1
UD UX UD I2 RT UX
Uul Uul
Sluaj a)
U D = U X U ul = U CC U CC = 0 V
i dioda ne vodi. U sklopu takoer ne tee nikakva struja. Ponemo li smanjivati Uul,
napon na diodi poinje rasti. Struje i dalje ne teku, i napon UX ostaje jednak UCC. Kada
UD dostigne vrijednost od 0.7V, dioda poinje voditi. To se dakle dogodi kod ulaznog
napona Uul*:
Daljnjim smanjivanjem napona Uul napon na diodi ostaje konstantnih 0.7V jer dioda
vodi. To za posljedicu ima sputanje napona UX koji je do tada bio konstantan (iznosa
UCC). Budui da dioda vodi, naponi UD, Uul i UX povezani su sljedeom relacijom:
U ul + U D = U X
U CC U D U ul
I=
R
Sputanjem napona Uul ova je struja sve vea, zbog ega se na otporu R stvara sve vei
pad napona, te izlazni napon UX pada, prema relaciji:
U X = U CC I R = U ul + U D
U X = U ul + U D = 0 + 0.7 = 0.7 V
U CC U D U ul 5 0.7 0 4.3
I= = = = 4.3 mA
R 1k 1k
Osnovni logiki sklopovi. 61
Ovisnost napona UD o naponu Uul, ovisnost struje I o naponu Uul te ovisnost napona UX
o naponu Uul (prijenosna karakteristika UX je izlazni napon) prikazane su u nastavku.
UD [V]
5
4
3
2
1
0.7
Uul [V]
0 1 2 3 4 4.3 5
UX [V]
5
4
3
2
1
0.7
Uul [V]
0 1 2 3 4 4.3 5
I [mA]
5
4.3
4
3
2
1
Uul [V]
0 1 2 3 4 4.3 5
Sluaj b)
RT 4k
U X = U CC =5 = 4V
R + RT 1k + 4k
U D = U X U ul = 4 5 = 1V .
Oito je da uz ovaj napon dioda doista ne vodi (pa time ne utjee na napon UX), te
provedena analiza vrijedi. U ovom trenutku takoer vrijedi:
62 Zbirka rijeenih zadataka
U CC 5
I = I2 = = = 1 mA, I1 = 0 mA
R + RT 1k + 4k
Ponemo li smanjivati ulazni napon, napon na diodi e polagano rasti. Pri tome sve
struje i napon UX ostaju nepromijenjeni, sve do trenutka kada napon na diodi dosegne
vrijednost 0.7V. U tom trenutku dioda poinje voditi. To se dogaa za ulazni napon koji
je za 0.7 V manji od napona dijelila:
U ul = U X U D = 4 0.7 = 3.3V
U X = U ul + U D
Zbog toga se konano poinju mijenjati i struje u sklopu, te od ovog trenutka vrijede
izrazi:
U CC U X UX
I= I2 = I1 + I 2 = I
R RT
U CC (U ul + U D ) 5 ( 0 + 0.7) 4.3
I= = = = 4.3 mA ,
R 1k 1k
U X 0 .7
I2 = = = 0.175 mA ,
RT 4k
UD [V]
5
4
3
2
1
0.7
0 Uul [V]
1 2 3 3.3 4 5
-1
UX [V]
5
4
3
2
1
0.7
Uul [V]
0 1 2 3 3.3 4 5
I [mA]
5
4.3
4
3
2
1
Uul [V]
0 1 2 3 3.3 4 5
I1 [mA]
5
4.125
4
3
2
1
Uul [V]
0 1 2 3 3.3 4 4.3 5
I2 [mA]
5
4.3
4
3
2
1
0.175
Uul [V]
0 1 2 3 3.3 4 4.3 5
64 Zbirka rijeenih zadataka
3.7. Zadatak
Zadan je sklop prema slici. Grafiki prikaite ovisnosti napona UX i struja I, I1 i I2 o naponu
Uul. Prikaite prijenosnu karakteristiku. Pretpostavite da su svi elementi idealni. Objasnite
kako se moe odrediti UIHmin ovog sklopa i komentirajte njegov utjecaj na faktor grananja
izlaza. R=1k, RB=5k, RC=1k, UCC=5V, UBEzas=0.7V, UCEzas=0.3V, UD=UD1=0.7V,
hFE=100.
+UCC
+UCC
RC
R
Uizl
D1 RB
UulA
UulB
Kao pomo u rjeavanju zadatka oznaimo na slici jo i potrebne struje i napone. Isto
tako, pretpostavimo da su sve ulazne diode trajno blokirane (tako da ne smetaju) osim
jedne na koju dovodimo ulazni napon.
+UCC
+UCC
RC
I R
I1 I2 D1 RB
Uul
Uizl
UD UD1 UBEzas
UX
Napon UX tada se moe izraunati kao napon dijelila s dva izvora (jedan od prethodnih
zadataka):
Osnovni logiki sklopovi. 65
RB
U X = (U BEzas + U D1 ) + (U CC (U BEzas + U D1 ))
R + RB
5k
= ( 0.7 + 0.7) + ( 5 ( 0.7 + 0.7) )
1k + 5k
= 4.4 V
U X = U ul + U D
U D = U X U ul = 4.4 5 = 0.6 V
Ulazni napon bez ikakvih promjena u radu sklopa moemo smanjivati sve do trenutka
kada napon na diodi UD ne dosegne 0.7V, to se dogodi pri naponu:
Od tog trenutka daljnje smanjivanje ulaznog napona povlai za sobom pad napona UX
(UD je konstantnih 0.7V a vrijedi U X = U ul + U D ), porast struja I i I1 te pad struje I2.
dioda D1 i tranzistor se iskljuuju, ime struja I2 postaje 0. Ovo se dogaa kod ulaznog
napona:
U CC (U ul + U D )
I = I1 = , I 2 = 0 mA
R
U CC U X 5 1.4 3.6
I = I1 = = = = 3.6 mA
R 1k 1k
U CC U X 5 0.7 4.3
I = I1 = = = = 4.3 mA .
R 1k 1k
U CC U CEzas 5 0.3
IC = = = 4.7 mA
RC 1k
IC 4 .7
I C = 4.7 mA = I B hFE IB = = = 0.047 mA .
hFE 100
U X U D 1 U BEzas
IB =
RB
uz IB=0.047mA slijedi:
U ul + U D U D1 U BEzas
IB = U ul = I B RB U D + U D1 + U BEzas = 0.935 V
RB
Padom ulaznog napona pada i struja baze, pa je struja kolektora odreena izrazom:
I C = hFE I B
i pada zajedno sa strujom baze. Kako mora vrijediti naponska jednadba izlaznog kruga:
U izl = U CE = U CC I C RC
padom kolektorske struje izlazni napon raste. Ovaj porast izlaznog napona ii e do
iznosa UCC u trenutku kada se tranzistor iskljuuje uz struju baze 0 mA (to smo ve
Osnovni logiki sklopovi. 67
Uizl [V]
5
4
3
2
1
0.3
Uul [V]
0 0.7 1 2 3 4 5
0.935
UD [V]
5
4
3
2
1
0.7
0 Uul [V]
-0.6 1 2 3 3.7 4 5
-1
UX [V]
5
4
3
2
1
0.7
Uul [V]
0 1 2 3 3.7 4 5
I [mA]
5
4.3
4
3
2
1
0.6
Uul [V]
0 1 2 3 3.7 4 5
68 Zbirka rijeenih zadataka
I1 [mA]
5
4.3
4
3
2
1
Uul [V]
0 1 2 3 3.7 4 4.3 5
I2 [mA]
5
4.3
4
3
2
1
0.6
Uul [V]
0 1 2 3 3.7 4 4.3 5
Na odreivanje napona UIHmin utjee vie faktora. Prvi i osnovni faktor jest ispravan rad
sklopa. U ovom zadatku analiziran je diodni NI sklop. Kod tog sklopa uz pretpostavku
da su svi ulazi na visokoj logikoj razini, izlaz mora biti nizak. Pogledamo li prijenosnu
karakteristiku sklopa, odmah vidimo da za taj sluaj ulazni napon ne smije biti manji od
0.935V (jer inae napon izlaza vie nije nizak, tj. 0.3V). Ovime je odreen minimalni
iznos parametra UIHmin. Meutim, bitno je za uoiti da pri naponu od 0.935V kroz bazu
tee upravo dovoljna struja da podri kolektorsku struju koju generira RC.
Prikljuivanjem bilo kakvog optereenja na izlaz sklopa (koje generira dodatnu struju)
struja koju bi tranzistor trebao "progutati" postala bi vea od one koju podrava bazna
struja. To se, naravno, nee dogoditi, ve e izlazni napon porasti (tranzistor ulazi u
NAP) kako bi osigurao da i dalje kroz tranzistor tee onolika struja kolika je podrana
baznom strujom. Vidimo dakle da je faktor grananja uz ovaj odabir UIHmin jednak 0.
Zbog toga se pri odabiru vrijednosti za parametar UIHmin uzimaju u obzir i drugi
parametri poput eljenog faktora grananja i sl. Naime, poveanjem vrijednosti UIHmin
poveava se i struja baze koja e u najgorem sluaju tei kroz tranzistor, i time osigurati
eljeni faktor grananja. Dakako, slino razmatranje vrijedi i za odabir ostalih parametara
sklopa.
Booleova algebra. 69
4. Booleova algebra.
4.1. Zadatak
A.2. Komplement
a) A + A = 1
b) A A = 0
A.3. Komutativnost
a) A + B = B + A
b) A B = B A
A.4. Distributivnost
a) A ( B + C ) = A B + A C
b) A + B C = ( A + B ) ( A + C )
A (A + A B ) = A ((A + A) (A + B )) A.4b
= A ((A + A ) (A + B )) A.3a
= A (1 ( A + B )) A.2a
= A (( A + B ) 1) A.3b
= A (A + B ) A.1b
= (A A ) + ( A B ) A.4a
= 0 + (A B) A.2b
= (A B) + 0 A.3a
= A B A.1a
Za vjebu.
4.2. Zadatak
Koristei samo aksiome A.1. A.4. pokaite da vrijedi A 0 = 0 . Za svaki korak navedite
aksiome koje koristite.
A0 = A0+ 0 A.1
= A0 + A A A.2
= A (0 + A ) A.4
= A A A.1
=0 A.2
4.3. Zadatak
Koristei samo aksiome A.1. A.4. pokaite da vrijedi A A = A . Za svaki korak navedite
aksiome koje koristite.
A A = A A+ 0 A.1
= A A + A A A.2
= A ( A + A) A.4
= A 1 A.2
= A A.1
4.4. Zadatak
f ( A, B, C ) = AB + ABC + AB C
f1 f2 f3 f
A B C A B C AB ABC AB C f1 + f 2 + f 3
0 0 0 1 1 1 0 0 0 0
0 0 1 1 1 0 0 0 0 0
0 1 0 1 0 1 0 0 0 0
0 1 1 1 0 0 0 0 0 0
1 0 0 0 1 1 1 0 0 1
1 0 1 0 1 0 1 0 1 1
1 1 0 0 0 1 0 0 0 0
1 1 1 0 0 0 0 1 0 1
Booleova algebra. 71
4.5. Zadatak
A B C f mintermi
0 0 0 0 m0
0 0 1 0 m1
0 1 0 0 m2
0 1 1 0 m3
1 0 0 1 m4
1 0 1 1 m5
1 1 0 0 m6
1 1 1 1 m7
f = m4 + m5 + m7 = AB C + AB C + ABC .
A B C f makstermi
0 0 0 0 M0
0 0 1 0 M1
0 1 0 0 M2
0 1 1 0 M3
1 0 0 1 M4
1 0 1 1 M5
1 1 0 0 M6
1 1 1 1 M7
72 Zbirka rijeenih zadataka
To su makstermi M 0 , M 1 , M 2 , M 3 i M 6 , te je f = M 0 M 1 M 2 M 3 M 6 . U retku
koji pripada makstermu M 0 vrijednosti varijabli su slijedee: A=0, B=0, C=0. Budui
da maksterm odgovara zbroju varijabli, a u tom retku funkcija mora poprimiti vrijednost
0, slijedi da suma mora biti 0, tj. M 0 = 0 = 0 + 0 + 0 = A + B + C . Slinim razmatranjem
dobije se: M 1 = A + B + C , M 2 = A + B + C , M 3 = A + B + C i M 6 = A + B + C .
f = M 0 M 1 M 2 M 3 M 6 = ( A + B + C) ( A + B + C ) ( A + B + C) ( A + B + C ) ( A + B + C)
4.6. Zadatak
A B C f mintermi makstermi
0 0 0 1 m0 M0
0 0 1 0 m1 M1
0 1 0 0 m2 M2
0 1 1 1 m3 M3
1 0 0 1 m4 M4
1 0 1 0 m5 M5
1 1 0 1 m6 M6
1 1 1 0 m7 M7
a)
f = m0 + m3 + m4 + m6
= A B C + A BC + AB C + ABC
= (0,3,4,6 )
b)
f = M1 M 2 M 5 M 7
= ( A + B + C ) ( A + B + C) ( A + B + C ) ( A + B + C )
= (1,2,5,7 )
Booleova algebra. 73
c)
f = m1 + m 2 + m5 + m7
= A B C + A BC + AB C + ABC
= (1,2,5,7 )
d)
f = M0 M3 M4 M6
= ( A + B + C) ( A + B + C ) ( A + B + C) ( A + B + C)
= (0,3,4,6)
e)
f = mi f = M i , f = mi
iS iS iS
f = M i f = mi , f = M i
iR iR iR
Vezu moemo iskazati i rijeima: ako funkcija sadri mintermi mi, komplement
funkcije sadri odgovarajui maksterm Mi, ili alternativno, sadri sve one minterme
koje sama funkcija ne sadri. Isto tako, ako funkcija sadri maksterm Mi, tada
komplement sadri minterm mi, ili alternativno, sadri sve one maksterme koje sama
funkcija ne sadri.
4.7. Zadatak
Zadana je funkcija f = AC + BD + C D .
a) Prikaite ovu funkciju kao sumu standardnih produkata.
b) Prikaite ovu funkciju kao umnoak standardnih suma.
c) Prikaite funkciju tablino.
d) Oitajte iz tablice g = f u obliku sume standardnih produkata.
e) Oitajte iz tablice g = f u obliku umnoka standardnih suma.
f) Prikaite funkciju uporabom NI operacije.
g) Nacrtajte sklop koji obavlja funkciju f pomou NI sklopova.
a)
f = AC + BD + C D
= A 1 C 1 + 1 B 1 D + 1 1 C D
= A ( B + B ) C ( D + D ) + ( A + A ) B (C + C ) D + ( A + A ) ( B + B ) C D
= ABC D + AB C D + AB C D + ABC D + ABCD + A BCD + A BC D + A B C D
= m13 + m8 + m9 + m12 + m15 + m7 + m5 + m1
= (1,5,7,8,9,12,13,15)
b)
74 Zbirka rijeenih zadataka
[ f ]D = ( A + C )( B + D )(C + D)
= A( B + D)(C + D ) + C ( B + D )(C + D )
= AB (C + D ) + AD (C + D ) + C B(C + D ) + C D (C + D )
= ABC + ABD + ADC + ADD + C BC + C BD + C DC + C DD
= ABC + ABD + ADC + AD + C B + C BD + C D
= C B ( A + 1 + D ) + AD ( B + C + 1) + C D
= C B + AD + C D
[[ f ]D ]D = (C + B)( A + D )(C + D )
= (0 + B + C + 0)( A + 0 + 0 + D )(0 + 0 + C + D )
= ( AA + B + C + DD )( A + BB + CC + D)( AA + BB + C + D)
= ( A + B + C + D )( A + B + C + D )( A + B + C + D )( A + B + C + D )
( A + B + C + D )( A + B + C + D )( A + B + C + D )( A + B + C + D )
= M 2 M 3 M 10 M 11 M 0 M 4 M 6 M 14
= (0,2,3,4,6,10,11,14)
c)
A B C D f g= f
0 0 0 0 0 0 1
1 0 0 0 1 1 0
2 0 0 1 0 0 1
3 0 0 1 1 0 1
4 0 1 0 0 0 1
5 0 1 0 1 1 0
6 0 1 1 0 0 1
7 0 1 1 1 1 0
8 1 0 0 0 1 0
9 1 0 0 1 1 0
10 1 0 1 0 0 1
11 1 0 1 1 0 1
12 1 1 0 0 1 0
13 1 1 0 1 1 0
14 1 1 1 0 0 1
15 1 1 1 1 1 0
d)
g = (0,2,3,4,6,10,11,14 )
= A B C D + A B CD + A B CD + A BC D + A BCD + AB CD + AB CD + ABCD
Booleova algebra. 75
e)
g = (1,5,7,8,9,12,13,15)
= (A + B + C + D )( A + B + C + D )(A + B + C + D )(A + B + C + D )
(A + B + C + D )(A + B + C + D )(A + B + C + D )( A + B + C + D )
f)
f = AC + BD + C D
f = f
= AC + BD + C D
= AC BD C D
= ACC BD CC D
A
&
C 1
B
& 1 f
D
1
&
Vrijedi:
&
1
A = A A
&
&
1
&
A+ B = AB
76 Zbirka rijeenih zadataka
& &
&
A B = A B
A
& & &
C &
B
& & & & f
D
&
& & &
Odnosno:
A
&
C &
B
& & f
D
&
&
Za vjebu.
Prikaite funkciju uporabom NILI operacije. Nacrtajte sklop koji obavlja funkciju f
pomou NILI sklopova.
Booleova algebra. 77
4.8. Zadatak
f ( A, B, C ) = m1 + m 2 + m4 + m7
= A B C + A BC + AB C + ABC
= C (A B + AB ) + C (A B + AB )
= C (A B) + C(A B)
= C (A B) + C A B ( )
= (A B) C
= A B C
4.9. Zadatak
a) [ f1 ]D = ( A + B ) ( A + B + C ) ( A + B + C )
b) [ f 2 ]D = (0 + A + B ) (1 + C )
4.10. Zadatak
[ ]
a) f1 ( A, B, C ) = f1 ( A , B , C ) D = (A + B ) (A + B + C ) (A + B + C )
[ ]
b) f 2 ( A, B, C ) = f 2 ( A , B , C ) D = (0 + A + B ) (1 + C )
78 Zbirka rijeenih zadataka
4.11. Zadatak
Da li su funkcije
f1 = AB + ABC + AB C i
f2 = ( A + B + C) ( A + B + C ) ( A + B + C) ( A + B + C ) ( A + B + C)
logiki jednake?
b) Algebarska metoda
f1 = AB + ABC + AB C
= AB 1 + ABC + AB C
= AB (1 + C ) + ABC
= AB 1 + ABC
= AB + ABC
= A (B + BC )
= A (B + B ) (B + C )
= ( A + B ) (A + B ) (B + C )
= (( A + B ) 1) ((A + B ) 1) ((B + C ) 1)
= (( A + B ) (C + C )) (( A + B ) (C + C )) ((B + C ) (A + A ))
= ( A + B + C ) (A + B + C ) ( A + B + C ) (A + B + C ) (B + C + A) (B + C + A )
= ( A + B + C ) (A + B + C ) ( A + B + C ) (A + B + C ) (A + B + C )
= f2
4.12. Zadatak
Kako imamo na raspolaganju samo jedan vieulazni I sklop, funkciju koju je potrebno
realizirati oito treba prikazati u obliku umnoka parcijalnih suma. Dakle, ako
realiziramo funkciju g = f , funkcija g treba biti zapisana u produktnom obliku. U tu
svrhu komplement emo realizirati kao dualnu funkciju u komplementiranim
varijablama, pa imamo:
g = ( A + C + D ) (A + C + D ) (B + C )
4.13. Zadatak
Sve se logike funkcije mogu prikazati tablicom kombinacija i zatim kao suma minterma ili
produkt maksterma. Pri tome se koriste samo operacije I, ILI i NE pa zakljuujemo da su te tri
operacije dovoljne za prikaz bilo koje druge funkcije. Da li se taj skup funkcija moe smanjiti
na:
a) I, NE
b) ILI, NE
c) NI
d) NILI
B 1
1 f
&
C
&
1
a) ako se uporabom I i NE moe prikazati ILI, onda nam je i taj skup dovoljan. Krenimo
od De Morganovog zakona:
A+ B = AB
A+ B = AB
A + B = A B = NE (I ( NE ( A), NE (B )))
f = AB + ABC + AB C
= AB + ABC + AB C
= AB ABC AB C
= NE (I (NE (I ( A, NE (B ))), NE (I ( A, B, C )), NE (I ( A, NE (B ), C ))))
{I, NE}
1 & 1
1
Obavimo supstituciju:
A
& 1
B 1
& 1 f
& 1
C
& 1
1
Ovime je postupak zavren te je pokazano kako se izvorna funkcija moe izvesti samo
uporabom I i NE logikih sklopova.
b) ako se uporabom ILI i NE moe prikazati I, onda nam je i taj skup dovoljan. Krenimo
od De Morganovog zakona:
A B = A + B
Komplementiranjem dobivamo:
A B = A + B
f = AB + ABC + AB C
= AB + ABC + AB C
= A + B+ A + B +C + A + B+C
= ILI (NE (ILI (NE ( A), B )), NE (ILI (NE ( A), NE (B ), NE (C ))), NE (ILI ( NE ( A), B, NE (C ))
{ILI, NE}
1
& 1 1
1
Supstitucija:
A 1
1 1
B 1 1
1 1 1 1 f
C 1
1 1 1 1
1
82 Zbirka rijeenih zadataka
A 1
1 1
1 1 1 1 f
C 1
1 1
A = A + A = A + A == A A = NI ( A, A)
A B = A B = NE ( NI ( A, B)) = NI ( NI ( A, B), NI ( A, B ))
f = AB + ABC + AB C
= AB + ABC + AB C
= AB ABC AB C
= NI (NI ( A, NI (B, B )), NI ( A, B, C ), NI ( A, NI (B, B ), C ))
Booleova algebra. 83
{NI}
1 &
&
1 &
&
Supstitucija:
A
& & &
B &
& f
& & &
C
A
&
B &
& f
&
C
&
&
84 Zbirka rijeenih zadataka
A = A A = A A == A + A = NILI ( A, A)
f = AB + ABC + AB C
= AB + ABC + AB C
= AB + ABC + AB C
= A + B+ A + B +C + A + B+C
NILI (NILI ( A, A), B ),
NILI NILI (NILI ( A, A), NILI (B, B ), NILI (C , C )), ,
NILI (NILI ( A, A), B, NILI (C , C ))
= NILI
NILI (NILI ( A, A), B ),
NILI NILI (NILI ( A, A), NILI (B, B ), NILI (C , C )),
NILI (NILI ( A, A), B, NILI (C , C ))
{NILI}
1 1
1 1 1
1
& 1
1
Booleova algebra. 85
Supstitucija:
A 1
1
B 1 1
1
1
1
1 1 f
C 1
1
1
1 1
A 1
1
B
1
1
1
1 1 f
C 1
1
1
1
86 Zbirka rijeenih zadataka
4.14. Zadatak
Zadana je funkcija f = ( AB + C ) (B + D ) + E .
a) Prikaite sklop koji realizira ovu funkciju.
b) Koliko razinski je taj sklop? Zato je to bitno?
c) Moe li se ista funkcija realizirati dvorazinskim sklopom? Objasnite i prikaite rjeenje.
a)
A
&
B
1
C
&
1
D
E
1 f
b) Sklop je 4-razinski. Ovaj podatak bitan je kod fizike implementacije funkcija zbog
toga to svaki logiki sklop ima odreeno vrijeme kanjenja. to je vie razina, to e
proi vie vremena prije no to se konaan rezultat pojavi na izlazu sklopa.
&
&
c) Svaka Booleova funkcija moe se u najgorem sluaju prikazati kao suma produkata
ili produkt suma, to se moe direktno realizirati dvorazinskim sklopom.
Booleova algebra. 87
f = ( AB + C ) (B + D ) + E
= AB + ABD + BC + CD + E
= AB (1 + D ) + BC + CD + E
= AB + BC + CD + E
4.15. Zadatak
Konstruirati sklop koji kodira trobitni binarni broj u Gray-ev kod. Pri tome se koristiti
iskljuivo EX-ILI sklopovima. Opisati sklop VHDL-om. Modelirati vrijeme prolaska signala
kroz sklop kanjenjem od 20 ns.
n b2 b1 b0 g2 g1 g0
0 0 0 0 0 0 0
1 0 0 1 0 0 1
2 0 1 0 0 1 1
3 0 1 1 0 1 0
4 1 0 0 1 1 0
5 1 0 1 1 1 1
6 1 1 0 1 0 1
7 1 1 1 1 0 0
b2 g2
b1
=1 g1
=1 g0
b0
Novost u odnosu na dosad vieni VHDL kod predstavlja uporaba tipa std_logic_vector,
naredbe case te varijabli (varijable).
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY sklopBinGray IS
PORT( b: IN std_logic_vector(2 downto 0);
g: OUT std_logic_vector(2 downto 0) );
END sklopBinGray;
END funkcijska2BinGray;
END funkcijskaBinGray;
Booleova algebra. 89
Napomena: dan je VHDL opis sklopa pri emu su ponuene dvije implementacije
arhitekture. Arhitektura funkcijskaBinGray opisuje funkciju sklopa temeljei se na
case naredbi, dok arhitektura funkcijska2BinGray opisuje funkciju sklopa uporabom
osnovnih logikih funkcija. Konani VHDL opis treba sadravati samo jednu od
navedenih arhitektura.
Za vjebu.
Za vjebu.
4.16. Zadatak
Projektirati i napisati VHDL ponaajni opis sklopa koji trobitni broj kodiran Grayevim kodom
pretvara u njegov binarni ekvivalent. Napisati funkcijsku ovisnost izlaza sklopa o ulazima.
g2 g1 g0 b2 b1 b0
0 0 0 0 0 0
0 0 1 0 0 1
0 1 1 0 1 0
0 1 0 0 1 1
1 1 0 1 0 0
1 1 1 1 0 1
1 0 1 1 1 0
1 0 0 1 1 1
Sklop dakle ima tri izlaza. Iz tablice direktno moemo oitati izraze za svaki od izlaza:
b2 = g2
b1 = g2 g1
b0 = g2 g1 g0
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY graybin IS
PORT ( g2, g1, g0 : IN std_logic;
b2, b1, b0 : OUT std_logic);
END graybin;
BEGIN
b2 <= g2;
b1 <= g2 XOR g1;
b0 <= g2 XOR g1 XOR g0;
END Behavioral;
4.17. Zadatak
b) Nacrtati valne oblike napona A, napona f, te napone na izlazima svih ostalih logikih
sklopova u trajanju od 150 ns, ako se u obzir uzmu i kanjenja pojedinih sklopova.
(Napomena: zanemariti sve pojave osim kanjenja).
c) Napisati u VHDL-u ponaajni model upotrijebljenog logikog sklopa, te njegovom
uporabom strukturni model cijelog sklopa.
f = A ( A ( A 1)) = A (A A ) = A 1 = A
t
f
=1
=1
=1
t
B
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY sklopXOR IS
PORT( x1, x2: IN std_logic;
y : OUT std_logic );
END sklopXOR;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY sklop2 IS
PORT( a : IN std_logic;
f : OUT std_logic );
END sklop2;
END strukturna;
4.19. Zadatak
+UCC
Digitalni sklop (slika 2) izveden je bipolarnom UulA
tehnologijom. Napisati Booleovu funkciju UulB Uf
koju ostvaruje sklop:
a) u pozitivnoj logici, +UCC
b) u negativnoj logici.
Kakve su te dvije funkcije meusobno? UulC
A B C f
L L L H
L L H H
L H L H
L H H H
H L L H
H L H H
H H L H
H H H L
94 Zbirka rijeenih zadataka
f = A + B +C
f = ABC
UA
UB
UC
f = A B + C = A + B + C
Funkcija koju sklop ostvaruje u negativnoj logici dualna je funkciji koju sklop ostvaruje
u pozitivnoj logici, i glasi:
f = A+ BC = A B C
UA UB UC Uf
Nisko Nisko Nisko Visoko
Nisko Nisko Visoko Visoko
Nisko Visoko Nisko Visoko
Nisko Visoko Visoko Visoko
Visoko Nisko Nisko Visoko
Visoko Nisko Visoko Visoko
Visoko Visoko Nisko Nisko
Visoko Visoko Visoko Visoko
Booleova algebra. 95
U pozitivnoj logici niskoj naponskoj razini odgovara logika nula, a visokoj logika
jedinica. Primjenimo li to na naponsku tablicu, slijedi:
A B C f
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
f = M6 = A + B + C
U negativnoj logici niskoj naponskoj razini odgovara logika jedinica, a visokoj logika
nula. Primjenimo li to na naponsku tablicu, slijedi:
A B C f
1 1 1 0
1 1 0 0
1 0 1 0
1 0 0 0
0 1 1 0
0 1 0 0
0 0 1 1
0 0 0 0
Funkcija se oito moe zapisati kao jednolana suma minterma (u dobivenoj tablici
minterm m0 nalazi se na dnu!):
f = m1 = A B C ,
4.21. Zadatak
Dvorazinskom logikom projektirajte sklop koji usporeuje dva 4-bitna binarna broja, i kao
rezultat vraa 1 ako su oni jednaki, 0 inae. Komentirajte rjeenje za opi sluaj usporedbe k-
bitnih brojeva.
Budui da se kao rezultat oekuje rjeenje koje ima najvie dvije razine logike (suma
parcijalnih produkata ili produkt parcijalnih suma), rjeavanju zadatka pristupit emo
preko tablice istinitosti. Neka je prvi broj A=a3a2a1a0 a drugi broj B=b3b2b1b0. Tablica
istinitosti funkcije e(a3,a2,a1,a0,b3,b2,b1,b0) tada e imati 28=256 redaka. Meutim, nema
potrebe da ispisujemo cijelu tablicu: kratkim promiljanjem moemo zakljuiti da e
tablica istinitosti biti vrlo rijetko popunjena s 1! Zbog toga moemo napisati djelominu
tablicu istinitosti samo one retke u kojima funkcija poprima vrijednost 1:
A B
a3 a2 a1 a0 b3 b2 b1 b0 e m
0 0 0 0 0 0 0 0 1 m0
0 0 0 1 0 0 0 1 1 m17
0 0 1 0 0 0 1 0 1 m34
0 0 1 1 0 0 1 1 1 m51
0 1 0 0 0 1 0 0 1 m68
0 1 0 1 0 1 0 1 1 m85
0 1 1 0 0 1 1 0 1 m102
0 1 1 1 0 1 1 1 1 m119
1 0 0 0 1 0 0 0 1 m136
1 0 0 1 1 0 0 1 1 m153
1 0 1 0 1 0 1 0 1 m170
1 0 1 1 1 0 1 1 1 m187
1 1 0 0 1 1 0 0 1 m204
1 1 0 1 1 1 0 1 1 m221
1 1 1 0 1 1 1 0 1 m238
1 1 1 1 1 1 1 1 1 m255
inae 0 ostali
(
Funkcija dakle sadri sve minterme oblika n 2 k + n = n 2 k + 1 gdje je n neka )
vrijednost broja a k broj bitova broja. U naem sluaju k=4, pa n moe poprimiti broj iz
intervala [0, 2k-1]=[0,15], i ukupno imamo upravo 2k=16 takvih minterma.
toan rezultat usporedbe. Negativna strana ovakve direktne realizacije jest problem
eksponencijalnog broja potrebnih ulaza, to takvu realizaciju ini neprimjerenom. Npr.
za usporedbu 32 bitnih brojeva trebali bismo za realizaciju minterma I sklopove s 64
ulaza, te jedan ILI sklop s 4294967296 ulaza jer bi funkcija sadravala upravo toliko
minterma.
4.22. Zadatak
Neka se funkcija e, iji su argumenti dva k-bitna broja A i B, realizira kao suma minterma.
Izraunati koliko e ta funkcija sadravati minterma, i kako e izgledati njezina direktna
realizacija, ako je funkcija definirana (i) e = (A>B), (ii) e = (AB).
2 k 1
(2 k
)( ) (
1 2k 1 + 1 2k 2k 1 )
n =
n =0 2
=
2
Npr. funkcija e=(A>B) za 4-bitne brojeve sadravala bi 120 minterma. Njezina direktna
realizacija zahtijevala bi 120 8-ulaznih I sklopova, te jedan 120 ulazni ILI sklop. to je
sa sluajem za k=32?
t = n +1 2k
2 k 1
( ) ( )
2k 2k + 1
n + 1 = n = 0 t = 1
= t =
2
n =0 n = 2 k 1 t = 2 k t =1
Alternativno, broj sluajeva za koje vrijedi (AB) moemo dobiti i kao sumu broja
sluajeva za koje vrijedi (A>B) i (A=B) jer su ti sluajevi meusobno disjunktni. Prvo
smo ve izraunali, a drugo iznosi upravo 2k, pa sumiranjem slijedi:
(
2k 2k 1 )
+ 2k =
2k 2k + 1 ( )
2 2
Npr. funkcija e=(AB) za 4-bitne brojeve sadravala bi 136 minterma. Njezina direktna
realizacija zahtijevala bi 136 8-ulaznih I sklopova, te jedan 136 ulazni ILI sklop. to je
sa sluajem za k=32?
98 Zbirka rijeenih zadataka
4.23. Zadatak
Projektirajte sklop koji usporeuje dva 4-bitna binarna broja, i kao rezultat vraa 1 ako su oni
jednaki, 0 inae. Broj razina logike nije bitan, ali dizajn mora raditi i za viebitne brojeve
(k>4). Komentirajte rjeenje za opi sluaj usporedbe k-bitnih brojeva.
Kako sada imamo potpunu slobodu u dizajnu sklopa, pogledajmo najprije kako bismo
rijeili analogan problem: napisati program koji usporeuje dva k-bitna broja i vraa 1
ako su oni jednaki!
Promotrimo sada jednu iteraciju petlje: usporeuju se i-ti bitovi brojeva, i nova
vrijednost rezultata (Jednaki) definira se kao logiko I vrijednosti rezultata iz prole
iteracije, i trenutne usporedbe i-tih bitova. Za konaan, unaprijed poznat broj
ponavljanja, ovu petlju moemo "raspetljati" po indeksu k. Npr. za k=4 moemo pisati:
No kakve ovo ima veze s dizajnom funkcije? I funkciju moemo dizajnirati iterativno!
Ako unutranjost For petlje gledamo kao crnu kutiju, tada su njeni ulazi Jednaki(i-1),
A(i), B(i) a izlaz Jednaki(i). To moemo modelirati sklopovski:
Booleova algebra. 99
A(i) B(i)
&
bitoviJednaki(i) =1
Jednaki(i-1)
&
Jednaki(i)
Naime, funkcija koja testira dva bita na jednakost upravo je EX-NILI (tj. komplement
od EX-ILI provjerite tablicom istinitosti). Zapravo, dizajn unutranjosti crne kutije
moe se shvatiti i kao poseban zadatak: projektirajte funkciju
Jednaki(i)(A(i),B(i),Jednaki(i-1)) koja poprima vrijednost 1 samo kada su ulazi A(i) i B(i)
jednaki, pri emu jo i ulaz Jednaki(i-1) mora biti 1.
E(Ai, Bi, Ei-1) = Ei-1 AND NOT (Ai XOR Bi) = Ei-1 AND (Ai XNOR Bi)
pri emu smo operator NOT-XOR oznaili standardnom kraticom XNOR (ili hrvatski
EX-NILI), koju emo i dalje koristiti.
Jednom kad smo dizajnirali unutranjost jednog stupnja, vrlo lagano moemo
projektirati k-bitni komparator. Za sluaj k=4 imamo:
=1 =1 =1 =1
1
& & & &
Jednaki
E = E 2 AND ( A3 XNOR B3 )
= (E1 AND ( A2 XNOR B2 )) AND ( A3 XNOR B3 )
= ((E 0 AND ( A1 XNOR B1 )) AND ( A2 XNOR B2 )) AND ( A3 XNOR B3 )
= (((E 1 AND ( A0 XNOR B0 )) AND ( A1 XNOR B1 )) AND ( A2 XNOR B2 ))
AND ( A3 XNOR B3 )
= (((1 AND ( A0 XNOR B0 )) AND ( A1 XNOR B1 )) AND ( A2 XNOR B2 ))
AND ( A3 XNOR B3 )
ZADACI ZA VJEBU
1. Prikazati tablicom kombinacija i logikim izrazom funkciju sklopa iji je ulaz 4-bitni
binarni broj, a izlaz je u logikoj jedinici ako je broj nula u broju a) paran, b) vei od
broja jedinica, c) jednak broju jedinica.
2. Prikazati tablicom kombinacija i logikim izrazom funkciju sklopa iji je ulaz 4-bitni
binarni broj, a izlaz je u logikoj nuli ako u broju: a) postoje tono dvije uzastopne nule,
b) postoje barem dvije uzastopne jedinice, c) ne postoje uzastopne nule niti jedinice.
3. Prikazati tablicom kombinacija i logikim izrazom funkciju sklopa iji je ulaz 3-bitni
binarni broj, a izlaz je u logikoj jedinici ako je vrijednost broja na ulazu a) iz intervala
[3, 6], b) nije iz skupa {1, 3, 7}.
4. Ulaz sklopa su dva dvobitna broja A i B. Izlaz sklopa je u logikoj jedinici ako je broj A
vei od broja B. Prikazati tablicom kombinacija i logikim izrazom funkciju ovog
sklopa.
5. Ulaz sklopa su dva dvobitna broja A i B. Izlaz sklopa je u logikoj jedinici ako je
rezultat zbrajanja ovih brojeva u intervalu [2,5]. Prikazati tablicom kombinacija i
logikim izrazom funkciju ovog sklopa.
6. Prikaite sklop koji samo uporabom NI sklopova realizira funkciju
f ( A, B, C , D) = A + B ( A C + C D ) .
10. Prikaite sklop koji samo uporabom NILI sklopova realizira funkciju
f ( A, B, C , D ) = ( A + B + C ) ( A + B + D) ( A + C + D ) .
20. Projektirajte sklop koji obavlja funkciju e usporedbe dva 4-bitna binarna broja A i B:
e=(A>B). Odabran nain rjeavanja mora biti primjenjiv i na viebitne brojeve (k>4).
21. Projektirajte sklop koji obavlja funkciju e usporedbe dva 4-bitna binarna broja A i B:
e=(AB). Odabran nain rjeavanja mora biti primjenjiv i na viebitne brojeve (k>4).
22. Pismeni ispit 07. 02. 2005.
Zadana je Booleova funkcija f ( , , ) = ( ( )) (( ) ( )) .
Pronaite njezin minimalni oblik.
Minimizacija logikih funkcija. 103
Prikaite funkciju f = (0,2 ) pomou K-tablice, i zatim odredite minimalni oblik funkcije.
Usporedite s analitikom minimizacijom.
AB
A AB
0 1
B 0 1 1 B
1 B
f = A B + AB = ( A + A) B = B
5.2. Zadatak
Prikaite funkciju f = (1,3) pomou K-tablice, i zatim odredite minimalni oblik funkcije.
Usporedite s analitikom minimizacijom.
A A+ B A+B
0 1
B
B 0
1 0 0 B
f = ( A + B )( A + B ) = ( AA + B ) = B
A AB AB
0 1
B
B 0
1 1 1 B
A
f =B
f = f =B
5.3. Zadatak
ACD
AB
00 01 11 10
AD
CD 00 1 1
01 1 1
D
11 1 1
10 C
A
B
f = A C D + AD
Minimizacija logikih funkcija. 105
5.4. Zadatak
AB
00 01 11 10
BD
CD 00 1 1 1
AD
01
D
11
10 1 1 1 C
A
B
f = AD + BD
5.5. Zadatak
AB
00 01 11 10
CD 00 1 1 x BCD
AC
01 1 x
D
11 x 1 x
10 1 x C
AB A
B
f = A C + A B + BCD
106 Zbirka rijeenih zadataka
5.6. Zadatak
AC
AB
00 01 11 10
BC
C 0 0 0
1 0 0 C
A
B
f = A C + BC
f = f = ( A + C )( B + C )
5.7. Zadatak
BC D
AC D
AB
00 01 11 10
CD 00 0 0 0
01 0 0 BD
D
11 0 0
10 C
A
B
f = BD + AC D + B C D
f = f = ( B + D )( A + C + D)( B + C + D)
Minimizacija logikih funkcija. 107
5.8. Zadatak
a) algebarskom metodom
b) uporabom komplementa funkcije
c) uporabom dualne funkcije
d) K-tablicom
e) metodom Quine-McCluskey
a) algebarska metoda
f = A B C + AC + ABC + A B C + AB C
= A B (C + C ) + AC (B + B ) + AC
= A B + AC + AC
= A B + A(C + C )
= AB + A
= (A + A ) (A + B )
= A+ B
b) uporaba komplementa: f = f
f = A B C + AC + ABC + A B C + AB C
= A B C AC ABC A B C AB C
= ( A + B + C ) (A + C ) (A + B + C ) (A + B + C ) (A + B + C )
= ( A + B + C ) (A + B + C ) (A + C + B ) (A + C + B ) ( A + C )
= ( A + B + C C ) ( A + C + BB ) ( A + C )
= ( A + B ) (A + C ) (A + C )
= ( A + B ) ( A + CC )
= (A + B) A
= A A + B A
= AB
f = f
= AB
= A+ B
f D = ( A + B + C ) ( A + C ) (A + B + C ) (A + B + C ) ( A + B + C )
= ( A + B + C ) (A + B + C ) (A + C + B ) (A + C + B ) ( A + C )
= ( A + B + CC ) ( A + C + BB ) ( A + C )
= ( A + B ) (A + C ) ( A + C )
= ( A + B ) ( A + CC )
= (A + B ) A
= AA + AB
= AB
f = [AB ]D
= A+ B
d) Ukoliko je funkcija zadana kao suma minterma, funkcija se moe direktno upisati u
K-tablicu. Ako to nije ispunjeno, funkciju moemo svesti na sumu minterma:
f = A B C + AC + ABC + A B C + AB C
= A B C + A( B + B )C + ABC + A B C + AB C
= A B C + ABC + AB C + ABC + A B C + AB C
= (0,7,5,6,1,4)
= (0,1,4,5,6,7 )
Drugi nain ako je funkcija zapisana kao suma produkata koji nisu nuno mintermi jer
analiza lan po lan. Jedini lan zadane funkcije koji nije minterm jest AC.
Zakljuujemo da je funkcija jednaka 1 kada su A i C jednaki 1, neovisno o ostalim
varijablama (u ovom sluaju o varijabli B). Pogledom u tablicu pronalazimo polja za
koja su A i C jednaka 1 i u njih upisujemo jedinice. Ostali lanovi su mintermi, pa njih
moemo upisati direktno.
B
AB A
00 01 11 10
C 0 1 1 1
1 1 1 1 C
Jo nismo gotovi jer je ostalo jo nezaokruenih jedinica. Npr. polje ABC = 000. Polje
juno takoer sadri jedinicu pa ih moemo prekriti pravokutnikom dimenzija 21.
Meutim, treba uoiti da ovo podruje ima susjede na istoku prekrivene jedinicama. To
su polja ABC=100 i 101, pa sve zajedno moemo obuhvatiti pravokutnikom dimenzija
22, kao na sljedeoj slici:
B
AB A
00 01 11 10
C 0 1 1 1
1 1 1 1 C
B A
f = f1 + f 2 = A + B
e) Quine-McCluskey metoda
f = A B C + AC + ABC + A B C + AB C
= (0,1,4,5,6,7 )
Grupirajmo ove minterme prema broju jedinica (odgovara broju varijabli bez
komplementa u mintermu) i zapiimo to tablino:
Minterm
000 (0)
001 (1)
100 (4)
101 (5)
110 (6)
111 (7)
Minterm
000 * (0) 00x (0,1)
001 * (1)
100 (4)
101 (5)
110 (6)
111 (7)
Prvi minterm prve grupe moemo jo kombinirati i s drugim mintermom druge grupe
(000 i 100 daju x00), pa i to zabiljeimo i oznaimo 100. Zatim ponovimo postupak
usporeujui svaki minterm iz druge grupe sa svakim mintermom iz tree grupe, itd.
Dobije se:
Minterm
000 * (0) 00x (0,1)
x00 (0,4)
001 * (1) x01 (1,5)
100 * (4) 10x (4,5)
1x0 (4,6)
101 * (5) 1x1 (5,7)
110 * (6) 11x (6,7)
111 * (7)
Minterm
000 * (0) 00x * (0,1) x0x (0,1,4,5)
x00 * (0,4)
001 * (1) x01 * (1,5) 1xx (4,5,6,7)
100 * (4) 10x * (4,5)
1x0 * (4,6)
101 * (5) 1x1 * (5,7)
110 * (6) 11x * (6,7)
111 * (7)
Iz ovih lanova kreiramo novu tablicu: stupci odgovaraju mintermima kojima je zadana
funkcija, a retci dobivenim lanovima iz prethodnog koraka. U tablici se ujedno oznai
koje minterme sadri (odnosno pokriva) koji lan.
0 1 4 5 6 7
B (0,1,4,5)
A (4,5,6,7)
Slijedei korak je pronalaenje onih lanova koji jedini pokrivaju neki minterm. Npr.
vidimo da B jedini pokriva minterm 0. To znai da je on primarni lan, i moramo ga
uzeti. No, ako smo uzeli njega, onda smo automatski pokrili i minterme 1, 4 i 5.
Oznaimo to:
0 1 4 5 6 7
B (0,1,4,5)
A (4,5,6,7)
Desno smo oznaili da smo uzeli B , a na dnu tablice smo oznaili koje smo sve
minterme pokrili. Ostali su nepokriveni mintermi 6 i 7, a njih sadri lan A. Kako je on
jedini koji ih sadri, on je takoer primaran lan. Uzmimo i njega, pa oznaimo to je
sve pokrio:
0 1 4 5 6 7
B (0,1,4,5)
A (4,5,6,7)
112 Zbirka rijeenih zadataka
f = A+ B
5.9. Zadatak
Minterm
0000 * (0) 000x * (0,1) 00xx (0,1,2,3)
00x0 * (0,2) 0xx0 (0,2,4,6)
0x00 * (0,4)
0001 * (1) 00x1 * (1,3) 0x1x (2,3,6,7)
0010 * (2) 001x * (2,3)
0100 * (4) 0x10 * (2,6)
01x0 * (4,6)
x100 (4,12)
0011 * (3) 0x11 * (3,7)
0110 * (6) 011x * (6,7)
1100 * (12) 110x (12,13)
0111 * (7) x111 (7,15)
1101 * (13) 11x1 (13,15)
1111 * (15)
Drugi dio postupka pronalazi primarne lanove (one koji jedini prekrivaju neki od
minterma), te zatim od preostalih lanova pronalazi najmanji broj onih koji pokrivaju
sve ostale minterme. Tablica preostalih lanova:
0 1 2 3 4 6 7 12 13 15
BC D (4,12) P0
ABC (12,13) P1
BCD (7,15) P2
ABD (13,15) P3
AB (0,1,2,3) P4
AD (0,2,4,6) P5
AC (2,3,6,7) P6
Svim lanovima dajemo imena Pi, i=0, ..., 6. Definiramo funkciju pokrivenosti
minterma p, koja se izvodi iz zahtjeva da svi mintermi koji nisu pokriveni primarnim
lanovima budu pokriveni.
Dakle, dvije su mogunosti. Moemo ukljuiti jo lanove P0, P3 i P6, ili lanove P1, P2 i
P5. Ovisno o tome, dobiju se slijedee funkcije:
f = A B + BC D + ABD + A C
ili
f = A B + ABC + BCD + A D
Napomena: kod funkcije p traimo produkt koji sadri minimalni broj lanova. To je
opet minimizacijski problem jer e produkt sa minimalnim brojem lanova sigurno biti
dio minimalnog zapisa funkcije. Zbog toga prethodno opisani pristup gdje se sve
izmnoi ne mora uvijek odgovarati minimalnom skupu, ve se ovaj podproblem moe
ponovno napasti nekim od minimizacijskih postupaka (ak i Quinne-McCluskey
metodom).
Za vjebu.
5.10. Zadatak
Minterm
0100 * (4) 010x (4,5) 10xx (8,9,10,11)
1000 * (8) x100 (4,12)
100x * (8,9)
10x0 * (8,10)
1x00 (8,12)
0101 * (5) 01x1 (5,7)
1001 * (9) 10x1 * (9,11)
1010 * (10) 101x * (10,11)
1100 * (12)
0111 * (7) x111 (7,15)
1011 * (11) 1x11 (11,15)
1111 * (15)
Ostali su sljedei nekombinirani lanovi: 010x, x100, 1x00, 01x1, x111, 1x11 i 10xx,
to odgovara redom: A BC , BC D , AC D , A BD , BCD , ACD i AB . Napravimo
tablicu pokrivenosti minterma:
4 5 7 8 9 10 11 12 15
A BC (4,5)
BC D (4,12)
AC D (8,12)
A BD (5,7)
BCD (7,15)
ACD (11,15)
AB (8,9,10,11)
4 5 7 8 9 10 11 12 15
A BC (4,5) P0
BC D (4,12) P1
AC D (8,12) P2
A BD (5,7) P3
BCD (7,15) P4
ACD (11,15) P5
AB (8,9,10,11) P6
Svi ostali nepokriveni mintermi pokriveni su s vie od jednog preostalog lana, pa se
postavlja pitanje koje jo lanove odabrati, tako da se pokriju svi mintermi, a zadri
minimalnost funkcije? Rjeenje nudi Pyne-McCluskeyev pristup: iskaz "potrebno je
pokriti preostale lanove" treba zapisati kao Booleovu funkciju, i pronai onaj produktni
Minimizacija logikih funkcija. 115
lan te funkcije koji sadri minimalni broj varijabli. U prethodnoj tablici svi su lanovi
imenovani (P0 = A BC , P1=...). Da bismo pokrili minterm 4, trebamo uzeti P0 ili P1, i da
bismo pokrili minterm 5, trebamo uzeti P0 ili P3, i da bismo pokrili minterm 7, trebamo
uzeti P3 ili P4, i da bismo pokrili minterm 12, trebamo uzeti P1 ili P2, i da bismo pokrili
minterm 15, trebamo uzeti P4 ili P5. Ovo moemo zapisati u obliku funkcije (obratiti
panju na podebljane 'i' i 'ili' u prethodnoj reenici):
Minimalni broj varijabli u produktima iznosi 3, i to u dva sluaja. Dakle, moemo uzeti
jo sljedee lanove:
f = AB + A BC + BC D + BCD
f = AB + A BC + AC D + BCD
f = AB + BC D + A BD + BCD
f = AB + BC D + A BD + ACD
5.11. Zadatak
f = m(0,4,10,17,21,26,27,31) + d (1,5,7,8,11,16,19,20,23,24,25) .
Osim to imamo zadan popis minterma (za koje funkcija poprima 1), imamo zadan i
popis kombinacija za koje nam je vrijednost funkcije nebitna (npr. jer se takav ulaz
nikada nee niti dogoditi), to je oznaeno sumom d-lanova. Budui da nam na tim
mjestima vrijednost funkcije nije bitna, na nekim mjestima emo smatrati da funkcija
poprima 1, a na nekima 0, kako bismo dobili to minimalniji oblik. Minimizacija se
provodi na standardni nain, s time da zaokruenja smijemo iriti i na podruja
prekrivena x-evima (smatrajui da tamo pie 1). No, kao i uvijek, postupak je potrebno
provoditi tako dugo dok se ne pokriju sve jedinice. Ako neki od x-eva ostane
nepokriven, smatrati emo da je vrijednost funkcije na tom mjestu ba nula, pa to
neemo niti trebati pokrivati.
116 Zbirka rijeenih zadataka
BD
ABC
000 001 011 010 100 101 111 110
DE 00 1 1 X X X X
ADE
01 X X 1 1 X
E E
11 X X X X 1 1
10 1 D
1 D
B B
C C
BC D
Npr. x-eve na 10000 i 10100 promatrali smo kao jedinice, kako bismo dobili to vee
zaokruenje kod jedinica 10001 i 10101, dok smo x-eve na 01000 i 00111 zanemarili.
5.12. Zadatak
f = (0,2,3,6,7,8,10,11) .
BD
AB
00 01 11 10 AC
CD 00 0 0 BC
01
D
11 0 0 0
10 0 0 0 C
A
B
f = AC + BD + BC
pa je:
f = f = ( A + C )( B + D)( B + C )
Komentar: Zato su polja 0000, 1000, 0010 i 1010 susjedna? Sigurno znamo da su polja
0000 i njegovo zapadno polje 1000 susjedni. Meutim, ta dva polja imaju na sjeveru
polja 0010 i 1010 sa kojima su susjedna, pa se ta etiri polja mogu obuhvatiti
pravokutnikom dimenzija 22.
5.13. Zadatak
f = m(5,9,12,15) + d (2,7,8,10,13) .
BD
AB AC
00 01 11 10
CD 00 1 X
01 1 X 1
D
11 X 1
10 X X C
A
B
f = AC + BD
5.14. Zadatak
BD
AB
00 01 11 10
CD 00 1 1 1
01 1 1 AD
ACD 11 1 1 1
10 1 1
BCD
f = B D + BCD + AD + A C D
AB
00 01 11 10
CD 00 0
01 0 0 ABD
11 0
ABD
10 0 0
ACD BCD
f = ABD + A B D + A C D + BCD
f = (A + B + D )(A + B + D )(A + C + D )(B + C + D )
5.15. Zadatak
B + D =1 B + D 1 B D 0 B D =1
Ovaj je umnoak jednak 1 kada su oba njegova elementa istovremeno jednaka 1, dakle
B = 1 D = 1 , odnosno B = 0 D = 0 (neovisno o A i C), to daje minterme oblika
ABCD = 00, dakle minterme m0, m2, m8, m10. Kako se ti mintermi nikada nee
pojaviti, u svrhu minimizacije moemo ih tretirati kao don't care. Tada je postupak
minimizacije prikazan u nastavku.
AB AB
AB
00 01 11 10
CD 00 X 1 X
01 1 1
11 1 1
10 X 1 X
f = AB + A B
5.16. Zadatak
Zadana je funkcija
f ( A, B, C , D, E ) = m(0,4,10,17,21,26,27,31) + d (1,5,7,8,11,16,19,20,23,24,25)
Minimizirati funkciju uporabom Quine-McCluskey metode.
Postupak zapoinje tako da se generira poetna tablica koja sadri sve navedene
minterme (bitne i zanemarive) naravno, oznaene D: zastavicom. Nakon to se
provede prvi korak do kraja, u drugom se koraku generira klasina tablica koja u
stupcima sadri samo one minterme koji nisu bili zanemarivi, a u retcima samo one
produkte koji nisu bili oznaeni, i dodatno, koji nemaju zastavicu D: postavljenu na 1.
Evo rjeenja:
00000 * D:0 (0) 00X00 * D:0 (0, 4) X0X00 * D:0 (0, 4, 16, 20) X0X0X D:0
0000X * D:0 (0, 1) 00X0X * D:0 (0, 1, 4, 5) (0,1,4,5,16,17,20,
0X000 * D:0 (0, 8) X000X * D:0 (0, 1, 16, 17) 21)
X0000 * D:0 (0, 16) XX000 D:0 (0, 8, 16, 24)
00100 * D:0 (4) 0010X * D:0 (4, 5) X010X * D:0 (4, 5, 20, 21)
00001 * D:1 (1) X0100 * D:0 (4, 20) X0X01 * D:0 (1, 5, 17, 21)
01000 * D:1 (8) X0001 * D:0 (1, 17) X10X0 D:0 (8, 10, 24, 26)
10000 * D:1 (16) 00X01 * D:1 (1, 5) 10X0X * D:0 (16, 17, 20, 21)
010X0 * D:0 (8, 10) 1X00X D:0 (16, 17, 24, 25)
X1000 * D:1 (8, 24)
1000X * D:0 (16, 17)
10X00 * D:1 (16, 20)
1X000 * D:1 (16, 24)
01010 * D:0 (10) X1010 * D:0 (10, 26) X101X D:0 (10, 11, 26, 27)
10001 * D:0 (17) 0101X * D:0 (10, 11) 10XX1 D:0 (17, 19, 21, 23)
00101 * D:1 (5) 10X01 * D:0 (17, 21) 1X0X1 D:0 (17, 19, 25, 27)
10100 * D:1 (20) 100X1 * D:0 (17, 19) X01X1 D:0 (5, 7, 21, 23)
11000 * D:1 (24) 1X001 * D:0 (17, 25) 110XX D:0 (24, 25, 26, 27)
X0101 * D:0 (5, 21)
001X1 * D:1 (5, 7)
1010X * D:0 (20, 21)
110X0 * D:0 (24, 26)
1100X * D:1 (24, 25)
10101 * D:0 (21) 101X1 * D:0 (21, 23) 1XX11 D:0 (19, 23, 27, 31)
11010 * D:0 (26) 1101X * D:0 (26, 27)
00111 * D:1 (7) X0111 * D:1 (7, 23)
01011 * D:1 (11) X1011 * D:0 (11, 27)
10011 * D:1 (19) 1X011 * D:0 (19, 27)
11001 * D:1 (25) 10X11 * D:1 (19, 23)
110X1 * D:0 (25, 27)
Pogledajmo kako smo primjenjivali pojedina pravila. U prvoj koloni tablice nalaze se
samo mintermi (dakle, produkti s maksimalnim brojem varijabli) grupirani po broju
jedinica. Prvi minterm u prvoj grupi ima D: 0; to je zato to je taj minterm naveden u
popisu bitnih minterma (dakle, nije dontcare). Drugi minterm u drugoj grupi (00001)
ima D: 1 jer je to minterm 1 koji je naveden u listi dontcare funkcije f.
0 4 10 17 21 26 27 31
c'd'e' (0, 8, 16, 24) P0
bc'e' (8, 10, 24, 26) P1
ac'd' (16, 17, 24, 25) P2
bc'd (10, 11, 26, 27) P3
ab'e (17, 19, 21, 23) P4
ac'e (17, 19, 25, 27) P5
b'ce (5, 7, 21, 23) P6
abc' (24, 25, 26, 27) P7
ade (19, 23, 27, 31) P8
b'd' (0, 1, 4, 5, 16, 17, 20, 21) P9
Zahtjev:
p = (P1 + P3)(P1 + P3 + P 7 )
Rjeenje jednadbe:
p = P1 + P1 P3 + P1 P 7 + P3 + P3 P 7
5.17. Zadatak
Zadane su funkcije
f 1 = (0,1,2,4,5,11,15) , f 2 = (0,2,4,13,15) , f 3 = (0,1,3,4,5,7,13,15) .
Pronai minimalni oblik ovih funkcija takav da je ukupni broj produkata u svim funkcijama
minimalan.
Konano, u treoj fazi trae se minimalni oblici svake funkcije zasebno. Pri tome se jo
jednom moe konstruirati tablica (iz koje su izbrisani oni produkti koji su ispali u
drugoj fazi), ili se moe koristiti postojea tablica (uz krianje izbaenih produkata).
Specifinost ove faze jest da minimizacija provodi samo uz produkte koji nisu izbaeni
u drugoj fazi. I opet su mogue dvije situacije: ili e se sada svi mintermi za svaku
funkciju moi pokriti runo, ili se opet moe primjeniti Pyne-McCluskey.
Analizom tablice moe se vidjeti da npr. minterm 15 nije oznaen kao kombiniran
(nema zvjezdice), iako je taj minterm bio kombiniran ak dva puta. Zato onda nije
Minimizacija logikih funkcija. 123
f1 f2 f3
0 1 2 4 5 11 15 0 2 4 13 15 0 1 3 4 5 7 13 15
abcd P0
a'b'd' P1
a'c'd' P2
acd P3
abd P4
a'c' P5
a'd P6
bd P7
124 Zbirka rijeenih zadataka
Da se je u ovom koraku dogodila situacija u kojoj svi mintermi nisu pokriveni, postupak
bismo nastavili Pyne-McCluskey metodom. Cilj bi bio pronai jo minimalni broj
produkata koje treba uzeti, tako da se pokriju sve funkcije. Produkti koji bi nakon tog
koraka ostali neiskoriteni, takoer bi se zanemarili u sljedeoj fazi.
U naem primjeru, pronaeni bitni primarni implikanti P1-P6 pokrivaju sve minterme i
dovoljni su za realizaciju svih funkcija (produkti P0 i P7 automatski se ne smiju koristiti
elimo li zaista minimalni zapis funkcija).
f1
0 1 2 4 5 11 15
a'b'd' P1
a'c'd' P2
acd P3
abd P4
a'c' P5
a'd P6
f2
0 2 4 13 15
a'b'd' P1
a'c'd' P2
acd P3
abd P4
a'c' P5
a'd P6
f3
0 1 3 4 5 7 13 15
a'b'd' P1
a'c'd' P2
acd P3
abd P4
a'c' P5
a'd P6
p = ( P 2 + P5)( P 2 + P5) = P 2 + P5 + P 2 P5
5.18. Zadatak
Na ovom primjeru pokazat emo jednu od estih pogreaka koje se dogaaju prilikom
minimizacije. Krenimo u minimizaciju tako da pronaemo najvee mogue zaokruenje
minterme 5, 7, 13 i 15, kao to je prikazano na slici.
BD
AB
00 01 11 10
CD 00 1
01 1 1 1
D
11 1 1 1
10 1 C
A
B
126 Zbirka rijeenih zadataka
BD A BC
AB AC D
00 01 11 10
CD 00 1
01 1 1 1
D
11 1 1 1
10 1 C
A ABC
A CD B
f = BD + ABC + A CD + A BC + AC D
No analizirajmo sada malo bolje prvo zaokruenje koje smo napravili. Osnovna ideja
minimizacije jest pokriti sve minterme, ali tako da se u svakom zaokruenju nalazi
barem jedan minterm kojeg ne pokriva niti jedno drugo zaokruenje to je uvjet
minimalnosti. No kao to vidimo, minterm 5 spojen je i s mintermom 4, minterm 7 i s
mintermom 3, minterm 13 i s mintermom 9 a minterm 15 i s mintermom 14. Dakle,
svaki od ta etiri minterma dodatno je pokriven nekim drugim zaokruenjem, te je stoga
redundantan. To veliko zaokruenje treba izbaciti iz dobivenog izraza, kako bismo
dobili minimalni oblik.
A BC
AB AC D
00 01 11 10
CD 00 1
01 1 1 1
D
11 1 1 1
10 1 C
A ABC
A CD B
f = ABC + A CD + A BC + AC D
Pokuajmo sada razmiljati na drugi nain. Izbacili smo najvee zaokruenje, a ostavili
manja (dakle, koja ovise o vie varijabli). Moemo li nekako ipak to najvee
zaokruenje ostaviti, a manja proglasiti redundantima? Npr. pokuajmo sa
zaokruenjem koje obuhvaa minterme 3 i 7. Kada bi veliko zaokruenje ostalo, ono bi
pokrivalo minterm 7. No minterm 3 nitko drugi ne pokriva! A budui da prilikom
minimizacije uvijek traimo najvea mogua zaokruenja, minterm 3 nuno emo
pokriti zaokruenjem koje se protee preko minterma 7. Dakle, zaokruenje 3 i 7 nuno
ostaje. Slinu analizu moemo provesti i za ostala dvolana zaokruenja. Svako od njih
pokriva jedan minterm koji nitko drugi ne pokriva. Konaan rezultat analize slae se,
dakle, s prethodnim rjeenjem potrebno je odbaciti veliko zaokruenje.
Ovakve pogreke vrlo su este u rjeavanju zadatka minimizacije. Zbog toga je nakon
postupka minimizacije uvijek potrebno provjeriti uvjet minimalnosti:
Uvjet minimalnosti svako zaokruenje koje ulazi u minimalni oblik funkcije mora
imati barem jedan minterm (ili maksterm) koji je pokriven iskljuivo njime.
5.19. Zadatak
BD
AD
AB
AB
00 01 11 10
CD 00 1 1
01 1 1
11 1 1
10 1 1
128 Zbirka rijeenih zadataka
Rjeenje je, dakako, krivo! Paljivom analizom moe se uoiti da je prvo zaokruenje
( AB ) redundantno (moete li objasniti zato?). Ispravno rjeenje tada je:
BD
AD
AB
00 01 11 10
CD 00 1 1
01 1 1
11 1 1
10 1 1
f = B D + A D
5.20. Zadatak
Zadana je funkcije f koja za ulazni trobitni binarno kodirano broj odreuje da li je broj djeljiv
sa 4.
a) pronai minimalni oblik funkcije f,
b) pronai minimalni oblik funkcije f, ako je poznato da e sklop koji obavlja ovu funkciju
ulaz dobivati sa sklopa koji obavlja kvadriranje.
n b2 b1 b0 f
0 0 0 0 1
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 0
7 1 1 1 0
Minimizacija logikih funkcija. 129
b1 b0
b1b0
00 01 11 10
b2 0 1
1 1 b2
b1
b0
f = b1 b0
b) ako je ulaz sklopa koji ostvaruje funkciju f spojen na izlaz sklopa koji obavlja
kvadriranje, tada se na njegovom izlazu mogu pojaviti samo brojevi 0, 1 i 4 jer su to
jedini kvadrati cijelih brojeva koji se mogu u binarnom zapisu zapisati pomou tri bita.
No to znai da nam je rezultat funkcije f bitan samo u ta tri sluaja, a ostalo nas nije
briga. Zbog toga tablini prikaz funkcije korigiramo kao to je prikazano u nastavku.
n b2 b1 b0 f
0 0 0 0 1
1 0 0 1 0
2 0 1 0
3 0 1 1
4 1 0 0 1
5 1 0 1
6 1 1 0
7 1 1 1
b0
b1b0
00 01 11 10
b2 0 1
1 1 b2
b1
b0
f = b0
130 Zbirka rijeenih zadataka
Zadana je dvoizlazna funkcija f=[f1, f2] pri emu su izlazi definirani sljedeim izrazima:
f1 ( A, B, C , D ) = m(0,1,2,6,8,10 ) i f 2 ( A, B, C , D ) = M (0,1,2,3,4,5,9,11,12,13,14,15) .
Pronai njezin minimalni oblik koristei Quine-McCluskey metodu minimizacije za
vieizlazne funkcije.
f 2 = m(6,7,8,10) .
0000 * F:10 (0) 000X F:10 (0, 1) X0X0 F:10 (0, 2, 8, 10)
00X0 * F:10 (0, 2)
X000 * F:10 (0, 8)
0001 * F:10 (1) 0X10 F:10 (2, 6)
0010 * F:10 (2) X010 * F:10 (2, 10)
1000 * F:11 (8) 10X0 F:11 (8, 10)
0110 F:11 (6) 011X F:01 (6, 7)
1010 * F:11 (10)
0111 * F:01 (7)
f1 f2
0 1 2 6 8 10 6 7 8 10
a'bcd' P0
a'b'c' P1
a'cd' P2
ab'd' P3
a'bc P4
b'd' P5
f1 f2
0 1 2 6 8 10 6 7 8 10
a'b'c' P1
a'cd' P2
ab'd' P3
a'bc P4
Minimizacija logikih funkcija. 131
Sada treba na temelju dobivene tablice minimizirati svaku funkciju posebno. Imamo:
f1
0 1 2 6 8 10
a'b'c' P1
a'cd' P2
ab'd' P3
a'bc P4
f 1 = A B C + A CD + AB D
f2
6 7 8 10
a'b'c' P1
a'cd' P2
ab'd' P3
a'bc P4
f 2 = AB D + A BC
U sluaju da imamo tablini prikaz funkcija, zadatak moemo rjeavati na dva naina.
Prvi nain podrazumijeva oitavanje algebarskog oblika svake od funkcija f i g,
obavljanje zadane operacije nad njima kako je to definirano izrazom funkcije z, i zatim
zapis funkcije z natrag u tablini oblik kako bismo mogli obaviti minimizaciju.
Drugi nain (koji emo i koristiti u nastavku) prestavlja direktan rad s tablinim
oblikom funkcija (ime se izbjegava pretvorba u algebarski oblik i vraanje natrag).
Naime, vrijedi sljedee. Ako tablini zapis funkcije promatramo kao matricu, tada e
(uz zadan izraz za z) vrijediti:
Dakle, definiranu operaciju treba jednostavno primijeniti za svaki par elemenata tablice.
Dobije se sljedei prikaz funkcije z:
132 Zbirka rijeenih zadataka
z: AB
CD
0 0 1 0
1 1 0 1
0 1 0 0
1 1 1 0
B ( D + A) ( B + A D ) = 0
slijedi:
(B + A D ) (B + A D ) = 0 A D (B + B ) = 0 A D = 0
Odavde moemo oitati koje se kombinacije ulaznih varijabli nikada nee pojaviti kod
funkcije, te ih moemo proglasiti don't care vrijednostima. Ako to jo nije oito,
moemo si pomoi i dalje. Naime, ako e prethodni izraz uvijek vrijediti, tada njegov
komplement nikada nee vrijediti:
A D = 0 A D 0 A+ D 1 A+ D = 0
Dakle, nikad nee biti A+D jednako 0, to znai da su oni mintermi kod koji su A i D
istovremeno jednaki 0 (jer je tada i A ILI D jednako 0) zapravo don't care mintermi. To
su redom m0, m2, m4 i m6. Oznaimo te minterme u tablici, i krenimo na minimizaciju.
AB
z: AB
00 01 11 10 BCD
CD 00 1
01 1 1 1
D
11 1
10 1 C
A BD
B
z = A B + BD + B C D
Minimizacija logikih funkcija. 133
5.23. Zadatak
f ( A, B, C ) = A B C + AB C + ABC + ABC
i1
A &
1
B
i2
1 &
C
1 f
1
&
i3
&
i4
Za analizu rada posluit emo se Xilinx WebISE alatom. Svaki od osnovnih sklopova
opisan je kao komponenta u VHDL-u kod koje izlaz kasni za ulazom 10 ns, a opis
cijelog sklopa prikazan je u nastavku.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity sklop1 is
Port ( a : in std_logic;
b : in std_logic;
c : in std_logic;
f : out std_logic);
end sklop1;
component sklopOR4 is
Port ( a, b, c, d : in std_logic;
z : out std_logic);
end component;
component sklopAND3 is
Port ( a, b, c : in std_logic;
z : out std_logic);
end component;
signal ac, bc, cc, i1, i2, i3, i4: std_logic;
begin
end Behavioral;
Kako se sklop ponaa, najbolje se vidi iz simulacije. Pri tome nisu simulirani svi
mogui ulazi, ve samo neki. Rezultat je prikazan na slici.
Iz ove analize vidimo da je vrijeme trajanja pogrenog izlaza jednako 10 ns, a pogreka
se je pojavila zbog toga to je jedinica na izlazu i3 nestala prije no to se je pojavila
Minimizacija logikih funkcija. 135
jedinica na izlazu i4, pa je konani rezultat pojava hazarda. Hazard ovog tipa, gdje je
izlaz stalno u '1' (osim kada kratkotrajno prijee u '0') naziva se statiki '1' hazard. No
zato je izlaz i4 kasnio? Analizirajmo to se dogaa s njegovim ulazima. Prva dva ulaza
spojena su na signale A i B. U trenutku t = 400 ns oni se ne mijenjaju. Na trei se ulaz
dovodi signal C . No on postaje '1' tek u trenutku t = 410 ns, a ne odmah kada C padne
na '0'! Zbog toga sklop i4 na svojim ulazima dobije sve '1' tek u trenutku t = 410 ns te se
njegov odziv '1' dobije 10 ns kasnije, dakle u trenutku t = 420 ns. Oito je glavni krivac
za cijeli dogaaj invertor! Naime, u trenutku t = 400 ns kad je C pao na '0' invertor koji
generira signal C ovu promjenu zakasni 10 ns, tako da na ulaz sklopa i4 signali A i B
dou odmah (u t = 400 ns), a ispravan signal C stigne tek u t = 410 ns. Razlog pojave
hazarda dakle je u razliitom vremenu potrebnom da svi signali prou kroz sklop do
izlaza (signali A, B i C to uine nakon dva sklopa, a njihovi komplementi tek nakon tri
sklopa).
Koji se zakljuak moe izvesti iz ove analize? Ako je sklop realiziran kao u zadatku (na
izlazu ILI koji dobiva izlaze I sklopova), hazard e se javiti prilikom one promjene
ulaza kod koje jedan od ulaznih signala iz '1' prelazi u '0'. Kako se ovdje svaki minterm
realizira jednim I sklopom, broj hazardnih prijelaza je relativno velik, to potvruju i
rezultati simulacije. Neki od prijelaza kod kojih se javlja hazard prikazani su u tablici,
kao i strelicama u K-tablici.
f: BC
00 01 11 10
A 0 1
1 1 1 1
f = B C + AB
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity sklop2 is
Port ( a, b, c : in std_logic;
f : out std_logic);
end sklop2;
component sklopNOT is
Port ( a : in std_logic;
z : out std_logic);
end component;
component sklopOR2 is
Port ( a, b : in std_logic;
z : out std_logic);
end component;
component sklopAND2 is
Port ( a, b : in std_logic;
z : out std_logic);
end component;
signal bc, i1, i2: std_logic;
begin
end Behavioral;
Simulacijom ponaanja sklopa na istu pobudu kao u prvom sluaju dobivamo sljedei
rezultat:
Broj hazardnih impulsa manji je nego u prvom sluaju! Hazardi koji su ostali prikazani
su u tablici:
f: BC
00 01 11 10
A 0 1
1 1 1 1
f: BC
00 01 11 10
A 0 1
1 1 1 1
Na ovaj su nain preostali jo samo hazardi koji nastaju kada ulazi prelazi iz jednog
produkta u susjedno polje koje pokriva neki drugi produkt. Takvi se hazardi mogu
ukloniti uvoenjem redundancije; naime, trebamo uvesti novi produkt koji e sadravati
susjedne minterme izmeu kojih nastaje hazard. U zadatku to konkretno znai da treba
uvesti redundantni produkt AC :
f: BC
00 01 11 10
A 0 1
1 1 1 1
138 Zbirka rijeenih zadataka
Time funkcija poprima oblik f = B C + AB + AC i vie oito nije minimalna. No, ako
vrijedi prethodno uveden uvjet, tada ovako realizirana funkcija vie nema statikog '1'
hazarda. VHDL model sklopa koji realizira funkciju prikazan je u nastavku:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity sklop3 is
Port ( a, b, c : in std_logic;
f : out std_logic);
end sklop3;
component sklopNOT is
Port ( a : in std_logic;
z : out std_logic);
end component;
component sklopOR3 is
Port ( a, b, c : in std_logic;
z : out std_logic);
end component;
component sklopAND2 is
Port ( a, b : in std_logic;
z : out std_logic);
end component;
signal bc, i1, i2, i3: std_logic;
begin
end Behavioral;
Rezultat simulacije uz istu pobudu kao i u prethodnom primjeru prikazan je u nastavku.
Kao to se vidi iz simulacije, jedini preostali hazardi javljaju se pri promjenama ulaza
kod kojih se mijenja vie od jedne varijable istovremeno (ime uvjet (i) nije
zadovoljen). Za sve promjene ulaza koje zadovoljavaju uvjet (i) hazard se ne pojavljuje.
U ovom zadatku provedena je analiza rada sklopa koji funkciju realizira kao sumu
produkata. Pri tome se mogu razmatrati etiri razliita sluaja:
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '0' u polje gdje
funkcija poprima '0',
Minimizacija logikih funkcija. 139
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '0' u polje gdje
funkcija poprima '1',
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje
funkcija poprima '0' te
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje
funkcija poprima '1'.
Za vjebu.
5.24. Zadatak
Kada vrimo minimizaciju funkcije K-tablicom, traimo minimalni zapis funkcije prema
kojim kriterijima? Da li je dobiven prikaz funkcije najminimalniji?
No moe li se pronai zapis funkcije z'' za koji je mjera sloenosti jo manja? Generalno
govorei, potrebno je izbaciti dodatni uvjet koji postoji kod minimizacije K-tablicom:
funkcija vie ne mora biti izvedena kroz najvie dvije razine logike. Ako to uvaimo,
funkciju f moemo dalje zapisati kao z'': f ( A, B, C , D ) = A ( B + CD) . Mjera sloenosti
funkcije sada je jednaka (f,z'')=2+1+22+12=9. Dakle, pronali smo zapis funkcije kod
kojega je mjera sloenosti jo manja. Meutim, treba napomenuti da dobiveno
rjeenje ima jednu manu u odnosu na rjeenje K-tablica: povean je broj razina logike,
to u isto logikom smislu nema nikakvog utjecaja, no prilikom realizacije funkcije
140 Zbirka rijeenih zadataka
vei broj razina logike automatski znai i due vrijeme prolaska signala kroz logike
sklopove i time kasnija reakcija samog sklopa.
5.25. Zadatak
AC
BC ABC BC
A BC
00 01 11 10
A 0 1 1
1 1 1 A
B
AB C
ABC ABC
Vano je uoiti da funkcija moe biti zadana tako da nema niti jedan bitni primarni
implikant! Vidi nerijeene zadatke za primjer.
Minimizacija logikih funkcija. 141
ZADACI ZA VJEBU
Prikazati logiki simbol, tablicu istinitosti, logiku funkciju, shemu sklopa te VHDL
ponaajni model multipleksora 2/1.
d0 d1
s
y
Tablica istinitosti:
S D1 D0 Y
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
Logika funkcija:
Shema sklopa:
d0
1 &
s 1 y
d1 &
END ponasajna;
END ponasajna2;
END ponasajna2;
6.2. Zadatak
Prikazati logiki simbol, tablicu istinitosti, logiku funkciju, shemu sklopa te VHDL
ponaajni model dekodera 2/4.
DEKODER y3
a1 2/4
y2
a0 y1
y0
Tablica istinitosti:
A1 A0 Y3 Y2 Y1 Y0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0
Y0 ( A1 , A0 ) = m( 0) = A1 A0 a1 a0
Y1 ( A1 , A0 ) = m(1) = A1 A0
Y2 ( A1 , A0 ) = m( 2) = A1 A0
Y3 ( A1 , A0 ) = m( 3) = A1 A0
1 1
& y3
& y2
& y1
& y0
END ponasajna;
146 Zbirka rijeenih zadataka
END ponasajna;
6.3. Zadatak
Prikazati logiki simbol, tablicu istinitosti, logiku funkciju, shemu sklopa te VHDL
ponaajni model dekodera 1/2 s ulazom za omoguavanje.
DEKODER
1/2 y1
a
y0
Tablica istinitosti:
E A Y1 Y0
0 0 0 0
0 1 0 0
1 0 0 1
1 1 1 0
Y1 ( E , A) = m( 3) = E A E a
Y0 ( E , A) = m( 2) = E A
& y1
& y0
Standardni kombinacijski moduli. 147
Y0 = NOT A AND E;
Y1 = A AND E;
END ponasajna;
6.4. Zadatak
Prikazati logiki simbol, tablicu istinitosti te logiku funkciju prioritetnog kodera 4/2.
Koder 2n/n je sklop koji ima 2n ulaznih linija. Izlaz je n bitova ija binarna vrijednost
odgovara broju one ulazne linije na kojoj se nalazi logika jedinica (tada je dodatni izlaz
Z = '1'). Za sluaj da su svi ulazi u nuli, izlaz Z postavlja se u '0'. Kako se moe dogoditi
da je na vie ulaza istovremeno prisutna jedinica, tipino se izvodi prioritetni koder kod
kojega izlaz odgovara najviem ulazu na kojem se nalazi logika jedinica.
I3 KODER
4/2 Y1
I2
I1 Y0
I0 Z
Tablica istinitosti:
I3 I2 I1 I0 Y1 Y0 Z
0 0 0 1 0 0 1
0 0 1 0 1 1
0 1 1 0 1
1 1 1 1
0 0 0 0 0
Y1 ( I 3 , I 2 , I 1 , I 0 ) = m(4,5,6,7,8,9,10,11,12,13,14,15) = I 3 I 2 + I 3
148 Zbirka rijeenih zadataka
Y0 ( I 3 , I 2 , I 1 , I 0 ) = m(2,3,8,9,10,11,12,13,14,15) = I 3 I 2 I 1 + I 3
Z ( I 3 , I 2 , I 1 , I 0 ) = m(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) = I 3 + I 2 + I 1 + I 0
6.5. Zadatak
A B C f
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 1
Multipleksor 4/1 ima etiri podatkovna ulaza, odnosno dva selekcijska ulaza. Ako na
selekcijske ulaze dovedemo varijable A i B, podatkovni ulaz D0 biti e proslijeen na
izlaz ako je A=0 i B=0; podatkovni ulaz D1 biti e proslijeen na izlaz ako je A=0 i B=1;
podatkovni ulaz D2 biti e proslijeen na izlaz ako je A=1 i B=0; podatkovni ulaz D3 biti
e proslijeen na izlaz ako je A=1 i B=1.
Moemo li odrediti to se treba pojaviti na izlazu kada je A=0 i B=0, odnosno na ulazu
D0? Pogledajmo u tablicu. Kombinacija A=0 i B=0 selektira dva retka, dok se vrijednost
funkcije u oba retka mijenja. Meutim, usporedimo vrijednost funkcije s vrijednostima
koje poprimaju varijable koje nisu dovedene na selekcijske ulaze (u naem sluaju,
varijablom C). U prva dva retka, vrijednost funkcije f upravo je jednaka vrijednosti
varijable C! Zakljuujemo da na prvi ulaz (D0) treba dovesti upravo varijablu C.
Na slian nain moemo analizirati to trebamo dovesti na ulaz D1, koji je selektiran
kod kombinacije A=0 i B=1. Ovime su opet selektirana dva retka (trei i etvrti), i
vrijednost funkcije f opet se mijenja. Usporedimo li u ta dva retka vrijednost funkcije f i
varijable C, vidimo da su oni upravo komplementarni: kada je C=0, tada je f=1 i
obratno. Zakljuujemo na na ulaz D1 moramo dovesti C .
izmeu preostalih varijabli, i vrijednosti funkcije, i utvrde se logiki izrazi koji opisuju
taj odnos. Postupak je prikazan na slijedeoj slici.
A B C f D0
0 0 0 0 f =C
0 0 1 1 D0 = f = C
A B C f D1
A B C f 0 1 0 1 f =C
0 0 0 0 0 1 1 0
0 0 1 1 D1 = f = C
0 1 0 1
0 1 1 0
1 0 0 1 A B C f D2
1 0 1 0 1 0 0 1 f =C
1 1 0 1 1 0 1 0
1 1 1 1 D2 = f = C
A B C f D3
1 1 0 1 f =1
1 1 1 1 D3 = f = 1
MUX 4/1
C D0
C D1
f
C D2
1 D3
S1 S0
A B
150 Zbirka rijeenih zadataka
6.6. Zadatak
f = (3,5,6,7,8,12,13,14,17,18,19,20,25,26,27,28,29,30,31)
Ovaj multipleksor ima 8 podatkovnih ulaza, pa mora imati 3 selekcijska ulaza. Na njih
emo spojiti varijable A, B i C. Napravimo tablicu kombinacija i oznaimo ovisnosti
izlaza po grupama o preostalim varijablama (D i E).
A B C D E f Ulazi mux-a
0 0 0 0 0 0
0 0 0 0 1 0
D0 = D E
0 0 0 1 0 0
0 0 0 1 1 1
0 0 1 0 0 0
0 0 1 0 1 1
D1 = D + E
0 0 1 1 0 1
0 0 1 1 1 1
0 1 0 0 0 1
0 1 0 0 1 0
D2 = D + E
0 1 0 1 0 0
0 1 0 1 1 0
0 1 1 0 0 1
0 1 1 0 1 1
D3 = D E
0 1 1 1 0 1
0 1 1 1 1 0
1 0 0 0 0 0
1 0 0 0 1 1
D4 = D + E
1 0 0 1 0 1
1 0 0 1 1 1
1 0 1 0 0 1
1 0 1 0 1 0
D5 = D + E
1 0 1 1 0 0
1 0 1 1 1 0
1 1 0 0 0 0
1 1 0 0 1 1
D6 = D + E
1 1 0 1 0 1
1 1 0 1 1 1
1 1 1 0 0 1
1 1 1 0 1 1 D7 = 1
1 1 1 1 0 1
1 1 1 1 1 1
Standardni kombinacijski moduli. 151
D MUX 8/1
& D0
E
D1
D2
1
D3
f
D4
1 D5
D6
1 D7
1
S2 S1 S0
A B C
6.7. Zadatak
Uporabom multipleksora 2/1 (koji ima jednu adresnu liniju) potrebno je izgraditi
multipleksor koji ima tri adresne linije dakle, multipleksor 8/1. Tada se njegovom
uporabom moe direktno realizirati traena funkcija.
A B C D f Di
0 0 0 0 1 D0 = 1
0 0 0 1 1
0 0 1 0 0 D1 = 0
0 0 1 1 0
0 1 0 0 1 D2 = D
0 1 0 1 0
0 1 1 0 0 D3 = D
0 1 1 1 1
1 0 0 0 0 D4 = D
1 0 0 1 1
1 0 1 0 0 D5 = 0
1 0 1 1 0
1 1 0 0 1 D6 = D
1 1 0 1 0
1 1 1 0 1 D7 = 1
1 1 1 1 1
1 d0
0 d1 z
a0
D d0 d0
D d1 z d1 z
a0 a0
d0
d1 z f
D d0 d0
a0
0 d1 z d1 z
a0 a0
D d0
1 d1 z
a0
C B A
Standardni kombinacijski moduli. 153
6.8. Zadatak
A2 A1 A0
A2 A1 A0 1 f1
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
1 f2
A2 A1 A0
A2 A1 A0
A2 A 1 A0
A B C
6.9. Zadatak
f 1 = (0,3,4,6,7 )
f 2 = (0,1,2,5)
Ovakav dekoder na izlazu ima aktivnu nulu, tj. kada je onemoguen, svi su izlazi u
jedinici, a kada je omoguen, onaj izlaz koji je adresiran nalazi se u nuli dok su svi
ostali izlazi u jedinici.
X + Y = X Y = NI (X , Y )
A2 A1 A0
A2 A1 A0 & f1
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
& f2
A2 A1 A0
A2 A1 A0
A2 A 1 A0
A B C
6.10. Zadatak
Realizirati sklop koji ostvaruje dvije funkcije: (i) generator parnog pariteta pp, (ii) generator
neparnog pariteta pn, trobitnog podatka b2b1b0.
a) uporabom dvostrukog dekodera/demultipleksora 2/4
b) uporabom dvostrukog multipleksora 4/1
b2 b1 b0 pp pn
0 0 0 0 1
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 0
b2b1b0
b2b1b0
E 1 pp
b2b1b0
b2b1b0
1
b2b1b0
b2b1b0
E 1 pn
b2b1b0
b2b1b0
A1 A0
b2 b1 b0
D0
D1 pp
z
D2
D3
D0
D1 z pn
D2
D3
Sel1 Sel0
1
b2 b1
b0
6.11. Zadatak
Realizirati sklop koji ostvaruje funkciju r3r2r1r0=fibb(b2b1b0) koja vraa b-ti Fibbonacijev
broj:
n fibb(n) b2 b1 b0 r3 r2 r1 r0
0 0 0 0 0 0 0 0 0
1 1 0 0 1 0 0 0 1
2 1 0 1 0 0 0 0 1
3 2 0 1 1 0 0 1 0
4 3 1 0 0 0 0 1 1
5 5 1 0 1 0 1 0 1
6 8 1 1 0 1 0 0 0
7 13 1 1 1 1 1 0 1
a) Uporabom dekodera
D0
D0 1 r0
A1 D1
D1
A0 D2
D2
D3
D3
1 r1
A2 D0 E
b2 A0
D1
D4
A1 D0 1 r2
b1 A1 D5
A0 D1
b0 A0 D6
D2
D7 1 r3
E D3
1
E
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
1 1 1 1
b2 b1 b0
r3 r2 r1 r0
Standardni kombinacijski moduli. 159
Na ovaj nain definirali smo fiksno dekodersko polje i fiksno kodersko polje. Vrlo
popularno poopenje ovog koncepta je uporaba programirljivog dekodera koji generira
samo one produkte koji su nam potrebni (uoiti, npr. da minterm 0 nismo koristili;
programirljivo I polje), kao i programirljivi koder (programirljivo ILI polje). Ukoliko su
oba polja programirljiva, radi se o PLA Programirljivo logiko polje (Programmable
Logic Array), a ako je programirljivo samo I polje, tj. dekoder, radi se o PAL
poluprogramirljivo logiko polje (Programmable Array Logic).
ROM
8x4
d0
a2
d1
a1
d2
a0
d3
6.12. Zadatak
f 1 = (1,6,7,11,12,13,16,17,22,27,30)
f 2 = (1,2,4,5,6,8,10,12,15,21,24,29)
vrijednosti funkcije f1 i etiri uzastopne vrijednosti funkcije f2, a koju tono vrijednost
treba dati na izlazu iz sklopa odrediti emo multipleksorom!
A B C D E f2 f1
0 0 0 0 0 0 D4 0 D0
0 0 0 0 1 1 D5 1 D1
0 0 0 1 0 1 D6 0 D2
0 0 0 1 1 0 D7 0 D3
0 0 1 0 0 1 D4 0 D0
0 0 1 0 1 1 D5 0 D1
0 0 1 1 0 1 D6 1 D2
0 0 1 1 1 0 D7 1 D3
0 1 0 0 0 1 D4 0 D0
0 1 0 0 1 0 D5 0 D1
0 1 0 1 0 1 D6 0 D2
0 1 0 1 1 0 D7 1 D3
0 1 1 0 0 1 D4 1 D0
0 1 1 0 1 0 D5 1 D1
0 1 1 1 0 0 D6 0 D2
0 1 1 1 1 1 D7 0 D3
1 0 0 0 0 0 D4 1 D0
1 0 0 0 1 0 D5 1 D1
1 0 0 1 0 0 D6 0 D2
1 0 0 1 1 0 D7 0 D3
1 0 1 0 0 0 D4 0 D0
1 0 1 0 1 1 D5 0 D1
1 0 1 1 0 0 D6 1 D2
1 0 1 1 1 0 D7 0 D3
1 1 0 0 0 1 D4 0 D0
1 1 0 0 1 0 D5 0 D1
1 1 0 1 0 0 D6 0 D2
1 1 0 1 1 0 D7 1 D3
1 1 1 0 0 0 D4 0 D0
1 1 1 0 1 1 D5 0 D1
1 1 1 1 0 0 D6 1 D2
1 1 1 1 1 0 D7 0 D3
A A2
PROM 8x8
B A1
C A0
D7 D6 D5 D4 D3 D2 D1 D0
I3 I2 I1 I0 I3 I2 I1 I0
D Sel1
MUX 4/1 MUX 4/1
E Sel0 a) b)
f2 f1
Sada samo iz tablice kombinacija treba oitati vrijednosti bitova pojedinih rijei
pohranjenih u memoriji, to je prikazano sljedeom tablicom.
6.13. Zadatak
rije 0
rije 1
dekoder
rije 2
rije 3
A1 A0
a1 a0 d4 d3 d2 d1 d0
Memorija ima etiri memorijske rijei, svaka po pet bitova. Dakle, radi se o memoriji
45. Vrijednost pohranjenu na pojedinim memorijskim lokacijama oitati emo na
slijedei nain. Neka adresna rije a1a0 adresira i-tu memorijsku rije (tj. i=2a1+a0).
Tada je vodoravna linija koja odgovara toj rijei na visokoj naponskoj razini, a sve
ostale su na niskoj (to je funkcija dekodera). Sada treba provjeriti za svaku okomitu
liniju (koja odgovara pojedinom bitu). Ako je G tranzistora koji spaja vodoravnu i
okomitu liniju spojen na vodoravnu liniju (veza nije prekinuta), tada taj tranzistor vodi, i
spaja okomitu liniju na masu, ime dotini bit postavlja u logiku nulu. Ako je veza
prekinuta, tranzistor ne vodi, i okomita linija je spojena na +UDD, ime je dotini bit
postavljen na logiku jedinicu. Dakle, u memoriji je zapisan sadraj:
a1 a0 d4 d3 d2 d1 d0
0 0 0 1 0 1 0
0 1 1 0 1 0 1
1 0 0 0 1 0 0
1 1 0 1 0 1 1
Standardni kombinacijski moduli. 163
6.14. Zadatak
a1 a0 d2 d1 d0 n(3)
0 0 0 0 1 1
0 1 0 1 1 3
1 0 1 0 1 5
1 1 0 1 0 2
rije 0
rije 1
dekoder
rije 2
rije 3
A1 A0
a1 a0 d2 d1 d0
164 Zbirka rijeenih zadataka
6.15. Zadatak
z = sel d 0 + sel d1
1 z s0 & z
d1 d1
& &
s2
c2
1 c0 &
sel sel
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY pmux21 IS
PORT ( d0 : IN std_logic;
d1 : IN std_logic;
sel : IN std_logic;
z: OUT std_logic);
END pmux21;
COMPONENT pNAND IS
PORT ( a : IN std_logic;
b : IN std_logic;
z : OUT std_logic);
END COMPONENT;
BEGIN
END Structural;
ZADACI ZA VJEBU
18. Uporabom samo 4 multipleksora 2/1 ostvariti sklop koji na ulaz dobiva 4-bitni binarni
broj i upravljaki signal S, a na izlaz proputa broj s ulaza (ako je S=0), ili dvostruku
vrijednost broja (ako je S=1).
19. Uporabom samo 4 multipleksora 4/1 ostvariti sklop koji na ulaz dobiva 4-bitni binarni
broj i upravljake signale S1S0. Operacija koju sklop obavlja odreena je tablicom u
nastavku.
S1 S0 Operacija
0 0 Posmak u desno, punjenje s 0
0 1 Rotacija u desno
1 0 Posmak u lijevo, punjenje s 1
1 1 Rotacija u lijevo
20. Nacrtati shemu multipleksora 4/1 izvedenog pomou dekodera 2/4 i minimalnog broja
osnovnih logikih sklopova.
21. U VHDL-u napisati ponaajni model prioritetnog kodera 4/2.
29.
( ) ( )
Multipleksorom 4/1 realizirati funkciju f A, B, C = m 3,4,6,7 . Na raspolaganju je
jo jedan invertor, te logika '0' i logika '1'.
30.
( ) ( )
Multipleksorom 4/1 realizirati funkciju f A, B, C = m 1,2,3,4,5,7 . Pri tome se ne
smije koristiti niti jedan logiki sklop, niti logika '0' ili logika '1'.
31. Multipleksorom 4/1 realizirati funkciju f ( A, B, C ) = A B + AC . Na raspolaganju su jo
samo logika '0' i logika '1'.
32. Komparator dvobitnih binarnih brojeva je sklop koji ima etiri ulaza (a1, a0, b1, b0) te
jedan izlaz (y). Izlaz y postavljen je u logiku jedinicu samo kada su binarni brojevi
A=a1a0(2) i B=b1b0(2) jednaki.
a. Napiite algebarski izraz kojim je odreena funkcija ovog sklopa.
Standardni kombinacijski moduli. 167
y0
I0
y1
f f
DEK y2 I1
y3 a
a1 a0
A a I I1
0
B
C
Standardni programirljivi moduli. 169
7.1. Zadatak
Uporabom PLA ostvariti funkciju ostatka dijeljenja trobitnog broja sa 3. Broj je kodiran
Grayevim kodom. Ostatak treba biti prikazan prirodnim binarnim kodom.
r1 = b2 b1b0 + b2 b1b0
r0 = b2 b1b0 + b2 b1b0 + b2 b1b0
Ukoliko imamo dovoljno veliki PLA (odnosno dovoljno malu funkciju) sve produkte
moemo direktno realizirati bez potrebe za prethodnom minimizacijom. Budui da
ovdje nije bilo postavljenih uvjeta na karakteristike PLA, pretpostaviti emo da je
minimizacija nepotrebna. Rjeenje je prikazano na prvoj slici u nastavku.
Radi jednostavnijeg prikaza PLA (a i PAL kasnije) koristit emo pojednostavljeni nain
crtanja ovih struktura prikazan na drugoj slici. Snopovi ulaza u pojedine logike
sklopove crtaju se kao samo jedna ica, pri emu treba imati na umu da to nije stvarno
samo jedna ica (pa tako ne radi kratki spoj izmeu npr. b2', b1 i b0).
170 Zbirka rijeenih zadataka
b2
b1
1
I polje
b0
1 r1
1 r0
ILI polje
snop "ica"
jedna "ica"
b2
1
b1
1
b0
1
1 r1
snop "ica" 1 r0
jedna "ica"
Standardni programirljivi moduli. 171
7.2. Zadatak
Pretpostavimo da na raspolaganju imamo PLA koji ima dvije razine NILI sklopova, i
invertore na izlazima (ovo zapravo ne smijemo pretpostaviti ako u zadatku eksplicitno
ne pie da invertori postoje no neka za sada pretpostavka vrijedi). Takav sklop i
rjeenje zadatka prikazan je na sljedeoj slici.
A
1
B
1
C
1
1 1 1 1 1 1
1 1 f1
1 1 f2
A B C D E = A + B + C + D + E = NILI (A , B , C , D, E )
Kada ostvarimo sve produkte prvom razinom NILI sklopova, drugom razinom ih treba
sumirati. To meutim nije mogue direktno, jer na izlazu NILI sklopa imamo
komplementiranu sumu. Zbog toga je na izlazu NILI sklopova jo potrebno staviti jedan
invertor (to se moe ostvariti bez dodatnih elemenata jer su PLA-ovi obino
"opskrbljeni" programirljivim invertorom na izlazu).
f1:
C
BC B
00 01 11 10 AB
A 0 1 1
1 1 1 1 A
AB ABC
f2:
AC C
BC B
00 01 11 10 AB
A 0 1 1
1 1 1 1 A
AB C AC
Proitajmo sada kako izgleda zapis ovih funkcija u obliku produkta parcijalnih suma!
Drugim rijeima, minimizirajmo nule umjesto jedinica. Slijedi:
f1:
A+ B
C
BC B
00 01 11 10
A 0 1 1
1 1 1 1 A
A + B +C
Standardni programirljivi moduli. 173
f2:
A+C
C
BC B
00 01 11 10
A 0 1 1
1 1 1 1 A
A + B +C
f1 = ( A + B) ( A + B + C )
f2 = ( A + C) ( A + B + C )
Sada ove funkcije moemo direktno realizirati PLA strukturom tipa NILI-NILI. Naime,
prirodan zapis funkcije za realizaciju PLA strukturom tipa NI-NI jest suma produkata, a
za realizaciju PLA strukturom tipa NILI-NILI upravo produkt suma.
Rjeenje je tada:
A
1
B
1
C
1
1 1 1 1 1 1
1 f1
1 f2
7.3. Zadatak
+UDD +UDD
x1 x2 x3
1 1 1
+UDD
+UDD
+UDD
+UDD
+UDD
f1 f2
+UDD +UDD
x1 x2 x3
1 1 1
+UDD O1
+UDD O2
+UDD O3
+UDD O4
+UDD O5
f1 f2
NILI
ravnina
NILI
ravnina
O1 = NILI ( x1 , x 2 ) = x1 + x 2
O2 = NILI (x1 , x 3 ) = x1 + x3
O3 = NILI (x1 , x 2 , x3 ) = x1 + x 2 + x 3
O4 = NILI (x1 , x 2 ) = x1 + x 2
O5 = NILI (x 2 , x3 ) = x 2 + x 3
f 1 = NILI (O1 , O2 , O3 ) = O1 + O2 + O3 = O1 O2 O3
= (x1 + x 2 )(x1 + x3 )(x1 + x 2 + x 3 )
f 2 = NILI (O2 , O4 , O5 ) = O2 + O4 + O5 = O2 O4 O5
= (x1 + x3 )(x1 + x2 )(x2 + x3 )
PLA sklop prikazan pomou logikih NILI sklopova:
176 Zbirka rijeenih zadataka
x1
1
x2
1
x3
1
1 1 1 1 1
1 f1
1 f2
7.4. Zadatak
Realizirati funkcije:
f 1 = (0,1,3,5,11,15) i f 2 = (0,2,4,8,12,14 )
a) ILI-od-I tip
A
1
B
1
C
1
D
1
& & & & & & & & & & &
1 f1
1 f2
A
1
B
1
C
1
D
1
1 1 1 1 1 1 1 1 1 1 1
1 1 f1
1 1 f2
Nakon minimizacije:
f 1 = (2,4,6,7,8,9,10,12,13,14) f1 = (C + D )(A + C )(A + B + C )( A + B + D )
f 2 = (1,3,5,6,7,9,10,11,13,15) f 2 = D (A + B + C )
A
1
B
1
C
1
D
1
1 1 1 1 1 1
1 f1
1 f2
178 Zbirka rijeenih zadataka
7.5. Zadatak
Na raspolaganju je PAL sljedeih karakteristika 363, tj. 3 ulaza, 3 izlaza, ILI sklopovi
imaju po dva ulaza. Realizirati funkcije: f1 = ABC + A C , f 2 = ABC + BC i f 3 = A + B C .
A
1
B
1
C
1
1 f1
1 f2
1 f3
Iz ovog rjeenja odmah se moe vidjeti i veliki nedostatak PAL porodice: svi produkti
moraju se ostvariti onoliko puta koliko su potrebni. Kako produkt ABC imamo dva puta
(u funkciji f1 i u funkciji f2), morali smo ga i ostvariti dva puta. Naime, kako kod PALa
ILI polje nije programirljivo, ne postoji mogunost dijeljenja produkata.
7.6. Zadatak
Na raspolaganju je PAL sljedeih karakteristika: 3 ulaza, 3 izlaza, ILI sklopovi imaju po dva
ulaza, izlazi ILI sklopova i njihovi komplementi dovode se natrag u I ravninu.
Realizirati funkciju: f = AB + AC + BC + AB
f = AB + AC + BC + AB = f1 + f 2 , f 1 = AB + AC , f 2 = BC + AB .
A
1
B
1
C
1
1 f1
1 f2
1 f
7.7. Zadatak
Umnoak dviju (ili vie) varijabli moe se NILI sklopom ostvariti tako da se na njega
dovedu komplementi, tj:
Zbroj dviju (ili vie) varijabli moe se ostvariti tako da se dovedu na NILI sklop iza
kojeg se rezultat komplementira:
A + B = A + B = NE ( NILI ( A, B ))
Invertor na izlazu ostvarit emo EX-ILI sklopom tako da na slobodan ulaz dovedemo 1.
180 Zbirka rijeenih zadataka
A
1
B
1
C
1
1 1 1 1 1
1 =1 f1
1 =1 f2
Napomena: upravljani EX-ILI sklop esto se naziva i upravljivi invertor, jer ovisno o
vrijednosti na jednom ulazu na izlaz proputa drugi ulaz ili njegov komplement.
7.8. Zadatak
d0 a0
y
d1
f = X 1 X 2 = X 1 X 2 + X 1 X 2 = (1,2 )
X1
X2
0
1
f
1
0
7.9. Zadatak
A
B
C
0
0
0
1
f
0
0
1
1
182 Zbirka rijeenih zadataka
7.10. Zadatak
f = f 2 f 3 , f1 = A B , f 2 = A + B , f 3 = f1 + C .
C f
A 0 1
a1 a1
1 f1 1 f3
1 0
a0 0 a0 1
B
1 0
a1 a1
1 f2 0
f
0 0
a0 1 a0 1
f 1 = f ( A, B) = A B = AB + A B = (1,2 )
U LUT treba upisati uzorak 0110 (na 1. i 2. ulaz dekodera dovodi se 1, a na 0. i 3. ulaz
dekodera dovodi se 0).
f 2 = f ( A, B) = A + B = A ( B + B ) + ( A + A ) B = A B + A B + AB = (0,1,3)
Izlaz f1 se preko zadnje okomite linije srednjeg snopa dovodi na ulaz a1 logikog bloka
gore-desno. Istovremeno se na a0 ulaz tog bloka dovodi varijabla C (treom
vodoravnom linijom gornjeg vodoravnog snopa, pa zatim treom okomitom linijom
srednjeg okomitog snopa). Taj sklop obavlja funkciju f3 (koja ovisi o f1 i C):
f 3 = f ( f 1 , C ) = f1 + C = f 1 (C + C ) + ( f 1 + f1 )C = f1C + f 1C + f 1C = (0,1,3)
Konano se na ulaz a1 logikog bloka dolje-desno dovodi f2 preko druge okomite linije
srednjeg okomitog snopa, a na ulaz a0 dovodi se f3 (prvom okomitom linijom desnog
okomitog snopa, pa prvom vodoravnom linijom srednjeg vodoravnog snopa, i konano
prvom okomitom linijom srednjeg okomitog snopa). Taj sklop ostvaruje logiku I
funkciju:
f = f ( f 2 , f 3 ) = f 2 f 3 = (3)
Rezultat f vodi se preko etvrte okomite linije desnog okomitog snopa i etvrte
vodoravne linije gornjeg vodoravnog snopa na izlazni konektor f.
7.11. Zadatak
f ( A, B, C , D) = AB + C D + CD
Ovaj izraz moramo raspisati na takav nain koji e u sebi sadravati samo funkcije od
dvije varijable. Npr. uvedimo sljedee supstitucije:
f 1 ( A, B, C , D) = AB = f 1 ( A, B) = m(3)
f 2 ( A, B, C , D) = C D + CD = f 2 (C , D) = m(1,2)
f ( A, B, C , D) = f 1 + f 2 = f ( f1 , f 2 ) = f 1 f 2 + f1 f 2 + f 1 f 2 = m(1,2,3)
Sada moemo iskoristiti jedan logiki blok za realizaciju funkcije f1, jedan logiki blok
za realizaciju funkcije f2 te jedan logiki blok za realizaciju funkcije f koji rauna
logiku ILI operaciju.
7.12. Zadatak
A B Cin R Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Standardni programirljivi moduli. 185
C in D0
Cin D1
z R
Cin D2
C in D3
0 D0
C in D1 z Cout
C in D2
1 D3
Sel1 Sel0
A B
b) dekoderom 3/8
D0
D1
D2 1 R
D3
D4
D5
1 Cout
D6
D7
A2 A1 A0
A B Cin
Na raspolaganju je programirljivo logiko polje PLA tipa NI-NI veliine 332. Njegovom
uporabom ostvariti etverobitni prioritetni koder (sklop s n ulaza, te izlazima koji poprimaju
binarno kodiran najvei redni broj ulaza koji je u stanju 1; npr. uz ulaze I0I1I2I3=0101 izlaz je
3(2); pretpostaviti da e uvijek barem jedan ulaz biti u 1).
I3 I2 I1 I0 O1 O0
0 0 0 0
0 0 0 1 0 0
0 0 1 0 0 1
0 0 1 1 0 1
0 1 0 0 1 0
0 1 0 1 1 0
0 1 1 0 1 0
0 1 1 1 1 0
1 0 0 0 1 1
1 0 0 1 1 1
1 0 1 0 1 1
1 0 1 1 1 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 1 1
1 1 1 1 1 1
I2
O1: I3I2
00 01 11 10 I3
I1I0 00 1 1 1
01 1 1 1
I0
11 1 1 1
10 1 1 1 I1
I3
I2
Standardni programirljivi moduli. 187
O0: I3I2
00 01 11 10 I3
I1I0 00 1 1
01 1 1
I0
11 1 1 1
10 1 1 1 I1
I3
I2
I 2 I1
O1 = I 2 + I 3
O0 = I 2 I 1 + I 3
I3
1
I2
1
I1
1
& O1
& O0
188 Zbirka rijeenih zadataka
ZADACI ZA VJEBU
f 1 ( A, B, C , D ) = A (B + C ) D + A C
f 2 ( A, B, C , D ) = (B + C ) A + AD
f 1 ( A, B, C ) = (B + C ) ( A + B )
f 2 ( A, B, C ) = A + C
f 1 ( A, B, C ) = A B + B C
f 2 ( A, B, C ) = A C
8. Bistabil.
8.1. Zadatak
Prikaite tablice stanja, simbole, jednadbe promjene stanja i dijagrame stanja za:
a) SR bistabil (prikazati i izvedbu NI sklopovima te objasniti rad),
b) JK bistabil,
c) T bistabil,
d) D bistabil.
a) SR bistabil
Najjednostavniji bistabil je SR bistabil (bez ulaza Cp). Moe se izvesti pomou npr. dva
NI sklopa kako je prikazano u nastavku:
S
& Q
& Q
R
S R Qn +1
S Q
0 0 Qn
CP
0 1 0
R Q
1 0 1
1 1 ?
Simbol bistabila
Tablica stanja
Qn +1 = S + Qn R uz uvijet: S R = 0
Jednadba promjene stanja
? ?
11 11
10
00 00
0 1
01 10
01 S,R
Dijagram stanja
Ukoliko bistabil ima Cp ulaz, tada ulazi za pobudu imaju utjecaja samo kada je Cp=1,
dok za sluaj Cp=0 bistabil ne reagira na pobudu.
b) JK bistabil
J K Qn +1
J Q
0 0 Qn
0 1 0 CP
K Q
1 0 1
1 1 Qn
Simbol bistabila
Tablica stanja
Qn +1 = Qn K + Qn J
Jednadba promjene stanja
10,11
00 00
0 1
01 10
01,11 J,K
Dijagram stanja
Bistabil. 191
c) T bistabil
T Q
T Qn +1
0 Qn CP
Q
1 Qn
Qn +1 = T Qn + T Qn
Jednadba promjene stanja
0 0 1 0
1 T
Dijagram stanja
d) D bistabil
D Q
D Qn +1
CP
0 0
Q
1 1
Qn +1 = D
Jednadba promjene stanja
0 0 1 1
0 D
Dijagram stanja
192 Zbirka rijeenih zadataka
8.2. Zadatak
Ostvarite sljedee bistabile uporabom zadanog bistabila i minimalnog broja dodatnih logikih
sklopova:
Tablica 1.
Qn J K Qn +1 T
0 0 0 0 0
0 0 1 0 0
0 1 0 1 1
0 1 1 1 1
1 0 0 1 0
1 0 1 0 1
1 1 0 1 0
1 1 1 0 1
Qn T Qn +1
0 0 0
0 1 1
1 0 1
1 1 0
Objanjenje tablice 1
Sada jo treba pronai logiki izraz koji opisuje T kao funkciju od Qn , J i K. Iz tablice 1
to moemo direktno oitati:
T (Qn , J , K ) = (2,3,5,7 )
T JK
00 01 11 10
n
Q 0 1 1
1 1 1
T = J Qn + K Qn
194 Zbirka rijeenih zadataka
JK bistabil
J &
1 T Q Q
K & CP
Q Q
CP
Tablica 1.
Qn T Qn +1 J K
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 1
10,11
00 00
0 1
01 10
01,11 J,K
Objanjenje tablice 1
J T K T
0 1 0 1
n n
Q 0 1 Q 0
1 1 1
J =T K =T
T bistabil
T J Q Q
CP CP
K Q Q
8.3. Zadatak
T bistabil
J
T
& & Q
CP
& & Q
K JK bistabil
196 Zbirka rijeenih zadataka
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
END Structural;
U arhitekturi sklopa definiraju se jo i dva interna signala: JCPQn i KCPQ. Prvi signal
modelira izlaz gornjeg lijevog NI sklopa i jedan od ulaza gornjeg desnog NI sklopa, a
drugi izlaz donjeg lijevog NI sklopa i jedan od ulaza donjeg desnog NI sklopa. Uoite
kako kod internih signala nema "smjerova" njihova se vrijednost moe slobodno
itati, i u njih se moe zapisivati.
Pojava ulazno/izlaznih signala u suelju sklopa esto je nepoeljna naime, ako sklop
gledamo kao komponentu (crnu kutiju), tada promatranjem suelja sklopa dolazimo do
zakljuka da se Q i Qn koriste kao izlazi bistabila, ali i kao ulazi bistabila to je
besmislica. Zbog toga suelje sklopa treba modelirati na nain koji alje jasnu poruku o
nainu koritenja pojedinih "pinova" sklopa: jesu li ulazni, ili su izlazni. Da bismo
popravili na model, potrebno je uvesti jo dva interna signala koja e modelirati
unutranje (interne) izlaze sklopa: Qint i Qnint, kao to pokazuje sljedea slika.
Bistabil. 197
T bistabil
J
T Qint
& & Q
CP
Qn int
& & Q
K JK bistabil
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
END Structural;
Drugi nain modeliranja bistabila jest modeliranje pomou jednadbe prijelaza stanja,
to nas tipino vodi na ponaajni model. Naime, jednadba prijelaza stanja govori kako
se bistabil "ponaa" na koji se nain mijenja njegovo stanje ovisno u trenutnom stanju
i trenutnoj pobudi (vidi sliku).
198 Zbirka rijeenih zadataka
T bistabil
T Q
Qn +1 = T Qn + T Qn
Qn +1 = T Qn + T Qn
CP
Uvijet: promjena na CP=1
Q
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
PROCESS (T,CP)
BEGIN
IF CP='1' THEN
Q <= (NOT T AND Q) OR (T AND NOT Q) AFTER 15 ns;
Qn <= (NOT T AND NOT Q) OR (T AND Q) AFTER 15 ns;
END IF;
END PROCESS;
END Behavioral;
Analiziramo li prikazano rjeenje, otkrit emo nekoliko problema (razmislite koje sve?),
od kojih emo spomenuti samo jedan. Analizom moemo uoiti "loe" definirano
suelje (opet se sugerira da su Q i Qn ujedno i ulazi u bistabil). Naime, signali Q i Qn
proglaeni su INOUT iz razloga to jednadba promjene stanja realizirana u bloku
process ita njihove vrijednosti, to ne bi bilo mogue da su signali proglaeni samo
OUT. No, ovaj problem rjeava se (kao to smo ve prethodno vidjeli) vrlo lagano:
potrebno je dodati dva interna signala, ime se dobiva sljedei model:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
PROCESS (T,CP)
BEGIN
IF CP='1' THEN
Qint <= (NOT T AND Qint) OR (T AND NOT Qint) AFTER 15 ns;
Qnint <= (NOT T AND NOT Qint) OR (T AND Qint) AFTER 15 ns;
END IF;
END PROCESS;
Q <= Qint;
Qn <= Qnint;
END Behavioral;
Zadnja dva modela takoer imaju jedan vrlo vaan problem: iako je nama jasno da oba
modela modeliraju jedan T bistabil, sintetiziranje ovih modela u fiziko sklopovlje
vjerojatno e rezultirati s implementiranjem dva bistabila! Naime, prilikom sinteze
sklopovlja na temelju VHDL opisa (ili nekog drugog; npr. Veriloga) sintetizator
sklopovlja mora otkriti to odreeni opis zapravo modelira, i zatim uporabom ciljne
arhitekture koja mu stoji na raspolaganju realizirati sklop koji se ponaa u skladu s tim
opisom. Ovaj proces ve je sam po sebi izuzetno teak a jo je tei kada ga treba
obaviti nad loim modelom. Glavni problem kod zadnja dva modela jest injenica da
smo svaki od izlaza (Q i Qn) modelirali zasebno iako to nije bilo potrebno, jer znamo
u kakvom su odnosu ta dva signala oni su uvijek komplementarni. Ova injenica,
meutim, moe vrlo lagano "promaknuti" sintetizatoru, i rezultirati stvaranjem jednog
bistabila koji implementira izlaz Q, i jednog bistabila koji implementira izlaz Qn. Pri
tome e sklop kao cjelina prema van i dalje djelovati kao jedan bistabil problem je
samo to emo za taj sklop potroiti sklopovlja za dva bistabila.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
PROCESS (T,CP)
BEGIN
IF CP='1' THEN
Qint <= (NOT T AND Qint) OR (T AND NOT Qint) AFTER 15 ns;
END IF;
END PROCESS;
Qnint <= NOT Qint;
Q <= Qint;
Qn <= Qnint;
END Behavioral;
200 Zbirka rijeenih zadataka
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
PROCESS (T,CP)
VARIABLE stanje: std_logic;
BEGIN
IF CP='1' THEN
stanje := (NOT T AND stanje) OR (T AND NOT stanje);
END IF;
Q <= stanje AFTER 15 ns;
Qn <= NOT stanje AFTER 15 ns;
END PROCESS;
END Behavioral;
No i ovdje treba biti vrlo oprezan: jednom minornom izmjenom koda poput ubacivanja
izraza za Q i Qn unutar IF bloka vjerojatno bi rezultiralo sintezom dva bistabila!
Treba jo napomenuti da ovaj pregled naina modeliranja bistabila nije niti priblino
potpun. Bistabili se u VHDL-u mogu modelirati na jo mnogo naina (npr. uporabom
"uvara" engl. guard), ali za potrebe kolegija Digitalna elektronika i Digitalna logika
predstavlja dovoljno irok spektar.
8.4. Zadatak
SR bistabil
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
END Structural;
D bistabil
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
PROCESS(Clock)
VARIABLE Qint: std_logic;
BEGIN
IF falling_edge(Clock) THEN
IF Reset = '1' THEN
Qint := '0';
ELSE
Qint := D;
END IF;
END IF;
Q <= Qint AFTER 5 ns;
Qn <= NOT Qint AFTER 5 ns;
END PROCESS;
END BEHAVIORAL;
8.5. Zadatak
Na izlaz logikog bloka s tri ulaza ostvarenog multipleksorima 2/1 i LUT-om direktno je
spojen D bistabil. Nacrtati ovu strukturu. Programirati LUT i projektirati sklop tako da djeluje
kao JK bistabil. Ulaze logikog bloka oznaiti s A2A1A0, gdje je A2 ulaz najvee teine. Neka
A2 odgovara ulazu J, a ulaz A1 ulazu K.
Napiimo tablicu promjene stanja bistabila JK, i ulaz bistabila koji doista imamo:
202 Zbirka rijeenih zadataka
J K Qn Qn+1 D
0 0 0 0 0
0 0 1 1 1
0 1 0 0 0
0 1 1 0 0
1 0 0 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 0
A2
J
A1
K
A0
0
1
0
0 f
Q
D Q
1
1 CP
1 Q
0
8.6. Zadatak
Simbol: Funkcija:
Implementacija:
d0
y Q
D d1
a
CP
D Q D D Q D Q
CP CP CP CP
Q Q Q
Implementacija multipleksorima:
d1 d0
y y Q
D d0 d1
a a
CP
trenutni njegov izlaz se prosljeuje kroz drugi bistabil (multipleksor). Stanje ostaje
stabilno, i eventualne promjene ulaza D vie nemaju utjecaja na izlaz.
8.7. Zadatak
d0 d0
y Q1 y Q2
D d1 d1
a a
CP CP
CP + CP = 1 ,
CP + CP = 1 .
Naime, jedan od ta dva signala kasnit e za onim drugim. Zbog toga treba provesti
analizu utjecaja vremena kanjenja na rad sklopa. Radi jednostavnosti pretpostavimo da
su multipleksori komponente koje rade trenutno (dakle, ne kasne). Jedino mjesto gdje
postoji kanjenje jest izmeu signala CP i CP . Zbog toga emo signale oznaene s CP
i CP promatrati kao dva nezavisna signala. Pretpostavimo najprije da signal CP kasni
za signalom CP odreeno vrijeme (to je i razumna pretpostavka ako se signal CP
generira proputanjem signala CP kroz invertor). Tada je ponaanje sklopa prikazano
sljedeim vremenskim dijagramom (dijagram 1).
t
CP
t
CP
t
Q1
t
Q2
Analizirajmo sada drugi sluaj: neka signal CP rani pred signalom CP (o konkretnoj
implementaciji bit e rijei u nastavku). Ponaanje sklopa tada je opisano vremenskim
dijagramom 2.
t
CP
t
CP
t
Q1
t
Q2
U ovom sluaju sklop radi ispravno. Naime, promjena izlaza dogaa se na rastui brid
signala CP to okvirno odgovara padajuem bridu signala CP . Kako sklop radi? Oko
206 Zbirka rijeenih zadataka
d0 d0
y Q1 y Q2
D d1 d1
a a
CP = CLK CP = CLK
1 1
CLK
ZADACI ZA VJEBU
1. Uporabom dva NILI sklopa ostvariti osnovni SR bistabil. Ako je kanjenje svakog NILI
sklopa 10 ns, nacrtati vremenske dijagrame izlaza Q i Q za pobudu zadanu slikom. Da
li se u odzivu sklopa pojavljuju oscilacije? Zato? Da li bi SR bistabil izveden realnim
komponentama oscilirao? Zato? Prilikom rjeavanja zadatka pretpostavite da je u
poetnom trenutku izlaz Q u logikoj nuli, a izlaz Q u logikoj jedinici.
Bistabil. 207
Pobuda bistabila
2. Napiite strukturni VHDL model JK bistabila uporabom komponente SRbistabil
opisane u zadatku 8.4 i osnovnih logikih sklopova (koristiti VHDL operatore AND,
OR, NOT i sl.).
3. (Pismeni ispit 12. 11. 2004.)
Ponaajnim VHDL-om opisati JK bistabil (ulazi J, K, CP, izlazi Q i Q'). Koristei taj
sklop kao komponentu, strukturnim VHDL-om opisati sklop temeljen na dva JK
bistabila s dijeljenim ulazima J i CP, zasebnim ulazima K1 i K2 te izlazima Q1 i Q2.
Povijesna crtica
Pria ide ovako. U srpnju 1958. godine, kada je veina zaposlenika Texas Instruments-
a otila na tradicionalni dvotjedni odmor, Jack Kilby, kao novi zaposlenik bez prava na
odmor ostao je na poslu, i rjeavao problem poznat pod nazivom "tiranija brojeva".
Bilo je to vrijeme elektronskih cijevi koje su bile relativno velike i nepouzdane. 1947.
godine izmiljen je tranzistor (Bell Telephone Laboratories) ime su rijeeni neki od
problema elektronici. Meutim, za izgradnju kompliciranijih sklopova ipak je trebalo
runo povezivati veliki broj diskretnih elektronikih komponenti.
Kilby je razmiljao o nainu kako rijeiti ovaj problem. Zakljuio je da je jedina stvar
koju proizvoa poluvodia moe jeftino i efikasno proizvoditi upravo poluvodii.
"Daljnja razmiljanja dovela su me zakljuka da je poluvodi zapravo i sve to mi je
potrebno" napisao je Kilby 1976. u lanku "Invention of the IC." U srpnju 1958.
godine Kilby je zapoeo sa zapisivanjem svojih ideja i izradom skica. 12. rujna 1958.
pred elnicima Texas Instrumentsa Kilby je napravio demonstraciju. Pokazao je
komadi srebra na germaniju, a u trenutku kada je pritisnuo sklopku, na osciloskopu se
je pojavila beskonano ponavljajua sinusoida. Njegov izum je radio - rijeio je
problem.
9. Digitalna aritmetika.
9.1. Zadatak
Prvi broj zapisan je u binarnom brojevnom sustavu. Slijedi da je baza brojevnog sustava
B=2. Zbog toga se (B-1)-vi komplement kod ovog brojevnog sustava jo i zove
jedinini komplement (B-1=2-1=1), a B-ti komplement naziva se dvojni komplement.
Tada je (B-1)-vi komplement broja X broj X' koji ima isti broj znamenaka kao i X, a i-ta
znamenka od X' dobije se tako da se od (B-1) oduzme i-ta znamenka od broja X.
Konkretno, slijedi da je (B-1)-vi komplement od broja 10010(2):
1 0 0 1 0
0 1 1 0 1
Dakle, (B-1)-vi komplement od broja 10010(2) je 01101(2). Uoiti koje svojstvo ima (B-
1)-vi komplement: zbrajanjem broja i njegovog (B-1)-vog komplementa dobiva se broj
ije su sve znamenke upravo B-1! Naime:
1 0 0 1 0
+ 0 1 1 0 1
1 1 1 1 1
B K = ( B 1) K + 1 = 01101( 2 ) + 1( 2 ) = 01110 ( 2 )
1 0 0 1 0
+ 0 1 1 1 0
1 0 0 0 0 0
210 Zbirka rijeenih zadataka
1 2 0 1 2
1 0 2 1 0
9.2. Zadatak
9.3. Zadatak
00101101 00101101
+00110000 +00111111
-------- --------
01011101 01101100
Rezultat je ispravan! Rezultat je ispravan!
45+48=93 45+63=108
01101011 01101001
+00111101 +01111001
-------- --------
10101000 11100010
Rezultat je neispravan! Zbrajanjem Rezultat je neispravan! Zbrajanjem
pozitivnih brojeva dobili smo negativni pozitivnih brojeva dobili smo negativni
broj. broj.
107+61-88 105+121-30
11001010 11001010
+00011100 +01111100
-------- --------
11100110 01000110
Rezultat je ispravan! Rezultat je ispravan!
-54+28=-26 -54+124=70
9.4. Zadatak
00101101 00101101
-00110000 -00111111
-------- --------
00101101 00101101
+11010000 +11000001
-------- --------
11111101 11101110
01101011 01101001
-00111101 -01111001
-------- --------
01101011 01101001
+11000011 +10000111
-------- --------
00101110 11110000
Rezultat je ispravan! Rezultat je ispravan!
107-61=46 105-121=-16
11001010 11001010
-00011100 -01111100
-------- --------
11001010 11001010
+11100100 +10000100
-------- --------
10101110 01001110
Rezultat je ispravan! Rezultat je neispravan! Oduzimanjem
-54-28=-82 pozitivnog broja od negativnog broja
dobili smo pozitivan broj!
-54-12478
9.5. Zadatak
11011110010 10101111001
-------------- --------------
110111 101011
000000 101011
000000 000000
110111 000000
000000 101011
-------------- --------------
1111011110 10000110011
10011111 1101111111
----------- -----------
10011 11011
10011 11011
10011 11011
----------- 11011
10000101 11011
-----------
1101000101
Digitalna aritmetika. 213
9.6. Zadatak
3712 2B19
-------------- --------------
37 2B
6E 183
-------------- --------------
3DE 433
9.7. Zadatak
Ai Bi Si Ci
0 0 0 0 S i = Ai Bi + Ai Bi = Ai Bi
0 1 1 0
1 0 1 0 C i = Ai Bi
1 1 0 1
Ai Si
H
Bi Ci
Simbol poluzbrajala
214 Zbirka rijeenih zadataka
9.8. Zadatak
Ai Bi Ci-1 Si Ci Si = Ai Bi Ci 1 + Ai Bi Ci 1 + Ai Bi Ci 1 + Ai Bi Ci 1
0 0 0 0 0
= (Ai Bi + Ai Bi )Ci 1 + (Ai Bi + Ai Bi )Ci 1
0 0 1 1 0
0 1 0 1 0 ( )
= Ai Bi Ci 1 + ( Ai Bi )Ci 1
0 1 1 0 1 = Ai Bi Ci 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1 Ci = Ai Bi Ci 1 + Ai Bi Ci 1 + Ai Bi Ci 1 + Ai Bi Ci 1
1 1 1 1 1 = (Ai Bi + Ai Bi )Ci 1 + Ai Bi
= ( Ai Bi )Ci 1 + Ai Bi
Ai Si Si
Ai Ai Si Ai Si
Bi F
Ci-1 Ci H H
Bi Bi Ci Bi Ci Ci
1
Simbol potpunog zbrajala Ci-1
9.9. Zadatak
Bi Ai Bi Ai Bi Ai Bi Ai
c Ci F Ci-1 Ci F Ci-1 Ci F Ci-1 Ci F Ci-1 0
Si Si Si Si
s3 s2 s1 s0
9.10. Zadatak
=1 =1 =1 =1
Bi Ai Bi Ai Bi Ai Bi Ai
c/p Ci F Ci-1 Ci F Ci-1 Ci F Ci-1 Ci F Ci-1
Si Si Si Si
9.11. Zadatak
Kao to je poznato, bit preljeva kod potpunog zbrajala iznosi (vidi zadatak 9.8):
C i = ( Ai Bi )C i 1 + Ai Bi
C i = Pi C i 1 + Gi
C0 = G0 + P0C1
216 Zbirka rijeenih zadataka
Zastavicu C-1 tumaimo kao prijenos iz prethodnog stupnja etiri-bitnog zbrajala (kada
bismo npr. realizirali 8-bitno zbrajalo pomou dva 4-bitna); za sluaj da se radi o
jedinom sklopu (ili o prvom u nizu), C-1 postavlja se za operaciju zbrajanja na vrijednost
0. Sklop za izdvojeno generiranje prijenosa (engl. carry look-ahead) upravo realizira
funkciju generiranja svih Ci. Simbol ovog sklopa je:
G3 P3 G2 P2 G1 P1 G0 P0
C3 CLA C-1
C0 C1 C2
A3 B3 A2 B2 A1 B1 A0 B0
Ai Bi Ai Bi Ai Bi Ai Bi
Gi Si Pi Gi Si Pi Gi Si Pi Gi Si Pi
S3 S2 S1 S0
G3 P3 G2 P2 G1 P1 G0 P0
Cout C3 CLA C-1
C0 C1 C2
9.12. Zadatak
a3a2a1a0 b3b2b1b0
Mnoimo li 4-bitne brojeve, dobijemo etiri retka meusobno pomaknuta za 1 bit koje
treba zbrojiti. Ovo se moe rijeiti tako da se odjednom zbrajaju samo dva retka pa
postupak ponovi tri puta, kao to je prikazano u tablici u nastavku.
Zbrajanjem prva dva retka dobije se broj x. Zbrajanjem x i treeg retka dobije se y, a
zbrajanjem y i etvrtog retka dobije se z.
Bitno je za uoiti da iskljuivo prvi redak odreuje zadnji bit rezultata, tj. r0=a0b0. To je
u tablici naznaeno okomitom strelicom. Bit r1 odreen je bitom x0, tj. zadnjim bitom
rezultata prvog zbrajanja. Slino vrijedi i dalje.
a3a2a1a0 b3b2b1b0
Elementi koje zbrajamo nisu bitovi, ve su umnoci. Meutim, umnoak dvaju bitova (a
to jedino imamo) moe se ostvariti upravo logikom operacijom I. Sklop za mnoenje
prikazan je u nastavku.
218 Zbirka rijeenih zadataka
& r0
r1
r2
& A2 S3 A2 S3 A2 S3 r6
& A1 S2 A1 S2 A1 S2 r5
r4
& A0
S1 A0
S1 A0
S1
a3
a2
a1
a0
b3
b2
b1
b0
9.13. Zadatak
Povezati dva 4-bitna CLA sklopa tako da se ostvari CLA za 8-bitno zbrajalo.
Kako nam je broj CLA sklopova ogranien na 2, jedini nain na koji moemo povezati
ove sklopove jest u seriju, ime se dobiva efekt ripple-carry-ja, ali ne izmeu pojedinih
potpunih zbrajala, ve izmeu CLA sklopova, to, obzirom da njih ima puno manje u
odnosu na broj potpunih zbrajala i ne predstavlja veliki vremenski gubitak (barem za
relativno krae brojeve).
G 7 P7 G 6 P6 G 5 P5 G 4 P4 G 3 P3 G 2 P2 G 1 P1 G 0 P0
G 3 P3 G 2 P2 G 1 P1 G 0 P0 G 3 P3 G 2 P2 G 1 P1 G 0 P0
Cout C3 CLA C-1 C3 CLA C-1 Cin
G'3 P'3 C0 C1 C2 G'3 P'3 C0 C1 C2
Digitalna aritmetika. 219
9.14. Zadatak
Povezati 4-bitne CLA sklopove tako da se ostvari CLA za 16-bitno zbrajalo. Na raspolaganju
je 5 4-bitnih CLA sklopova.
Kada bismo CLA sklopove povezali u seriju (kao u prethodnom zadatku) vrijeme
propagacije ispravnog prijenosa kroz CLA sklopove ve bi bilo zamjetno. Budui da
imamo 5 CLA sklopova, moemo ih povezati hijerarhijski, ime se moe dobiti na
brzini. Ideja je da peti CLA sklop "predvia" bitove prijenosa za etiri CLA sklopa nie
razine, ba kao to svaki od tih CLA sklopova "predvia" bitove prijenosa za potpuna
zbrajala koja su na najnioj razini.
Standardni CLA sklop osim izlaza C0, C1, C2 i C3 ima jo i izlaze P4 i G4, koji nam slue
za hijerarhijsko povezivanje CLA sklopova. U nastavku emo izvesti izraze za svaki od
tih izlaza.
C0 = G0 + P0C1
C1 = P1C0 + G1 = P1 P0C1 + P1G0 + G1
C2 = P2C1 + G2 = P2 P1 P0C1 + P2 P1G0 + P2G1 + G2
C3 = P3C 2 + G3 = P3 P2 P1 P0 C1 + P3 P2 P1G0 + P3 P2 G1 + P3G2 + G3
C3 = P '3 C1 + G '3
Ako to napiemo na ovaj nain, vidimo da je C3 identinog oblika kao i bilo koji drugi
preljev! CLA sklop tada je oblika:
G3 P3 G2 P2 G1 P1 G0 P0
C3 CLA C-1
G'3 P'3 C0 C1 C2
G15 P15 G14 P14 G13 P13 G12 P12 G11 P11 G10 P10 G9 P9 G8 P8 G7 P7 G6 P6 G5 P5 G4 P4 G3 P3 G2 P2 G1 P1 G0 P0 Cin
G3 P3 G2 P2 G1 P1 G0 P0 G3 P3 G2 P2 G1 P1 G0 P0 G3 P3 G2 P2 G1 P1 G0 P0 G3 P3 G2 P2 G1 P1 G0 P0
G3 P3 G2 P2 G1 P1 G0 P0
Cout C3 CLA C-1
Nain povezivanja ovih sklopova prikazan je u nastavku.
G'3 P'3 C0 C1 C2
Zbirka rijeenih zadataka
Digitalna aritmetika. 221
9.15. Zadatak
x2x1x0 y2y1y0
x0 y0 r0
x1 y0 Ai Si r1
H
x0 y1 Bi Ci
Ci-1 Si Ai Si r2
x2 y0 Ai F H
x1 y1 Bi Ci x0 y2 Bi Ci
Ai Si Ci-1 Si r3
H Ai F
x2 y1 Bi Ci x1 y2 Bi Ci
Ci-1 Si r4
Ai F
x2 y 2 Bi Ci r5
9.16. Zadatak
Potpuno zbrajalo u ovom sluaju mora imati sljedee izlaze: Si, Ci, Pi te Gi. Svaka od tih
etiriju funkcija Booleove su funkcije koje se mogu izvesti dvorazinskom logikom (npr.
kao suma minterma ili pak produkt maksterma). Meutim, paljivijom analizom moe
se uoiti da te funkcije imaju dosta zajednikoga, te se u praksi ovaj sklop izvodi
pomou dva poluzbrajala (vidi zadatak 9.2). Kako su pri tome pojedini izlazi definirani
izrazima:
S i = Ai Bi C i 1
C i = ( Ai Bi )C i 1 + Ai Bi
Pi = Ai Bi
Gi = Ai Bi
=1 =1
& &
1
Digitalna aritmetika. 223
9.17. Zadatak
Izraunati i objasniti koliko iznosi vrijeme stabilizacije rezultata kod sljedeih sklopova:
a) poluzbrajalo
b) potpuno zbrajalo izvedeno pomou dva poluzbrajala
c) sklopa za paralelno zbrajanje 32-bitnih binarnih brojeva (RCA izvedba; engl. Ripple Carry
Adder, tj. sklop za paralelno zbrajanje)
d) sklopa za paralelno zbrajanje 32-bitnih binarnih brojeva uporabom jedne razine 4-bitnih
CLA sklopova
e) sklopa za paralelno zbrajanje 32-bitnih binarnih brojeva uporabom potrebnog broja razina
4-bitnih CLA sklopova (broj razina odrediti tako da se dobije minimalno vrijeme)
b) Potpuno zbrajalo ima sljedee izlaze: S i i C i . Ako bi se oba izlaza realizirala kroz
dvije razine osnovnih logikih sklopova, tada bi oba kasnili 2 t dls Meutim, kako je
zadano potpuno zbrajalo realizirano uporabom poluzbrajala, tada treba otkriti koji je
najdui put kojim signal mora proi prije no to se pojavi ispravan rezultat na svim
izlazima. Ako se Ai, Bi i Ci-1 pojave u trenutku t=0 ns, ispravan Si prvog poluzbrajala
pojavit e se u trenutku t = 0 + 1 t dls = 1 t dls , nakon ega drugo poluzbrajalo generira
svoj Si jo 1 t dls kasnije, odnosno u trenutku t = 1 t dls + 1 t dls = 2 t dls . U trenutku
t = 1 t dls zapoinje izraunavanje i Ci-a drugog poluzbrajala koje zavrava u trenutku
t = 1 t dls + 1 t dls = 2 t dls (jer se Ci rauna jednom razinom logikih sklopova). Ispravan
Ci cijelog sklopa pojavit e se kada izraunati Ci drugog poluzbrajala proe jo kroz
izlazni ILI sklop, pa e se Ci cijelog sklopa dobiti u trenutku t = 2 t dls + 1 t dls = 3 t dls .
Dakle, kod ove izvedbe rezultat kasni 2 t dls , a prijenos 3 t dls .
c) Sklop za paralelno zbrajanje dva 32-bitna binarna broja u ovom se sluaju izvodi
uporabom 32 potpuna zbrajala kod kojih se prijenos spaja serijski (vidi npr. zadatak
9.3). Koji je najgori sluaj koji moe nastupiti? Pretpostavimo da u trenutku t=0 ns na
sve ulaze dovodimo paralelno bitove pribrojnika i ulazni bit prijenosa. Ukoliko niti
jedan sklop ne generira bit prijenosa, tada e se kompletan zbroj pojaviti na izlazu
nakon 2 t dls (jer toliko kasni svako potpuno zbrajalo, a zbrajanje se izvodi paralelno), a
prijenos nakon 3 t dls . No promotrimo sluaj u kojem zbrajamo npr. brojeve
224 Zbirka rijeenih zadataka
CLA sklopa; time ukupno trebamo 6 4-bitnih CLA sklopova). Budui da se na dnu
nalaze samo dva CLA sklopa, prijenos izmeu njih rijeit emo direktnim povezivanjem
(a ne novom razinom CLA sklopova). Postupak izraunavanja tada je sljedei. U
trenutku t = 0 ns na sklop se dovode svi ulazi. Nakon 1 tdls , tj. u trenutku
t = 0 + 1 t dls = 1 t dls izraunati su svi P i G izlazi potpunih zbrajala. Nakon jo 2 tdls , tj.
u trenutku t = 1 t dls + 2 t dls = 3 tdls sve CLA jedinice u prvoj razini izraunavaju svoje P
i G izlaze (zapravo, P se dobije t = 1 t dls + 1 t dls = 2 t dls ). Na temelju tih izlaza CLA
sklop najvie razine nakon jo 2 t dls , tj. u trenutku t = 3 t dls + 2 t dls = 5 t dls izraunava
ispravne bitove prijenosa. Prijenos se vodi do CLA sklopa koji rauna prijenose za
gornjih 16 bitova rezultata, to se izrauna nakon jo 2 tdls , tj. u trenutku
t = 5 t dls + 2 t dls = 7 t dls . Ovi prijenosi vode se na ulaze CLA sklopova prve razine.
Nakon jo 2 tdls , tj. u trenutku t = 7 t dls + 2 t dls = 9 t dls CLA sklopovi prve razine imaju
izraunate ispravne prijenose za sva potpuna zbrajala, te se ispravni rezultat pojavljuje
jo 2 tdls kasnije, tj. u trenutku t = 9 t dls + 2 t dls = 11 t dls . Ispravan prijenos najvieg bita
pri tome se uzima s hijerarhijski najnieg CLA sklopa, gdje je bio dostupan ve u
trenutku t = 7 t dls . Hijerarhijskim povezivanjem CLA sklopova dobili smo, dakle, jo
bri rad sklopova.
ZADACI ZA VJEBU
1. Izraunajte B i B-1 komplemente od EE2A(16), 3F2(16), 2000(3), 10(3), 562(8), 1100(2), 1(2),
10(2). Sve komplemente izraunati na 4 znamenke.
2. Izraunati: 1001(2)-1111(2), 1000(2)-111(2), 101(2)-11(2), 101(2)-111(2), 3F7(16)-2BE(16),
E48F(16)-A001(16), E48F(16)-7FFE(16). Sve brojeve (i rezultate) tretirati kao 4-
znamenkaste, zapisane u B-komplementu. Ima li neispravnih rezultata? Zato?
3. Izraunati 1011(2)110(2), 111001(2)10101(2), 1E17(16)2F8(16), 5ADD(16)6FE1(16).
4. Izraunati 11001101(2):101(2), 271553(8):113(8), 1E573(16):F(16).
5. Prikazati sklop koji se temelji na 9-bitnom binarnom zbrajalu, a koji moe, ovisno o
signalu X obaviti binarno zbrajanje (X=1) ili binarno oduzimanje (X=0) dva 9-bitna
binarna broja zapisana u dvojnom komplementu. Ako se takvom sklopu na ulaz dovedu
sljedei binarni brojevi:
a) A = 135, B = 100
b) A = 57, B = 212
c) A = -34, B = 133
d) A = -250, B = 230
napisati rezultate operacija zbrajanja i oduzimanja, kao i oekivane rezultate (izraun
provesti "runo").
6. Napiite u VHDL-u ponaajni model 5-bitnog CLA sklopa koji dodatno generira svoje
P i G lanove (emu oni slue?)
7. Sljedee brojeve prikazati binarnim zapisom u dvojnom komplementu: 110, 13, -25, -
78, -128, 212, -130. Za prikaz brojeva u dvojnom komplementu koristiti 8 bitova (mogu
li se svi zadani brojevi uope zapisati u 8 bita?). Dodatno, utvrditi o kojim se brojevima
radi, ako je njihov binarni prikaz dvojnim komplementom jednak: (a) 11001101, (b)
226 Zbirka rijeenih zadataka
00101111, (c) 00000000, (d) 11111111, (e) 01011010. Obaviti zbrajanje 3 i -3, 114 i -
17, -28 i -43, -100 i -113; koji je rezultat?
8. Izraunati (B-1)-vi komplement i B-ti komplement sljedeih brojeva: 11111(2), 01110(2),
22211(3), 11221(3), 57251(8), 10772(8), 19357(10), 99832(10), A7EFF(16), 2EE739(16).
9. Neka se za kodiranje dekadskih brojeva koristi Excess-3 kod. Projektirati sklop koji
rauna sumu dva jednoznamenkasta broja. Uporabom tog sklopa projektirati sklop koji
rauna sumu dva troznamenkasta broja.
10. Neka se za kodiranje dekadskih brojeva koristi Excess-3 kod. Projektirati sklop koji
rauna (B-1)-vi komplement jednoznamenkastog broja. Projektirati sklop koji rauna B-
ti komplement troznamenkastog broja.
11. Neka se za kodiranje dekadskih brojeva koristi BCD kod. Projektirati sklop koji rauna
sumu dva jednoznamenkasta broja. Uporabom tog sklopa projektirati sklop koji rauna
sumu dva troznamenkasta broja.
12. Neka se za kodiranje dekadskih brojeva koristi BCD kod. Projektirati sklop koji rauna
(B-1)-vi komplement jednoznamenkastog broja. Projektirati sklop koji rauna B-ti
komplement troznamenkastog broja.
MINI-PROJEKTI ZA VJEBU
10. Registri.
10.1. Zadatak
Q3 Q2 Q1 Q0
D Q D Q D Q D Q
CP CP CP CP CP
Q Q Q Q
D3 D2 D1 D0
10.2. Zadatak
Q3 Q2 Q1 Q0
D D Q D Q D Q D Q
CP CP CP CP CP
Q Q Q Q
10.3. Zadatak
S1 S0 Funkcija
0 0 Posmak udesno; punjenje bitom Sin
0 1 Posmak ulijevo; punjenje bitom Sin
1 0 Paralelni upis
1 1 Kruni posmak udesno
d0 d0 d0
d1
y D Q d1
y D Q d1
y D Q
d2 d2 d2
a a a
d3 a1 0 CP d3 a1 0 CP d3 a1 0 CP
Q Q Q
10.4. Zadatak
A B C D
Sin
CP
CP
Objanjenje:
U svakom retku ABCD predstavlja poetno stanje a A'B'C'D' predstavlja novo stanje.
Zbog naina na koji je sklop izveden (uporabom posmanog registra) vrijedi: B'=A,
C'=B, D'=C. A' je odreen tako da preemo u ispravno stanje. Meutim, kako odrediti u
koja stanja treba prijei iz stanja koja nisu zadana (6, 11, 13, 15)? Zadan je kriterij da se
u tom sluaju kroz minimalni broj stanja treba prijei u stanje 0. Pogledajmo redom
kako smo primjenjivali taj kriterij.
Stanje 15
Stanje 13
Na isti nain kao u prethodnom razmatranju (vidi sliku ispod) moemo utvrditi da iz
stanja 13 treba prijei u stanje 6 (neovisno o tome to to stanje takoer nije definirano, a
alternativno stanje 14 jest).
Stanje 11
230 Zbirka rijeenih zadataka
Iz stanja 11 potrebno je prijei u stanje 13 (vidi sliku ispod). Prilikom crtanja stabla
odluke moemo se zaustaviti na voru 13 bez da ga ralanjujemo jer smo to napravili u
prethodnom koraku, i ve smo utvrdili da je najkrai put iz stanja 13 do stanja 0
dugaak 4.
Stanje 6
11
13
5 (8) 13 (4)
14 (4) 6
9 5
5
6
3 (2) 11
4
3 (2) 11 (5)
13
5 (8) 3 6
11
mux 8/1
d0
d1
d2
0 d3
y
d4
d5
d6
0 d7
a2 a1 a0
1
A B C D
Sin
CP
CP
Registri. 231
10.5. Zadatak
Ain Ai Si D Q Rout
Bin Bi F CP
Ci-1 Ci Q
Reset
CP
D Q Cout
CP
Q
Bitovi brojeva dovode se serijski na ulaze Ain i Bin pri emu se najprije dovodi najmanje
znaajni bit. Signalom Reset najprije je potrebno resetirati D bistabile. Prvi D bistabil
uva bit rezultata, dok drugi D bistabil uva bit preljeva potreban za zbrajanje sljedeih
znaajnijih bitova.
Rout uva rezultat zbrajanja trenutnih bitova a Cout je preljev nastao zbrajanjem bitova
koji su u trenutku rastueg brida CP-a bili na ulazu potpunog zbrajala.
Ain
1 0 1 0
5 = 0101(2)
t
Bin 1 0 0 1
9 = 1001(2)
t
CP
t
Reset
t
Rout 0 1 1 1
14 = 1110(2)
t
Cout 1 0 0 0
10.6. Zadatak
Signal L Akcija
0 Ostaviti prethodno stanje registra
1 Upisati stanje s paralelnih ulaza
D0 Q0 D 1 Q1 D 2 Q2
0 0 0
y D Q y D Q y D Q
1 1 1
a0 CP a0 CP a0 CP
Q Q Q
L
CP
10.7. Zadatak
S1 S0 Funkcija
0 0 Posmak udesno; punjenje bitom SRin
0 1 Posmak ulijevo; punjenje bitom SLin
1 0 Paralelni upis
1 1 Resetiranje registra
Za ovaj jednostavan sluaj zadanih operacija sklopovi se mogu spojiti direktno, kao to
je prikazano na shemi.
A B C D E F G H
A B C D A B C D
SRin SRin SRout SRin SRout SRout
SLout SLout
SLout
SLin SLin SLin
S1 S0 CP S1 S0 CP
S1 S0 CP
10.8. Zadatak
S1 S0 Funkcija
0 0 Posmak udesno; punjenje bitom SRin
0 1 Posmak ulijevo; punjenje bitom SLin
1 0 Paralelni upis
1 1 Kruni posmak udesno
Kao osnova za rjeavanje ovog zadatka moe nam posluiti prethodni zadatak.
Meutim, potrebno je uoiti bitnu razliku: funkcioniranje sklopa za vrijednost 11
upravljakih signala. Tada registar interno obavlja kruni pomak u desno, pri emu se
ne koriste izlaz SRout i ulaz SRin. Ako bismo na predloeni nain spojili registre, za
kombinaciju 11 ne bismo dobili kruni pomak u desno 8-bitnog podatka, ve podatak u
kojem su prva etiri bita i druga etiri bita kruno pomaknuta u desno. Problem
moemo rijeiti tako da kruni pomak u desno 8-bitnog podatka obavimo "obinim"
pomakom u desno, a izvana zadnji bit podatka vratimo na ulaz prvog registra. Dakle,
upravljake signale ne smijemo direktno dovoditi na ulaze Si. Uvedimo pomone
signale S0x i S1x (koje emo stvarmo dovoditi na upravljake ulaze) i pomoni signal K
(koji e oznaavati da se radi o krunom pomaku).
S1 S0 S1x S0x K
0 0 0 0 0
0 1 0 1 0
1 0 1 0 0
1 1 0 0 1
S1 x = S1 S 0 = m2 , S 0 x = S1 S 0 = m1 , K = S1 S 0 = m3 .
A B C D E F G H
SRin d0
y
d1
a
A B C D A B C D
SRin SRout SRin SRout SRout
SLout
SLout
SLout SLin SLin SLin
S1 S0 CP S1 S0 CP
d3 d2 d1 d0
dek 2/4
a1 a0
S1 S0 CP
10.9. Zadatak
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
Q <= Qint;
END Structural;
10.10. Zadatak
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY d_reg IS
PORT (
clk, s, c: IN std_logic;
d: IN std_logic_vector (1 downto 0);
q: OUT std_logic_vector (1 downto 0)
);
END d_reg;
PROCESS (clk, s, c, d)
BEGIN
IF (falling_edge(clk)) THEN
IF (s = '0') THEN
q <= "11";
ELSIF (c = '0') THEN
q <= "00";
ELSE
q <= d;
END IF;
END IF;
END PROCESS;
END Behavioral;
Registri. 237
10.11. Zadatak
Nacrtajmo najprije kako bismo spojili sve potrebne sklopove. Nepotpuna shema
prikazana je u nastavku:
Uvidom u shemu sklopa oito je da se interni signal pouti direktno spaja na izlaz
sklopa pout. No trebamo utvrditi to treba spojiti na signal pint.
Analizirajmo funkciju sklopa. Kada je na ctrl vrijednost 00, sklop treba zadrati
postojee stanje. To znai da mora vrijediti pint(i)=pouti(i); to je bilo na izlazu, to treba
doi na ulaz kako bi se u sljedeem koraku opet pojavilo na izlazu. Ovaj sluaj, dakle,
moemo opisati izrazom:
Za sluaj da je na ctrl vrijednost 10, sklop treba obaviti paralelni upis, tj.:
238 Zbirka rijeenih zadataka
Konano, za sluaj da je na ctrl vrijednost 01, sklop treba obaviti posmak udesno i
punjenje lijeve pozicije s ulaza sin, tj. gledajui sliku treba vrijediti:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY shift is
PORT (
pout: OUT std_logic_vector (4 DOWNTO 0);
sin, reset, clk: IN std_logic;
ctrl: IN std_logic_vector (1 DOWNTO 0);
pin: IN std_logic_vector (4 DOWNTO 0)
);
END shift;
COMPONENT d_reg
PORT (
clk, s, c: IN std_logic;
d: IN std_logic_vector (1 DOWNTO 0);
q: OUT std_logic_vector (1 DOWNTO 0)
);
END COMPONENT;
BEGIN
r0: d_reg PORT MAP (clk, '1', reset, pint (1 DOWNTO 0),
pouti(1 DOWNTO 0));
r1: d_reg PORT MAP (clk, '1', reset, pint (3 DOWNTO 2),
Registri. 239
END Structural;
Zato je uope uveden interni signal (vektor) pouti? Razlog tomu je injenica da
interni signal pint koji se dovodi na ulaze dvobitnih registara ovisi o trenutnom izlazu
sklopa. No kako je trenutni izlaz sklopa (pout) u opisu sklopa proglaen izlaznim
(out), njegova se vrijednost ne moe itati! Da bismo rijeili taj problem, moemo
postupiti dvojako: ili pout proglasiti ulazom/izlazom (dakle, u VHDL-u to bi bilo
inout), ili uvesti interni signal koji direktno spajamo na izlaz sklopa. Prvo rjeenje je
loe jer moe rezultirati sintezom dodatnog sklopovlja (kako bi se osiguralo da se s tih
pinova sklopa doista moe i itati i pisati). Drugo je rjeenje, iz oitog razloga, bolje.
10.12. Zadatak
Uporabom potrebnog broja sinkronih bridom okidanih JK bistabila ostvariti 4-bitni posmani
registar sa serijskim ulazom i paralelnim izlazom. Dozvoljeno je koristiti jedan invertor.
D0 D1 D2 D3
Sin J Q J Q J Q J Q
CP CP CP CP
1 K Q K Q K Q K Q
CP
Objanjenje:
10.13. Zadatak
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY SHREG74LS194 IS
PORT ( CLK, CLR, RIN, LIN : IN STD_LOGIC;
S : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
D : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END SHREG74LS194;
END SHREG_ARCH;
Registri. 241
10.14. Zadatak
S2 S1 S0 Akcija
0 0 0 Zadri
0 0 1 Uitaj
0 1 0 Posmak u desno, punjenje s LIN
0 1 1 Posmak u lijevo, punjenje s RIN
1 0 0 Cikliki posmak u desno
1 0 1 Cikliki posmak u lijevo
1 1 0 Aritmetiki posmak u desno
1 1 1 Aritmetiki posmak u lijevo
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY SHREG IS
PORT ( CLK, CLR, RIN, LIN : IN STD_LOGIC;
S : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END SHREG;
END SHREG_ARCH;
242 Zbirka rijeenih zadataka
upravljakim ulazom S / R : 0 rotacija, 1 posmak; vidi sliku),
D bistabil te multipleksor 2/1. Samo njihovom uporabom Sin
projektirati etverobitni posmani registar istih mogunosti.
S/R CP
Q 3 Q2 Q1 Q0
0 Q2 Q1 Q0 D Q
Sin 1
Sin
CP
S/R CP
S/R 1
CP
Registri. 243
ZADACI ZA VJEBU
Za b) dio zadatka K-tablicama pronai minimalni oblik funkcija Sin svakog registra.
2. Nacrtati potpuni dijagram prijelaza stanja 4-bitnog posmanog registra udesno. Registar
ima serijski ulaz, paralelne izlaze te na svaki padajui brid CP-a obavlja posmak
udesno. Napisati ponaajni model ovog sklopa u VHDL-u.
3. Na raspolaganju je posmani registar sa serijskim ulazom i paralelnim izlazima.
Njegovom uporabom projektirati sekvencijski sklop koji na izlazu cikliki generira
slijed 0,1,1,0,0,1,1,1. Na raspolaganju su jo i osnovni logiki sklopovi.
4. Na raspolaganju je 3-bitni registar s paralelnim ulazima i paralelnim izlazima.
Njegovom uporabom projektirati sekvencijski sklop koji na izlazu cikliki generira
slijed 0,1,3,2,6,7,5,4.
Brojila. 245
11. Brojila.
11.1. Zadatak
B0 B1 B2
J Q J Q J Q
CP CP CP CP
K Q K Q K Q
Kako imamo brojilo od 3 bistabila, ukupan broj stanja kroz koja bistabili prolaze jest
upravo 8 (=23). Obzirom da moramo nakon svakih 8 impulsa na izlazu generirati 1, to
upravo znai da moemo detektirati jedno od 8 stanja. Naime, ako npr. generiramo
jedinicu kada se na izlazu brojila pojavi 6, do sljedeeg pojavljivanja broja 6 opet e
proi osam otkucaja takta.
Dodatni uvjet zadatka zahtjeva maksimalno brz odziv sklopa. Pogledajmo zato koliko
nam vremena treba da bismo detektirali broj 6 na izlazu. Kada brojilo prelazi sa 5 na 6,
mijenjaju se dva bita:
U trenutku kada doe impuls takta na ulaz bistabila B0, stanje tog bistabila se mijenja iz
1 u 0 nakon tdb. Zbog te promjene se nakon novih tdb mijenja stanje bistabila B1 iz 0 u 1
(tdb je vrijeme potrebno za promjenu stanja bistabila). Da bismo dekodirali stanje 6 (tj.
1102), odnosno minterm B2 B1 B0 :
B2 B1 B0 = B2 B1 B0 = NI (NI (B2 , B1 , B0 ))
(napomena: B0 ne treba ostvarivati NI sklopom jer iz svakog bistabila imamo izlaz i
njegov komplement) trebamo sklop:
B2
B1 & &
B0
246 Zbirka rijeenih zadataka
Ovaj sklop e za dekodiranje stanja 6 trebati jo 2 tdls (jedan za NI sklop koji mnoi
B2 , B1 i B0 , i jedan za zavrni invertor; tdls je vrijeme potrebno da rezultat proe na
izlaz logikog sklopa), pa e ukupno vrijeme potrebno za dekodiranje ovog stanja biti:
t dek 6 = 2 t db + 2 t dls
Pitanje je da li se to moe obaviti i bre. Pogledajmo sva mogua stanja koja moemo
dekodirati i koliko je to brzo mogue:
& & m7
B B B2
J 0Q J 1Q J Q
CP CP CP CP
K Q K Q K Q
Brojila. 247
11.2. Zadatak
Ako brojilo mora proi kroz N stanja, mora vrijediti N 2 n , gdje je n broj bistabila.
Ova jednadba ima beskonano mnogo rjeenja, ali mi emo naravno uzeti najmanji
mogui n koji je zadovoljava, pa je time rjeenje jednoznano. Za N=12 traeni n je 4,
jer je upravo 12 2 4 = 16 .
Kada se aktivira asinkroni ulaz za postavljanje, brojilo prelazi u stanje "sve jedinice", tj.
etiri-bitno brojilo prelazi u stanje 1111(2) = 15, to traje do sljedeeg impulsa CP. No
kako je stanje 15 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo
kroz koja jo stanja brojilo mora prolaziti:
postaviti u 15
150123456789101112131415
12 stanja
D0 D1 D2 D3
&
Sd Sd Sd Sd
J Q J Q J Q J Q
CP CP B0 CP B1 CP B2 CP B3
K Q K Q K Q K Q
Cd Cd Cd Cd
Vremenska analiza
Vee od ova dva vremena je prvo, pa je maksimalna frekvencija rada sklopa odreena
recipronom vrijednou sume prvog vremena i vremena potrebnog za oitavanje
stanja:
1 1
f max = = = 10 MHz
80ns + 20ns 100ns
Kada se aktivira asinkroni ulaz za brisanje, brojilo prelazi u stanje "sve nule", tj. etiri-
bitno brojilo prelazi u stanje 0000(2) = 0, to traje do sljedeeg impulsa CP. No kako je
stanje 0 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo kroz koja
jo stanja brojilo mora prolaziti:
postaviti u 0
01234567891011121314150
12 stanja
Na prethodnom dijagramu vidimo kada treba djelovati na ulaze za brisanje: kada brojilo
doe do broja 12 (to je zapravo N), brojilo je potrebno prebaciti u stanje 0. Stanje 12
moe se potpuno dekodirati (4 ulazni I sklop). Meutim, u ovom sluaju (kada se
koriste brojila koja broje unaprijed i ulaz za brisanje) dovoljno je na ulaze NI sklopa
dovesti one izlaze brojila koji su u stanju koje dekodiramo postavljeni na 1. Dakle, kod
dekodiranja stanja 12 = 1100(2) na ulaze NI sklopa dovodimo izlaze B3 i B2. Sklop je
sljedei:
250 Zbirka rijeenih zadataka
D0 D1 D2 D3
Sd Sd Sd Sd
J Q J Q J Q J Q
CP CP B0 CP B1 CP B2 CP B3
K Q K Q K Q K Q
Cd Cd Cd Cd
&
Analiziramo li malo bolje ovaj sklop, uoiti emo da bi sklop mogao imati problema u
radu. Naime, u trenutku kada sklop doe u stanje 12, aktivira se ulaz za brisanje. No
kako bistabili openito nisu identini, mogue je da npr. bistabil B3 ode u nulu puno
prije bistabila B2. No im B3 ode u nulu, stanje vie nije 12 (1100(2)), ve 4 (0100(2)).
Zbog toga sklop za detekciju stanja 12 prestaje biti aktivan te je mogue da bistabil B2
ostane i dalje postavljen, jer je signal za reset trajao prekratko. Kako bi se ovo izbjeglo,
moe se uporabom jo dva NI sklopa ostvariti bistabil koji e se resetirati na signal za
reset, a postaviti u neaktivno stanje signalom takta, kao to je prikazano na slici:
D0 D1 D2 D3
Sd Sd Sd Sd
J Q J Q J Q J Q
CP CP B0 CP B1 CP B2 CP B3
K Q K Q K Q K Q
Cd Cd Cd Cd
R Q
& &
& &
S Q
Kod ove izvedbe, ak i ako se npr. B3 resetira puno ranije od B2, to e za posljedicu
imati prestanak djelovanja signala koji detektira stanje 12, signal za reset e i dalje
djelovati jer je on pohranjen u bistabilu koji e se postaviti u neaktivno stanje (1) tek
kada CP postane 1 (CP djeluje sa 1 jer ga naknadno dodatni NI sklop invertira).
Brojila. 251
vee od toitanja. Zbog toga uzimamo TCP = 2 t x = 2 110 = 220 ns, to je definitivno
najvee dobiveno vrijeme koje zbog toga odreuje maksimalnu frekvenciju sklopa:
1 1
f max = = = 4,55MHz
TCP 220ns
Treba meutim primjetiti da ovo ipak nije najvea mogua frekvencija rada sklopa.
Naime, da bi CP postavio pomoni bistabil u 1, njemu treba 1 t dls (za prolaz kroz
invertor) i 1 t dls za postavljanje izlaza pomonog bistabila u 1, to je ukupno 2 t dls . No
tada bi (teoretski) CP mogao prei u 1 ak i u trenutku t x 2 t dls (jer e se bistabili
brojila u trenutku tx resetirati, pa se pomoni bistabil smije postaviti u 1 ve u trenutku
tx). Ovime bi se moda mogla poveati maksimalna frekvencija rada, meutim, ovakav
proraun vrijedi uz pretpostavku da e se svi bistabili resetirati upravo nakon 1 t db . No
pomoni bistabil smo i uveli jer nismo mogli garantirati da e ovo biti uvijek ispunjeno,
pa na ovaj nain neemo raditi.
Dodatak zadatku: smijemo li prilikom uporabe brojila koji broji unaprijed dekodirati
samo jedinice u svrhu resetiranja brojila? Pogledajmo sluaj koji smo imali u b) dijelu
zadatka, i minimizirajmo sklop za dekodiranje stanja 12. Brojilo u ovom sluaju broji:
01...91011(12)0. Ovo znai da se stanja 13, 14 i 15 nikada nee
pojaviti, pa ih moemo oznaiti kao dont-care minterme. Postupak minimizacije daje:
D3D2
00 01 11 10
D1D0 00 0 0 1 0 D3 D2
01 0 0 0
11 0 0 0
10 0 0 0
ime su upravo izbaeni oni lanovi koji su bili nula. No to vrijedi upravo zato to
dekodiramo najvei dozvoljeni broj. Ako bismo eljeli dekodirati stanja u svrhu
postavljanja brojila u stanje "sve jedan", ovakvo razmiljanje ne bi vrijedilo (npr. a) dio
zadatka; dekodiramo 11, ali brojilo prelazi u 15 pa nije istina da su sva stanja vea od
11 dont-care stanja).
Za vjebu:
11.3. Zadatak
D0 D1 D2
B0 B1 B2
J Q J Q J Q
CP CP CP
K Q K Q K Q
1
CP
&
11.4. Zadatak
Realizirati sinkrono trobitno binarno brojilo koje broji u Grayevom kodu uporabom
dvostrukih JK bistabila, i potrebnog broja osnovnih logikih sklopova.
n n+1
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0 0 1
0 0 1 0 1 1 0 1 0
0 1 1 0 1 0 0 0 1
0 1 0 1 1 0 1 0 0
1 1 0 1 1 1 0 0 1
1 1 1 1 0 1 0 1 0
1 0 1 1 0 0 0 0 1
1 0 0 0 0 0 1 0 0
J2 Q1Q0 K2 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 1 Q2 0
1 1 1
254 Zbirka rijeenih zadataka
J1 Q1Q0 K1 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 1 Q2 0
1 1 1
J0 Q1Q0 K0 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 1 Q2 0 1
1 1 1 1
J 2 = Q1Q0
K 2 = Q1Q0
J1 = Q2Q0
K1 = Q2Q0
J 0 = Q2Q1 + Q2Q1
K 0 = Q2Q1 + Q2Q1
D0 D1 D2
&
B B B
& 1 J 0 Q & J 1 Q & J 2 Q
CP CP CP
& 1 K Q & K Q & K Q
&
CP
11.5. Zadatak
n n+1
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 1 0 0 1 0 0
0 0 1 1 0 1 1 0 0
0 1 0 0 0 0 0 1 0
0 1 1 0 0 0 0 1 1
1 0 0 0 0 1 1 0 1
1 0 1 1 1 1 0 1 0
1 1 0 0 0 0 1 1 0
1 1 1 0 0 0 1 1 1
J2 Q1Q0 K2 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 1 1 Q2 0
1 1 1 1 1
J1 Q1Q0 K1 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 Q2 0 1 1
1 1 1 1 1
J0 Q1Q0 K0 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 Q2 0 1
1 1 1 1
J 2 = Q1
K 2 = Q1 + Q0
J 1 = Q2 Q0
K1 = 1
J 0 = Q2 Q1
K 0 = Q1
Shema sklopa:
256 Zbirka rijeenih zadataka
D0 D1 D2
B B B
& J 0 Q & J 1 Q J 2 Q
CP CP CP
K Q 1 K Q 1 K Q
CP
11.6. Zadatak
J2 Q1Q0 K2 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 1 1 Q2 0
1 1 1 1
Brojila. 257
J1 Q1Q0 K1 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 Q2 0
1 1 1 1
J0 Q1Q0 K0 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 Q2 0
1 1 1 1
Shema sklopa:
D0 D1 D2
J Q & J Q 1 J Q
CP CP CP
K Q 1 K Q 1 K Q
CP
Ako je sklop u stanju 2: Q2 Q1Q0 = 010 . J2=1, K2=1, J1=0, K1=1, J0=0 i K0=1, zbog ega
e nakon djelovanja impulsa takta brojilo promijeniti stanje u Q2 Q1Q0 = 100 , to je
stanje 4.
Ako je sklop u stanju 3: Q2Q1Q0 = 011 . J2=1, K2=1, J1=0, K1=1, J0=0 i K0=1, zbog ega
e nakon djelovanja impulsa takta brojilo promijeniti stanje u Q2 Q1Q0 = 100 , to je
stanje 4.
Ako je sklop u stanju 6: Q2 Q1Q0 = 110 . J2=1, K2=1, J1=0, K1=1, J0=1 i K0=1, zbog ega
e nakon djelovanja impulsa takta brojilo promijeniti stanje u Q2 Q1Q0 = 001 , to je
stanje 1.
Dakle, i ovako realiziran sklop e nakon prvog koraka sigurno ui u ciklus brojenja.
Mogue loa stvar je injenica da je ulazak u ciklus brojenja iz nespecificiranih stanja
na razliita mjesta.
258 Zbirka rijeenih zadataka
11.7. Zadatak
Projektirati trobitno asinkrono brojilo koje broji u ciklusu sa 7 stanja. Analizirati da li sklop
radi ispravno i predloiti rjeenje uoenog problema. Za realizaciju brojila koristiti T bistabile
s ulazom za postavljanje stanja.
Ako koristimo ulaze za postavljanje, tada je stanje 111(2)7 sigurno dio ciklusa brojanja
jer djelovanjem na ove ulaze sklop odlazi u to stanje. Kako nam treba jo 6 stanja,
kompletan ciklus brojanja biti e:
7 0 1 2 3 4 5 (6) 7
D0 D1 D2
&
Sd Sd Sd
1 T Q 1 T Q 1 T Q
B0 B1 B2
ulaz CP CP CP
Q Q Q
Nailaskom sljedeeg padajueg brida na ulazu brojila opet se pokree promjena stanja
bistabila B0, koja se i dogodi nakon tdb, pa brojilo iz stanja 1 ulazi u stanje 0. No kako
se je sada uslijed pada izlaza B0 sa 1 na 0 dogodio padajui brid, pokree se promjena
stanja bistabila B1, koja se dogodi nakon jo jednog tdb. Time brojilo iz kratkotrajnog
prijelaznog stanja 0 prelazi u stanje 2. Kako se je u tom trenutku na izlazu B1 dogodio
rastui brid, nema nikakvog utjecaja na bistabil B2 pa je ovo stabilno stanje. Na slian se
nain mogu analizirati i ostala stanja.
CP
Q0
Q1
Q2
0 0 20 4
4 6 7 0 1 0 2 3
1 2 3 5
6 4
Postoji vie naina kako rijeiti ovaj problem. U nastavku e biti opisana dva. Prvi nain
rjeavanja problema je dovoenje dodatnog signala X na NI sklop, pri emu je signal X
definiran na sljedei nain: X je 0 od trenutka
padajueg brida (oznaimo to vrijeme sa tp) CP
ulaznog signala minus vrijeme kanjenja
logikog sklopa, dakle od tp-tdls, pa do trenutka t
dok ne zavre sve prijelazne pojave unutar
X
brojila plus vrijeme kanjenja logikog sklopa:
tp+3*tdb+tdls, dok je u svim ostalim trenucima
1. Evo kako ovo rjeava problem. U trenutku t
kada zaponu prijelazne pojave signal X
postaje 0. Zbog toga u trenutku kada brojilo iz
stanja 7 ue u prijelazno stanje 6 sklop za Maskiranje prijelaznih pojava
260 Zbirka rijeenih zadataka
detekciju stanja 6 nee reagirati jer ga signal X inhibira. Tek kada zavre sve prijelazne
pojave, X e postati 1 i tada e sklop NI moi reagirati. Meutim, kako smo sada u
stabilnom stanju 0, sklop nee reagirati, i problem je rijeen. Negativna posljedica
ovakvog rjeenja je kasna reakcija na stvarno stanje 6. Naime, bez ove modifikacije
sklop je detektirao stanje 6 nakon 1*tdb+1*tdls i postavio signal za postavljanje svih
bistabila. Sa modifikacijom sklop za detekciju stanja 6 reagirati e tek kada mu to X
dozvoli, a to je nakon (3*tdb+1*tdls)+1*tdls, to e rezultirati znaajno duljim ostankom u
nedozvoljenom stanju 6. Alternativa prethodnom rjeenju je uporaba ulaznog signala
kao signala X (tako da nam ne treba jo jedan generator novog signala), ali tada treba
uzeti u obzir da ulazni signal mora biti takvog oblika da vrijeme tijekom kojega je u nuli
bude dovoljno dugo da maskira sve prijelazne pojave kao to je to radio signal X opisan
prethodno.
11.8. Zadatak
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
ENTITY C74LS163 IS
PORT ( CLK, CLR, LD : IN STD_LOGIC;
ENP, ENT : IN STD_LOGIC;
D : IN UNSIGNED (3 DOWNTO 0);
Q : OUT UNSIGNED (3 DOWNTO 0);
RCO : OUT STD_LOGIC );
END C74LS163;
IQ <= IQ +1;
END IF;
END IF ;
IF (IQ=15) AND (ENT='1') THEN
RCO <='1';
ELSE
RCO <= '0';
END IF;
Q <= IQ;
END PROCESS;
END C74LS163_ARCH;
11.9. Zadatak
Minimizacijom slijedi:
S3 = Q2 , R3 = Q2
S 2 = Q1 , R2 = Q1
S1 = Q0 , R1 = Q0
S 0 = Q3 , R0 = Q3
262 Zbirka rijeenih zadataka
Q Q Q Q
Q Q Q Q
Prilikom dekodiranja stanja Q3 je promatran kao bit najvee, a Q0 kao bit najmanje
teine.
11.10. Zadatak
Minimizacijom slijedi:
S3 = Q2 , R3 = Q2
S 2 = Q1 , R2 = Q1
S1 = Q0 , R1 = Q0
S 0 = Q3 , R0 = Q3
Q Q Q Q
Q Q Q Q
Zbog specifine realizacije, sklop je poznat i pod nazivom brojilo s ukrtenim prstenom.
Prilikom dekodiranja stanja Q3 je promatran kao bit najvee, a Q0 kao bit najmanje
teine.
ZADACI ZA VJEBU
Q Q 1 Q
Q Q Q
Strojevi s konanim brojem stanja. 265
Kod Mooreovog automata prijelaz u novo stanje funkcija je trenutnog stanja i pristiglog
znaka, a izlaz samo funkcija trenutnog stanja. Grafiki je automat prikazan na slici.
Zatim napiemo tablicu prijelaza stanja. Sa I emo oznaiti znak koji je pristigao na ulaz
automata.
Y Q0I
00 01 11 10
Q1 0
1 1 1
D1 Q0I D0 Q0I
00 01 11 10 00 01 11 10
Q1 0 1 Q1 0 1
1 1 1 1 1 1 1 1
Y = Q1Q0
D1 = Q0 + Q1 I + Q1 I
D0 = Q1 I + Q0 I
& Y
& &
1 B0 1 B1
D Q D Q
& &
CP CP
Q Q
I
1
CP
Strojevi s konanim brojem stanja. 267
12.2. Zadatak
Na slici je prikazan sklop koji oitava pritisak na jednostavnu tipkovnicu sastavljenu od triju
tipaka. U ovisnosti o pritisnutoj tipki, izlaz sklopa odreen je tablicom i traje tako dugo dok je
tipka pritisnuta. Pretpostaviti da se ne moe dogoditi situacija da vie tipaka bude pritisnuto
istovremeno, te da nakon svakog pritiska tipke slijedi period u kojem niti jedna tipka nije
pritisnuta. Izlazi sklopa mijenjaju se u skladu sa signalom takta.
I1 I0 Znaenje I1
ita
0 0 Pritisnuta je tipka A tipkovnice
0 1 Pritisnuta je tipka B I0
1 0 Pritisnuta je tipka C
1 1 Nije pritisnuta niti jedna tipka
CP
I1
O1
ita I0 Izlazni
Kombinacijski dio O0
tipkovnice registar
KA
Sekvencijski dio
CP
Mealyjev automat na temelju trenutnih ulaza i trenutnog stanja odreuje novo stanje
u koje e prijei i izlaz koji e se generirati. Budui su izlazi funkcija stanja i ulaza,
kako asinkrona promjena ulaza ne bi djelovala na izlaze, izlazi se pamte uporabom
dodatnog registra. Signal takta vodi se na sekvencijski dio sklopa kao i na izlazni
registar.
na svaki otkucaj signala takta. Ako u stanju S0 doe sa ulaza kombinacija 11, automat
ostaje u stanju S0, na izlaze O1O0 postavlja 00, a na KA takoer 0. Ako sa ulaza doe
kod 00, znai da je upravo pritisnuta tipka A, pa se sa sljedeim otkucajem signala takta
prelazi u stanje S1 a na izlaze O1O0 postavlja 00 (kd pritisnute tipke). Na izlaz KA
postavlja se 1, to znai da je pritisnuta tipka. Ukoliko se tipka odmah otpusti,
nailaskom sljedeeg impulsa takta automat se vraa u stanje S0 i ponitava izlaze, dok u
sluaju da tipka ostane pritisnuta due vrijeme prelazi u stanje S2 pri emu se takoer
ponitavaju izlazi i u tom stanju se eka otputanje tipke.
11/00,0
00/00,1
11/00,0 S0 01/01,1 S1
10/10,1
00,01,10/00,0
11/00,0
S2
00,01,10/00,0 I1I0/O1O0,KA
Jednom kada smo opisali automat moemo krenuti u postupak realiziranja istoga.
Koraci su sljedei.
Budui da imamo tri stanja, dovoljna su nam dva bistabila. Koristiti emo JK bistabile,
a stanja emo kodirati na sljedei nain:
10,11
0x 0 1 x0
01,11 J,K
O1 = Q1Q0 I 1 I 0
O0 = Q1Q0 I 1 I 0
KA = Q1Q0 (I 1 + I 0 )
J 1 = Q0 (I 1 + I 0 )
K1 = I 1 I 0
J 0 = Q1 (I 1 + I 0 )
K0 = 1
1 &
I1 1 D0 Q0 O1
&
D1 Q1 O0
ita I0 1 & D2 Q2 KA
tipkovnice
CP
B1 B0
& J Q & J Q
CP CP
& K Q 1 K Q
CP
12.3. Zadatak
Na slici je prikazan sklop koji oitava pritisak na jednostavnu tipkovnicu sastavljenu od triju
tipaka. U ovisnosti o pritisnutoj tipki, izlaz sklopa odreen je tablicom i traje tako dugo dok je
tipka pritisnuta. Pretpostaviti da se ne moe dogoditi situacija da vie tipaka bude pritisnuto
istovremeno, te da nakon svakog pritiska tipke slijedi period u kojem niti jedna tipka nije
pritisnuta. Izlazi sklopa mijenjaju se u skladu sa signalom takta.
I1 I0 Znaenje
I1
0 0 Pritisnuta je tipka A ita
0 1 Pritisnuta je tipka B tipkovnice
1 0 Pritisnuta je tipka C I0
1 1 Nije pritisnuta niti jedna tipka
I1
O1
Sekvencijski dio Kombinacijski O0
dio KA
CP
11
S0
11 [00,0]
11
00
11
01 10
S1 S2 11 S3
[00,1] [01,1] [10,1]
00,
01, 00,01,10
00,01,10
10
S4 [O1O0,KA]
[00,0]
I1I0
00,01,10
Poetno stanje je S0. U tom stanju eka se na pritisak bilo koje tipke. Ukoliko se
pritisne tipka A (kd 00) ide se u stanje S1 i postavlja odgovarajui izlaz, ukoliko se
pritisne tipka B (kd 01) ide se u stanje S2 i postavlja odgovarajui izlaz a ako se
pritisne tipka C (kd 10) ide se u stanje S3 i postavlja odgovarajui izlaz. Na sljedei
impuls takta odmah se prelazi ili u stanje S0 ili u stanje S4 gdje se eka na otputanje
tipke. Usporedimo li ovaj Mooreov automat sa prethodnim Mealyjevim, vidimo da je
osnovna razlika u opisivanju ponaanja u trenutku kada se pritisne tipka. Mealyjev
automat vezao je izlaze uz prijelaze, pa je sve tri tipke mogao opisati prijelazom u jedno
novo stanje uz odgovarajui izlaz. Mooreov automat izlaz vee iskljuivo uz stanje, pa
za svaku tipku mora generirati novo stanje sa odgovarajuim izlazom.
Postupak realizacije sklopa isti je kao i kod Mealyjevog automata. Najprije odreujemo
potreban broj bistabila. Kako imamo 5 stanja, trebamo minimalno 3 bistabila. Zatim
kodiramo stanja. Npr.:
272 Zbirka rijeenih zadataka
Izlazi za
Trenutno stanje i pobuda Sljedee stanje Potrebna pobuda bistabila
trenutno stanju
Q2 Q1 Q0 I1 I0 Q2 Q1 Q0 O1 O0 KA J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 1 0 0 0 0 x 0 x 1 x
0 0 0 0 1 0 1 0 0 0 0 0 x 1 x 0 x
0 0 0 1 0 0 1 1 0 0 0 0 x 1 x 1 x
0 0 0 1 1 0 0 0 0 0 0 0 x 0 x 0 x
0 0 1 0 0 1 0 0 0 0 1 1 x 0 x x 1
0 0 1 0 1 1 0 0 0 0 1 1 x 0 x x 1
0 0 1 1 0 1 0 0 0 0 1 1 x 0 x x 1
0 0 1 1 1 0 0 0 0 0 1 0 x 0 x x 1
0 1 0 0 0 1 0 0 0 1 1 1 x x 1 0 x
0 1 0 0 1 1 0 0 0 1 1 1 x x 1 0 x
0 1 0 1 0 1 0 0 0 1 1 1 x x 1 0 x
0 1 0 1 1 0 0 0 0 1 1 0 x x 1 0 x
0 1 1 0 0 1 0 0 1 0 1 1 x x 1 x 1
0 1 1 0 1 1 0 0 1 0 1 1 x x 1 x 1
0 1 1 1 0 1 0 0 1 0 1 1 x x 1 x 1
0 1 1 1 1 0 0 0 1 0 1 0 x x 1 x 1
1 0 0 0 0 1 0 0 0 0 0 x 0 0 x 0 x
1 0 0 0 1 1 0 0 0 0 0 x 0 0 x 0 x
1 0 0 1 0 1 0 0 0 0 0 x 0 0 x 0 x
1 0 0 1 1 0 0 0 0 0 0 x 1 0 x 0 x
1 0 1 0 0 x x x x x x x x x x x x
1 0 1 0 1 x x x x x x x x x x x x
1 0 1 1 0 x x x x x x x x x x x x
1 0 1 1 1 x x x x x x x x x x x x
1 1 0 0 0 x x x x x x x x x x x x
1 1 0 0 1 x x x x x x x x x x x x
1 1 0 1 0 x x x x x x x x x x x x
1 1 0 1 1 x x x x x x x x x x x x
1 1 1 0 0 x x x x x x x x x x x x
1 1 1 0 1 x x x x x x x x x x x x
1 1 1 1 0 x x x x x x x x x x x x
1 1 1 1 1 x x x x x x x x x x x x
Potrebna pobuda bistabila je funkcija od trenutnih stanja i ulaza. Izlazi su funkcija samo
od trenutnog stanja. Za potrebe minimizacije mogu se i izlazi promatrati kao funkcija od
trenutnih stanja i ulaza, meutim, nakon minimizacije trenutni ulazi ne smiju se
pojavljivati u jednadbama koje opisuju izlaze! Ukoliko se pojave, to znai da nije rije
o Mooreovom automatu (odnosno, budui da smo tablicu generirali iz Mooreovog
automata, znai da je nastala pogreka ili kod popunjavanja tablice, ili kod
minimizacije). Nakon minimizacije funkcija i faktorizacije dobiva se:
O1 = Q1Q0
O0 = Q1Q0
Strojevi s konanim brojem stanja. 273
KA = Q1 + Q0
J 2 = (Q1 + Q0 )(I1 + I 0 )
K 2 = I1 I 0
J1 = Q2Q0 (I1 I 0 )
K1 = 1
J 0 = Q2Q1 I 0
K0 = 1
& O1
1
I1 O0
&
ita
1 KA
tipkovnice
I0 1
1 B =1 B B
& J 2 Q & J 1 Q & J 0 Q
1 CP CP CP
& K Q 1 K Q 1 K Q
CP
12.4. Zadatak
Na ulaz sekvencijskog sklopa sinkrono sa svakim signalom takta dolazi jedna binarna
znamenka (alje se binarni broj poevi od bita najvee teine).
a) Konstruirati Mealyjev automat koji rauna rezultat dijeljenja tog broja sa pet.
Implementirati automat uporabom D bistabila.
b) Konstruirati Mooreov automat koji rauna rezultat dijeljenja tog broja sa pet.
Prisjetimo se naina na koji dijelimo binarne (odnosno u bilo kojoj bazi) brojeve sa
nekim brojem X. Traimo od poetka onoliki broj znamenki koji e dati broj vei od
broja X. Odreujemo koliko puta je taj broj vei od broja X (i to dajemo kao prvu
znamenku rezultata) a pamtimo ostatak dijeljenja Z. Zatim od broja X opet uzimamo
(sputamo) toliko znamenki (i dopisujemo ih broju Z) koliko je potrebno da Z opet
postane vei od X kako bismo ga mogli podijeliti. Ako radimo sa binarnim brojevima,
postupak je vrlo jednostavan jer rezultat parcijalnog dijeljenja moe biti ili 0 ili 1.
0/0
S1 S2
1/1
1/0 0/0
1/0
1/1
0/0 S0 S4 1/1
0/1
0/1
S3
Neka stanje Si odgovara ostatku i. Ako je npr. trenutni ostatak dijeljenja broja s 5 jednak
4, i sputamo znamenku 0, dobivamo broj 1000(2)8, pa je rezultat dijeljenja 1, a novi
ostatak 3 (pa se prelazi u stanje S3 uz izlaz 1), a ako sputamo znamenku 1, dobivamo
broj 1001(2)9, pa je rezultat dijeljenja 1, a novi ostatak 4 (te se prelazi u stanje S4 uz
izlaz 1). Na isti nain mogu se analizirati i svi ostali prijelazi.
O = Q2Q1Q0 + Q0 (Q2 + I )
D2 = Q2Q0 I + Q0 (Q2 + I )
D1 = Q1Q0 + (Q2 I )
D0 = I (Q1 Q0 ) + I (Q1Q0 + Q2 ) + Q2Q1
Strojevi s konanim brojem stanja. 275
1
&
1 O
I
&
1
=1 &
B =1 B & B
& 1 & 1 D 0Q 1 D 1Q 1 D 2Q
& &
& CP CP 1 CP
Q Q Q
CP
b) Mooreov automat.
Mooreov automat koji rjeava zadani problem u ovom e sluaju imati dvostruki broj
stanja. Naime, pogledajmo Mealyjev automat iz a) dijela zadatka. Iz stanja S1 sa
ulazom 1 idemo u S3 i na izlazu dajemo 0. Iz stanja S4 sa ulazom 0 idemo takoer u
stanje S3 ali sada na izlazu dajemo 1. No budui da kod Mooreovog automata izlaz
ovisi iskljuivo o trenutnom stanju, tada u S3 moramo dati ili 0 ili 1 to nee biti u
skladu s potrebnim ponaanjem automata. Zbog toga stanje S3 cijepamo (u najgorem
sluaju) u onoliko stanja koliko ima razliitih izlaza koje treba dati. Slino razmatranje
moemo provesti za sva ostala stanja. Automat koji emo tako dobiti jest:
0
S1 S2
[0] 1 0 [0]
0
1 1
S1' S2'
[1] 1 [1]
1 1 0
1
S0 S3 1 S4
0 [0] 0 [0] [0]
0 0 1
0 S3'
[1]
S0' S4'
0
[1] [1] 1
276 Zbirka rijeenih zadataka
Za vjebu.
12.5. Zadatak
Imamo etiri stanja pa nam trebaju minimalno dva bistabila. Kodirajmo stanja
Grayevim kodom: S000, S101, S211, S310.
Shema sklopa:
ULAZ
1 IZLAZ
& B B
1 T 1Q =1 T 0Q
& CP CP
Q Q
CP
Uoiti da e na ovaj nain konstruirani automat davati izlaz koji e za ulazom kasniti za
jedan otkucaj signala takta.
12.6. Zadatak
Registri su poseban sluaj strojeva s konanim brojem stanja. Naime, moe se rei da su
registri Mooreovi automati kod kojih je izlazna funkcija identitet. Drugim rijeima,
izlaz bistabila direktno je i izlaz sklopa - registra. Zbog toga se registri mogu projektirati
istim metodama kojima se projektiraju i strojevi s konanim brojem stanja.
REGISTRI
12.7. Zadatak
Brojila su poseban sluaj strojeva s konanim brojem stanja. Naime, moe se rei da su
brojila Mooreovi automati kod kojih je izlazna funkcija identitet. Drugim rijeima, izlaz
bistabila direktno je i izlaz sklopa - brojila. Zbog toga se brojila mogu projektirati istim
metodama kojima se projektiraju i strojevi s konanim brojem stanja.
278 Zbirka rijeenih zadataka
BROJILA
12.8. Zadatak
Minimizacijom slijedi:
T0 = 1
T1 = B0
T2 = B1 B0
T3 = B2 B1 B0
Ovo su ve poznati izrazi za paralelni prijenos kod binarnog brojila. Pokaimo sada da
se odavde direktno dobiju i izrazi za serijski prijenos. Uvedimo sljedee supstitucije:
S 0 = T0 = 1
Strojevi s konanim brojem stanja. 279
S1 = T1 = B0
S 2 = T2 = B1 B0 = B1 S1
S 3 = T3 = B2 B1 B0 = B2 S 2
12.9. Zadatak
Konstruirati sinkrono 3-bitno brojilo koje broji u binarnom (M=0) ili Grayevom (M=1) kodu.
Koristiti T bistabile. Nacrtati sklop (DZ).
Sinkrona brojila samo su specijalan sluaj Mooreovih automata (kod kojih je izlaz
jednak stanju) pa ih moemo projektirati na isti nain. Prikaimo najprije dijagram
promjene stanja.
1
1
1 S1 S2 S3
[001] 0 [010] 0 [011] 0
0
S0 1 1 S4
[000] 1 [100]
0 S7 0 S6 0 S5 0
[111] [110] [101]
1
1
Trenutno stanje i
Sljedee stanje Potrebna pobuda bistabila
pobuda
Q2 Q1 Q0 M Q2 Q1 Q0 T2 T1 T0
0 0 0 0 0 0 1 0 0 1
0 0 0 1 0 0 1 0 0 1
0 0 1 0 0 1 0 0 1 1
0 0 1 1 0 1 1 0 1 0
0 1 0 0 0 1 1 0 0 1
0 1 0 1 1 1 0 1 0 0
0 1 1 0 1 0 0 1 1 1
0 1 1 1 0 1 0 0 0 1
1 0 0 0 1 0 1 0 0 1
1 0 0 1 0 0 0 1 0 0
1 0 1 0 1 1 0 0 1 1
1 0 1 1 1 0 0 0 0 1
1 1 0 0 1 1 1 0 0 1
1 1 0 1 1 1 1 0 0 1
1 1 1 0 0 0 0 1 1 1
1 1 1 1 1 0 1 0 1 0
Za vjebu.
12.10. Zadatak
Konstruirati sinkrono brojilo koje broji u ciklusu sa 10 stanja. Za prekid ciklusa koristiti
sinkrone ulaze za resetiranje bistabila. Sklop ostvariti uporabom T bistabila.
1 2 3 4
0 5
9 8 7 6
Potrebno je dakle detektirati stanje 1001(2)=9, i tada djelovati na sinkrone ulaze za reset.
Uoiti da se ulaskom u stanje 9 sklop nee odmah resetirati jer sinkroni ulazi za reset
djeluju tek kada im to signal takta dopusti (to znai nailaskom sljedeeg impulsa takta
sklop nee otii u stanje 10 ve e se resetirati).
Kako su stanja 10, 11, 12, 13, 14 i 15 dontcare stanja (jer se ne koriste za brojanje),
funkciju reseta moemo napisati kao:
Uoiti da u tablici za stanje 9 pie da je sljedee stanje 10, ali se istovremeno signal R
postavlja u 1. Budui da signal R ima vei prioritet, iz stanja 9 brojilo e otii u stanje 0.
Razlog zbog kojeg u tablici stoji da e brojilo iz stanja 9 otii u stanje 10 jest bolja
minimizacija. Logiki izrazi koji opisuju ulaze Ti tj. pobudu bistabila bit e
jednostavniji. Nakon minimizacije dobije se:
T0 = 1
T1 = Q0
T2 = Q1Q0
T3 = Q2Q1Q0
R = Q3Q0
Shema sklopa:
D0 D1 D2 D3
B0 B1 B2 B3
1 T Q T Q & T Q & T Q
CP CP CP CP
Q Q Q Q
Cd Cd Cd Cd
&
CP
Ima li ovo brojilo siguran start? Nacrtajmo sada potpun dijagram prijelaza stanja.
282 Zbirka rijeenih zadataka
10 11
1 2 3 4
12 13 0 5
9 8 7 6
14 15
Ukoliko se brojilo nae u stanju 10 = 1010(2), sklop za reset nee djelovati i brojilo e se
resetirati tek kod sljedeeg stanja.
12.11. Zadatak
Projektirati sinkrono trobitno brojilo koje broji u Grayevom kodu uporabom D bistabila. Na
raspolaganju su jo samo osnovni logiki sklopovi. Ako je tdb=20 ns, tsetup=20 ns, tdls=10 ns,
odrediti maksimalnu frekvenciju rada sklopa. Pretpostaviti da svi osnovni logiki sklopovi
kasne jednako.
Slijedi:
D2 Q1Q0 D1 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 1 Q2 0 1 1 1
1 1 1 1 1 1
Strojevi s konanim brojem stanja. 283
D0 Q1Q0
00 01 11 10
Q2 0 1 1
1 1 1
D2 = Q2 Q0 + Q1Q0 D1 = Q2 Q0 + Q1Q0 D0 = Q2 Q1 + Q2 Q1
CP
12.12. Zadatak
1/0
Stroj s konanim brojem stanja zadan je slikom. O kojoj 0/1
se vrsti automata radi? Projektirati sklop i nacrtati logiku
shemu ako je bistabil B1 tipa D, a bistabil B0 tipa JK. S0 S1
1/0
Koristiti minimalni broj osnovnih logikih sklopova (I,
ILI, NE). Stanje Si kodirati binarnim zapisom dekadskog 0/0
broja i. 0/1
1/1
S2
Q1 Q0 I0 Q1 Q0 O D J K
0 0 0 1 0 1 1 0
S0
0 0 1 0 1 0 0 1
0 1 0 0 1 1 0 0
S1
0 1 1 0 0 0 0 1
1 0 0 0 0 0 0 0
S2
1 0 1 0 1 1 0 1
1 1 0
1 1 1
Minimizacijom se dobije:
J0 Q1Q0 J Q0I
00 01 11 10 00 01 11 10
Q2 0 Q1 0 1
1 1 1 1
K2 Q1Q0 J0 Q1Q0
00 01 11 10 00 01 11 10
Q2 0 Q2 0
1 1 1 1 1 1
Slijedi:
D = Q1Q0 I J =I K=I O = Q1 I + Q1 I
I 1
B B
J 0Q & D 1Q &
CP CP 1 O
&
K Q Q
Minimizacijom slijedi:
T2 : Q2Q1
00 01 11 10
Q0 0
1 1 1 Q0
Q2
Q1Q0 Q1
286 Zbirka rijeenih zadataka
T1 : Q2Q1
00 01 11 10
Q0 0
1 1 1 1 1 Q0
Q2
Q0 Q1
1
T0 : Q2Q1
00 01 11 10
Q0 0 1 1 1 1
1 1 1 1 1 Q0
Q2
Q1
Q1
O1: Q2Q1
00 01 11 10
Q0 0 1 1
1 1 1 Q0
Q2
Q1
Q2Q1Q0
O0 : Q2Q1
00 01 11 10
Q0 0 1
1 1 1 1 Q0
Q2
Q2Q0 Q1
Q1Q0
O1 = Q1 , O0 = Q2 Q0 + Q1Q0 + Q2 Q1Q0
T2 = Q1Q0 , T1 = Q0 , T0 = 1
Strojevi s konanim brojem stanja. 287
&
Q0 Q2
1 T Q T Q T Q
Q1
CP CP CP
Q Q Q
CP
&
& 1 O0
&
O1
Logiki blok FPGA sastoji se od dvoulaznog LUT-a na iji je izlaz spojen ulaz D bistabila te
od multipleksora koji odreuje da li se na izlaz logiki blok proputa izlaz LUTa ili izlaz
bistabila. Nacrtati logiki blok. Uporabom minimalnog broja logikih blokova projektirati i
prikazati sekvencijski sklop koji cikliki na izlazu generira niz 0, 5, 4, 6. Veze izmeu
logikih blokova mogu se crtati direktno (nije potrebno crtati programirljive sklopke).
A
B
?
0
? f
D Q 1
? CP S
Q
?
CP
Umjesto da sada vrimo minimizaciju, uoimo kako su sve funkcije ovise o samo dvije
varijable: Q1 i Q0. LUT-ovi koje imamo na raspolaganju upravo omoguavaju direktnu
realizaciju bilo svake funkcije od dvije varijable, pa vrijednosti u stupcima ispod
pojedine funkcije moemo direktno upisati u LUT onog logikog bloka koji e
realizirati dotinu funkciju.
Kako ne bismo svaki puta crtali internu strukturu logikog bloka, uvest emo
pojednostavljen prikaz istog, gdje emo naznaiti samo programabilne dijelove. Isto
tako, uoimo da se logiki blok moe ponaati kao kombinacijski element (ukoliko je
s=0) gdje se izlaz iz LUT-a direktno proputa na izlaz logikog bloka, ili pak kao
sekvencijski element, odnosno bistabil (ukoliko je s=1), gdje se izlaz bistabila proputa
na izlaz logikog bloka, a LUT se koristi za definiranje funkcije koja odreuje pobudu
bistabila. U svrhu pojednostavljenja takoer neemo crtati nain prospajanja linija, ve
emo veze crtati direktno.
Kako bismo rjeili zadatak, trebamo dakle dva "bistabila" (logike blokove sa s=1) i tri
kombinacijska sklopa (logike blokove sa s=0) koji definiraju izlaze. Rjeenje je
prikazano na slici.
A A
0 0
B B
1 Q1 1
O2
1 1
0 s= 1 1 s= 0
A A
1 0
B B
0 Q0 0
O1
1 0
0 s= 1 1 s= 0
A
0
B
1
O0
0
0 s= 0
0 1 1 2 3 5
Analizom ciklusa vidimo da je duljina ciklusa jednaka 6. Trebat emo, dakle, barem tri
bistabila (pa e dva stanja ostati neiskoritena). Kako se u ciklusu postoji "stanje" koje
se javlja vie od jedanput, oito ne moemo projektirati brojilo, ve radimo stroj s
konanim brojem stanja. Tablica prijelaza stanja prikazana je u nstavku:
Q2Q0
D2 : Q2Q1
00 01 11 10
Q0 0 1
1 1 Q0
Q2
Q1Q0 Q1
290 Zbirka rijeenih zadataka
Q1Q0
D1: Q2Q1
00 01 11 10
Q0 0 1
1 1 Q0
Q2
Q2Q1Q0 Q1
Q0
D0 : Q2Q1
00 01 11 10
Q0 0 1 1 1
1 Q0
Q2
Q1
O2: Q2Q1
00 01 11 10
Q0 0
1 1 Q0
Q2
Q1 Q2Q0
Q2Q0
O1 : Q2Q1
00 01 11 10
Q0 0 1
1 1 Q0
Q2
Q1Q0 Q1
Strojevi s konanim brojem stanja. 291
Q1Q0
O0 : Q2Q1
00 01 11 10
Q2
Q0 0 1 1
1 1 1 Q0
Q2
Q1Q0 Q1
Slijedi:
D2 = Q1Q0 + Q2 Q0
D1 = B1 B0 + B2 B1 B0
D 0 = B0
O2 = Q2 Q0
O1 = Q2 Q0 + Q1Q0
O0 = Q1Q0 + Q1Q0 + Q2
Za sluaj B2B1B0=110 prethodni izrazi daju: D2=1, D1=1, D0=1. Dakle, iz ovog stanja
sklop e otii u stanje 111, koje takoer ne pripada zadanom ciklusu.
Za sluaj B2B1B0=111 prethodni izrazi daju: D2=1, D1=0, D0=0. Dakle, iz ovog stanja
sklop e otii u stanje 100, a to stanje pripada zadanom ciklusu.
Kako smo ovime provjerili sva nespecificirana stanja, sklop e oito raditi ispravno (uz
najvie dva neispravna stanja na poetku rada).
Uporabom D bistabila realizirati sinkrono trobitno brojilo koje broji ovisno o signalu d: ako je
d=1, tada nn+1 inae nn-2. Sklop treba imati i sinkroni ulaz za brisanje c (koji bistabili
nemaju). Koristiti minimalni broj osnovnih logikih sklopova.
Upravljaki
Trenutno stanje Sljedee stanje Potrebna pobuda
signali
c d Q2 Q1 Q0 Q2 Q1 Q0 D2 D1 D0
0 0 0 0 0 1 1 0 1 1 0
0 0 0 0 1 1 1 1 1 1 1
0 0 0 1 0 0 0 0 0 0 0
0 0 0 1 1 0 0 1 0 0 1
0 0 1 0 0 0 1 0 0 1 0
0 0 1 0 1 0 1 1 0 1 1
0 0 1 1 0 1 0 0 1 0 0
0 0 1 1 1 1 0 1 1 0 1
0 1 0 0 0 0 0 1 0 0 1
0 1 0 0 1 0 1 0 0 1 0
0 1 0 1 0 0 1 1 0 1 1
0 1 0 1 1 1 0 0 1 0 0
0 1 1 0 0 1 0 1 1 0 1
0 1 1 0 1 1 1 0 1 1 0
0 1 1 1 0 1 1 1 1 1 1
0 1 1 1 1 0 0 0 0 0 0
1 0 0 0 0 0 0
c d Q2Q1 c dQ2Q1
D2: cdQ2 c=0 c=1
000 001 011 010 100 101 111 110
Q1Q0 00 1 1
01 1 1
Q0 Q0
11 1 1
Q1
10
1 1 Q1
d d
c d Q2Q1 Q2 Q2
c dQ2Q1Q0
c Q2Q1Q0
Strojevi s konanim brojem stanja. 293
c d Q1
D1: cdQ2 c=0 c=1
000 001 011 010 c Q1Q0 100 101 111 110
Q1Q0 00 1 1
01 1 1 1 1
Q0 Q0
11
Q1
10 1 1 Q1
d d
Q2 c dQ1Q0 Q2
c d Q0
D0: cdQ2 c=0 c=1
000 001 011 010 100 101 111 110
Q1Q0 00 1 1
01 1 1
Q0 Q0
11 1 1
10 1 1 Q1 Q1
d d
Q2 c dQ0 Q2
Dakle, slijedi:
bistabil te potreban broj osnovnih logikih sklopova. Njihovom
uporabom ostvariti sklop koji na izlazu Q2 posmanog registra Sin
cikliki generira sljedei niz: 00001111.
CP
Posmani registar ima tri izlaza, dok zadani bistabil ima jedan. Sve skupa nam na
raspolaganju stoji 4 izlaza, odnosno moemo ostvariti sklop s maksimalno 16 stanja.
294 Zbirka rijeenih zadataka
Neka izlaz posmanog registra Q2 bude u oznaci stanja bit najvee teine, a izlaz
bistabila QB bit najmanje teine. Potrebno je dakle trobitni posmani registar i dani
bistabil povezati u etiribitni posmani registar.
Iz stanja 0 elimo u stanje 00, pa u stanje 000, pa u stanje 0000, pa zatim redom
u stanja 1000, 1100, 1110, 1111, nakon ega zatvaramo ciklus i prelazimo u stanje 0111
(koje je ve pokriveno maskom 0). Ako na ovaj nain mijenjamo stanja, tada emo
na izlazu Q2 dobiti traeni niz. No otkud ba ovakvi zahtjevi? Najjednostavnije
govorei, elimo na Q2 etiri puta zaredom dobiti 0, pa etiri puta zaredom dobiti 1.
Znai da prvo stavimo 0 na Q2 (bez obzira na ostale izlaze; zato tri ''), pa zatim iz tog
stanja jo jednom stavimo 0 (pa ostanu dva '') itd.
Sada treba uoiti da su maske nekih stanja openitije od drugih. Npr. prvi redak tablice
definira masku 0 (ime su pokrivena stanja 0,1,2,3,4,5,6 i 7), dok drugi redak
definira 00 (ime pokriva stanja 0,1,2 i 3) zbog ega ta stanja treba izuzeti iz prvog
retka! Zapravo treba krenuti od najspecifinijeg stanja prema openitijim.
Jedino to u ovom sklopu treba odrediti jest to dovoditi na ulaz Sin kako bi sklop
prolazio kroz eljena stanja. No to je ve odreeno prethodnom tablicom: imamo Sin u
ovisnosti o pokrivenim stanjima:
S in (Q2 , Q1 , Q0 , QB ) = m(0,8,12,14)
Minimizacijom sljedi:
S in = Q2 Q1QB + Q1Q0 QB
& Q2 Q1 Q0 D Q
1
&
1 Sin
CP Q
1 S/R CP
1
CP
Strojevi s konanim brojem stanja. 295
Malo paljivijom analizom moemo uoiti da sklop nikada ne prolazi kroz stanja 9, 10,
11 ili 13. Zbog toga ta stanja moemo proglasiti don't care stanjima za funkciju Sin,
ime se moe dobiti jo minimalniji izraz:
S in = Q2 QB + Q1Q0 QB
U VHDL-u napisati ponaajni model sekvencijskog sklopa prikazanog na slici. Sklop na svaki
padajui impuls takta obavlja funkciju dekodiranja podatka iz 11-bitne Hammingove kodne
rijei koju dobiva na ulazu. Prilikom kodiranja podatka koriten je neparni paritet. Ukoliko na
ulaz doe kodna rije s pogrekom, pretpostaviti da se radi o pogreki u jednom bitu, tako da
se na izlazu mora pojaviti ispravljen podatak. Prikazati koriteni raspored zatitnih bitova u
kodnoj rijei.
Kodna Hammingov
Podatak
rije dekoder
CP
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7) D(8) D(9) D(10)
C C P C P P P C P P P
C su zatitni, a P podatkovni bitovi. D(0 to 10) je kodna rije koja dolazi na ulaz sklopa.
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY hamming IS
PORT ( D : IN BIT_VECTOR(0 to 10);
CP: IN STD_LOGIC;
O : OUT BIT_VECTOR(0 to 6));
END hamming;
BEGIN
296 Zbirka rijeenih zadataka
-- Ocitavanje sindroma
sindrom1(0) := D(0);
sindrom1(1) := D(1);
sindrom1(2) := D(3);
sindrom1(3) := D(7);
-- Izracun sindroma
sindrom2(0) := NOT(D(2) XOR D(4) XOR D(6) XOR D(8) XOR D(10));
sindrom2(1) := NOT(D(2) XOR D(5) XOR D(6) XOR D(9) XOR D(10));
sindrom2(2) := NOT(D(4) XOR D(5) XOR D(6));
sindrom2(3) := NOT(D(8) XOR D(9) XOR D(10));
-- Izracun pogresnog bita
sindrom(0) := sindrom1(0) XOR sindrom2(0);
sindrom(1) := sindrom1(1) XOR sindrom2(1);
sindrom(2) := sindrom1(2) XOR sindrom2(2);
sindrom(3) := sindrom1(3) XOR sindrom2(3);
-- Ispravljanje pogresnog bita
ispravka := "100000000000";
IF( sindrom(0) = '1' ) THEN
ispravka := ispravka SRL 1;
END IF;
IF( sindrom(1) = '1' ) THEN
ispravka := ispravka SRL 2;
END IF;
IF( sindrom(2) = '1' ) THEN
ispravka := ispravka SRL 4;
END IF;
IF( sindrom(3) = '1' ) THEN
ispravka := ispravka SRL 8;
END IF;
-- Ispravljanje pogresnog bita
izlaz := D XOR ispravka(1 to 11);
-- Stavljanje ispravljene podatkovne rijeci na izlaz sklopa
O <= izlaz(2) & izlaz(4 to 6) & izlaz(8 to 10);
END IF;
END PROCESS;
END hamming_ARCH;
posmaka (sll, srl), aritmetikog posmaka (sla, sra) itd. No kako uobiajeno koristimo
STD_LOGIC_VECTOR tip, u nastavku je prikazano odgovarajue rjeenje, pri emu su
koriteni operatori posmaka direktno implementirani.
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY hamming IS
PORT ( D : IN STD_LOGIC_VECTOR(0 to 10);
CP: IN STD_LOGIC;
O : OUT STD_LOGIC_VECTOR(0 to 6));
END hamming;
END hamming_ARCH;
298 Zbirka rijeenih zadataka
12.19. Zadatak
Prikazati osnovnu strukturu VHDL modela kojim se opisuje Mooreov stroj s konanim
brojem stanja.
Kombinacijski dio
izlazi
Sekvencijski dio Kombinacijski
dio
CP
Na slici raspoznajemo tri osnovna dijela Mooreovog stroja s konanim brojem stanja:
1. Sekvencijski dio pamti trenutno stanje, te kada mu signal takta dozvoli, prelazi
u novo stanje.
2. Kombinacijski dio (1) na temelju trenutnih ulaza i trenutnog stanja rauna u
koje e sljedee stanje sekvencijski dio prijei.
3. Kombinacijski dio (2) na temelju trenutnog stanja rauna izlaze sklopa.
Ova struktura prirodno se preslikava u VHDL model ija se arhitektura sastoji od tri
bloka PROCESS, s odgovarajuim listama osjetljivosti. Pogledajmo npr. kako bi
izgledao model stroja s konanim brojem stanja koji ima (N+1) sinkroni ulaz, jedan
asinkroni ulaz (reset) te (M+1) izlaz. Stroj pri radu prolazi kroz toliko stanja da se
njihovo kodiranje koristi (K+1) bit. Stanja su redom oznaena S0, S1, S2, ... i kodirana
su binarnim kodom.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
BEGIN
END BEHAVIORAL;
Prilikom pisanja ovog modela pojedina stanja definirana su kao konstante kako bi kod
bio itljiviji. Naime, uvoenjem konstanti omogueno je u kodu pisati nazive stanja
umjesto njihovih binarnih kodova, ime se ujedno i smanjuje vjerojatnost pogreke
prilikom pisanja modela.
Osim ovog naina (gdje sami odreujemo s koliko e bitova biti kodirana stanja, i
definiramo kod za svako stanje) VHDL nam omoguuje alternativnu sintaksu. Npr.
ukoliko imamo stroj s etiri stanja, moemo pisati:
ili pak:
Ovaj posljednji nain definira novi tip podatka pod nazivom stateType kao
enumeraciju od etiri elementa, i zatim kae da su signali state_present i
state_next upravo tog novodefiniranog tipa. Ako stroj s konanim brojem stanja
opiemo na ovaj nain, tada ni u kojem trenutku zapravo nismo naveli koliko e bitova
biti koriteno za kodiranje stanja, i na koji e nain pojedino stanje biti kodirano, pa
sintetizatoru sklopovlja ostavljamo na volju da stanja kodira tako da utroi minimalni
broj sklopovlja i provede dodatne optimizacije. Dakako, VHDL nam omoguava i
eksplicitno definiranje kako e pojedino stanje biti kodirano, no budui da to zahtjeva
uvoenje dodatnih elemenata VHDL-a (a pristup se zapravo svodi na prethodno opisani
definiranjem konstanti), ovdje to neemo obraivati.
Obratite takoer panju na liste osjetljivosti pojedinih blokova PROCESS. Prvi blok na
temelju ulaza i trenutnog stanja rauna sljedee stanje. Zbog toga je njegova lista
osjetljivosti (ulazi, state_present). Sljedei blok PROCESS na temelju
trenutnog stanja odreuje izlaz sklopa. Time je definirana njegova lista osjetljivosti kao
(state_present). Konano, posljednji blok PROCESS zaduen je za promjenu
stanja pod utjecajem clock-a ili asinkronog ulaza reset, pa je lista osjetljivosti
definirana kao ( clock, reset ).
12.20. Zadatak
Prikazati osnovnu strukturu VHDL modela kojim se opisuje Mealyjev stroj s konanim
brojem stanja.
ulazi
Kombinacijski dio
Sekvencijski dio
CP
izlazi
Kombinacijski
dio
Veliki je problem pri tome injenica da izlaze generira ista kombinacijska logika na
temelju trenutnog stanja i trenutnih izlaza. Naime, ukoliko se ulazi mijenjaju asinkrono,
tada e se i izlazi mijenjati asinkrono, to svakako nije eljeno ponaanje. Zbog toga se
prilikom modeliranja Mealyjevog stroja s konanim brojem stanja uobiajeno promatra
sljedea struktura sklopa:
ulazi
Kombinacijski dio
Sekvencijski dio
CP
izlazi
Kombinacijski
Registar
dio
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
END Behavioral;
Strojevi s konanim brojem stanja. 303
12.21. Zadatak
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
BEGIN
PROCESS(input0, state_present)
BEGIN
CASE state_present IS
WHEN S0 => IF input0 = '0' THEN
state_next <= S0;
ELSE
state_next <= S1;
END IF;
WHEN S1 => IF input0 = '0' THEN
state_next <= S1;
ELSE
state_next <= S2;
END IF;
WHEN S2 => IF input0 = '0' THEN
state_next <= S2;
ELSE
state_next <= S0;
END IF;
WHEN OTHERS => state_next <= S0;
END CASE;
END PROCESS;
PROCESS( clock )
BEGIN
IF falling_edge(clock) THEN
state_present <= state_next;
END IF;
END PROCESS;
PROCESS(state_present)
BEGIN
CASE state_present IS
WHEN S0 => y <= '1';
WHEN S1 => y <= '0';
WHEN S2 => y <= '0';
WHEN OTHERS => y <= '0';
END CASE;
END PROCESS;
END BEHAVIORAL;
304 Zbirka rijeenih zadataka
12.22. Zadatak
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY automat2 IS
PORT ( i1 : IN std_logic; i0 : IN std_logic;
o1 : OUT std_logic; o0 : OUT std_logic;
ka : OUT std_logic;
clock: IN std_logic);
END automat2;
PROCESS( clock )
BEGIN
IF falling_edge(clock) THEN
state_present <= state_next;
o1 <= o1_next;
o0 <= o0_next;
ka <= ka_next;
END IF;
END PROCESS;
END Behavioral;
12.23. Zadatak
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY automat3 IS
PORT ( ulaz : IN std_logic; reset: IN std_logic;
clock : IN std_logic; izlaz : OUT std_logic);
END automat3;
PROCESS( state_present )
BEGIN
CASE state_present IS
WHEN S0 => izlaz <= '0';
WHEN S1 => izlaz <= '0';
WHEN S2 => izlaz <= '1';
WHEN S3 => izlaz <= '1';
WHEN OTHERS => izlaz <= '0';
END CASE;
END PROCESS;
END Behavioral;
ZADACI ZA VJEBU
1. Uporabom logikih blokova iz zadatka 12.14 realizirati sklop s dva izlaza (f1 i f2), pri
emu je:
f 1 ( A, B, C , D ) = A (B + C ) D + A C
f 2 ( A, B, C , D ) = (B + C ) A + AD
2. VHDL-om je opisan neki automat. Na temelju tog opisa nacrtati grafiki prikaz
automata. O kojoj se vrsti automata radi i zato?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
END IF;
WHEN S1 =>
n_a <= '1'; n_c <= '1';
IF x1 = '0' THEN b <= '0'; n_st <= S0;
ELSIF x2 = '1' THEN b <= '0'; n_st <= S2;
ELSIF x1 = '1' THEN b <= '1'; n_st <= S1;
ELSE b <= '1'; n_st <= S2;
END IF;
WHEN S2 =>
n_a <= '0'; n_c <= '0'; b <= '1';
IF x1 = '1' THEN n_st <= S0;
ELSIF x1 = '0' THEN n_st <= S1;
ELSIF x2 = '0' THEN n_st <= S2;
ELSE n_st <= S0;
END IF;
WHEN OTHERS => n_a <= '0'; n_c <= '0'; b <= '0'; n_st <= S0;
END CASE;
END PROCESS;
PROCESS( cp )
BEGIN
IF falling_edge(cp) THEN
p_st <= n_st;
a <= n_a;
c <= n_c;
END IF;
END PROCESS;
END Behavioral;
13. Memorije.
13.1. Zadatak
Prikazati osnovnu memorijsku eliju kod permanentne memorije izvedene diodnim poljem.
Prikazati memoriju tipa 48 izvedenu ovom tehnologijom, u koju je upisan sljedei sadraj:
ED, 2D, DA, AD.
BL BL
WL WL
Pri tome WL oznaava liniju rijei (engl. Word Line) koja u aktivnom stanju ima
logiku jedinicu, a BL oznaava liniju bita (engl. Bit Line) koja je preko otpora
pritegnuta na masu.
WL[0]
WL[1]
WL[2]
WL[3]
13.2. Zadatak
BL BL
WL WL
Pri tome WL oznaava liniju rijei (engl. Word Line) koja u aktivnom stanju ima
logiku jedinicu, a BL oznaava liniju bita (engl. Bit Line) koja je preko "otpora"
pritegnuta na napajanje ("otpor" je takoer izveden MOSFET-om).
WL[0]
WL[1]
WL[2]
WL[3]
13.3. Zadatak
WL
CS US , Q S
BL
Podaci se uvaju na kondenzatoru preko naboja (na slici oznaeno s QS). Za odnos
napona i naboja na kapacitetu vrijedi sljedea relacija:
QS = C S U S
Ako je US=0, tada je QS=0 te je pohranjena logika nula. Ako je US velik, tada je QS>0
te je pohranjena logika jedinica.
elija moe raditi na tri naina: uvanje, itanje i pisanje. Kada elija uva sadraj,
tranzistor je iskljuen (WL=0) ime se uva naboj na kondenzatoru.
UB=0 V
US>0 V, QS = C S U S
312 Zbirka rijeenih zadataka
QS = C S U F + C B U F
Zamjenom QS slijedi:
CS U S = CS U F + CB U F
CS
UF = US
CS + CB
CS CS 1
UF = US = US = 5 = 192 mV
CS + CB C S + 25 C S 1 + 25
Da je u eliji bila zapisana logika nula, konani napon bio bi jednak nuli, iz ega slijedi
da se naponi na liniji bita dobiveni itanjem nule ili jedinice razlikuju vrlo malo (manje
od 1V) pa je za oitavanje tog napona potrebno osjetljivo pojaalo za itanje. Razlog
ovako malog napona jest omjer kapaciteta CS i CB, tj. CB>>CS. Osim toga, nakon itanja
sadraja elije zapisani je podatak izgubljen (napon na CS je prilikom itanja logike
jedinice pao na svega 192 mV) te je potrebno ponovno zapisati proitani sadraj (dakle,
itanje je destruktivno).
13.4. Zadatak
Procijeniti vrijeme uvanja podatka MOSFET DRAM 1T elije. Pretpostaviti da je IL=1 nA,
CS=50 fF a US=1V.
Kada je tranzistor iskljuen, kapacitet CS se ipak izbija odreenom strujom curenja IL, te
e napon US polako padati.
US(t)
WL=0 Umax
IL U1,min
CS US(t), QS(t)
BL
t
th
Memorije. 313
Neka logikoj razini 1 odgovara napon Umax. Da bi se sadraj elije ispravno oitao,
napon na CS smije pasti najnie do napona U1,min, ime je odreena razlika napona
U S = U max U 1,min . Za struju IL vrijedi:
dQS dU S
IL = = C S
dt dt
odnosno
CS
th =
IL
(
U max U 1,min )
Uz podatke iz zadatka slijedi:
CS 50 fF
th = U S = 1V = 50 s.
IL 1nA
13.5. Zadatak
WL
Q Q
TA TB
b b
Dva invertora povezana su u bistabilni element. elija moe raditi na tri naina rada:
WL
+UDD
T2 T4
T5 T6
T1 T3
b b
13.6. Zadatak
Prikazati barem dva naina organizacije memorije iji je kapacitet 256 bitova, a duljina
logike rijei 8 bitova. Procijeniti duljine linije bita i linije rijei.
Pogledajmo prvo "prirodni" nain organizacije memorije: memorijske elije koje uvaju
bitove iste logike rijei smjetene su jedna do druge, a pojedine rijei smjetene su
jedna ispod druge.
M bitova
WL[0]
Mem. rije 0
WL[1]
A[0] Mem. rije 1 Memorijska elija
WL[2]
A[1] Mem. rije 2 (1 bit)
WL[3]
Dekoder
A[K-1]
WL[N-2]
Mem. rije N-2
WL[N-1]
Mem. rije N-1
Podaci
Memorije. 315
Kako je u ovom sluaju kapacitet memorije (C=256 bitova) odreen umnokom broja
logikih rijei (N) i broja bitova u jednoj logikoj rijei (M), broj logikih rijei jednak
je:
C 256
N= = = 32
M 8
Za adresiranje nam tada treba K adresnih bitova, pri emu je K odreen izrazom:
2K = N
pa slijedi:
K = log 2 N = log 2 32 = 5
Procijenimo jo i duljine linije rijei i bita. Kao to je poznato, linija rijei (WL) se
protee do svih memorijskih elija koje uvaju bitove iste memorijske rijei.
Pretpostavimo li da su dimenzije memorijske elije kvadratne, tada e ukupna duljina
biti zapravo proporcionalna broju elija do kojih linija dolazi, odnosno broju bitova.
Linija bita se pak protee do svih elija koje uvaju isti bit u svakoj memorijskoj rijei.
Tako kod ovakve organizacije memorije vrijedi da je duljina linije rijei 8, a duljina
linije bita 32. Ve iz ove niskokapacitetne memorije vidljiv je osnovni problem
ovakve ogranizacije: duljina linije bita >> duljina linije rijei (a time je i parazitni
kapacitet linije bita vrlo velik).
Kod ovog pristupa jedna fizika memorijska rije sadri P logikih rijei (svaka logika
rije je duljine M bitova). Cijela memorija pri tome sadri N = 2 K logikih rijei.
Dekoder retka na temelju viih bitova adrese odabire adresiranu fiziku rije, ime na
ulaze dekodera stupca dolazi PM pohranjenih bitova, tj. sadraj P logikih rijei.
Dekoder stupca na temelju niih bitova adrese odabire adresiranu logiku rije. Dekoder
stupca logiki se moe promatrati kao M multipleksora tipa P/1 gdje se na 0.
multipleksor dovode 0. bitovi od P logikih rijei, na 1. multipleksor dovode 1. bitovi
od P logikih rijei, itd. Proraunajmo sada sve potrebne veliine.
316 Zbirka rijeenih zadataka
Dekoder retka
Logika rije 3P Logika rije 3P+1 Memorijska elija
(1 bit)
A[K-1]
Logika rije (Q-2)P Logika rije (Q-2)P+1 Logika rije (Q-1)P-1 Fizika rije Q-2
Logika rije (Q-1)P Logika rije (Q-1)P+1 Logika rije QP-1 Fizika rije Q-1
M P = M 2L
A[0]
Dekoder stupca
A[L-1]
Podaci (M bitova)
C 256
N= = = 32
M 8
2K = N
K = log 2 N = log 2 32 = 5
Kako je kod ove organizacije ukupni broj logikih rijei definiran umnokom
N = PQ
gdje su N, P i Q cijeli brojevi, jedno rjeenje koje zadovoljava prethodni izraz jest P=2,
Q=16.
2L = P L = log 2 P = log 2 2 = 1
Dakle, jedan adresni bit dovodi se na dekoder stupca, a preostalih K-L=5-1=4 adresna
bita dovode se na dekoder retka. Memorija u tom sluaju ima Q = 24 = 16 fizikih rijei,
gdje svaka fizika rije sadri dvije logike rijei.
Proraunajmo jo i duljine linija rijei i bita. Jedna fizika rije sadri PM=28=16
bitova, pa je duljina linije rijei 16. Memorija ima Q=16 fizikih rijei pa je duljina
linije bita 16.
Memorije. 317
Za vjebu.
Nacrtajte strukture memorija uz proraunate parametre. Drugi dio zadatka ima vie
moguih rjeenja (tj. jednadba N=PQ ima vie rjeenja u skupu cijelih brojeva).
Pronaite sva rjeenja. Proraunajte duljine linija rijei i bita za te sluajeve.
I3 A2
I2 A1
I1
RAM
A0
8x8
D7 D6 D5 D4 D3 D2 D1 D0
I0
1 0 1 0 1 0 1 0
O3 O2 O1 O0
13.8. Zadatak
R /W
R /W R /W R /W
R /W R /W R /W R /W
Podatkovni izlazi gornjih i donjih memorijskih modula spojeni su preko ILI sklopa:
ZADACI ZA VJEBU
Na slici je prikazan D/A konvertor. Ako je ulaz konvertora 4-bitni binarni broj a3a2a1a0,
UREF=+5V i R0=80 k, odrediti preostale otpore tako da napon koji odgovara najmanjem bitu
bude |0.4| V. Kako se zove prikazani D/A konvertor? Koji je najvei napon na izlazu
konvertora?
+UREF Rf
IN
-
a3 R3 I3 A =
UN +
Uizl
a2 R2 I2
a1 R1 I1
a0 R0 I0
Pogledajmo najprije zavrni dio D/A konvertora. Napon UN je napon izmeu (-)
stezaljke operacijskog pojaala i mase. Kako je napon izmeu (-) i (+) stezaljke
operacijskog pojaala jednak nuli, a (+) stezaljka je spojena na masu, tada je i (-)
stezaljka (prividno) kratko spojena na masu, pa je UN=0 (virtualni kratki spoj). Drugo
bitno svojstvo operacijskog pojaala je beskonano veliki otpor izmeu (-) i (+)
stezaljki pa tim putem ne tee struja. Zbog toga sva struja koja dolazi iz otporne mree
ide dalje kroz otpor Rf. Moemo pisati:
U izl = I N R f + U N = I N R f + 0 = I N R f (1)
I N = a3 I 3 + a 2 I 2 + a1 I 1 + a0 I 0 (2)
I i = 2i I 0 (4)
3
U izl = R f I 0 ai 2 i (5)
i =0
Iz sheme proizlazi:
U REF U U R
2i I 0 = 2 i REF = REF Ri = 0i (7)
Ri R0 Ri 2
to daje:
U REF 3
U izl = R f ai 2 i (8)
R0 i = 0
U REF 3 U U
0.4 = R f
R0 i =0 R0
( )
ai 2i = R f REF 0 23 + 0 2 2 + 0 21 + 1 2 0 = R f REF 1
R0
pa slijedi:
0 .4 0 .4
R f = R0 = 80k = 6 .4 k
U REF 5
A/D i D/A konverzija. 323
Maksimalni napon na izlazu odgovara najveem binarnom broju koji se moe dovesti
na ulaz: 1111(2)15. Tada je prema (8):
5
U izl (15) = 6.4k 15 = 6 V
80k
14.2. Zadatak
Kako se zove na slici prikazani 4-bitni D/A konvertor? Odrediti napon Uizl, ako je poznato da
je UREF=+5V, R=1k a napon najmanjeg bita |0.4| V.
Rf
IN
1 2 3 4
2R R R R 2R
-
UN A =
+
Uizl
2R 2R 2R 2R
UX
a0 a1 a2 a3
UREF
Prikazan je ljestviasti D/A konvertor. Potrebno je uoiti kako su u mrei sloeni otpori.
Promatrajmo otpor toke 1 (lijevo i dolje): imamo 2R || 2R = R. Otpor koji se vidi iz
toke 2 tada je (R plus toka 1) || 2R = (R+R) || 2R je opet R! Zbog prividnog kratkog
spoja (UN=0) ista analiza vrijedi i ako promatramo otpore s desne strane. Izraunajmo
sada koliko iznosi napon UX. Kako imamo otpornu mreu, moemo primijeniti princip
superpozicije, koji kae da je za takav sluaj dozvoljeno izraunati napon UX tako da se
promatra utjecaj svakog pojedinog izvora (odnosno svakog bita) na taj napon. Imamo 4
sluaja:
Lijevo od toke 4 mrea djeluje otporom 2R, desno je takoer otpor 2R prema masi pa
imamo (nadomjesna shema):
324 Zbirka rijeenih zadataka
4 4
2R 2R R
2R UX 2R
UREF UREF
Pa je:
U REF R U REF
U X ,a 3 = U 4 = R = U REF =
R + 2R 3R 3
3
2R 2R
2R
UREF
Slijedi:
U REF R U REF
U3 = R = U REF =
R + 2R 3R 3
3 4
R
U3 R UX
Slijedi:
A/D i D/A konverzija. 325
R U U U
U X ,a 2 = U 4 = U 3 = 3 = REF = X ,a 3
R+R 2 3 2 2
Odmah vidimo i bitno svojstvo mree: napon generiran jednim izvorom iz jedne toke
se u drugu prenosi sa pola amplitude!
U REF
U2 =
3
Napon u toki 3 biti e pola tog napona, a napon u toki 4 pola od napona u toki 3, pa
slijedi:
U2
U X ,a1
U
=U4 = 3 = 2 = U REF = U X ,a 3
2 2 3 4 4
Vrijedi:
U REF
U1 =
3
Napon u toki 2 biti e pola tog napona, a napon u toki 3 pola od napona u toki 2, a
napon u toki 4 pola od napona u toki 3, pa slijedi:
U1
U2 2
U3 2 = 2 U REF U X ,a 3
U X ,a 0 = U 4 = = = =
2 2 2 38 8
Sumiramo li utjecaj svih izvora na napon toke X (pomnoen sa ai, jer ako je ai=0, tada
taj napon ne doprinosi naponu UX), slijedi:
U X = a3 U X ,a 3 + a 2 U X ,a 2 + a1 U X ,a1 + a0 U X ,a 0
U X ,a 3 U X ,a 3 U X ,a 3
= a3 U X ,a 3 + a 2 + a1 + a0
2 4 8
U a a a
= REF a3 + 2 + 1 + 0
3 2 4 8
U
= REF (8a3 + 4a2 + 2a1 + a0 )
38
U 3
= REF ai 2i
3 8 i =0
Sada kada znamo koliko iznosi UX, moemo izraunati izlazni napon:
326 Zbirka rijeenih zadataka
Rf
IN
4
2R
-
UN A =
UX +
Uizl
U X U N U X 0 U X
IN = = =
2R 2R 2R
Rf
U izl = I N R f + U N = I N R f + 0 = I N R f = U X
2R
to daje:
R f U REF 3
U izl =
2R 3 8
a 2
i =0
i
i
Slijedi:
R f U REF Rf 5
0.4 = = R f = 3.84k
2R 3 8 2 1k 3 8
A/D i D/A konverzija. 327
14.3. Zadatak
Konstruirati D/A konvertor koji e na ulazu primati dvoznamenkasti dekadski broj zapisan u
BCD kodu, i koristiti mreu s teinski rasporeenim otporima.
Rf
+UREF IN
a3 R
-
a2 2R A =
+
Uizl
a1 4R
a0 8R
b3 10R
b2 20R
b1 40R
b0 80R
Vrijedi:
U REF U U U U U U U
I N = a3 + a 2 REF + a1 REF + a 0 REF + b3 REF + b2 REF + b1 REF + b0 REF
R 2R 4R 8R 10 R 20 R 40 R 80 R
U 3
U 3
= REF ai 2 i + REF bi 2 i
8 R i =0 80 R i =0
U REF 3 3
= 10 ai 2 i + bi 2 i
80 R i =0 i =0
328 Zbirka rijeenih zadataka
14.4. Zadatak
Na slici je prikazan D/A konvertor koji na ulaz prima troznamenkasti dekadski broj, pri emu
su znamenke prikazane BCD kodom (pri emu se na odgovarajua mjesta za vrijednost bita 1
spaja UREF=+5V, inae 0 V). Izraunati otpore R0, RS i Rf. Poznato je da je R=4.5k, a broju
125 odgovara napon od 0.5V.
Rf
IN
RS RS R0
-
A =
R0 8R 4R 2R R 8R 4R 2R R 8R 4R 2R R
+
Uizl
c0 c1 c2 c3 b0 b1 b2 b3 a0 a1 a2 a3
8
RP = 8 R || 4 R || 2 R || R = R
15
U C 0 U C1 U C 2 U C 3
+ + +
UT = 8 R 4 R 2 R R = R c0U REF + c1U REF + c2U REF + c3U REF
P
1 1 1 1 8R 4R 2R R
+ + +
8R 4 R 2 R R
8
R U REF 3
RPU REF 3 15 U REF 3
=
8 R i =0
i c 2 i
=
8R
i =0
c i 2 i
=
15
i =0
ci 2 i
Rf
IN
1 RS 2 RS 3 R0
-
UN A =
R0 RP RP RP
UX +
Uizl
U U U
RS + RP || R0 = R0
Uoimo najprije da je mrea s obje strane prema masi zakljuena otporom R0 (virtualni
kratko spoj kod ulaza operacijskog pojaala!). Dovedimo sada na ulaze mree broj A00
(dakle samo znamenka A razliita od 0). Koliki je napon u toki 3? Desno od toke 3
imamo otpor R0 prema masi. Lijevo od toke 3 isto imamo otpor R0 prema masi. Naime,
cijela mrea na lijevoj strani djeluje kao jedan otpor od R0 zbog prethodno spomenutog
zahtjeva na otpore R0, RP i RS. Tada slijedi nadomjesna shema:
R0 3 R0 3 R0||R0
RP UX RP
U U
R0 || R0
U X ,100 = U 3 = U
RP + R0 || R0
Analizirajmo sada utjecaj na napon UX, kada na mreu dovedemo samo znamenku B
razliitu od 0 (istu koja je prije bila na A). Tada imamo identini sluaj prethodnome,
osim to je sada odmah vidljiv napon u toki 2:
R0 || R0
U2 =U
RP + R0 || R0
2 RS 3 R0
U2 UX
RP
Oito je da je tada:
R0 || RP R0 || R0 R0 || RP
U X ,10 = U 2 =U
RS + R0 || RP RP + R0 || R0 RS + R0 || RP
Kako imamo dekadski D/A konvertor, utjecaj desetica na izlazni napon treba biti 10
puta manji od utjecaja stotica, odnosno vrijedi:
10 U X ,10 = U X ,100
R0 || R0 R0 || RP R0 || R0
10 U =U
RP + R0 || R0 RS + R0 || RP RP + R0 || R0
R0 || RP
10 =1
RS + R0 || RP
R0 || RP RR R
10 = 1 0 P = 0 R0 = 9 RP
R0 || RP + R0 + R0 || RP R0 + RP 10
R0
R0
R0 RP 9 9 81
RS + = R0 RS + = R0 RS = R0 = RP = 8.1RP
R0 + RP R0 10 10
+ R0
9
Sada moemo izraunati traene otpore:
8 8
RP = R = 4.5k = 2400
15 15
R0 = 9 RP = 21,6k
A/D i D/A konverzija. 331
RS = 8.1RP = 19.44k
Rf
IN
3 R0
-
UN A =
UX +
Uizl
U X U N U X 0 U X
IN = = =
R0 R0 R0
Rf
U izl = I N R f + U N = I N R f + 0 = I N R f = U X
R0
U X = U X ,100 + U X ,10 + U X ,1
U REF
Theveninov napon koji generira stotica 1 je: U T , stotica = 1 . Taj se napon do toke 3
15
prenosi kao:
U REF R0 || R0 U 9
U X ,100 = U 3 = = REF
15 RP + R0 || R0 15 11
U REF
Theveninov napon koji generira desetica 2 je: U T ,desetica = 2 . Taj se napon do
15
toke 2 prenosi kao:
U REF R0 || R0 U 9
U2 = 2 = REF 2
15 RP + R0 || R0 15 11
R0 || RP U 9 1
U X ,10 = U 2 = REF 2
RS + R0 || RP 15 11 10
U REF
Theveninov napon koji generira jedinica 5 je: U T , jedinica = 5 . Taj se napon do
15
toke 1 prenosi kao:
332 Zbirka rijeenih zadataka
U REF R0 || R0 U 9
U1 = 5 = REF 5
15 RP + R0 || R0 15 11
R0 || RP U 9 1
U 2 = U1 = REF 5
RS + R0 || RP 15 11 10
R0 || RP U 9 1 1
U X ,1 = U 2 = REF 5
RS + R0 || RP 15 11 10 10
U REF 9 U 9 1 U 9 1
U X ,125 = U X ,100 + U X ,10 + U X ,1 = 1 + REF 2 + REF 5
15 11 15 11 10 15 11 100
U 9 1 U 9 1
= REF (100 1 + 10 2 + 1 5) = REF 125
15 11 100 15 11 100
75
= U REF
1100
Rf 75 R f
U izl ,125 = U X ,125 = U REF
R0 1100 R0
U REF 9 1
U X ,125 = U X ,100 + U X ,10 + U X ,1 = (100 A + 10 B + 1 C )
15 11 100
Rf U REF 9 1 R
U izl ,125 = U X = (100 A + 10 B + 1 C ) f
R0 15 11 100 R0
A/D i D/A konverzija. 333
14.5. Zadatak
Kako se zove 10 bitni A/D pretvornik ija je principijelna shema prikazana na slici? Ako je tdb
20 ns, tsetup 20 ns, tls 10 ns, tda 100 ns (vrijeme potrebno za d/a pretvorbu), te tk 50 ns (vrijeme
reagiranja komparatora), koja se frekvencija oitavanja uzoraka moe postii u najgorem
sluaju? Koji je najmanji napon koji sklop moe izmjeriti? Poznato je da se na ulaz sklopa
mogu dovoditi naponi od 0 do 10 V. Brojilo je izvedeno kao sinkrono, sa serijskim
prijenosom.
START
S Q CE
BROJILO
uul - B CP
A = R
+
ud
D/A
CP
Ako je maksimalni napon koji sklop moe izmjeriti 10 V, taj e napon biti prikazan
najveim brojem koji moemo upisati u brojilo: 210-1. Tada jednom bitu odgovara
napon:
10
u b = 10 0.009775 V
2 1
Odredimo maksimalnu brzinu kojom mogu dolaziti impulsi CP. Promatrajmo pojave od
trenutka u kojem naie padajui brid CPa.
Nakon tdb brojilo je prelo u novo stanje. U tom trenutku kree rasprostiranje prijenosa,
a kako je ono serijsko, trebat e proi jo (n-2)tdls (gdje je n broj bitova brojila). Nakon
toga potrebno je saekati jo vrijeme postavljanja tsetup, i tada moe doi novi CP
impuls. Dakle, maksimalna brzina rada 10 bitnog sinkronog brojila sa serijskim
prijenosom uz zadana vremena iznosi:
334 Zbirka rijeenih zadataka
1 1 1
f cnt ,max = = = = 8.33MHz
t db + (n 2)t dls + t setup 20n + 8 10n + 20n 120n
Meutim, kada se nakon tdb pojavi novo stanje brojila, paralelno zapoinje i proces D/A
pretvorbe koji je gotov nakon tda. Zatim je potrebno tk da reagira komparator, i zatim
(budui da koristimo sinkroni bistabil) mora proi jo tsetup vremena prije no to moe
naii novi CP impuls. Za obilazak ove staze treba nam dakle:
t conv ,1 = t db + t da + t k + t setup
1 1 1
f conv ,1 = = = = 5.26MHz
t db + t da + t k + t setup 20n + 100n + 50n + 20n 190n
Najdulje vrijeme pretvorbe dobiva se kada se pretvara maksimalni doputeni napon, jer
tada brojilo mora brojati do kraja. To znai da je za pretvorbu u tom sluaju potrebno
potroiti 2n-1 impulsa takta, pa je maksimalna frekvencija oitavanja u najgorem sluaju
jednaka:
14.6. Zadatak
Potrebno je vrlo esto mjeriti ulazni napon koji se mijenja vrlo sporo. Predloiti pretvornik
pogodan za ovakav problem. Izraunati maksimalnu frekvenciju CPa, i maksimalnu
frekvenciju oitavanja uzoraka u najgorem sluaju.
Brojilo na svaki impuls CPa ili poveava sadraj za jedan, ili smanjuje sadraj za jedan,
a smjer je odreen izlazom komparatora. Ako trenutno stanje brojila odgovara manjem
naponu od ulaznog, tada e na izlazu D/A pretvornika napon ud biti manji od uul, i na
izlazu komparatora e biti niska razina, koja odgovara brojanju unaprijed. Ovime e na
sljedei impuls CPa brojilo poveati svoj sadraj za jedan i time prii blie stvarnom
ulaznom naponu. Ako bi broj zapisan u brojilu odgovarao veem naponu od CPa, tada
bi brojilo na sljedei CP smanjilo svoj sadraj za 1.
A/D i D/A konverzija. 335
CP CP REVERZIBILNO
UP BROJILO
naprijed / DN
/ natrag
K
- + D/A KONVERTER
ud
uul
Neka je brojilo izvedeno kao 10 bitno sinkrono sa serijskim prijenosom, i neka su sva
vremena ista kao u prethodnom zadatku. Tada je maksimalna frekvencija rada brojila:
1 1 1
f cnt ,max = = = = 8.33MHz
t db + (n 2)t dls + t setup 20n + 8 10n + 20n 120n
Kada se nakon tdb pojavi novo stanje brojila, paralelno zapoinje i proces D/A pretvorbe
koji je gotov nakon tda. Zatim je potrebno tk da reagira komparator, i zatim (budui da
koristimo sinkrono brojilo) mora proi jo tsetup vremena prije no to moe naii novi CP
impuls (da se stabilizira signal za smjer brojanja). Za obilazak ove staze treba nam
dakle:
t conv ,1 = t db + t da + t k + t setup
1 1 1
f conv ,1 = = = = 5.26MHz
t db + t da + t k + t setup 20n + 100n + 50n + 20n 190n
Najvea frekvencija CPa odreena je najmanjom dozvoljenom frekvencijom (odnosno
najduom stazom), pa impulsi CPa smiju biti maksimalne frekvencije:
u u u
Do razlike u odnosu na prethodni zadatak dolazi se kod ul d
pretvornik uvijek oscilira oko prave vrijednosti (mijenja se napon koji odgovara
vrijednosti jednog bita).
Ako se napon naglo promijeni, dobiti e se efekt poetka rada gdje brojilo postupno
prilazi novoj vrijednosti, ali je za to potrebno odreeno vrijeme, pa oitanja u tom
trenutku vie ne odgovaraju ulaznom naponu. Moemo i procijeniti maksimalnu brzinu
promjene ulaznog signala. Neka je na pretvornik u stanju mjeriti napone od 0 do 10 V.
Kako imamo 10 bitova, napon jednog bita je:
10
ub = 10
0.009775 V
2 1
i brojilo "aurira" svoje stanje 5.26M puta u sekundi. To znai da se i ulazni napon
smije promijeniti za maksimalno ub svakih 1/5.26M sekundi, to daje promjenu napona
od:
0.009775 V
u ul = = 51416.5
1 s
5.26 M
14.7. Zadatak
Objasniti princip rada brzog A/D pretvornika i prikazati jednu od moguih izvedbi. Ako je na
raspolaganju 4-bitni A/D pretvornik sa maksimalnim ulaznim naponom od 15 V, a na ulazu je
napon od 10.2 V, prikazati tijek pretvorbe ovog napona i rezultat.
15 15
ub = 4
= = 1V
2 1 15
Rezultat pretvorbe je 4-bitni broj koji je manji ili jednak mjerenome ulaznom naponu.
Zapiimo taj broj binarno: b3b2b1b0. Kod brzog A/D pretvornika postupak pretvorbe
napona je sljedei:
A/D i D/A konverzija. 337
NE DA poniti zadnji
b=1000 b=1100
podignuti bit
ud(b)>uul? 8<10.2! ud(b)>uul? 12>10.2! b=1000
poniti zadnji
b=1010 b=1011 NE b=1010
podignuti bit
gotovo ud(b)>uul? 10<10.2! ud(b)>uul?
b=1010
Vidimo, zapravo, da se kod svakog bita (odnosno bistabila koji pohranjuje taj bit)
obavljaju sljedee tri operacije:
3) Prijei na sljedei
bistabil, ako postoji
Na ovaj nain postupak pretvorbe zavrava nakon onoliko koraka koliko ima bistabila,
dok je kod klasinih pretvornika s brojilima postupak u najgorem sluaju zavravao
nakon ak 2n-1 koraka.
&
o0
o0
o1
A o1
i
CP CP B o2
i
o2
o3
C a1
a0 o3
CE a
a1 0
&
1
n1 n0
CP
Start
Neka sada Start ode kratkotrajno u 1. Nailaskom CPa Johnsonovo brojilo prelazi u
stanje 001, ime se na izlazu C dobije visoka razina. Na taj rastui brid reagira dvobitno
brojilo i prelazi u stanje 00, ime se odabire bistabil B3. Kako je sada vie dvobitno
brojilo nije u stanju 11(2), NI sklop na izlazu daje 1, i ulaz CE dovodi se 1 zbog NI
sklopa pa Start moe prestati djelovati. Na sljedei CP Johnsonovo brojilo prelazi u
stanje 100, ime se na izlazu A generira 1. Ta jedinica vodi se preko demultipleksora na
ulaz S bistabila B3 i uzrokuje njegovo postavljanje. Time smo na ulaze D/A doveli broj
8, pa na izlazu ud imamo 8 V. Kako je 8<10.2, na izlazu komparatora imamo logiku 0.
Na sljedei CP Johnsonovo brojilo prelazi u stanje 010, ime se na B pojavljuje 1. Time
nestaje 1 sa ulaza S bistabila B3, i dolazi izlaz komparatora na ulaz R. Kako je on 0,
bistabil se ne resetira. Na sljedei CP Johnsonovo brojilo prelazi u stanje 001 (1 na
izlazu C). Rastui brid koji se time dobije okida dvobitno brojilo i ono prelazi u stanje
01, ime se selektira bistabil B2. Sljedei CP Johnsonovo brojilo prebacuje u stanje 100,
i uzrokuje postavljanje B2. No kako je sada na ulazu D/A broj 12 (1100), ud je vei od
10.2 V i na izlazu komparatora dobije se 1. Na sljedei CP Johnsonovo brojilo
prebacuje u stanje 010, i uzrokuje reset B2 (na ulaz R dovodi se jedinica iz komparatora
koja resetira bistabil). Na sljedei CP Johnsonovo brojilo prelazi u stanje 001 (1 na
izlazu C). Rastui brid koji se time dobije okida dvobitno brojilo i ono prelazi u stanje
A/D i D/A konverzija. 339
10, ime se selektira bistabil B1. Sljedei CP Johnsonovo brojilo prebacuje u stanje 100,
i uzrokuje postavljanje B1. Na izlazu D/A time se dobije napon 10 V koji je manji od
10.2 V pa je izlaz komparatora 0. Na sljedei CP Johnsonovo brojilo prebacuje u stanje
010, no kako se na ulaz R od B1 dovodi 0, nita se ne dogaa. Sljedei CP Johnsonovo
brojilo prebacuje u stanje 001 (1 na izlazu C). Rastui brid koji se time dobije okida
dvobitno brojilo i ono prelazi u stanje 11, ime se selektira bistabil B0. Sljedei CP
Johnsonovo brojilo prebacuje u stanje 100, i uzrokuje postavljanje B0. Na izlazu D/A
time se dobije napon 11.2 V koji je vei od 10.2 V pa je izlaz komparatora 1. Na
sljedei CP Johnsonovo brojilo prebacuje u stanje 010, a kako se time na ulaz R od B0
dovodi 1, B0 se resetira. Istodobno na ovo stanje reagira i NI sklop (dvobitno brojilo je u
stanju 11, i B=1) i na izlazu daje 0 ime se na CE dovodi 0 (jer je po pretpostavci Start
odavno zavrio). Ovime se blokira daljnje odbrojavanje Johnsonovog brojila, i postupak
konverzije je gotov.
Da bismo rjeili ovaj zadatak, moramo najprije analizirati rad sekvencijskog dijela
sklopa. Jedini sekvencijski dio ini posmani registar s 3 izlaza, to znai da emo imati
maksimalno 8 stanja sustava. Proglasimo izlaz A izlaz najvie teine. Potrebno je
napraviti tablicu prijelaza stanja. Tablicu emo odmah proiriti svim potrebnim ulazima,
kao i binarnim brojem koji se dovodi na ulaz D/A pretvornika. Tu je potrebno uoiti da
se kao najvii bit broja za D/A pretvorbu (koji se dovodi na otpor R) dovodi bit
najmanje teine iz posmanog registra (uz prethodni dogovor da je izlaz A najvie
teine). Tada je tablica prikazana u nastavku:
340 Zbirka rijeenih zadataka
Trenutno
Ulazi mux-a Izlaz Sljedee stanje Broj za D/A Br.
stanje
A B C i1/i2 a1 a0 y A B C n3 n2 n1 n0 n
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0
0 0 1 0 0 0 1 1 0 0 1 0 0 0 8
0 1 0 1 0 1 1 1 0 1 0 1 1 0 6
0 1 1 0 0 1 0 0 0 1 1 1 1 0 14
1 0 0 1 1 0 1 1 1 0 0 0 0 1 1
1 0 1 0 1 0 0 0 1 0 1 0 0 1 9
1 1 0 1 1 1 0 0 1 1 0 1 1 1 7
1 1 1 0 1 1 0 0 1 1 1 1 1 1 15
4 2
6 5
3 1
Iz dijagrama je vidljivo da sklop nema siguran start, niti je otporan na pogreke u radu.
Naime, ukoliko se po ukljuenju sklop nae u stanju 2 ili u stanju 5, nikada nee izai iz
ciklusa (2,5). Isto tako, ukoliko tijekom rada pod utjecajem pogreke sklop pree u
stanje 2 ili 5, ostati e zaglavljen u ciklusu (2,5).
U REF
U izl = R f n = 0.35 n
8R
A/D i D/A konverzija. 341
U izl
0.35
16
14
12
10
8
6
4
2
n
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ZADACI ZA VJEBU
Nacrtati osnovni sklop porodice RTL. Koju funkciju obavlja taj sklop i kako se ona ostvaruje?
Poznati su sljedei podaci: napon napajanja UCC=6 V, tranzistori su silicijski s minimalnim
faktorom istosmjernog strujnog pojaanja hFE=25 (reverzna struja zasienja ICB0 moe se
zanemariti), UCEzas=0.3 V, kolektorski otpor iznosi RC=1 k a bazni otpori iznose RB=10 k.
Odredite:
a) Faktor grananja n
b) Faktor grananja n, uz tolerancije otpora 20%
Osnovni sklop porodice RTL (Resistor-Transistor Logic) je NILI sklop, koji se temelji
na paralelnom radu tranzistora, i prikazan je na sljedeoj slici:
+UCC
RC
f = A+ B
RB RB
A B
Kada je na barem jednom od ulaza (A ili B) visoka razina, tada e taj tranzistor (ili oba
ako su oba ulaza na visokoj razini) provesti, i izlaz f bit e pritegnut na nisku razinu. No
kada je izlaz f na niskoj razini, tada tranzistor idueg stupnja ija je baza spojena na taj
izlaz nee voditi, i taj stupanj nee optereivati dodatnom strujom tranzistor u prvom
sklopu koji je proveo. Iz ovoga slijedi da nema nikakvih ogranienja na broj sklopova
koji se mogu spojiti na izlaz. Promotrimo sada i preostali sluaj.
Kada je na oba ulaza (A i B) niska razina, tada niti jedan tranzistor ne vodi, te je izlaz f
sklopa spojen na visoku naponsku razinu. Visoka razina na izlazu f znai da e
344 Zbirka rijeenih zadataka
tranzistori sljedeeg stupnja iji su ulazi spojeni na taj izlaz provesti. Struja koja e
potei iz promatranog sklopa tada se dijeli za struje baza svih tranzistora.
+UCC
RC
+UCC
RC RB RB
f
A' B'
RB RB
A B
Treba uoiti da struja u tom sluaju tee iz UCC kroz RC na izlaz f, i dalje se dijeli kroz
sve tranzistore sklopova sljedeeg stupnja spojene na taj izlaz. to je ta struja vea, vei
je pad napona na RC, i napon izlaza f pada. Ukoliko je previe sklopova spojeno na taj
izlaz, napon na f e previe pasti, i struja vie nee biti dovoljna za dranje svih
tranzistora u zasienju, ime se dobiva neispravan rad. Vidimo dakle da ovaj sluaj
postavlja ogranienje na broj ulaza koje spajamo na promatrani izlaz.
Kako tranzistori u sljedeem stupnju vode (jer je f=1), njihova maksimalna struja
kolektora odreena je s:
U CC U CEzas
I Czas = = 5.7mA
RC
I Czas I 5 .7 m
I Bzas I Bzas = Czas = = 228A
hFE hFE 25
Integrirani logiki sklopovi. 345
+UCC
RC
IC
+UCC
RC I RB RB
IB
A'
f B'
(n 1) I B +UCC
RB RB n RC
IC
A B
RB RB
Nadomjesna shema:
f
RC RB RB
U
U CC U BEzas U U CC U
+ + + BEzas + n BEzas
R RB RB R RB
U= C = C
1 1 1 1 n
+ ++ +
RC RB RB RC RB
346 Zbirka rijeenih zadataka
U CC U
+ n BEzas
RC RB
U BEzas
1 n U CC U BEzas
+
U U BEzas RC RB RC RC U U BEzas
IB = = = = CC
RB RB RB RB + nRC
+n
RC
U U BEzas I B R B
n = CC = 13.25
I B RC
Slijedi da je maksimalni broj ulaza koji se smije prikljuiti na izlaz f jednak 13.
U CC U CEzas U CC U CEzas
I Czas = = = 7.125mA
RC RC (1 0.2 )
Struja baze potrebna za odravanje izraunate kolektorske struje odreena je uvjetom
zasienja:
I Czas I 7.125m
I Bzas I Bzas = Czas = = 285A
hFE hFE 25
Nadomjesna shema ista je kao i prije. Razlika je samo u tome to svi otpori imaju svoje
tolerancije, pa treba odrediti kada e nastupiti najgori sluaj. To e biti kada jedan otpor
baze bude najvei, a svi ostali otpori baza najmanji, jer e tada kroz najvei otpor tei
najmanja struja (koja moda nee biti dovoljna da tranzistor odrava u zasienju).
Moemo pisati:
Struja baze tranzistora koji ima najvei bazni otpor tada je:
Integrirani logiki sklopovi. 347
U CC U BEzas U BEzas
+ + (n 1)
RC RB RB
U BEzas
1 1 n 1 U CC U BEzas
+ +
U U BEzas RC R B RB RC RC
IB = = =
RB RB RB RB
+ 1 + ( n 1)
RC RB
U CC U BEzas
=
RB
R B + RC + ( n 1) RC
RB
pa je n odreen izrazom:
n=
(
U CC U BEzas I B R B + RC ) = 2.998
RB
I B RC
RB
15.2. Zadatak
Nacrtati DTL sklop u diskretnoj izvedbi. Koju funkciju obavlja sklop? Neka je k takvih
sklopova s otvorenim kolektorom spojeno u spojeni I, i neka je na taj izlaz spojeno n ulaza
istih sklopova. Poznati su sljedei podaci: napon napajanja UCC=5V, ulazna struja DTL sklopa
IIL = 0.5 mA, struja baze izlaznog tranzistora iznosi IBzas = 0.1 mA. Minimalni faktor
istosmjernog pojaanja tranzistora je hFE = 40. Odrediti izraz za minimalni iznos vanjskog
otpora da bi sklop radio ispravno. Koliko iznosi taj otpor za sluaj k=6, n=4?
+UCC +UCC
RC RC
R1 R1
I IL
R2 f=V R2 I Bzas f=N
A=N A=V
B=V R3 B=V R3
-UBB -UBB
Struja tee iz ulaza sklopa prema van. Nema struje prema van iz ulaza sklopa.
+UCC
+UCC
RC
R1
R I IL
R2 f=V
sklop 1 R3
-UBB
+UCC
sklop 2
RC
R1
I IL
R2 f=V
R3
sklop k
-UBB
k n
Ako su svi izlazni tranzistori zatvoreni, tada kroz R ne tee struja. Ako neki od izlaznih
tranzistora vodi, tada mu je struja baze IB = 0.1 mA, pa je maksimalna struja kolektora
izlaznog tranzistora jednaka:
Kada nastupa najgori sluaj? Ako vie tranzistora vodi, tada e se struja koja dolazi iz
ulaza sljedeeg stupnja, kao i kroz otpor R dijeliti kroz te tranzistore. Najgori sluaj je
ako samo jedan izlazni tranzistor vodi, jer e tada on sam morati provesti svu struju i
ostati u zasienju (a struja baze mu je ograniena). U tom sluaju vrijedi:
U CC U CEzas
IC = + n I IL
R
U CC U CEzas
Rmin =
I C max n I IL
5 0 .3
Rmin = = 2.35k
4 m 4 0 .5 m
Ujedno vidimo i da broj izlaza koji je spojen zajedno ne utjee na iznos otpora R.
15.3. Zadatak
Tada u izlaze sklopova u najgorem sluaju ulazi struja IOH, a u ulaze sklopova struja IIH.
Otpor R mora biti takav da propusti potrebnu struju, pa je njegov maksimalni iznos
jednak:
U CC U OH min
R=
k I OH + n I IH
+UCC
R
I
& &
& &
& &
Promotrimo sada sluaj kad je spojeni I na niskoj razini. Tada e maksimalni napon
spojenog I biti upravo UOLmax. Tada e sva struja ulaziti u izlaze izlaznih sklopova, pa
najgori sluaj nastupa kada je samo jedan sklop stvarno u niskoj razini, jer e on tada
morati progutati svu struju:
350 Zbirka rijeenih zadataka
+UCC
R
I
& &
&
&
U CC U OL max
I* = + n I IL
R
Kako izlazni sklop moe maksimalno progutati struju IOL, struja I* ograniena je ovom
strujom, pa je minimalni otpor R koji je potreban kako bi struja ostala u dozvoljenim
granicama jednak:
U U OL max
R = CC
I OL n I IL
U CE [V ]
NAP!
U CC I C = hFE I B = I OL
U CE = U CC I C R
Zasienje
I C hFE I B = I OL
U CE = U CEzas
0.4V
0.1V
R[]
0 R>0
U CC U OH min
R= = 1.84k
k I OH + n I IH
U CC U OL max
R= = 0.479k
I OL n I IL
15.4. Zadatak
Nacrtati standardni TTL. Koju funkciju ostvaruje sklop? Koji su dijelovi sklopa? Analizirati
rad sklopa (bez optereenja i sa optereenjem identinim sklopovima). Analizirati spojeni I
izveden ovim sklopovima.
+UCC 5V
R4
R2 130
R1 4 k 1.62k
Tr4
A Tr2
B Tr1 D f = AB
Tr3
R3
1k
Sklop ostvaruje funkciju NI. Sastoji se od tri dijela: ulaznog I sklopa, meustupnja
(obrta faze) i izlaznog stupnja ("totemski stup"). Ulazne diode slue za uklanjanje
negativnih napona nastalih uslijed refleksija u sustavu.
Promotrimo sluaj kada su oba ulaza na visokoj naponskoj razini. Tr1 se tada nalazi u
inverznom podruju, a Tr2 i Tr3 u zasienju. Oekujemo da e Tr4 biti u zapiranju.
U B 4 = U BEzas 3 + U CEzas 2 = 0.75 + 0.2 = 0.95V
U C 3 = U CEzas 3 = 0.2V
Da bi tranzistor Tr4 vodio (ili barem doao do ruba voenja), UBE4 mora biti barem
U=0.65V, isto kao i UD. Slijedi da bi UB4-UC3 moralo biti vee ili jednako od
U+U=1.3V. No upravo smo pokazali da je UB4-UC3=0.95-0.2=0.75V to je manje od
potrebnih 1.3V, pa zakljuujemo da je Tr4 stvarno u zapiranju. to bi bilo da nema
diode D? Tada bi napon UB4-UC3=0.75V bio vei od napona U i tranzistor Tr4 takoer
bi vodio! Dakle, dioda D potrebna je zato da dri tranzistor Tr4 iskljuenim.
Pogledajmo sada to se dogaa ako je barem jedan od ulaza spojen na nisku naponsku
razinu (npr. A). Kako identian sklop pobuuje ulaz sklopa, niskom ulaznom naponu
odgovara napon UCEzas3=0.2V. Tada je tranzistor Tr1 duboko u zasienju (napon
UCEzas1=0.1V), pa je napon UB2 jednak:
Da bi Tr2 doao na rub voenja, mora i Tr3 biti na rubu voenja, pa bi napon baze
tranzistora Tr2 trebao biti barem U+U=1.3V. No upravo smo izraunali da je taj napon
Integrirani logiki sklopovi. 353
svega 0.3V to nije dovoljno da provede serija tranzistora Tr2 i Tr3, pa su oni sigurno u
zapiranju.
Pretpostavimo sada da izlaz sklopa nije optereen. Tada je struja baze IB4 = 0, nema
pada napona na otporu R2 te je UB4=UCC. Bitno je uoiti da zbog nepostojanja
optereenja izlaza izlazna je struja jednaka 0, pa Tr4 nije u zasienju (unato visokom
naponu baze) ve je na rubu zapiranja i aktivnog podruja. Tada je UBE4 isto kao i UD
jednako U. Izlazni napon tada je:
U B 4 = U CC I B 4 R2
Kako je to ujedno i emiterska struja Tr4, bazna struja bit e hFE puta manja, pa vrijedi:
I izl 1m
U B 4 = U CC I B 4 R2 = U CC R2 == 5 1.62k = 5 32.4mV = 4.9676V
hFE 50
Vidimo dakle da izlazni napon vrlo malo ovisi o optereenju izlaza (naime, u primjeru
smo izlaz opteretili s ak 10 ulaza!).
Kada sklop prelazi iz stanja u kojem je izlaz nizak, u stanje u kojem je izlaz visok,
postoji kratkotrajna pojava zbog injenice da se tranzistor Tr4 prije ukljui no to se Tr3
iskljui. Zbog toga jedno kratko vrijeme (cca 2 ns) tee struja:
Analiza spojenog I
Neka jedan sklop na izlazu daje visoku naponsku razinu (lijevi sklop), a drugi nisku
(desni).
354 Zbirka rijeenih zadataka
+UCC 5V 5V
R4 R4
R2 130 130
R1 4 k 1.62k
Tr4
A Tr2
B Tr1 D
Tr3 Tr3
R3
1k
Lijevi Tr3 biti e u zapiranju, no desni e voditi i zatvoriti e se strujni krug UCC R4
Tr4 D Tr3 masa. Struja koja e potei:
15.5. Zadatak
Kada je Uul=0V:
Da bi Tr2 doao na rub voenja, mora i Tr3 biti na rubu voenja, pa bi napon baze
tranzistora Tr2 trebao biti barem U+U=1.3V. No upravo smo izraunali da je taj napon
svega 0.3V to nije dovoljno da provede serija tranzistora Tr2 i Tr3, pa su oni sigurno u
zapiranju.
Pretpostavimo sada da izlaz sklopa nije optereen. Tada je struja baze IB4 = 0, nema
pada napona na otporu R2 te je UB4=UCC. Bitno je uoiti da zbog nepostojanja
optereenja izlaza izlazna je struja jednaka 0, pa Tr4 nije u zasienju (unato visokom
naponu baze) ve je na rubu zapiranja i aktivnog podruja. Tada je UBE4 isto kao i UD
jednako U. Izlazni napon tada je:
Porastom ulaznog napona prva se promjena dogaa kada Tr2 poinje voditi (dolazimo
do toke A). Tada na bazi Tr2 mora biti napon UB2 jednak U, pa je na ulazu potreban
napon:
Sve do tog napona izlaz je bio nepromjenjen (3.7V), i napon UB4 bio je jednak UCC.
Kako sada Tr2 poinje voditi, pada napon baze UB4, to direktno smanjuje i izlazni
napon (idemo prema toki B). Nova prekretnica dogaa se u trenutku kada i Tr3 poinje
voditi (toka B). Tada je i njegov UBE3 jednak U, to znai da je odgovarajui ulazni
napon bio:
U BE 3 U 0.65
I R3 = = = = 0.65mA
R3 R3 1k
Otprilike ta ista struja tee i kroz otpor R2, pa izlazni napon jednak:
U izl = U CE 3 = U B 4 U BE 4 U D = U CC I R 3 R2 U U
= 5 0.65m 1.62k 0.65 0.65 = 2.647V
Daljnjim porastom ulaznog napona raste struja kroz R2 i rui napon UB4; Tr4 se
iskljuuje, Tr2 i Tr3 idu u zasienje (prema toki C). U toki C Tr4 je iskljuen. Napon
UCE1 iznosi 0V, pa je ulazni napon kod kojega se ovo dogodi jednak:
U izl = U CE 3 = 0.2V
Tr4 vodi
Tr2, Tr3 u zapiranju
uizl [V]
4
3.7 V Tr2 vodi
A Tr3 ne vodi
2.647 V
B
3
Tr2 u zasienju
Tr3 vodi (ide u zasienje)
Tr4 ide u zapiranje
2
C
0.2 V
15.6. Zadatak
Prikazati TTL sklop s tri stanja. Prikazati simbol sklopa. Objasniti nain rada.
+UCC 5V
R4
R2
R1
Tr4
A Tr2
B Tr1 D f = AB
Tr3
R3
D'
EN
Integrirani logiki sklopovi. 357
Kada je ulaz EN na nuli, sklop se ponaa kao "obini" standardni TTL sklop. Kad je EN
na visokoj razini, tranzistor provede i uzrokuje zatvaranje Tr2 (to zatvori i Tr3) i Tr4.
Izlaz f tada je izoliran i od visoke, i od niske razine.
&
EN
15.7. Zadatak
Prikazati i objasniti opu strukturu CMOS sklopa. Izvesti sklopove koji ostvaruju:
a) f = A
b) f = A + B
c) f = AB
d) f = A B + C
e) f = A B + (C + D ) E
+UDD
Pull Up Network
(PUN)
X1
Xn
Sklop se sastoji od dva dijela: mree za pritezanje na +UDD (PUN), i mree za pritezanje
na masu (PDN). Ove dvije mree uvijek ostvaruju komplementarne funkcije, tako da ili
PUN pritee izlaz na UDD, ili PDN pritee izlaz na masu. U svakom sluaju, nikada obje
mree nisu aktivne (jer su komplementarne), pa nikada ne tee struja iz UDD ka masi
kroz njih. Zbog toga ovi sklopovi troe vrlo malo. PUN mrea ostvaruje se PMOS
tranzistorima, a PDN mrea NMOS tranzistorima. Koristiti emo sljedee simbole
NMOSa i PMOSa:
358 Zbirka rijeenih zadataka
NMOS PMOS
+UDD +UDD
f=1 f=0
Kada f treba biti 1, izlaz se kratko spaja na Kada f treba biti 0, izlaz se kratko spaja na
napajanje, a otpaja od mase. masu, a otpaja od napajanja.
a) Invertor
Shema sklopa:
+UDD
Tr1
f =A
A Tr2
A Tr1 Tr2 f
nisko vodi ne vodi UDD
visoko ne vodi vodi 0
A A f
0 1 1
1 0 0
b) Nili
f = A+ B = AB
A B A+ B f
0 0 1 1
0 1 0 0
1 0 0 0
1 1 0 0
c) Ni
f = AB = A + B
A B AB f
0 0 1 1
0 1 1 1
1 0 1 1
1 1 0 0
d) f = A B + C
A B C AB + C f
0 0 0 1 1
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 1 1
1 1 1 0 0
e) f = A B + (C + D ) E
f = A B + (C + D ) E = ( A + B) (CD + E )
Tranzistori Tr1 i Tr2 spojeni su u seriju i ostvaruju (A' I B'). Tranzistori Tr3 i Tr4
spojeni su u paralelu i ostvaruju (C' ILI D'). Paraleli tranzistora Tr3 i Tr4 u seriju je
spojen Tr5 ime se ostvaruje ((C' ILI D') I E'). Konano, serija tranzistora Tr1 i Tr2
spojena je u paralelu s upravo opisanom podmreom ime se ostvaruje (A' I B') ILI ((C'
ILI D') I E').
+UDD
B Tr2 Tr5
f = A B + (C + D ) E
Tr6 Tr7
C Tr8
Tr10
D Tr9
E
364 Zbirka rijeenih zadataka
15.8. Zadatak
+UDD
C A
D B
F E
E B A
F D C
f = ( A B + C D ) (E + F ) = ( A + B )(C + D ) + E F .
15.9. Zadatak
izlaz = g = f = f
g = f = AB
+UDD
+UDD
Tr1
Tr5
Tr2
f = g = A+ B
Tr6
A Tr3 B
Tr4
g = AB
g= f = A+B
+UDD
+UDD
Tr5
Tr1 Tr2 f = g = AB
Tr6
A Tr3
g= A+B
B Tr4
366 Zbirka rijeenih zadataka
+UDD
+UDD
A Tr1
C Tr3 Tr7
B Tr2 f = g = ( A + B) C
Tr8
Tr4 Tr5 g = AB + C
Tr6
+UDD
Tr11
B Tr2 Tr5
f = g = ( A + B ) (C D + E )
Tr12
Tr6 Tr7
g = A B + (C + D ) E
C Tr8
Tr10
D Tr9
E
Integrirani logiki sklopovi. 367
15.10. Zadatak
a)
{ }
f = A + B = B* B = A + B*
+UDD
Tr1 Tr2
f = A+B
+UDD
A Tr3
Tr5
Tr4
B* = B
B Tr6
b)
{ }
f = A B = A* A = A* B
+UDD
Tr1
+UDD Tr2
f = A B
Tr5
Tr3 B
Tr4
*
A =A
A Tr6
c)
{ }
f = A B + C = C* C = A B + C*
+UDD
+UDD
Tr7 A Tr1
Tr3
C* = C
C Tr8 B Tr2
f = AB + C
Tr4 Tr5
Tr6
d)
{ }
f = ( A + B) (CD + E ) = A* A = ( A* + B) (CD + E )
+UDD
+UDD
Tr7
Tr1
B Tr2 Tr5
f = g = ( A + B ) (C D + E )
Tr2
Tr6 Tr7
g = AB + ( C + D ) E
C Tr8
Tr10
D Tr9
15.11. Zadatak
Ovaj sklop uspostavlja elektriku vezu izmeu ulaza A i izlaza B (i to u oba smjera)
ovisno o signalu na upravljakom ulazu EN. Sklop je prikazan na slici. Sklop se sastoji
od dva tranzistora koji su direktno povezani, a na upravljake elektrode se dovode
komplementarni signali. Ponaanje sklopa prikazano je tablici.
EN
EN
EN
Kada su oba tranzistora ukljuena, otpor izmeu toaka A i B iznosi svega nekoliko
stotina , tako da u tom sluaju moemo govoriti o "kratkom spoju".
Integrirani logiki sklopovi. 371
O popularnosti ove strukture dovoljno govori podatak da u seriji 40xx postoji nekoliko
ipova s ovim vratima. ip 4016 sadri 4 propusna vrata, dok ip 4066 sadri vrata
poboljanih karakteristika. ipovi s oznakama 4051, 5052 i 4053 sadre implementacije
multipleksora/demultipleksora uporabom propusnih vrata, i to: 4051 sadri jedan 8/1
multipleksor/demultipleksor, 4052 sadri dva 4/1 multipleksora/demultipleksora a 4053
sadri tri 2/1 multipleksora/demultipleksora. Dobra karakteristika ovih sklopova vidljiva
je iz njihovog opisa: oni mogu biti multipleksori ili demultipleksori, jer propusna vrata
proputaju o oba smjera! To znai da kod npr. multipleksora/demultipleksora 8/1 sklop
moemo koristiti kao multipleksor, pri emu imamo 8 ulaza i 1 izlaz, ili kao
demultipleksor pri emu imamo 1 ulaz i 8 izlaza.
15.12. Zadatak
Jedna mogua izvedba kojom se moe utediti odreen broj tranzistora prikazana je na
slici:
Y = S i0 + S i1 = MUX (i0 , i1 , S )
S TG1 TG2 Y
0 proputa ne proputa i0
1 ne proputa proputa i1
Prikazan sklop ima jednu karakteristiku koja je istovremeno i dobra i loa. Naime,
budui da je sklop ostvaren uporabom propusnih vrata (koja predstavljaju analognu
sklopku, propusnu u oba smjera), sklop se istovremeno moe koristiti i kao multipleksor
(ako su i0 i i1 ulazi, a Y izlaz), i kao demultipleksor (ako je Y ulaz a i0 i i1 izlazi)!
Meutim, ovakvo ponaanje nije uvijek poeljno, pa se multipleksor esto izvodi
dodavanjem jo triju invertora prethodnom sklopu, kao to je prikazano na slici.
15.13. Zadatak
15.14. Zadatak
CL CL
D 1 1 & 1 Q
CL CL
CL CL
& 1
CL CL
CLR
CLK 1 1 CL
CL
(
NI CLR, X ) NI (1, X ) = NI ( X ) = X
CL CL
D 1 1 1 1 Q
CL CL
CL CL
1 1
CL CL
CLK 1 1 CL
CL
CL CL
D 1
CL 1 CL 1 1 Q
CL
1
CLK 1 1 CL
CL
376 Zbirka rijeenih zadataka
Na raspolaganju su TTL sklopovi podskupine 74N i 74S iji su parametri zadani u tablici.
Sklop iz jedne podskupine pobuuje vie sklopova iz druge podskupine. Koliko se
maksimalno sklopova moe spojiti na izlaz jednog sklopa u oba sluaja?
Analizirajmo oba sluaja. Kada sklop porodice 74N pobuuje vie sklopova porodice
74S, vrijedi:
Izlaz je L: I OL , N
I OL , N n I IL , S n = 40
I IL , S
Izlaz je H: I OH , N
I OH , N n I IH , S n = 20
I IH , S
Kada sklop porodice 74S pobuuje vie sklopova porodice 74N, vrijedi:
Izlaz je L: I OL , S
I OL , S n I IL , N n =5
I IL , N
Izlaz je H: I OH , S
I OH , S n I IH , N n = 10
I IH , N
ZADACI ZA VJEBU
Dodatak 1. RC mrea
Uoimo da vrijedi
1
u (t ) = i (t ) R + i (t )dt . (1)
C
Kako je napon na kondenzatoru jednak
1
uC (t ) = i (t )dt (2)
C
slijedi
i (t )
uC (t ) = . (3)
C
Uvrtavanjem (3) u (1) dobiva se
u (t ) = uC (t ) RC + uC (t ) (4)
odnosno
1 1
u (t ) = uC (t ) + uC (t ) . (5)
RC RC
Da bismo opisali kretanje napona na kondenzatoru, potrebno je dakle rijeiti (5). Ovo se
moe obaviti na vie naina, a jedan je opisan u nastavku. Homogena jednadba od (5)
glasi
1
0 = uC (t ) + uC (t ) (6)
RC
odnosno
du (t ) 1
0= C + uC (t ) .
dt RC
Rjeenje jednadbe separacijom varijabli daje
t
duC (t ) 1 t + K1
= dt ln uC (t ) = + K1 uC (t ) = e RC
uC (t ) RC RC
odnosno
t
uC (t ) = e RC
K . (7)
Kako bismo rijeili (5), koristiti emo varijaciju konstante. U tu svrhu pretpostavimo da
K nije konstanta, pa pronaimo derivaciju od uC(t). Iz (7) slijedi
380 Zbirka rijeenih zadataka
t t
1
uC (t ) = e RC K (t ) + e RC K (t ) . (8)
RC
Uvrtavanjem (7) i (8) u (5) slijedi
t t t
1 1
1
u (t ) = e RC
K (t ) + e RC
K (t ) + e RC
K (t )
RC RC RC
odnosno
t
1
u (t ) = e RC
K (t ) . (9)
RC
U zadatku koji rjeavamo, pobuda u(t) je vremenski promjenjiva, ali bitno je uoiti da je
po dijelovima konstantna. Ukoliko se ograniimo na rjeavanje jednadbe po
dijelovima, moemo postupiti na slijedei nain. Ako (9) zapiemo kao
t
1 dK (t )
u (t ) = e RC
RC dt
moemo opet primijeniti separaciju varijabli budui da je u(t) u odreenom intervalu
konstantno
t
1
dK (t ) = e u (t ) dt .
RC
RC
Slijedi
t
K (t ) = e u (t ) + W .
RC
(10)
pri emu je W konstanta. Uvrtavanjem (10) u (7) konano slijedi
t t t
uC (t ) = e RC
e RC u (t ) + e RC
W
odnosno
t
uC (t ) = u (t ) + e RC
W . (11)
U trenutku t=0, pobuda skae na UH. U tom trenutku napon na kondenzatoru uC(0)
iznosi 0V. Ako te podatke uvrstimo u (11) za t=0, slijedi
0
0 = U H + e RC W .
iz ega slijedi iznos konstante W
W = U H . (12)
Uvrtavanjem (12) u (11) slijedi jednadba koja opisuje kretanje napona uC(t) od
trenutka t=0, pa do trenutka t=t1 (naime, u tom intervalu u(t)=UH)
t t
uC (t ) = U H U H e RC
= U H (1 e RC
). (13)
U trenutku t=t1, pobuda u(t) pada na UL. Do tog trenutka vrijedila je (13) pa moemo
izraunati napon uC(t1) koji je u tom trenutku vladao kondenzatoru
t1
uC (t1 ) = U H (1 e ) . RC
(14)
Uvrtavanjem (14) u (11) u trenutku t=t1 moemo odrediti novi iznos konstante W
Dodatak 1. RC mrea. 381
t1 t1
U H (1 e ) = U L + e
RC RC
W
te je
t
1 t1
W = U H (1 e RC ) U L e RC (15)
Uvrtavanjem (15) u (11) slijedi jednadba koja opisuje kretanje napona uC(t) od
trenutka t=t1 na dalje (jer u tom intervalu ostaje u(t)=UL)
t
t
1 t1
uC (t ) = U L + e RC U H (1 e RC ) U L e RC
odnosno
t
1 tRC
t1
uC (t ) = U L + U H (1 e ) U L e
RC
(16)
Iz (13) i (16) slijedi iznos napona uC(t)
0, t<0
t
uC (t ) = U H (1 e RC ), 0 <= t < t1
t1
t t1
U L + U H (1 e RC ) U L e RC , t1 <= t
Dodatak 2. Booleova algebra pregled potrebnih formula. 383
A.2. Komplement
a) A + A = 1
b) A A = 0
A.3. Komutativnost
a) A + B = B + A
b) A B = B A
A.4. Distributivnost
a) A ( B + C ) = A B + A C
b) A + B C = ( A + B ) ( A + C )
Zakon involucije: A = A .
Zakon asocijacije:
a) ( A + B ) + C = A + ( B + C )
b) ( A B ) C= A ( B C )
De Morganov zakon:
a) A + B = A B
b) A B = A + B
384 Zbirka rijeenih zadataka
Booleova algebra je neprazni skup B nad kojim su definirane dvije binarne operacije i
koje zadovoljavaju sljedee aksiome (za svaki X, Y i Z iz B):
A1. ( X Y ) Z = X (Y Z )
Asocijativnost
( X Y ) Z = X (Y Z )
A2. X Y = Y X
Komutativnost
X Y = Y X
A4. X X =0 Samoinverz
X X = X Idempotentnost
A5. X (Y Z ) = ( X Y ) ( X Z ) Distributivnost
Def1. X + Y = X Y ( X Y )
Def2. X = 1 X
Dodatak 3. K tablice. 385
Dodatak 3. K tablice
Prazne K-tablice
Tablica za dvije varijable:
A
0 1
B 0
AB
00 01 11 10
C 0
AB
00 01 11 10
CD 00
01
11
10
ABC
000 001 011 010 110 111 101 100
DE 00
01
11
10
ABC
000 001 011 010 100 101 111 110
DE 00
01
11
10
A
0 1
B 0 0 2
1 1 3
AB
00 01 11 10
C 0 0 2 6 4
1 1 3 7 5
Dodatak 3. K tablice. 387
AB
00 01 11 10
CD 00 0 4 12 8
01 1 5 13 9
11 3 7 15 11
10 2 6 14 10
Tablica za pet varijabli (direktno Grayev kod):
ABC
000 001 011 010 110 111 101 100
DE 00 0 4 12 8 24 28 20 16
01 1 5 13 9 25 29 21 17
11 3 7 15 11 27 31 23 19
10 2 6 14 10 26 30 22 18
Tablica za pet varijabli (3D prikaz; A odreuje visinu):
ABC
000 001 011 010 100 101 111 110
DE 00 0 4 12 8 16 20 28 24
01 1 5 13 9 17 21 29 25
11 3 7 15 11 19 23 31 27
10 2 6 14 10 18 22 30 26
388 Zbirka rijeenih zadataka
Susjednost:
Kod K-tablica za dvije do etiri varijable susjedna polja su na istoku, zapadu, sjeveru i
jugu (da se posluimo "zemljopisnom" terminologijom). Ako se radi o polju koje je npr.
na vrhu tablice, onda se termin polje iznad odnosi na polje koje je u istom stupcu ali na
drugom kraju (kao da smo tablicu zamotali u valjak). Pogledajmo tablicu za etiri
varijable. Vrijedi npr.:
Literatura