Professional Documents
Culture Documents
Digitalna Elektronika - Zbirka Rjesenih Zadataka PDF
Digitalna Elektronika - Zbirka Rjesenih Zadataka PDF
ZBIRKA RIJEENIH
ZADATAKA IZ
DIGITALNE
ELEKTRONIKE
Zagreb, 2004
Verzija 1.3
Predgovor
Zbirka rijeenih zadataka iz Digitalne elektronike namijenjena je svim
studentima koji polau ovaj kolegij, ili su zainteresirani za pokriveno
gradivo. Zbirka je nastala kao rezultat rada na auditornim i laboratorijskim
vjebama kroz akademske godine 2002/2003-2004/2005. Temeljni
materijal koriten za izradu zbirke ine zadaci s auditornih vjebi u
akademskoj godini 2001/2002. Zbirka je nadopunjena nizom zadataka u
skladu s obnovljenim podrujima obraenim na predavanjima u
akademskoj godini 2002/2003. U zbirci se takoer nalaze rijeeni zadaci s
kolokvija, pismenih ispita, kao i odreen broj zadataka koje studenti vrlo
esto rjeavaju pogreno. Ponegdje su ak ukljueni i ti pogreni naini
rjeavanja, zajedno s objanjenjem zato je to pogreno, i ispravnim
rjeenjem.
Zbirka rijeenih zadataka ne sadri teorijska razmatranja koja pokriva ovaj
kolegij, te se u tu svrhu preporua knjiga prof. dr. sc. Uroa Peruka
Digitalna elektronika, logiko i elektriko projektiranje, III. proireno
izdanje, kao i uredno pohaanje predavanja.
U zbirci se osim samog logikog i elektrikog projektiranja digitalnih
sklopova nalaze i zadaci vezani uz opisivanje i simuliranje istih uporabom
VHDL-a. Vie o samom jeziku za opis sklopovlja VHDL-u moe se
pronai u materijalima za laboratorijske vjebe Stjepana Groa, dipl. ing.
Dobar uvod u VHDL dostupan je takoer kroz skriptu mr. sc. Sinie
egvia Uvod u programski jezik VHDL, koja se moe pronai na
stranicama kolegija.
Sadraj
1.
2.
3.
4.
5.
6.
7.
8.
Bistabil. ________________________________________________________179
9.
10.
Registri. ______________________________________________________209
11.
Brojila. _______________________________________________________225
12.
13.
Memorije. _____________________________________________________289
14.
15.
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).
Presluavanja nastaju kao rezultat utjecaja meukapaciteta i meuinduktiviteta.
Manifestiraju se kao pojava pozitivnih ili negativnih naponskih smetnji na vodiu
uslijed promjene naponske razine na nekom drugom vodiu.
Parazitne kapacitivnosti i induktivnosti utjeu na poveavanje vremena potrebnog za
promjenu naponskih razina u digitalnom sustavu. Pri tome je uobiajeno dominantan
utjecaj parazitnih kapacitivnosti.
1.2. Zadatak
Objasnite pojam prijenosne linije.
Dugaki vodii (obzirom na valnu duljinu signala koji kroz njih putuje) nazivaju se
prijenosne linije. Prijenosne linije imaju nekoliko karakteristinih parametara:
lR0
Z0 =
lG0
lC0
lR0 + jlL0
lG0 + jlC o
lC0
L0
Co
= 0 r , = 0 r , 0 = (1 / 36 ) 10 9 , 0 = 4 10 7 .
m
m
Lako se vidi da je za medij u kojem je r=1 i r=1: v =
m
= 3 10 8 = c .
s
0 0
1
Kako je kod prijenosnih linija uobiajeno ispunjeno r=1, slijedi da je brzina irenja
signala odreena izrazom:
v=
Moe se pokazati da je brzina irenja signala kod prijenosne linije bez gubitaka takoer
odreena izrazom:
1
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
s
L0 C 0 l T0
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?
3 10 8
m
= 2.5 10 8
s
1.44
v 2.5 10 8
=
= 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
Objasnite pojam refleksije i transmisije.
Neka je na prijenosnu liniju spojen izvor, ija je nadomjesna shema prikazana
naponskim izvorom Us(t) i otporom Rs, te troilo RL. Nadomjesna shema cijelog sklopa
prikazana je u nastavku.
Rs
Z0
A
Us(t)
+
-
prijenosna linija
RL
A =
RS Z 0
RL Z 0
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:
1+
Upadni val
X
Transmitirani val
Reflektirani val
B
t=0
t=0
Ui
t=0+1Td
t=0+2Td
t=0+3Td
t=0+4Td
U i B
U i B A
U i B2 A
U i B2 A2
t=0+1Td
t=0+2Td
t=0+3Td
t=0+4Td
t=tx
t=0+5Td
t=0+6Td
U i B3 A2
U i B3 A3
t=0+5Td
t=0+6Td
l
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:
Ui = US
Z0
RS + Z 0
1.5. Zadatak
Koji su karakteristini sluajevi optereenja prijenosne linije? Izraunajte faktor refleksije.
Z0
A
Us(t)
Z0
Z0
A
+
-
Z0 Z0
=0
Z0 + Z0
B =
0 Z0
= 1
0 + Z0
B =
Z0
=1
+ Z0
B
RL=0
prijenosna linija
B =
Rs
Us(t)
RL=Z0
prijenosna linija
Rs
Us(t)
B
prijenosna linija
RL =
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.
B
uiz
uul
Poznato je:
Riz = 100 , R0 = 100 , Rul = 3900 , v = 2 10 8 m / s , l = 40cm = 0.4m
l
0. 4
=
= 2 ns
v 2 10 8
ug
uA
R0
uB
Rul
A =
B =
B
t=0 ns
t=0 ns
U i = 2,5V
t=2 ns
U i B = 2,375V
t=2 ns
t=4 ns
U i B A = 0V
t=4 ns
Ui = U g
R0
100
= 5
= 2,5V
Riz + R0
100 + 100
0.
2.
Izlaz sklopa A: u A
(ulazni kraj voda)
t=0Td =0 ns
uA(0 ns)=2,5 V
t=1Td =2 ns
uA(2 ns)=2,5 V
t=2Td =4 ns
uA(4 ns)=2,5+2,375=4,875 V
Ulaz sklopa B: u B
(izlazni kraj voda)
t=0Td =0 ns
uB(0 ns)=0 V
1. t=1Td =2 ns
uB(2 ns)=2,5+2,375=4,875 V
t=2Td =4 ns
uB(4 ns)=2,5+2,375=4,875 V
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
5
Za vjebu:
Kakvo bi bilo stanje na vodu uz: a) Rul=, b)
Rul=0?
uA
5
uB
5
t
[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,5H / m
Rul = 3900
C0 = 50 pF / m
10
L
=
C
0,5
= 10000 = 100
50 p
10
v=
s
L0C0
0,5 10 6 50 1012
Vrijeme potrebno za prolaz signala do kraja voda iznosi:
Td =
l
0. 6
=
= 3 ns
v 2 10 8
A =
B =
Ui = U g
R0
100
= 5
= 2V
Riz + R0
150 + 100
11
B
t=0 ns
t=0 ns
U i = 2V
t=3 ns
U i B = 1,9V
t=3 ns
t=6 ns
U i B A = 0,38V
t=6 ns
t=9 ns
t=12 ns
t=15 ns
t=9 ns
U i B2 A = 0,361V
t=12 ns
U i B2 A2 = 0,0722V
t=15 ns
U i B3 A2 = 0,06859V
t=18 ns
t=18 ns
U i B3 A3 = 0,013718V
t=0Td =0 ns
uA(0 ns)=2 V
t=1Td =3 ns
2.
t=0Td =0 ns
uB(0 ns)=0 V
1. t=1Td =3 ns
uA(3 ns)=2 V
t=2Td =6 ns
uB(3 ns)=2+1,9=3,9 V
t=2Td =6 ns
uA(6 ns)=2+1,9+0,38=4,28 V
uB(6 ns)=2+1,9=3,9 V
t=3Td =9 ns
4.
Izlazni kraj:
3. t=3Td =9 ns
uA(9 ns)=2+1,9+0,38=4,28 V
uB(9 ns)=2+1,9+0,38+0,36=4,64 V
t=4Td =12 ns
t=4Td =12 ns
12
uA(12 ns)=2+1,9+0,38+0,36+0,0722
= 4,7132 V
t=5Td =15 ns
6.
uB(12 ns)=2+1,9+0,38+0,36=4,64 V
5. t=5Td =15 ns
uA(15 ns)=2+1,9+0,38+0,36+0,0722
= 4,7132 V
uB(15 ns) =
= 2+1,9+0,38+0,36+0,0722+0,06859
= 4,78179 V
t=6Td =18 ns
t=6Td =18 ns
uA(18 ns) =
= 2+1,9+0,38+0,36+0,0722
+0,06859+0,013718
= 4,795508 V
uB(15 ns) =
= 2+1,9+0,38+0,36+0,0722+0,06859
= 4,78179 V
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.
A =
B =
Rul R0 100
=1
=
Rul + R0 + 100
100
100
= 5
= 1V
400 + 100
400 + 100
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
t=0 ns
t=6 ns
B
t=0 ns
U i = 1V
U i = 1V
t=6 ns
U i B = 1V
U i B = 1V
t=12 ns
t=12 ns
U i B A = 0,6V
t=18 ns
U i B A = 0,6V
t=18 ns
U i B2 A = 0,6V
t=24 ns
U i B2 A = 0,6V
t=24 ns
U i B3 A2 = 0,36V
t=30 ns
U i B3 A2 = 0,36V
t=30 ns
U i B3 A2 = 0,36V
t=36 ns
U i B3 A2 = 0,36V
U i B3 A3 = 0,216V
U i B3 A3 = 0,216V
l
Dijagrami napona na ulazu i izlazu iz linije prikazani su u nastavku:
t=36 ns
14
ui [V]
2
1,5
1V
1
0,5
t [ns]
uA [V]
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
1,6V
1,5
1V
0,96V
1
0,576V
0,5
t [ns]
uB [V]
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
34
36
38
40
2V
2
1,5
1,2V
0,72V
0,5
t [ns]
2
10
12
14
16
18
20
22
24
26
28
30
32
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:
A =
3 =
Riz Z 0,1
Riz + Z 0,1
Z 0,1 Z 0, 2
Z 0,1 + Z 0, 2
15
Z 0, 2 Z 0,1 60 100
150 100
= 0,2 , 2 =
=
= 0,25 ,
150 + 100
Z 0, 2 + Z 0,1 60 + 100
RL Z 0, 2 60
100 60
= 0, 25 , 3 =
=
=1
100 + 60
RL + Z 0, 2 + 60
Naime, 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:
Ui = U g
Z 0,1
Riz + Z 0,1
= 5
100
= 2V
150 + 100
0 ns
B
0 ns
2 ns
4 ns
8 ns
8 ns
g
10 ns
12 ns
4 ns
10 ns
2 ns
i
12 ns
14 ns
14 ns
16 ns
16 ns
n
18 ns
o
q
18 ns
T2 = 1 + 2 = 0,75 i T3 = 1 + 3 = 1,25
Tada su pojedine komponente definirane izrazima:
16
a = U i = 2V
b = aT2 = 1,5V
c = a 2 = 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 h
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
Grafiki prikaz napona u tokama A, X i B dan je u nastavku.
17
UA[V]
4,5392 V
4,016V
3,68 V
4
3
2V
1,4 V
2
1
t [ns]
2
10
12
14
16
UX[V]
4,452 V
3,96 V
3,3 V
4
3
1,5 V
2
1
t [ns]
2
10
12
14
16
UB[V]
4,32 V
4,587 V
3,6 V
4
3V
3
2
1
t [ns]
2
10
12
14
16
1.10. Zadatak
Objasnite utjecaj presluavanja na rad digitalnih sklopova.
18
R0
R0
blii kraj
R0
ICm
Iblii=ICm+ILm
dalji kraj
Idalji=ICm-ILm
RS
R0
R0
blii kraj
R0
ILm
dalji kraj
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
Izlaz jednog digitalnog sklopa A spojen je na ulaze dvaju
digitalnih sklopova B i B' preko dugakog voda na
tiskanoj ploici. Poznato je da izlazni otpor sklopa A kada
je izlaz u visokom stanju iznosi 130, dok je u niskom
stanju 10. Ulazni otpor sklopa B (i B') iznosi 10k, dok
je ulazna kapacitivnost 1 pF. Kapacitivnost linije iznosi
10pF.
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.
19
Rizl
CP
ug
Rul
CT
B'
Rul
CT
Ovu shemu moemo nacrtati i na drugaiji nain, tako da grupiramo otpore na jedno
mjesto a kapacitivnosti na drugo:
Thevenin
Rizl
Rul
ug
Rul
CP
ut
Rul || Rul
= 4.873V
Rizl + Rul || Rul
= Rul || Rul || Rizl
CTOT = CT + CT + CP
ut = u g
RTOT
1
CTOT
i(t ) dt
CTOT
CT
CT
20
uul (t ) = uC (t ) = ut 1 e
, = RTOT ,1 CTOT , RTOT ,1 = 10k || 10k || 130
1 = 1,52ns
Jednadba vrijedi do t = 10 ns.
2. sluaj:
t=10ns, skok napona izvora s ut na 0V (kraj naponskog impulsa).
Rjeenje jednadbe tada glasi:
t 10 n
2 = 0,12ns
Jednadba vrijedi od t = 10 ns nadalje.
Grafiki prikaz:
ut
t
10 ns
uul
t
10 ns
Za vjebu:
Izraunati vrijeme porasta, vrijeme pada i trajanje
impulsa prema predavanjima.
Ako se trajanje impulsa skrati na 1 ns, kako e
tada izgledati izlazni napon? Hoe li sklop B
ispravno protumaiti da je primio visoku
naponsku razinu (pretpostavimo da napon na
ulazu mora biti barem 4V da bi bio shvaen kao
visoka razina)?
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!
vod A
W
vod B
zbog meuinduktiviteta
zbog kapaciteta
iI
iC C
iII
Rg
Rg
R1 u1
-
u2
R2
RT
+
R1 u1
ug
uP
di
diI
1
, iII =
M I
=
dt
R1 + R2 R1 + R2
dt
+
di
R1
M I
u1 =
dt
R1 + R2
+
R2
di
u2 =
M I
R1 + R2
dt
up = M
uP
ug
uC
iC = C
duC
dt
duC
dt
du
( R1 || R2 ) C C
dt
( R1 || R2 ) C
u2 R2
RT
-
22
=
=
= 7 108 V
s
dt
tf
tf
tf
iI (t1 ) = I IH i iI (t1+ ) = I IL
diI iI iI (t1+ ) iI (t1 ) I IL I IH
=
=
= 3,2 105 A
s
dt
tf
tf
tf
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:
uA
diI
dt
duC
dt
?
uB
?
t
t1
t1+T
Za vjebu.
Izraunati i nacrtati utjecaj presluavanja u
trenutku t=t1+T (dakle, na rastui brid).
Ponoviti analizu uz pretpostavku da su susjedni
sklopovi sada X i W, te Y i Z.
23
ZADACI ZA VJEBU
1.
2.
b.
25
r n 1 4
=
= = 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
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
27
r 1
= = 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 .
28
R=
p
W
to e dati:
n = (W + 1) + 1
W
p
r = W + +1
W
pa imamo:
p
+1
W
R(W ) =
(W + 1) p + 1
W
W+
p
p
p
p
2 + 1(W + 1) + 1 + W + 1 + 1 + (W + 1) 2
dR(W ) W
W
W
W
W
=
dW
(W + 1) p + 1
W
pW W 2 p = 0
Kako niti p niti W ne mogu biti 0, slijedi da je trei lan jednak 0, pa imamo:
W=
=0
p
p
=
=
W
p
29
To znai da emo svaki oktet staviti u jedan redak. Zatieni blok podataka iznosi:
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
Prvi redak pripada paritetnim bitovima poprenog pariteta, a zadnji stupac pripada
paritetnim bitovima uzdunog pariteta.
2.4. Zadatak
Poruku 101100011010(2) potrebno je zatititi uporabom Hammingovog koda koristei parni
paritet. Zatim pretpostavite da tijekom prijenosa takve zatiene poruke uslijed djelovanja
smetnji 12-ti bit (brojei s lijeva na desno poevi od 1) promjeni iznos. Da li moemo otkriti
da je dolo do pogreke u prijenosu, i moemo li ispraviti pogreku? Pokaite to.
30
C
1
20
0
0
0
0
1
P
3
0
0
0
1
1
C
4
22
0
0
1
0
0
P
5
0
0
1
0
1
P
6
0
0
1
1
0
P
7
0
0
1
1
1
C
8
23
0
1
0
0
0
P
9
0
1
0
0
1
P
10
0
1
0
1
0
P
11
0
1
0
1
1
P
12
0
1
1
0
0
P
13
0
1
1
0
1
P
14
0
1
1
1
0
P
15
0
1
1
1
1
C
16
24
1
0
0
0
0
P
17
1
0
0
0
1
Potrebno je poslati ukupno 17 bitova kako bismo mogli sigurno prenijeti 12 bitova
poruke (sigurno u smislu mogunosti ispravljanja jednostruke pogreke).
Vrijednost zatitnog bita izraunamo na slijedei nain:
Pronaemo u tablici onaj redak u kojem ispod traenog zatitnog bita imamo 1.
Suma modulo 2 (to je ekvivalentno operaciji iskljuivo ili) tog bita sa svim
bitovima koji u tom istom retku imaju 1 mora zadovoljavati traeni paritet
(dakle, biti 0 za parni paritet, odnosno 1 za neparni paritet).
Upisujemo poruku:
C
1
?
C
2
?
P C P P P C P
P
P
P
P
P
P
C
3 4 5 6 7 8 9 10 11 12 13 14 15 16
?
1 ? 0 1 1 ? 0
0
0
1
1
0
1
(? oznaava da na ovom mjestu jo ne znamo vrijednost odreenog bita)
P
17
0
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.
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
32
2.5. Zadatak
Blok od 8000 okteta alje se komunikacijskim medijem. Koliko je zatitnih bitova potrebno, i
kolika je redundancija, ako za zatitu koristimo:
a) uzduni plus popreni paritet
b) Hammingov kod
r 8009
=
= 0,111
n 72009
to je vie od 11%.
b) Uporaba Hammingovog koda
on
p1,8
p8000,8
v1
vn
Za vjebu.
Rijeite a) dio zadatka tako da podatkovne
bitove sloite na nain koji e potroiti
minimalno potreban broj zatitnih bitova.
Koliko tada iznosi redundancija? Usporedite s
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.
Napisano na drugi nain:
2r k + r + 1
Prvi r koji ovo zadovoljava jest r=16:
216 = 65536 64000 + 16 + 1 = 64017
Ukupno emo prenijeti n = 64000+16 = 64016 bitova, pa je redundancija:
R=
r
16
=
= 0,00025
n 64016
33
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.
c3
0
0
0
1
Zatitni bitovi
c2
c1
0
0
0
1
1
0
0
0
Podatak
c0
1
0
0
0
p0
p1
p2
p3
Izraunajmo minimalnu distancu koda (najmanji broj bitova koji se razlikuju izmeu
dvije kodne rijei):
p0
p0
p0
p1
p1
p2
p1
p2
p3
p2
p3
p3
3
3
4
4
3
3
34
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)
)
35
P(3)P(5)P(7)P(9)P(11)P(13) )
P(3)P(6)P(7)P(10)P(11)P(14) )
P(5)P(6)P(7)P(12)P(13)P(14) )
P(9)P(10)P(11)P(12)P(13)P(14) )
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
1
?
C
2
?
P
3
C
4
?
P
5
P
6
C
2
0
P
3
1
C
4
1
P
5
0
P
6
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.
C(1) = P(3)P(5) = 10 = 1 0 (proitano iz tablice)
C(2) = P(3)P(6) = 10 = 1 0 (proitano iz tablice)
C(4) = P(5)P(6) = 00 = 0 1 (proitano iz tablice)
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
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
Hammingova rije
000(2)
001(2)
010(2)
011(2)
100(2)
101(2)
110(2)
111(2)
110100(2)
100001(2)
010010(2)
000111(2)
001100(2)
011001(2)
101010(2)
111111(2)
2.11. Zadatak
Pretpostaviti da je kroz nesiguran komunikacijski kanal poslana Hammingova kodna rije, a
primljena je kodna rije 000011011100101. Da li je nastupila pogreka? Na kojem mjestu,
i kako se to matematiki moe izraunati? Kako glasi podatak koji je poslan (ako je najvii bit
podatka spremljen na prvo mogue lijevo mjesto u Hammingovoj kodnoj rijei), i kolika je
redundancija ovog kodiranja? Koriten je parni paritet.
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)
Izraunati niz zatitnih bitova na temelju ovih izraza glasi: 0010.
Pogreka je tada na 1000 XOR 0010 = 1010 = 10(10).
Dakle, pogreka je oito nastupila, i njezin poloaj odreen je temeljem razlike
sindroma.
Niz nakon ispravljanja pogreke: 000011011000101.
Podatak koji je poslan: 01101000101.
Redundancija kodiranja u ovom sluaju iznosi:
R=
r
4
=
= 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.
177
88
44
22
11
5
2
1
:
:
:
:
:
:
:
:
smjer
itanja
38
0,296875
0,59375
0,1875
0,375
0,75
0,5
0
smjer itanja
Moemo pisati:
177,296875(10) = 10110001,010011(2).
b) Baza 8
Ponovimo postupak opisan u a).
baza
177 :
22 :
2 :
8
8
8
baza
177 :
11 :
16
16
39
smjer itanja
Moemo pisati:
177,296875(10) = B1,4C(16).
2.13. Zadatak
Potrebno je zapisati broj 261,23(8) u bazi:
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
Kako je 8=23, svaku emo znamenku broja zapisanog u bazi 8 pretvoriti u
troznamenkasti broj prikazan u bazi 2 (tj. 21):
2
010
6
110
1
001
,
,
2
010
3
011
(8)
(2)
6
110
1
001
,
,
2
010
3
011
(8)
(2)
40
0001
1
,
,
0100
4
1100
C
(2)
(16)
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)
ZADACI ZA VJEBU
1.
2.
3.
41
&
&
&
c
d
i1
i2
&
Moemo pisati:
i1 = a b
i 2 = i1 + c
f = i 2 d = (i1 + c ) d = (a b + c ) d
42
a
b
&
sklop1
i1
i2
&
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.
Opis ILI sklopa:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY sklopOR IS
PORT( x1, x2: IN std_logic;
y
: OUT std_logic );
END sklopOR;
ARCHITECTURE funkcijskaOR OF sklopOR IS
BEGIN
y <=x1 OR x2;
END funkcijskaOR;
43
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;
ARCHITECTURE funkcijskaAND OF sklopAND IS
BEGIN
y <=x1 AND x2;
END funkcijskaAND;
pozicijsko
povezivanje
pozicijsko
povezivanje
povezivanje
putem imena
44
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
&
1
c
&
3.2. Zadatak
Zadana je tranzistorska sklopka prema slici. Poznati su slijedei
podaci:
U CC = U BB = 5V
RC = 1k
R1 = 10k
R2 = 100k
hFE = 50
U CEzas = 0.3V
U BEzas = 0.8V
I CB 0 = 0.1A
+UCC
RC
U ul1 = 4V
U ul 2 = 0.3V
R1
Uizl
Uul
R2
-UBB
+UCC
RC
R1
Uul
I1
I CB 0
IB
I2
UBE
R2
-UBB
Provjera zasienja.
U zasienju, na ulazu je Uul=Uul1, UBE=UBEzas, UCE=UCEzas, dok ICB0 ne postoji.
Uizl
45
IB
IC
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.
I B = I1 I 2 =
I Czas =
U R1
R1
U R2
R2
= 0.262mA
R1
R2
U CC U CEzas
= 4.7 mA
RC
0.262mA
4.7mA
= 0.094mA
50
I2 =
R1
U ul 2
U BB
+
+ I CB 0
R1 + R2
R1 + R2 R1 + R2
Uvrtavanjem dobivamo:
U ul 2
U BB
R1
R2 U BB = 0.18V
U BEzap =
+
+ I CB 0
R1 + R2
R1 + R2 R1 + R2
46
Tranzistor je sigurno u zapiranju jer je UBEzap manji od napona praga voenja U koji
iznosi oko 0.3V.
b) Uz zadane tolerancije potrebno je ponovno provjeriti da li je tranzistor u zasienju
odnosno u zapiranju, ovisno o ulaznom naponu.
Provjera zasienja.
Najnepovoljniji sluaj za zasienje je kada je struja baze minimalna, a struja kolektora
maksimalna, jer se tada moe dogoditi da vie ne vrijedi odnos:
IB
IC
hFE
I Bzas = I1 I 2 =
=
I Czas =
=
U R1
R1
U R2
R2
R2
R1
= 0.221mA
(1 + 0.1) R1
(1 0.1) R2
U CC U CEzas
RC
(1 + 0.1) U CC U CEzas
= 5.78mA
(1 0.1) RC
5.78mA
= 0.1156mA
50
Provjera zapiranja.
U
U BB
R1
ul 2
R U
+
+ I CB 0
U BEzap =
2
BB
R1 + R2 R1 + R2
R1 + R2
U ul 2
(1 0.1) U BB
(1 0.1) R1
(1 + 0.1) R2 (1 0.1) U BB = 0.062V
=
+
+ I CB 0
(1 0.1) R1 + (1 + 0.1) R2
(1 0.1) R1 + (1 + 0.1) R2 (1 0.1) R1 + (1 + 0.1) R2
47
3.3. Zadatak
Diodni I sklop spojen je s invertorom iz prethodnog zadatka kojemu je na ulaz dodana dioda.
a) Provjerite da li taj sklop funkcionira i koju logiku funkciju ostvaruje.
b) Ako na izlaz tog sklopa spojimo ulaze identinih sklopova, postoji li kakvo ogranienje na
njihov broj? Objasnite.
c) Ponovite analizu za tolerancije otpora od 10%.
+UCC
RC
+UCC
R1
Uizl
UulA
Uul
Uizl
UulB
R2
-UBB
Diodni I sklop
+UCC
+UCC
RC
R
R1
UulA
Uizl
UulB
R2
-UBB
hFE = 100
U CEzas = 0.3V
U BEzas = 0.8V
I CB 0 = 0A
U ul1 = 5V
U ul 2 = 0.3V
R = 1k
48
Analizirajmo rad sklopa. Oznaimo na slici dodatne napone koji e nam pomoi u
analizi sklopa.
+UCC
+UCC
IR
RC
R
D
UulA
UulB
R1
Uizl
UAB
UD
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:
U AB = U ulA + U D = 0.3 + 0.7 = 1V
Treba uoiti da druga dioda ne vodi jer je na njoj pad napona:
U AB U ulB = 1 5 = 4V < 0.7V
Da bi tranzistor doao duboko u zasienje, napon baza-emiter mora biti 0.8V (a
minimalno 0.7V za poetak zasienja). Isto tako, dioda D mora provesti kako bi mogla
potei struja baze, to znai da na njoj mora takoer biti pad napona od 0.7V. Slijedi da
bi napon UAB morao biti barem UBEzas+UD=0.7+0.7=1.4V (zapravo bi trebao biti jo vii
zbog pritezanja napona baze na UBB preko R2). Meutim, napon UAB je samo 1V to
nije dovoljno da provedu i dioda i tranzistor pa oni ne vode. Tranzistor je dakle u
zapiranju i izlazni napon Uizl=UCC=+5V. Ista situacija bila bi kada bi UulB bio nizak a
UulA visok, ili oba napona niska.
Tee struja IR za koju osjenani dio sheme uope ne postoji, a njezin iznos je:
IR =
U CC U AB 5 1
=
= 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:
49
+UCC
+UCC
RC
R
D
UulA
UulB
UAB
UD
R1
I1
IB
I2
Uizl
UBE
R2
-UBB
I1 =
I2 =
U BEzas + U BB 0.8 + 5
=
= 0.058mA
R2
100k
U CC U CEzas 5 0.3
=
= 4.7mA
RC
1k
50
+UCC
+UCC
+UCC
RC
I1
1
IR
D
UulA
R1
Uizl
UulB
UAB
UD
+UCC
UBE
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
IR
+UCC
+UCC
RC
I1
D
UulA
R1
Uizl
UulB
UAB
UD
+UCC
IR
UBE
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:
IC =
U CC U CEzas
+ n IR
RC
Struja IR iznosi:
IR =
U CC U D U CEzas
= 4mA
R
51
U CC U CEzas
U U D U CEzas
+ n CC
RC
R
Prisjetimo se, da bi tranzistor bio u zasienju, struja kolektora IC ograniena je strujom
baze IB! Mora vrijediti:
IC =
I C hFE I B
Uvrstimo li izraz za IC u prethodnu nejednadbu, moemo izraziti n:
U U D U CEzas
U CC U CEzas
+ n CC
hFE I B
R
RC
U CC U CEzas
RC
= 5.33
U D U CEzas
R
hFE I B
U CC
I B = I1 I 2 =
U CC U D U BEzas U BEzas + U BB
R + R1
R2
52
I B = I1 I 2 =
U CC U D U BEzas U BEzas + U BB
= 0.2248mA
R2
R + R1
IC =
U U D U CEzas
U CC U CEzas
+ n CC
R
RC
to je maksimalno ako su svi otpori R sklopova spojenih na izlaz minimalni, kao i otpor
RC u izlaznom krugu tranzistora.
IC =
U CC U CEzas
U U D U CEzas
+ n CC
RC
R
Uvrtavanjem u nejednadbu:
I C hFE I B
moe se izraunati n:
U CC U CEzas
RC
= 3.883
U D U CEzas
R
hFE I B
n
U CC
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.
UILmax predstavlja maksimalni napon koji e se na ulazu jo uvijek protumaiti kao
niska naponska razina. UOLmax predstavlja maksimalnu vrijednost napona koju e sklop
generirati na izlazu u sluaju kada je izlaz nizak. UOLmax tipino je manji od UILmax, a
njihova razlika ini granicu istosmjerne smetnje pri niskoj razini:
U GS , L = U IL max U OL max = 2 0.5 = 1.5V
53
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:
U GS , H = U OH min U IH min = 4.2 3.5 = 0.7 V
Granica istosmjerne smetnje tada se definira kao manja od ove dvije vrijednosti, pa
vrijedi:
U GS = min(U GS ,L , U GS , H ) = min(1.5, 0.7) = 0.7 V
IOHmax
Uizl UOLmax
RL
Uizl UOHmin
a) izlaz je L
b) izlaz je H
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 = I OL max RL
I OL max =
U OL max 0.5
=
= 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 OH min = U CC I OH max RH
I OH max =
U CC U OH min 5 4.2
0.8
=
=
= 0.8 mA
RH
1000 1000
54
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:
nL I IL max I OL max
nL =
I OL max
5
=
= 6.25
I IL max 0.8
nH I IH max I OH max
nH =
I OH max
0.8
=
=5
I IH max 0.16
55
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)
I=
U CC
R1 + R2
I=
Slijedi:
U X = I R2 = U CC
U CC U 2
R1 + R2
Slijedi:
R2
R1 + R2
U X = U 2 + I R2 = U 2 + (U CC U 2 )
= U CC I R1 = U CC (U CC
R2
R1 + R2
R1
U2 )
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.
56
+UCC
I
UD
I2
R
I1
Uul
UD
UX
a) neoptereen izlaz
Uul
RT
UX
b) optereen izlaz
Sluaj a)
Krenimo u razmatranje od Uul=UCC. Napon na diodi tada iznosi:
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*:
U D = U CC U ul = 0.7V
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
Sada kroz sklop tee struja I odreena relacijom:
I=
U CC U D U ul
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
Kad napon Uul doe do nule, UX je minimalan a struja I maksimalna, te iznose:
U X = U ul + U D = 0 + 0.7 = 0.7 V
I=
U CC U D U ul 5 0.7 0 4.3
=
=
= 4.3 mA
R
1k
1k
57
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
4 4.3
4 4.3
4 4.3
Uul [V]
UX [V]
5
4
3
2
1
0.7
Uul [V]
I [mA]
5
4.3
4
3
2
1
0
Uul [V]
Sluaj b)
Krenimo u razmatranje od Uul=UCC. Otpori R i RT ine naponsko dijelilo, te uz
pretpostavku da dioda ne utjee na napon UX, vrijedi:
U X = U CC
RT
4k
=5
= 4V
R + RT
1k + 4k
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:
58
I = I2 =
U CC
5
=
= 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
Daljnjim smanjivanjem ulaznog napona (a zbog voenja diode) napon UX poinje
padati, slijedei ulazni napon prema formuli:
U X = U ul + U D
Zbog toga se konano poinju mijenjati i struje u sklopu, te od ovog trenutka vrijede
izrazi:
I=
U CC U X
R
I2 =
UX
RT
I1 + I 2 = I
U CC (U ul + U D ) 5 ( 0 + 0.7) 4.3
=
=
= 4.3 mA ,
R
1k
1k
I2 =
U X 0.7
=
= 0.175 mA ,
RT
4k
59
UD [V]
5
4
3
2
1
0.7
3 3.3
0
1
I [mA]
3 3.3
0
1
I1 [mA]
3 3.3
0
1
I2 [mA]
3 3.3
4 4.3
3 3.3
4 4.3
-1
Uul [V]
UX [V]
5
4
3
2
1
0.7
Uul [V]
5
4.3
4
3
2
1
Uul [V]
5
4.125
4
3
2
1
Uul [V]
5
4.3
4
3
2
1
0.175
Uul [V]
60
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
RB
D1
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
I1
I2
D1
RB
Uul
Uizl
UD
UD1
UX
UBEzas
Napon UX tada se moe izraunati kao napon dijelila s dva izvora (jedan od prethodnih
zadataka):
61
U X = (U BEzas + U D1 ) + (U CC (U BEzas + U D1 ))
= ( 0.7 + 0.7) + ( 5 ( 0.7 + 0.7) )
= 4.4 V
RB
R + RB
5k
1k + 5k
U CC (U ul + U D )
, I 2 = 0 mA
R
U CC U X 5 1.4 3.6
=
=
= 3.6 mA
R
1k
1k
62
I = I1 =
U CC U X 5 0.7 4.3
=
=
= 4.3 mA .
R
1k
1k
IC =
U CC U CEzas 5 0.3
=
= 4.7 mA
RC
1k
I C = 4.7 mA = I B hFE
IB =
IC
4.7
=
= 0.047 mA .
hFE 100
IB =
U X U D 1 U BEzas
RB
uz IB=0.047mA slijedi:
IB =
U ul + U D U D1 U BEzas
RB
U ul = I B RB U D + U D1 + U BEzas = 0.935V
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
63
0.7
3.7 4
3.7
3.7
Uul [V]
0.935
0.7
0
-0.6
Uul [V]
-1
UX [V]
5
4
3
2
1
0.7
Uul [V]
I [mA]
5
4.3
4
3
2
1
0.6
Uul [V]
64
4
3
2
1
0
3.7
4 4.3
3.7
4 4.3
Uul [V]
I2 [mA]
5
4.3
4
3
2
1
0.6
Uul [V]
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.
65
4. Booleova algebra.
4.1. Zadatak
Navedite aksiome Booleove algebre. Njihovom uporabom pokaite da vrijedi:
A (A + A B ) = A B
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 ((A + A ) (A + B ))
= A (1 (A + B ))
= A (( A + B ) 1)
= A (A + B )
= (A A ) + ( A B )
= 0 + (A B)
= (A B) + 0
= A B
Za vjebu.
A.4b
A.3a
A.2a
A.3b
A.1b
A.4a
A.2b
A.3a
A.1a
66
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
= A0 + A A
= A (0 + A )
A.1
A.2
A.4
= A A
=0
A.1
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 A + A A
A ( A + A)
A 1
A
A.1
A.2
A.4
A.2
A.1
4.4. Zadatak
Booleove funkcije moemo prikazivati tablicom kombinacija. Zadana je funkcija
f ( A, B, C ) = AB + ABC + AB C . Prikaite funkciju tablicom kombinacija.
f ( A, B, C ) = AB + ABC + AB C
Neka je f1 = AB , f 2 = ABC te f 3 = AB C . Tada je f = f1 + f 2 + f 3 :
Tablica 1. Tablini prikaz Booleove funkcije
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
A
1
1
1
1
0
0
0
0
B
1
1
0
0
1
1
0
0
C
1
0
1
0
1
0
1
0
f1
f2
f3
AB
0
0
0
0
1
1
0
0
ABC
0
0
0
0
0
0
0
1
AB C
0
0
0
0
0
1
0
0
f
f1 + f 2 + f 3
0
0
0
0
1
1
0
1
Booleova algebra.
67
4.5. Zadatak
Booleova funkcija zadana je Tablica 1. Prikaite tu funkciju:
a) sumom standardnih produkata (minterma)
b) umnokom standardnih suma (maksterma)
a) u tablici promatramo one retke za koje je vrijednost funkcije f = 1 .
A
0
0
0
0
B
0
0
1
1
C
0
1
0
1
mintermi
0
0
0
0
m0
m1
m2
m3
m4
m5
m6
m7
makstermi
M0
M1
M2
M3
1
1
0
0
0
1
1
1
M4
M5
M6
M7
68
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 .
Traena funkcija tada glasi:
f = M 0 M1 M 2 M 3 M 6 = ( A + B + C) (A + B + C ) ( A + B + C) ( A + B + C ) ( A + B + C)
4.6. Zadatak
Funkcija f ( A, B, C ) zadana je tablino.
a) Zapiite funkciju kao sumu minterma.
b) Zapiite funkciju kao produkt maksterma.
c) Zapiite komplement funkcije kao sumu minterma.
d) Zapiite komplement funkcije kao produkt maksterma.
e) Kakva je veza izmeu kanonskih oblika f i f ?
a)
f
A
0
0
0
0
1
1
B
0
0
1
1
0
0
C
0
1
0
1
0
1
1
1
1
1
0
1
f
1
0
0
1
1
0
1
0
mintermi
m0
m1
m2
m3
m4
m5
m6
m7
= m0 + m3 + m4 + m6
= A B C + A BC + AB C + A B C
= (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 )
makstermi
M0
M1
M2
M3
M4
M5
M6
M7
Booleova algebra.
c)
f
69
= m1 + m2 + 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)
= AC + BD + C D
= A 1 C 1 + 1 B 1 D + 11 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)
70
[ f ]D
[[ f ]D ]D
[[ f ]D ]D =
f.
= ( 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
= (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)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
f
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
g= f
1
0
1
1
1
0
1
0
0
0
1
1
0
0
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.
71
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
&
&
D
1
&
Vrijedi:
&
A = A A
&
&
&
A+ B = AB
72
&
&
&
A B = A B
Zamjenom I, ILI i NE logikih sklopova u shemi sklopa dobijemo:
&
&
&
&
&
&
&
&
&
&
&
&
Odnosno:
A
&
C
&
&
&
&
&
Za vjebu.
Prikaite funkciju uporabom NILI operacije. Nacrtajte sklop koji obavlja funkciju f
pomou NILI sklopova.
Booleova algebra.
73
4.8. Zadatak
Zadana je
f ( A, B, C )
= m1 + m2 + m 4 + 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 ( 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 )
74
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?
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
Zadana je funkcija f = A C D + AC D + BC . Objasnite kako biste sklopovski realizirali njezin
komplement, ako su na raspolaganju sve varijable i komplementi, jedan vieulazni I sklop, te
potreban broj ILI sklopova.
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 )
Iz ovog oblika realizacija je trivijalna!
Booleova algebra.
75
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
Prikaite f = AB + ABC + AB C algebarski i grafiki.
A
B
&
1
1
&
&
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
Komplementiranjem ovog izraza dobivamo:
A+ B = AB
76
= 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 ))))
&
Obavimo supstituciju:
A
B
&
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
Primjenom zakona involucije slijedi:
Booleova algebra.
77
A B = A + B = NE (ILI ( NE ( A ), NE (B )))
= 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
&
Supstitucija:
1
78
A = A + A = A + A == A A = NI ( A, A)
A + B = A B = NI ( NI ( A, A), NI (B , B ))
= 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.
79
{NI}
1
&
&
1
&
&
&
&
&
Supstitucija:
A
B
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
80
= AB + ABC + AB C
= AB + ABC + AB C
= AB + ABC + AB C
= A + B+ A + B +C + A + B+C
= NILI
{NILI}
1
1
&
Booleova algebra.
81
Supstitucija:
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
82
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
&
&
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.
&
&
1
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.
83
= ( 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.
b2
0
0
0
0
1
1
1
1
b1
0
0
1
1
0
0
1
1
b0
0
1
0
1
0
1
0
1
g2
0
0
0
0
1
1
1
1
g1
0
0
1
1
1
1
0
0
g0
0
1
1
0
0
1
1
0
= b2b1 + b2b1
= b1 b2
g 0 = b2b1b0 + b2b1b0 + b2b1b0 + b2b1b0
= b1b0 (b2 + b2 ) + b1b (b2 + b2 )
= b1b0 + b1b0
= b1 b0
84
b2
b1
b0
g2
=1
g1
=1
g0
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;
ARCHITECTURE funkcijska2BinGray OF sklopBinGray IS
BEGIN
p1: PROCESS(b) IS
VARIABLE x, y, z: std_logic;
BEGIN
-- izracun izlaza
x := b(2);
y := (b(1) AND NOT b(2)) OR (NOT b(1) AND b(2));
z := (b(0) AND NOT b(1)) OR (NOT b(0) AND b(1));
-- pridjeljivanje izlaza
g(2) <= x AFTER 20 ns;
g(1) <= y AFTER 20 ns;
g(0) <= z AFTER 20 ns;
-- alternativa:
-- g <= (x, y, z) AFTER 20 ns;
END PROCESS;
END funkcijska2BinGray;
ARCHITECTURE funkcijskaBinGray OF sklopBinGray IS
BEGIN
p1: PROCESS(b) IS
BEGIN
CASE b IS
WHEN "000" => g <= "000" AFTER 20 ns;
WHEN "001" => g <= "001" AFTER 20 ns;
WHEN "010" => g <= "011" AFTER 20 ns;
WHEN "011" => g <= "010" AFTER 20 ns;
WHEN "100" => g <= "110" AFTER 20 ns;
WHEN "101" => g <= "111" AFTER 20 ns;
WHEN "110" => g <= "101" AFTER 20 ns;
WHEN "111" => g <= "100" AFTER 20 ns;
WHEN OTHERS => g <= "000";
END CASE;
END PROCESS;
END funkcijskaBinGray;
Booleova algebra.
85
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.
Napiite VHDL opis ovog sklopa:
a) ponaajni (tj. funkcijski) model, ali bez uporabe bloka PROCESS
b) strukturni model
Za vjebu.
Komunikacijskim medijem prenose se okteti. Konstruirajte sklop koji e na ulazu
primati oktete, a na izlazu generirati Hammingovu kodnu rije koja sadri taj oktet.
Sklop ima dodatni ulaz P, koji kada je u 1 znai da na izlazu treba biti Hammingova
kodna rije dobivena uporabom parnog pariteta. Kada je P jednak 0, na izlazu treba biti
Hammingova kodna rije dobivena uporabom neparnog pariteta.
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.
g1
0
0
1
1
1
1
0
0
g0
0
1
1
0
0
1
1
0
b2
0
0
0
0
1
1
1
1
b1
0
0
1
1
0
0
1
1
b0
0
1
0
1
0
1
0
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
Ponaajni opis sklopa tada je prikazan u nastavku.
86
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;
ARCHITECTURE Behavioral OF graybin IS
BEGIN
b2 <= g2;
b1 <= g2 XOR g1;
b0 <= g2 XOR g1 XOR g0;
END Behavioral;
4.17. Zadatak
Na ulaz A sklopa sa slike dovodi se niz
pravokutnih
simetrinih
impulsa
periode T = 50 ns. Kanjenje svakog
logikog sklopa je 10 ns.
a) Odrediti koju logiku funkciju
obavlja sklop (zanemarite kanjenja).
Nacrtati valne oblike A i f koji
odgovaraju toj logikoj funkciji.
=1
=1
=1
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.
Booleova algebra.
87
t
f
25
50
75
100
125
150
=1
=1
=1
t
B
t
C
t
f
25
50
75
100
125
150
88
process (a,b)
begin
x <= a or b;
y <= x or b;
z <= x and y;
c <= z;
end process;
Booleova algebra.
89
4.19. Zadatak
+UCC
UulA
Uf
UulB
+UCC
UulC
B
L
L
H
H
L
L
H
H
C
L
H
L
H
L
H
L
H
f
H
H
H
H
H
H
H
L
90
Uf
UA
UB
UC
Funkcija koju sklop ostvaruje u negativnoj logici dualna je funkciji koju sklop ostvaruje
u pozitivnoj logici, i glasi:
f = A+ B C = A B C
UB
Nisko
Nisko
Visoko
Visoko
Nisko
Nisko
Visoko
Visoko
UC
Nisko
Visoko
Nisko
Visoko
Nisko
Visoko
Nisko
Visoko
Uf
Visoko
Visoko
Visoko
Visoko
Visoko
Visoko
Nisko
Visoko
Booleova algebra.
91
U pozitivnoj logici niskoj naponskoj razini odgovara logika nula, a visokoj logika
jedinica. Primjenimo li to na naponsku tablicu, slijedi:
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
f
1
1
1
1
1
1
0
1
U negativnoj logici niskoj naponskoj razini odgovara logika jedinica, a visokoj logika
nula. Primjenimo li to na naponsku tablicu, slijedi:
A
1
1
1
1
0
0
0
0
B
1
1
0
0
1
1
0
0
C
1
0
1
0
1
0
1
0
f
0
0
0
0
0
0
1
0
Funkcija se oito moe zapisati kao jednolana suma minterma (u dobivenoj tablici
minterm m0 nalazi se na dnu!):
f = m1 = A B C ,
92
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 kbitnih 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=a3a2 a1a0 a drugi broj B=b3b2 b1 b0. 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
a3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
a2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
B
a1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
a0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
b3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
b2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
b1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
b0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
e
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
inae
m
m0
m17
m34
m51
m68
m85
m102
m119
m136
m153
m170
m187
m204
m221
m238
m255
ostali
Booleova algebra.
93
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).
n =
(2
n =0
)(
1 2 k 1 + 1 2k 2 k 1
=
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?
U drugom sluaju, gdje je e definiran s e = (AB), do rezultata moemo doi na dva
naina. Ako fiksiramo vrijednost broja A na n, tada B moe poprimiti n+1 vrijednost a
da vrijedi AB. Npr. za n=5 B moe poprimiti vrijednosti {0,1,2,3,4,5}. Sumiranjem po
svim vrijednostima broja A slijedi:
t = n +1
2k
2k 2 k + 1
+
=
=
=
1
0
1
=
=
(
n
)
n
t
t
2
n =0
n = 2 k 1 t = 2 k t =1
2 k 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 +1
+ 2k =
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?
94
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!
Pseudokod rjeenja prikazan je u nastavku.
Usporedi(A, B): returns Jednaki
Jednaki = true
For i = 0 to k-1 begin
bitoviJednaki = (A(i) == B(i))
Jednaki = Jednaki AND bitoviJednaki
End For
End Usporedi
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:
Usporedi(A, B): returns Jednaki(3)
Jednaki(-1) = true
// 0. iteracija
bitoviJednaki(0) = (A(0) == B(0))
Jednaki(0) = Jednaki(-1) AND bitoviJednaki(0)
// 1. iteracija
bitoviJednaki(1) = (A(1) == B(1))
Jednaki(1) = Jednaki(0) AND bitoviJednaki(1)
// 2. iteracija
bitoviJednaki(2) = (A(2) == B(2))
Jednaki(2) = Jednaki(1) AND bitoviJednaki(2)
// 3. iteracija
bitoviJednaki(3) = (A(3) == B(3))
Jednaki(3) = Jednaki(2) AND bitoviJednaki(3)
End Usporedi
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.
95
A(i) B(i)
&
=1
bitoviJednaki(i)
Jednaki(i-1)
&
Jednaki(i)
Naime, funkcija koja testira dva bita na jednakost upravo je 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.
Mi emo u nastavku, radi kraeg zapisa, funkciju Jednako(i) oznaavati s E. Funkcija E
moe se algebarski zapisati:
E(Ai, Bi, Ei-1)=Ei-1 AND (Ai XOR Bi)
Jednom kad smo dizajnirali unutranjost jednog stupnja, vrlo lagano moemo
projektirati k-bitni komparator. Za sluaj k=4 imamo:
4-bitni komparator
A(3) B(3)
&
A(2) B(2)
A(1) B(1)
&
&
=1
=1
A(0) B(0)
&
=1
=1
1
&
Jednaki(3)
&
&
&
Jednaki(2)
Jednaki(1)
Jednaki(0)
Jednaki
96
Booleova algebra.
97
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.
NI
sklopova
realizira
funkciju
7.
NI
sklopova
realizira
funkciju
8.
sklopova
realizira
funkciju
9.
realizira
funkciju
10.
realizira
funkciju
11.
g ( A, B, C , D) = ( A + C ) ( A + C + D ) ( B + C + D ) .
12.
13.
14.
jednako
98
15.
16.
17.
18.
d)
e)
f)
g)
Veza izmeu 1 i 0: 1 = 0 , te 0 = 1
X 0 = 0 , X +1 = 1
Distributivnost: X (Y + Z ) = ( X Y ) + ( X Z ) , X + (Y Z ) = ( X + Y ) ( X + Z )
Veza varijable i komplementa: X X = 0 , X + X = 1
h) X = X
i) Drugi zapis ILI operatora: X Y = X Y + X Y , X Y = ( X + Y ) ( X + Y )
j) DeMorganov zakon: X Y = X + Y , X + Y = X Y
k) Zakon simplifikacije: X ( X + Y ) = X , X + X Y = X
l) X ( X + Y ) = X Y , X + X Y = X + Y .
19. Pokazati da se samo uporabom sklopova sa slike (te logike nule i jedinice) mogu
ostvariti sve Booleove funkcije.
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.
99
AB
A
B
AB
B
B
1
A
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+ B
A
0
B
A+B
1
B
0
1
100
AB
A
0
B
AB
1
B
0
1
1
A
f =B
f = f =B
5.3. Zadatak
Minimizirajte funkciju f = (0, 4,9,11,13,15) pomou K-tablice.
ACD
AB
CD
00
00
01
01
11
10
1
D
11
1
C
10
B
f = A C D + AD
AD
101
5.4. Zadatak
Minimizirajte funkciju f = (0,2,4,6,8,10 ) pomou K-tablice.
AB
CD
AD
00
00
01
11
10
BD
01
D
11
10
1
A
B
f = AD + BD
5.5. Zadatak
AB
CD
00
01
00
01
AC
10
f = A C + A B + BCD
10
BCD
11
AB
11
x
x
102
5.6. Zadatak
Minimizirajte funkciju f = (0,2,3,7 ) pomou K-tablice.
AC
AB
C
00
01
11
BC
10
C
A
B
f = A C + BC
f = f = ( A + C )( B + C )
5.7. Zadatak
Minimizirajte funkciju f = (0,5,7,8,12,13,15) pomou K-tablice.
BCD
AC D
AB
00
CD
00
01
01
11
11
10
0
BD
0
D
0
C
10
B
f = BD + AC D + B C D
f = f = ( B + D )( A + C + D )( B + C + D)
103
5.8. Zadatak
Zadana je funkcija
minimizirati:
f = A B C + AC + ABC + A B C + AB C .
Funkciju
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 + CC ) ( 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
c) uporabom dualne funkcije f = [ f D ]D
je
potrebno
104
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.
Dobijemo sljedeu K-tablicu:
B
AB
00
C
01
11
10
105
AB
00
C
01
11
10
A
Ovo zaokruenje nalazi se iskljuivo na podruju varijable A, dok o B i C ne ovisi jer se
protee i kroz njihove komplemente. Dakle, ovo zaokruenje odgovara funkciji f1=A.
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
00
C
01
11
10
106
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
001
100
101
110
111
(0)
(1)
(4)
(5)
(6)
(7)
*
*
(0)
(1)
(4)
(5)
(6)
(7)
00x
(0,1)
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)
001
100
*
*
(1)
(4)
101
110
111
*
*
*
(5)
(6)
(7)
00x
x00
x01
10x
1x0
1x1
11x
(0,1)
(0,4)
(1,5)
(4,5)
(4,6)
(5,7)
(6,7)
107
(0)
001
100
*
*
(1)
(4)
101
110
111
*
*
*
(5)
(6)
(7)
00x
x00
x01
10x
1x0
1x1
11x
*
*
*
*
*
*
*
(0,1)
(0,4)
(1,5)
(4,5)
(4,6)
(5,7)
(6,7)
x0x
(0,1,4,5)
1xx
(4,5,6,7)
B
A
(0,1,4,5)
(4,5,6,7)
0
9
1
9
4
9
9
5
9
9
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:
B
A
(0,1,4,5)
(4,5,6,7)
0
9
8
1
9
8
4
9
9
8
5
9
9
8
7
8
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:
B
A
(0,1,4,5)
(4,5,6,7)
0
9
8
1
9
8
4
9
9
8
5
9
9
8
6
9
8
7
9
8
8
8
108
5.9. Zadatak
Minimizirajte funkciju f = (0,1,2,3,4,6,7,12,13,15) pomou Quine-McCluskey metode.
(0)
0001
0010
0100
*
*
*
(1)
(2)
(4)
0011
0110
1100
0111
1101
1111
*
*
*
*
*
*
(3)
(6)
(12)
(7)
(13)
(15)
000x
00x0
0x00
00x1
001x
0x10
01x0
x100
0x11
011x
110x
x111
11x1
*
*
*
*
*
*
*
*
*
(0,1) 00xx
(0,2) 0xx0
(0,4)
(1,3) 0x1x
(2,3)
(2,6)
(4,6)
(4,12)
(3,7)
(6,7)
(12,13)
(7,15)
(13,15)
(0,1,2,3)
(0,2,4,6)
(2,3,6,7)
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
BC D
ABC
BCD
ABD
AB
AD
AC
(4,12)
4
9
(12,13)
(7,15)
(13,15)
(0,1,2,3)
(0,2,4,6)
12
9
9
13
9
9
9
9
9
(2,3,6,7)
9
9
9
8
15
9
9
8
9
9
8
9
9
P0
P1
P2
P3
P4
P5
P6
109
110
5.10. Zadatak
Metodom Quine-McCluskey minimizirati funkciju f = (4,5,7,8,9,10,11,12,15) .
Minterm
0100
1000
0101
1001
1010
1100
0111
1011
1111
*
*
*
*
*
*
*
*
*
(4)
(8)
(5)
(9)
(10)
(12)
(7)
(11)
(15)
010x
x100
100x
10x0
1x00
01x1
10x1
101x
*
*
*
*
x111
1x11
(4,5)
(4,12)
(8,9)
(8,10)
(8,12)
(5,7)
(9,11)
(10,11)
10xx
(8,9,10,11)
(7,15)
(11,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:
A BC
BC D
AC D
A BD
BCD
ACD
AB
(4,5)
(4,12)
4
9
9
5
9
10
11
(5,7)
(7,15)
(11,15)
9
9
9
(8,9,10,11)
15
9
9
(8,12)
12
9
9
9
9
A BC
BC D
AC D
A BD
BCD
ACD
AB
(4,5)
(4,12)
4
9
9
5
9
(8,12)
(5,7)
(7,15)
(11,15)
(8,9,10,11)
9
9
10
11
12
15
9
9
9
9
P0
P1
P2
P3
P4
P5
P6
9
9
9
9
9
8
8
8
8
8
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
111
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):
p = (P0 + P1 )(P0 + P3 )(P3 + P4 )(P1 + P2 )(P4 + P5 )
= P0 P1P3P4 + P0 P1P3P5 + P0 P2 P3P4 + P0 P2 P3P5 + P0 P1P4 + P0 P1P4 P5
+ P0 P2 P4 + P0 P2 P4 P5 + P0 P1P3 P4 P5 + P0 P2 P3P4 P5 + P0 P1P2 P3P4
+ P0 P1P2 P3 P5 + P0 P1P2 P4 + P0 P1P2 P4 P5 + P1P3P4 + P1P3P5
+ P1P2 P3P4 + P1P2 P3P5 + P1P3 P4 P5 + P1P2 P3P4 P5
Minimalni broj varijabli u produktima iznosi 3, i to u dva sluaja. Dakle, moemo uzeti
jo sljedee lanove:
A BC ,
A BC ,
BC D ,
BC D ,
BC D
AC D
A BD
A BD
i
i
i
i
BCD
BCD
BCD
ACD
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.
112
ABC
DE
000
001
00
01
011
010
100
101
ADE
111
110
11
10
E
D
BC D
5.12. Zadatak
Metodom K-tablica minimizirati funkciju:
f = (0,2,3,6,7,8,10,11) .
BD
AB
00
CD
00
01
11
10
AC
BC
01
D
11
10
0
B
113
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
Metodom K-tablica minimizirati funkciju:
f = m(5,9,12,15) + d (2,7,8,10,13) .
BD
AC
AB
00
CD
01
00
01
10
1
D
11
10
11
X
B
f = AC + BD
5.14. Zadatak
114
AB
CD
00
00
01
11
01
ACD
11
10
10
AD
BCD
f = B D + BCD + AD + A C D
AB
00
CD
ABD
01
11
10
00
01
11
10
0
0
ACD
ABD
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
115
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
CD
01
11
10
00
01
11
10
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.
116
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:
4)
1)
8)
16)
16, 20)
4, 5)
16, 17)
16, 24)
00X00
0000X
0X000
X0000
*
*
*
*
D:0
D:0
D:0
D:0
(0,
(0,
(0,
(0,
00100
00001
01000
10000
*
*
*
*
D:0
D:1
D:1
D:1
(4)
(1)
(8)
(16)
0010X
X0100
X0001
00X01
010X0
X1000
1000X
10X00
1X000
*
*
*
*
*
*
*
*
*
D:0
D:0
D:0
D:1
D:0
D:1
D:0
D:1
D:1
(4, 5)
(4, 20)
(1, 17)
(1, 5)
(8, 10)
(8, 24)
(16, 17)
(16, 20)
(16, 24)
01010
10001
00101
10100
11000
*
*
*
*
*
D:0
D:0
D:1
D:1
D:1
(10)
(17)
(5)
(20)
(24)
X1010
0101X
10X01
100X1
1X001
X0101
001X1
1010X
110X0
1100X
*
*
*
*
*
*
*
*
*
*
D:0
D:0
D:0
D:0
D:0
D:0
D:1
D:0
D:0
D:1
(10, 26)
(10, 11)
(17, 21)
(17, 19)
(17, 25)
(5, 21)
(5, 7)
(20, 21)
(24, 26)
(24, 25)
X101X
10XX1
1X0X1
X01X1
110XX
10101
11010
00111
01011
10011
11001
*
*
*
*
*
*
D:0
D:0
D:1
D:1
D:1
D:1
(21)
(26)
(7)
(11)
(19)
(25)
101X1
1101X
X0111
X1011
1X011
10X11
110X1
*
*
*
*
*
*
*
D:0
D:0
D:1
D:0
D:0
D:1
D:0
D:0
D:0
D:0
D:0
D:0
X0X0X
D:0
(0,1,4,5,16,17,20,
21)
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.
Pogledajmo sada drugi stupac. Kombiniranjem minterma 0 i 1 dobili smo minterm
0000X uz D: 0. To je zato to je u tu kombinaciju ukljuen implikant 0 koji je bitan za
funkciju pa je i cijeli produkt bitan za funkciju, odnosno nije dontcare. Meutim, kada
smo kombinirali minterme 1 i 5, dobili smo produkt 00X01 koji ima D: 1, tj. cijeli
produkt je zanemariv. Razlog lei u injenici da smo kombinirali minterme 1 i 5 koji su
oba zanemarivi, pa je i nastali produkt zanemariv. No zato su nam uope potpuno
zanemarivi produkti bitni? Postoji mogunost da e se u budunosti neki takav nebitni
produkt ipak spojiti s nekim bitnim to e pomoi u minimizaciji funkcije. Da je to
istina, pogledajmo upravo na nebitnom produktu (1,5). U treem stupcu taj smo produkt
117
4 10 17 21 26 27
31
8
8
8
8
8
8
8
8
8
8
8
8
9
8
9
8
9
8
9
8
8
P0
P1
P2
P3
P4
P5
P6
P7
9 P8
9 P9
Rjeenje jednadbe:
p = P1 + P1 P3 + P1 P7 + P3 + P3 P7
5.17. Zadatak
Zadane su funkcije
f1 = (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.
118
0001
0010
0100
0101
0011
*
*
*
*
*
F:101
F:110
F:111
F:101
F:001
000X
00X0
0X00
0X01
00X1
010X
X101
01X1
0X11
1X11
11X1
X111
(1)
(2)
(4)
(5)
(3)
* F:101
F:110
F:111
* F:101
* F:001
* F:101
* F:001
* F:001
* F:001
F:100
F:011
* F:001
(0, 1)
(0, 2)
(0, 4)
(1, 5)
(1, 3)
(4, 5)
(5, 13)
(5, 7)
(3, 7)
(11, 15)
(13, 15)
(7, 15)
f1
0
11
15
a'c'd'
8
8
8
8
8
8
bd
9
13
15
a'd
8
8
15
abd
8
X1X1
8
8
F:001 (1, 3, 5, 7)
8
8
acd
a'c'
0XX1
f3
13
8
8
F:101 (0, 1, 4, 5)
f2
5
abcd
a'b'd'
0X0X
8
8
P0
9
P1
P2
P3
P4
P5
P6
P7
119
m(3,4,5,7,9,13,14,15) .
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
CD
01
11
10
00
01
11
10
1
B
120
A BC
AB
00
CD
01
00
01
11
AC D
11
10
1
D
10
1
A
A CD
ABC
AB
00
CD
01
00
01
11
AC D
11
10
1
D
10
A CD
1
B
ABC
121
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.
Iz ovog pravila slijedi i uvjet redundantnosti:
Uvjet redundantnosti zaokruenje iji je svaki minterm (ili maksterm) pokriven jo
nekim zaokruenjem jest redundantno.
5.19. Zadatak
Minimizirati funkciju f = m(0,2,8,9,10,11,13,15) .
BD
AD
AB
00
CD
00
01
11
10
01
11
10
AB
122
BD
AD
AB
00
CD
00
01
11
10
01
11
10
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.
b2
0
0
0
0
1
1
1
1
b1
0
0
1
1
0
0
1
1
b0
0
1
0
1
0
1
0
1
f
1
0
0
0
1
0
0
0
b1 b0
b1b0
00
b2
123
01
11
10
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
0
1
2
3
4
5
6
7
b1
0
0
1
1
0
0
1
1
b2
0
0
0
0
1
1
1
1
b0
0
1
0
1
0
1
0
1
b0
b1b0
00
b2
01
b0
f = b0
11
10
b1
b2
f
1
0
124
0001
0010
1000
0110
1010
0111
X0X0
000X
F:10 (0, 1)
00X0 * F:10 (0, 2)
X000 * F:10 (0, 8)
0X10
F:10 (2, 6)
X010 * F:10 (2, 10)
10X0
F:11 (8, 10)
011X
F:01 (6, 7)
* F:10 (1)
* F:10 (2)
* F:11 (8)
F:11 (6)
* F:11 (10)
* F:01 (7)
f1
0
a'bcd'
a'b'c'
a'cd'
ab'd'
a'bc
b'd'
f2
6
8
10
6
8
10
9
8
8
8
8
9
8
9
8
8
9
9
9
P0
P1
P2
P3
P4
P5
Iz tablice se vidi da postoje neki neoznaeni mintermi. Potrebno je primijeniti PyneMcCluskey pristup za pronalaenje minimalnog broja produkata koji ih pokriva, a jo
nisu oznaeni (P0, P2, P5).
p = ( P2 + P5) ( P0 + P 2) = P 2 + P0 P 2 + P0 P5 + P 2 P5
0
8
1
8
2
8
f2
6
10
10
8
8
8
8
P1
P2
P3
P4
125
Sada treba na temelju dobivene tablice minimizirati svaku funkciju posebno. Imamo:
f1
a'b'c'
a'cd'
ab'd'
a'bc
0
8
1
8
2
8
10
9
9
P1
P2
P3
P4
9
9
9
P1
P2
P3
P4
f1 = A B C + A CD + AB D
f2
6
a'b'c'
a'cd'
ab'd'
a'bc
8
9
8
9
10
f 2 = AB D + A BC
5.22. Pismeni ispit, 10. 10. 2003, 3. zadatak
Funkcije f(A,B,C,D) i g(A,B,C,D) zadane su
slikom. Metodom K-tablica izraunati
minimalni oblik funkcije z = f g , ako je
poznato da e uvijek vrijediti:
B (D + A ) (B + A D ) = 0 .
f
AB
CD 1 0
0 1
1 0
0 1
0
1
0
1
0
0
1
0
g
AB
CD 0 1
0 1
0 0
0 1
0
0
1
1
1
0
0
1
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:
z (i, j ) = f (i, j ) g (i, j )
Dakle, definiranu operaciju treba jednostavno primijeniti za svaki par elemenata tablice.
Dobije se sljedei prikaz funkcije z:
126
z:
CD
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
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.
Minimizacijom tada slijedi:
AB
z:
CD
AB
00
01
11
00
01
1
B
z = A B + BD + B C D
BCD
11
10
10
BD
127
5.23. Zadatak
Zadana je funkcija f ( A, B, C ) = (1,5,6,7) . Funkciju je potrebno realizirati uporabom I, ILI i
NE logikih sklopova. Pri tome pretpostaviti da izlaz svakog od osnovnih logikih sklopova
kasni 10 ns.
a) Analizirati rad sklopa koji direktno realizira funkciju.
b) Minimizirati funkciju, prikazati sklopovsku realizaciju i opet analizirati rad.
c) Kako se moe ukloniti hazard u sklopu?
&
i1
1
B
1
&
i2
&
&
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;
architecture Behavioral of sklop1 is
component sklopNOT is
Port ( a : in std_logic;
z : out std_logic);
end component;
component sklopOR4 is
128
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
ac1:
bc1:
cc1:
i11:
i21:
i31:
i41:
o11:
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.
129
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).
Opisani hazard nastupio je pri prijelazu ABC="111" u ABC="110". Da li se dogaa
hazard na suprotnom prijelazu, tj. ako se iz ABC="110" vratimo natrag u ABC="111"?
Ova se promjena moe pogledati u trenutku t = 500 ns. Hazard se nije dogodio! Zato?
Pogledajmo kako su se sada mijenjali izlazi sklopova i3 i i4. Sklop i3 preao je u '1' ve
u trenutku t = 410 ns, dok je sklop i4 ostao na '1' sve do t = 420 ns, nakon ega je pao na
'0'. Oito je na ulazima ILI sklopa cijelo vrijeme bila prisutna jedinica i nije dolo do
pojave hazarda (iako se moe uoiti da je sklop i4 opet kasnio ak 20 ns s promjenom;
no, sada to kanjenje nije rezultiralo pogrenim radom 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
A
Prijelaz
"101""001"
"111""110"
"111""101"
"111""001"
"110""001"
Razlog hazarda
A pada u '0'
C pada u '0'
B pada u '0'
A i B padaju u '0'
A i B padaju u '0'
01
11
10
Vidljivo gdje?
t = 200 ns
t = 400 ns
t = 600 ns
t = 800 ns
t = 1200 ns
130
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:
Prijelaz
"111""101"
"111""001"
"110""001"
Razlog hazarda
B pada u '0'
A i B padaju u '0'
A i B padaju u '0'
Vidljivo gdje?
t = 600 ns
t = 800 ns
t = 1200 ns
f:
131
BC
00
A
01
11
10
f:
BC
00
A
01
11
10
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
A
01
11
10
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:
132
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity sklop3 is
Port ( a, b, c : in std_logic;
f : out std_logic);
end sklop3;
architecture Behavioral of sklop3 is
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
bc1:
i11:
i21:
i31:
o11:
end Behavioral;
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',
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
133
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje
funkcija poprima '1'.
134
5.25. Zadatak
Objasnite sljedee pojmove: implikant, primarni implikant, bitni primarni implikant na
primjeru funkcije f ( A, B, C ) = m(1,3,6,7) .
00
A
AC
ABC
BC
0
BC
01
11
10
1
AB
A BC
C
ABC
ABC
135
2.
3.
Ako kao mjeru sloenosti sklopa definiramo sumu broja logikih sklopova i broja ulaza
koje ti sklopovi moraju imati potrebnih za realizaciju funkcije sklopa u zapisu z, u
kakvom su odnosu mjere sloenosti:
a) funkcije f zapisane u obliku minimalne sume parcijalnih produkata i funkcije f
zapisane u obliku minimalnog produkta parcijalnih suma?
b) funkcije f zapisane u obliku minimalne sume parcijalnih produkata i funkcije f
zapisane u obliku minimalnog produkta parcijalnih suma?
c) funkcije f zapisane u obliku minimalnog produkta parcijalnih suma i funkcije f
zapisane u obliku minimalne sume parcijalnih produkata?
4.
5.
6.
Zadana
je
funkcija
f ( A, B, C , D, E ) = m(0,1,2,4,5,8,10,16,17,18,21,23, 24,26,31) .
9.
Projektirati kombinacijski sklop (tablicom) koji zbraja dva dvobitna binarna broja A i B
te generira dvobitni rezultat i bit preljeva: cout r1 r0 = a1 a0 + b1 b0. Quine-McCluskey
metodom pronai minimalni zapis funkcija cout i r0 u obliku sume parcijalnih produkata.
Svaku funkciju minimizirati zasebno.
10.
137
d1
d0
y
Tablica istinitosti:
S
D1
D0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
Logika funkcija:
mux 21( S , D0, D1) = m(1,3,6,7) = S D0 + S D1
Shema sklopa:
d0
&
1
s
d1
&
138
6.2. Zadatak
Prikazati logiki simbol, tablicu istinitosti, logiku funkciju, shemu sklopa te VHDL
ponaajni model dekodera 2/4.
139
a1
y3
DEKODER
2/4
y2
a0
y1
y0
Tablica istinitosti:
A1
A0
Y3
Y2
Y1
Y0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
Logika funkcija:
Y0 ( A1 , A0 ) = m( 0) = A1 A0
Y1 ( A1 , A0 ) = m(1) = A1 A0
Shema sklopa:
a1
a0
Y2 ( A1 , A0 ) = m( 2) = A1 A0
Y3 ( A1 , A0 ) = m( 3) = A1 A0
<=
<=
<=
<=
NOT A1
NOT A1
A1 AND
A1 AND
END ponasajna;
&
y3
&
y2
&
y1
&
y0
140
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
y0
Tablica istinitosti:
Logika funkcija:
Y1 ( E , A) = m( 3) = E A
Y0 ( E , A) = m( 2) = E A
Y1
Y0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
Shema sklopa:
E a
&
y1
&
y0
141
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.
Logiki simbol kodera:
I3
I2
KODER
4/2
Y1
Y0
I1
I0
Tablica istinitosti:
I3
0
0
0
1
0
I2
0
0
1
I1
0
1
I0
1
Y1
0
0
1
1
Y0
0
1
0
1
Z
1
1
1
1
0
142
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
6.5. Zadatak
Uporabom multipleksora 4/1 i potrebnih osnovnih logikih sklopova ostvarite logiku
funkciju f = (1,2, 4,6,7 ) .
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
f
0
1
1
0
1
0
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 .
Slinu analizu moemo ponoviti i za preostale dvije kombinacije varijabli A i B, pa
emo dobiti: D2 = C i D3=1.
Ovaj postupak obino se provodi direktno oitavanjem iz tablice kombinacija. U tablici
se crtkanom linijom odvoje one varijable koje se dovode na selekcijske ulaze
multipleksora (u naem sluaju varijable A i B), te se naznae grupe redaka u kojima se
A i B ne mijenjaju. Zatim se proanalizira za svaku grupu posebno kakav je odnos
143
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
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
f
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
MUX 4/1
D0
D1
C
1
D2
D3
S1 S0
A
f =C
D0 = f = C
D1
f =C
D1 = f = C
D2
f =C
D2 = f = C
D3
f =1
D3 = f = 1
144
6.6. Zadatak
Uporabom multipleksora 8/1 ostvariti logiku funkciju:
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
B
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
E
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
f
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
Ulazi mux-a
D0 = D E
D1 = D + E
D2 = D + E
D3 = D E
D4 = D + E
D5 = D + E
D6 = D + E
D7 = 1
D
E
145
MUX 8/1
&
D0
D1
D2
D3
D4
D5
D6
D7
S2 S1 S0
A
B C
6.7. Zadatak
Na raspolaganju je proizvoljan broj multipleksora 2/1. Samo njihovom uporabom potrebno je
realizirati funkciju f ( A, B, C , D) = m(0,1,4,7,9,12,14,15) . Na raspolaganju su varijable i
komplementi varijabli.
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.
Prikaimo stoga funkciju tablino:
146
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
f
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
Di
D0 = 1
D1 = 0
D2 = D
D3 = D
D4 = D
D5 = 0
D6 = D
D7 = 1
1
0
d0
d1 z
a0
D
D
D
0
D
1
d0
d1 z
d0
d1 z
a0
a0
d0
d1 z
d0
d1 z
a0
a0
d0
d1 z
a0
d0
d1 z
a0
147
f1
f2
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A B C
6.9. Zadatak
Uporabom dekodera 3/8 iji su izlazi komplementirani ostvariti logike funkcije:
f1 = (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.
Ako uoimo da su funkcije identine onima iz prethodnog zadatka, potrebno je samo
smisliti kako pomou ovakvog dekodera realizirati isto ponaanje.
148
&
f1
&
f2
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 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
b1
0
0
1
1
0
0
1
1
b0
0
1
0
1
0
1
0
1
pp
0
1
1
0
1
0
0
1
pn
1
0
0
1
0
1
1
0
A1 A0
A1 A0
A1 A0
A1 A0
A1 A0
A1 A0
A1 A0
A1 A0
149
A1 A0
b2b1b0
b2b1b0
b2b1b0
b2b1b0
b2b1b0
b2b1b0
b2b1b0
pp
pn
b2b1b0
A1 A0
b2
b1 b0
150
D0
D1
D2
D3
D0
D1
D2
D3
Sel1 Sel0
D0
D1
D2
pp
pn
D3
D0
D1
D2
D3
Sel1 Sel0
b2
b1
b0
Realizacija funkcija uporabom dvostrukog demultipleksora 4/1
151
6.11. Zadatak
Realizirati sklop koji ostvaruje funkciju r3r2r1r0 =fibb(b2b1b0) koja vraa b-ti Fibbonacijev
broj:
a) uporabom jednog dekodera/demultipleksora 1/2 i dva dekodera/demultipleksora 2/4 te
potrebnog broja ILI sklopova,
b) u obliku ispisne memorije koja ima osam 4-bitnih rijei (tj. uporabom dekodera 3/8 i
diskretnog koderskog polja).
fibb(0) = 0,
fibb(1) = 1
fibb(n)
0
1
1
2
3
5
8
13
b2
0
0
0
0
1
1
1
1
b1
0
0
1
1
0
0
1
1
b0
0
1
0
1
0
1
0
1
r3
0
0
0
0
0
0
1
1
r2
0
0
0
0
0
1
0
1
r1
0
0
0
1
1
0
0
0
r0
0
1
1
0
1
1
0
1
a) Uporabom dekodera
Da bismo ovu funkciju ostvarili uporabom samo navedenih elemenata, potrebno je
izgraditi dekoder 3/8 budui da imamo funkciju od 3 varijable. Ovo se moe obaviti
kaskadiranjem dekodera u stablo. Zatim se funkcija moe realizirati direktno,
"prikupljanjem" odgovarajuih izlaza ILI sklopom.
Prilikom kaskadiranja dekodera u prvu razinu dolaze najvie znaajne varijable, a u
zadnju najmanje znaajne (zapravo ovo vrijedi univerzalno: najvie znaajne varijable
dolaze uvijek na vrh stabla; kod dekoderskog stabla to je u prvoj razini, a kod
multipleksorskog stabla u zadnjoj).
152
A1
A0
b2
A2
r0
r1
r2
r3
D2
D3
D0
D1
A0
D2
D3
D0
D1
b1
b0
1
A1
D0
D1
A1
A0
A0
D2
D3
D4
D5
D6
D7
Dekodersko polje
Kodersko polje
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
r3
r2
r1
r0
b2 b1 b0
153
d0
a2
a1
a0
d1
d2
d3
E
6.12. Zadatak
Uporabom programirljive ispisne memorije 88 i dvostrukog multipleksora 4/1 realizirati
vieizlaznu funkciju:
f1 = (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 )
154
vrijednosti funkcije f1 i etiri uzastopne vrijednosti funkcije f2, a koju tono vrijednost
treba dati na izlazu iz sklopa odrediti emo multipleksorom!
Na adresne linije memorije dovoditi emo varijable A, B i C (varijable najvee teine) a
na selekcijske bitove multipleksora varijable D i E (varijable najmanje teine).
A
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
B
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
E
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
f2
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
f1
D4
D5
D6
D7
D4
D5
D6
D7
D4
D5
D6
D7
D4
D5
D6
D7
D4
D5
D6
D7
D4
D5
D6
D7
D4
D5
D6
D7
D4
D5
D6
D7
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
D0
D1
D2
D3
D0
D1
D2
D3
D0
D1
D2
D3
D0
D1
D2
D3
D0
D1
D2
D3
D0
D1
D2
D3
D0
D1
D2
D3
D0
D1
D2
D3
A
B
C
A2
A1
A0
155
PROM 8x8
D7 D6 D5 D4 D3 D2 D1 D0
I3 I2 I1 I 0 I3 I2 I1 I0
D
E
Sel1
MUX 4/1
Sel0
a)
MUX 4/1
b)
f2
f1
A1=B
0
0
1
1
0
0
1
1
A0=C
0
1
0
1
0
1
0
1
D7
0
0
0
1
0
0
0
0
D6
1
1
1
0
0
0
0
0
D5
1
1
0
0
0
1
0
1
D4
0
1
1
1
0
0
1
0
D3
0
1
1
0
0
0
1
0
D2
0
1
0
0
0
1
0
1
D1
1
0
0
1
1
0
0
0
D0
0
0
0
1
1
0
0
0
D
62
7C
58
93
03
24
18
24
156
6.13. Zadatak
Permanentna memorija realizirana MOSFET tehnologijom prikazana je na slici. O koliko se
memorije radi, i to je zapisano na pojedinim memorijskim lokacijama?
+UDD
+UDD
d4
d3
+UDD
+UDD
+UDD
d1
d0
rije 0
rije 1
dekoder
rije 2
rije 3
A1
A0
a1
a0
d2
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
0
0
1
1
a0
0
1
0
1
d4
0
1
0
0
d3
1
0
0
1
d2
0
1
1
0
d1
1
0
0
1
d0
0
1
0
1
157
6.14. Zadatak
Realizirati permanentnu memoriju uporabom dekodera 2/4 i koderskog polja izvedenog
MOSFET-om. Pohraniti na memorijske lokacije redom sljedee oktalne brojeve: 1, 3, 5, 2.
a0
0
1
0
1
d2
0
0
1
0
d1
0
1
0
1
d0
1
1
1
0
n(3)
1
3
5
2
+UDD
d2
d1
+UDD
rije 0
rije 1
dekoder
rije 2
rije 3
A1
A0
a1
a0
d0
158
6.15. Zadatak
Definirana je sljedea komponenta:
ENTITY pNAND IS PORT (a,b: IN std_logic; z: OUT std_logic); END pNAND;
Samo njezinom uporabom napisati strukturni VHDL model multipleksora 2/1 (bez ulaza za
omoguavanje). Nacrtati shemu sklopa i oznaiti nazive koritenih signala i primjeraka
komponente.
Shema sklopa:
d0
d0
&
1
d1
&
s0
&
d1
&
sel
c0
&
sel
c3
&
c2
s1
s2
159
BEGIN
c0:
c1:
c2:
c3:
pNAND
pNAND
pNAND
pNAND
PORT
PORT
PORT
PORT
END Structural;
ZADACI ZA VJEBU
3.
4.
5.
6.
7.
8.
9.
10.
Tablicom istinitosti prikazati funkciju dekadskog dekodera (tj. dekoder 4/10). Napisati
logike izraze koji opisuju funkciju dekodera.
11.
12.
13.
Uporabom dekodera 3/8 i potrebnog broja ILI logikih sklopova realizirati funkciju
f ( A, B, C ) = m(1,2,5,7) i g ( A, B, C ) = m(1,2,3,4) .
14.
Uporabom dekodera 3/8 i jednog ILI logikog sklopa realizirati multipleksor 2/1 bez
ulaza za omoguavanje.
15.
Uporabom dekodera 4/16 i jednog ILI logikog sklopa realizirati multipleksor 2/1 s
ulazom za omoguavanje.
16.
17.
160
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
0
0
1
1
0
1
0
1
Operacija
Posmak u desno, punjenje s 0
Rotacija u desno
Posmak u lijevo, punjenje s 1
Rotacija u lijevo
20. Nacrtati shemu multipleksora 4/1 izvedenog pomou dekodera 2/4 i minimalnog broja
osnovnih logikih sklopova.
21.
22.
23.
24.
25.
26.
27.
28.
29.
(
)
Multipleksorom 4/1 realizirati funkciju f A, B, C =
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.
32.
m(3,4,6,7) . Na raspolaganju je
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=b1 b0(2) jednaki.
a. Napiite algebarski izraz kojim je odreena funkcija ovog sklopa.
161
Projektirajte sklop koji obavlja funkciju e usporedbe dva 4-bitna binarna broja A i B
ovisno o upravljakom signalu sel: ako je sel=00, sklop rauna e=(AB). Za sel=01
sklop rauna e=(A<B). Za sel=10 sklop rauna e=(A!=B) a za sel=11 sklop rauna
e=(A==0). Odabran nain rjeavanja mora biti primjenjiv i na viebitne brojeve (k>4).
34.
a I
0
I1
I0
f
I1
a
163
Ostatak dijeljenja s 3
r1
r0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
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).
164
b2
1
b1
1
I polje
b0
&
&
&
&
&
r1
r0
ILI polje
snop "ica"
jedna "ica"
b2
1
b1
1
b0
1
&
snop "ica"
jedna "ica"
&
&
&
&
r1
r0
165
7.2. Zadatak
Zadane su funkcije f1 = A B + AB + ABC i f 2 = AC + A C + AB C . Prikazati (F)PLA
temeljen na NILI sklopovima koji implementira ove funkcije.
A
1
B
1
C
1
1
1
f1
f2
166
7.3. Zadatak
PLA strukturom temeljenom na MOSFETu realizirane su funkcije, kako je prikazano na slici.
O kojim se funkcijama radi, i od kojih polja je sastavljen prikazani PLA? Nacrtati
nadomjesnu PLA shemu temeljenu na NILI logikim sklopovima.
x1
x2
+UDD
x3
+UDD
+UDD
+UDD
+UDD
+UDD
+UDD
f1
f2
x1
167
x2
+UDD
x3
+UDD
O1
+UDD
O2
+UDD
O3
+UDD
O4
+UDD
O5
NILI
ravnina
+UDD
f2
f1
NILI
ravnina
O1 = NILI ( x1 , x 2 ) = x1 + x 2
O2 = NILI ( x1 , x3 ) = x1 + x3
O3 = NILI ( x1 , x 2 , x3 ) = x1 + x 2 + x3
O4 = NILI ( x1 , x 2 ) = x1 + x 2
O5 = NILI ( x 2 , x3 ) = x 2 + x3
f1 = NILI (O1 , O2 , O3 ) = O1 + O2 + O3 = O1 O2 O3
= ( x1 + x 2 )( x1 + x3 )( x1 + x 2 + x3 )
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:
168
1
1
f1
f2
7.4. Zadatak
Realizirati funkcije:
f1 = (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
f2
169
A
1
B
1
C
1
D
1
1
1
f1
f2
7.5. 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
Meutim, kako imamo na raspolaganju samo dvoulazne ILI sklopove u PALu, direktno
ne moemo realizirati ovu funkciju. Zapiimo zato funkciju malo drugaije:
f = AB + AC + BC + AB = f1 + f 2
f1 = AB + AC
f 2 = BC + AB
170
A
1
B
1
C
1
&
&
&
&
&
&
f1
f2
7.6. Zadatak
Na raspolaganju je programirljivo logiko polje dimenzija (3,5,2) izvedeno NILI sklopovima.
Izlazi su izvedeni upravljanim EX-ILI sklopovima. Nacrtati ovu strukturu i pomou nje
ostvariti funkcije f1 = AB + A C + AC i f 2 = A B + B C + AB .
Umnoak dviju (ili vie) varijabli moe se NILI sklopom ostvariti tako da se na njega
dovedu komplementi, tj:
AB = A + B = NILI ( NE ( A), NE ( B ))
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.
171
A
1
B
1
C
1
1
1
=1
f1
=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.7. Zadatak
Na raspolaganju je logiki blok s 2 ulaza realiziran multipleksorima 2/1 i LUT-om. Nacrtajte
blok i programirajte ga da obavlja logiku funkciju XOR.
Multipleksor 2/1 u nastavku e se
oznaavati simbolom:
172
0
1
1
7.8. Zadatak
Na raspolaganju je logiki blok s 3 ulaza realiziran multipleksorima 2/1 i LUT-om. Nacrtajte
blok i programirajte ga da obavlja logiku funkciju:
f = AB + BC .
f = AB + BC = AB(C + C ) + ( A + A ) BC = ABC + ABC + A BC = (3,6,7 )
0
0
0
1
0
0
1
1
173
7.9. Zadatak
Na raspolaganju je FPGA s dvoulaznim logikim blokovima temeljenim na LUTovima.
Prikazati strukturu sklopa. Programirati sklop tako da ostvaruje logiku funkciju f.
f = f2 f3
f1 = A B
f2 = A + B
f 3 = f1 + C
A
a1
B
a0
a1
a0
0
1
1
0
1
1
0
1
f1
a1
a0
f2
a1
a0
1
1
0
1
f3
0
0
0
1
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).
174
175
f 2 ( A, B , C , D ) = C D + CD = f 2 (C , D) = m(1,2)
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.
Rjeenje je prikazano na slici:
7.11. Zadatak
Potpuno zbrajalo ostvariti:
a) dvostrukim multipleksorom 4/1
b) dekoderom 3/8
B
0
0
1
1
0
0
1
1
Cin
0
1
0
1
0
1
0
1
R
0
1
1
0
1
0
0
1
Cout
0
0
0
1
0
1
1
1
176
C in
C in
C in
C in
D0
D1
D2
Cout
D3
D0
C in
C in
D1
D2
D3
Sel1 Sel0
A
b) dekoderom 3/8
D0
D1
D2
Cout
D3
D4
D5
D6
D7
A2 A1 A0
A B Cin
177
I2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
I1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
I0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
O1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
O0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
O1:
I1I0
I3I2
00
01
11
10
01
11
10
00
I2
I3
I3
I0
I1
178
O0:
I3I2
00
I1I0
01
00
01
11
10
11
10
I0
I1
I3
I2
I 2 I1
I3
O1 = I 2 + I 3
O0 = I 2 I 1 + I 3
&
&
&
&
O1
&
O0
ZADACI ZA VJEBU
1.
Bistabil.
179
8. Bistabil.
8.1. Zadatak
Prikaite tablice stanja, simbole i dijagrame stanja za:
a) SR bistabil (prikazati i izvedbu NI sklopovima te objasniti rad),
b) JK bistabil,
c) T bistabil,
d) D bistabil.
&
&
180
S
0
0
1
1
R
0
1
0
1
Qn+1
Qn
CP
0
1
?
Simbol bistabila
Tablica stanja
11
00
01
?
10
11
00
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
0
0
1
K
0
1
0
Qn+1
Qn
Qn
CP
0
1
Simbol bistabila
Tablica stanja
10,11
00
01
01,11
Dijagram stanja
c) T bistabil
00
10
J,K
Bistabil.
181
T
0
Qn+1
Qn
T
CP
Qn
Tablica stanja
Simbol bistabila
1
0
Dijagram stanja
d) D bistabil
Qn+1
D
0
1
CP
0
1
Tablica stanja
Simbol bistabila
1
0
Dijagram stanja
1
D
182
8.2. Zadatak
Ostvarite sljedee bistabile uporabom zadanog bistabila i minimalnog broja dodatnih logikih
sklopova:
a) uporabom T bistabila ostvariti JK bistabil
b) uporabom JK bistabila ostvariti T bistabil
Postupak rjeavanja uvijek se provodi u etiri koraka:
1. Napisati tablicu stanja (tablica 1) traenog bistabila (bistabila kojeg treba
realizirati).
2. Napisati tablicu stanja (tablica 2) zadanog bistabila (ili nacrtati dijagram stanja),
tj. bistabila koji nam stoji na raspolaganju.
3. Proiriti tablicu 1 ulazima zadanog bistabila, i postaviti im vrijednost koja
osigurava promjenu stanja QnQn+1 kako je navedeno u tablici.
4. Ulaze zadanog bistabila u tablici 1 promatrati kao funkcije od stanja bistabila i
ulaza traenog bistabila te ih izraunati (po mogunosti u minimalnom obliku).
a) JK bistabil pomou T bistabila
Tablica 1.
Qn
0
0
0
0
1
1
1
1
J
0
0
1
1
0
0
1
1
K
0
1
0
1
0
1
0
1
Qn+1
0
0
1
1
1
0
1
0
T
0
0
1
1
0
1
0
1
Bistabil.
183
Tablica 2. Tablica stanja T bistabila.
Qn
Qn+1
0
0
T
0
1
0
1
Objanjenje tablice 1
Pogledajmo prvi redak tablice 1. Ako se je bistabil nalazio u stanju 0, i na ulaze je
dovedeno 00, novo stanje e biti 0 ovo nam govori tablica stanja JK bistabila. No, mi
zapravo imamo T bistabil koji e "glumiti" JK bistabil. Da bi T bistabil promijenio
stanje iz Qn = 0 u Qn +1 = 0 (odnosno ostao u istom stanju), na ulaz T mora biti
dovedena 0 (vidimo iz tablice stanja T bistabila; tablica 2).
Pogledajmo sada trei redak tablice 1. Ako se je bistabil nalazio u stanju 0, i na ulaze je
dovedeno 10, novo stanje e biti 1 ovo nam govori tablica stanja JK bistabila. Da bi T
bistabil promijenio stanje iz Qn = 0 u Qn +1 = 1 , na ulaz T mora biti dovedena 1 (vidimo
iz tablice stanja T bistabila; tablica 2).
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
00
01
11
1
1
Q 0
1
T = J Qn + K Qn
JK
10
184
JK bistabil
&
CP
&
CP
T
0
1
0
1
Qn+1
0
1
1
0
J
0
1
0
1
01,11
00
10
J,K
Objanjenje tablice 1
Pogledajmo prvi redak tablice 1. Ako se T bistabil nalazi u stanju 0, i na ulaz T se
dovede 0, novo stanje biti e 0. Da bi JK bistabil promijenio stanje iz Qn = 0 u Qn +1 = 0
(odnosno ostao u istom stanju), na ulaz JK mora biti dovedeno 0 (vidimo iz dijagrama
stanja JK bistabila; dijagram 2). Naime, ostajemo u stanju 0 ako dovedemo na ulaze 00,
ili 01, to krae zapisujemo s 0. Ovo se je takoer moglo oitati i iz tablice stanja JK
bistabila, meutim lake je oitavati direktno iz dijagrama stanja. Ostale retke
popunjavamo slino.
Sada jo moramo oitati J i K kao funkcije od Qn i T. Iz tablice 1 to moemo direktno
oitati:
J (Qn , T ) = m(1) + d (2,3)
Bistabil.
185
T
0
Qn 0
1
Qn 0
J =T
K =T
T bistabil
T
CP
J
CP
K
8.3. Zadatak
Napisati strukturni opis SR bistabila izvedenog NI sklopovima, te ponaajni opis D bistabila
sa sinkronim ulazom za reset, koji reagira na padajui brid signala takta. Neka kanjenje
koritenih logikih sklopova (SR bistabil) odnosno samog bistabila (D bistabil) iznosi 5 ns.
SR bistabil
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY SRbistabil IS PORT (
S, R: IN std_logic;
Q, Qn: OUT std_logic
);
END SRbistabil;
ARCHITECTURE Structural OF SRbistabil IS
SIGNAL Qint, Qnint: std_logic;
BEGIN
-- Izraun internih izlaza
Qint <= S NAND Qnint AFTER 5 ns;
Qnint <= R NAND Qint AFTER 5 ns;
-- Preslikavanje na izlaze bistabila
Q <= Qint;
Qn <= Qnint;
END Structural;
186
D bistabil
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY Dbistabil IS PORT (
D, Reset: IN std_logic;
Q, Qn: OUT std_logic;
Clock: IN std_logic
);
END Dbistabil;
ARCHITECTURE Behavioral OF Dbistabil IS
BEGIN
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.4. 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 A2A1 A0, 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:
J
0
0
0
0
1
1
1
1
Programirani logiki blok je tada:
K
0
0
1
1
0
0
1
1
Qn
0
1
0
1
0
1
0
1
Qn+1
0
1
0
0
1
1
1
0
D
0
1
0
0
1
1
1
0
Bistabil.
J
K
187
A2
A1
A0
0
1
0
0
1
1
1
0
D
CP
8.5. Zadatak
Uporabom potrebnom broja multipleksora 2/1 prikazati principijelnu shemu:
a) sinkronog D bistabila okidanog razinom signala vremenskog voenja,
b) sinkronog D bistabila okidanog bridom signala vremenskog voenja (master slave D
registar).
Objasniti funkciju D bistabila.
Funkcija:
D
CP
Q
Q
Implementacija:
d0
D
d1
y
a
CP
188
Izvedba bistabilima:
D
CP
D
CP
CP
CP
Q
Implementacija multipleksorima:
d1
D
d0
y
a
d0
d1
CP
Sklop je napravljen analogno dvostrukom JK bistabilu objanjenom na predavanjima.
Glavni nedostatak je podvostruenje dijelova ime se poveava povrina koju sklop
zauzima na ploici silicija, meutim, glavni dobitak je okidanje na brid CP-a.
U trenutku kada je CP = 0, ulaz D prenosi se na izlaz prvog multipleksora, ali ne i dalje.
Potencijalne promjene ulaza D prolaze samo do polovice sklopa. U trenutku kada CP
prelazi u 1 (dakle na rastui brid) prvi bistabil (multipleksor) se otpaja od ulaza D, a
trenutni njegov izlaz se prosljeuje kroz drugi bistabil (multipleksor). Stanje ostaje
stabilno, i eventualne promjene ulaza D vie nemaju utjecaja na izlaz.
Bistabil.
189
8.6. Zadatak
U realnim sklopovima postoji kanjenje. Objasniti utjecaj kanjenja na izvedbu bridom
okidanog bistabila prema principijelnoj shemi iz prethodnog zadatka.
d0
D
d1
y
a
CP
d0
Q1
d1
Q2
CP
CP + CP = 1 ,
analiza rada odgovara analizi iz prethodnog zadatka. Meutim, prilikom implementacije
ovog sklopa koristit e se realne komponente te e na temelju signala CP trebati
generirati njegov komplement (ili obrnuto) zbog ega vie nee vrijediti:
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).
U poetnom trenutku Q1 i Q2 nalaze se u nekom nepoznatom (ali konkretnom stanju;
moemo pretpostaviti da je to npr. '1'). Ta dva stanja su ista, jer je CP =1, to znai da
drugi multipleksor na svoj izlaz direktno proputa Q1. Na prvi rastui brid CP-a, prvi
multipleksor na svoj izlaz proputa ulaz D, a kako se drugi multipleksor jo nije
prebacio na ulaz d0 (jer je CP jo uvijek 1), stanje s ulaza D preslikava se na izlaz
190
bistabila! Sklop je, dakle, reagirao i na rastui brid CP-a, to svakako nije eljeno
ponaanje (sklop bi trebao reagirati samo na padajui brid!). Malo detaljnijom analizom
moe se uoiti da ovaj sklop zapravo reagira na svaki brid (i rastui i padajui)!
t
CP
t
CP
t
Q1
t
Q2
t
Dijagram 1. Ponaanje sklopa za sluaj da komplement kasni.
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
t
Dijagram 2. Ponaanje sklopa za sluaj da komplement rani.
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
padajueg brida signala CP najprije se izlazni multipleksor prebacuje tako da na izlaz
preslikava Q1 (koji je do tog trenutka pratio ulaz D), a zatim se ulazni multipleksor
Bistabil.
191
zatvara u petlju u kojoj je zakljuan Q1 (i time se otpaja od ulaza D). Oko rastueg brida
CP -a dogaa se upravo suprotno: najprije se izlazni multipleksor zatvara u petlju u
kojoj uva Q2, a tek se potom ulazni multipleksor prebacuje tako da na svoj izlaz
preslikava trenutni ulaz (to u tom trenutku vie nema utjecaja na izlazni multipleksor).
Prethodni sluaj kada je CP kasnio za CP -om nije radio upravo zbog pogrenog
redoslijeda promjena na multipleksorima; naime, u tom sluaju prilikom rastueg brida
CP -a najprije je ulazni multipleksor na svoj izlaz (Q1) propusti trenutni ulaz D (koji je
odmah bio proslijeen i na izlaz Q2 unitavajui time trenutni Q2), a tek je zatim izlazni
multipleksor zakljuao na svom izlazu trenutni Q2 (koji je tada zapravo odgovarao
podatku s ulaza D).
Ostaje jo samo problem realizacije: kako napraviti sklop koji e predviati
komplement signala CP prije no to se sam CP promijeni? Rjeenje je prikazano u
nastavku:
d0
D
d1
d0
Q1
a
CP = CLK
d1
Q2
y
a
CP = CLK
CLK
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.
192
Pobuda bistabila
2.
3.
Povijesna crtica
Svi do sada obraeni bistabili ime su dobili prema funkciji. SR od Set/Reset, D od
Delay, T od Toggle a JK od ?
Pria ide ovako. U srpnju 1958. godine, kada je veina zaposlenika Texas Instrumentsa 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.
Prema inicijalima Jacka Kilbyja, izumitelja integriranih sklopova, JK bistabil je dobio
ime
Digitalna aritmetika.
193
9. Digitalna aritmetika.
9.1. Zadatak
Za brojeve 10010(2), 10111(2), 00000(2), 12012(3) te 22001(3) izraunati (B-1)-vi
komplement.
te B-ti
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
(B-1)-1
=1-1=0
(B-1)-0
=1-0=1
(B-1)-0
=1-0=1
(B-1)-1
=1-1=0
(B-1)-0
=1-0=1
Dakle, (B-1)-vi komplement od broja 10010(2) je 01101(2). Uoiti koje svojstvo ima (B1)-vi komplement: zbrajanjem broja i njegovog (B-1)-vog komplementa dobiva se broj
ije su sve znamenke upravo B-1! Naime:
+
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
+
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
194
(B-1)-1
=2-1=1
(B-1)-2
=2-2=0
(B-1)-0
=2-0=2
(B-1)-1
=2-1=1
(B-1)-2
=2-2=0
Ai
0
0
1
1
Bi
0
1
0
1
Si Ci
0 0
1 0
1 0
0 1
S i = Ai Bi + Ai Bi = Ai Bi
C i = Ai Bi
Si
Ai
H
Bi
Ci
Simbol poluzbrajala
Digitalna aritmetika.
195
9.3. Zadatak
Izvesti potpuno zbrajalo poluzbrajalima - napisati logike izraze, prikazati simbol.
Ai
0
0
0
0
1
1
1
1
Bi Ci-1
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1
S i = Ai Bi Ci 1 + Ai Bi Ci 1 + Ai Bi Ci 1 + Ai Bi Ci 1
Si Ci
0 0
1 0
1 0
0 1
1 0
0 1
0 1
1 1
= Ai Bi Ci 1 + ( Ai Bi )Ci 1
= Ai Bi Ci 1
Ci = Ai Bi Ci 1 + Ai Bi Ci 1 + Ai Bi Ci 1 + Ai Bi Ci 1
= (Ai Bi + Ai Bi )Ci 1 + Ai Bi
= ( Ai Bi )Ci 1 + Ai Bi
Ai Si
Bi F
Ci-1 Ci
Ai
Si
Ai
H
Bi
Bi
Si
Si
Ai
H
Ci
Bi
Ci
Ci
Ci-1
9.4. Zadatak
Realizirati etiri-bitno zbrajalo uporabom potpunih zbrajala i bez dodatnih sklopova.
Potpuna zbrajala povezati emo tako da paralelno obavljaju zbrajanje odgovarajuih
bitova, a prijenos koji nastaje iriti e se serijski. Sklop je prikazan na sljedeoj slici.
b3
a3
b2
a2
b1
a1
b0
a0
Bi
Ai
Bi
Ai
Bi
Ai
Bi
Ai
Ci
F Ci-1
Ci
F Ci-1
Ci
F Ci-1
Ci
F Ci-1
Si
s3
Si
s2
Si
s1
Si
s0
196
9.5. Zadatak
Realizirati sklop za etiri-bitno zbrajanje/oduzimanje uporabom sklopa za etiri-bitno
zbrajanje iz prethodnog zadatka. Ulaz op neka odreuje operaciju koju treba obaviti, i to na
ako je op=0, sklop radi zbrajanje (S=A+B), a ako je op=1, sklop radi oduzimanje (D=A-B).
b3
a3
=1
c/p
b2
a2
=1
b1
a1
=1
b0
a0
=1
Bi
Ai
Bi
Ai
Bi
Ai
Bi
Ai
Ci
F Ci-1
Ci
F Ci-1
Ci
F Ci-1
Ci
F Ci-1
Si
s/d3
Si
s/d2
Si
s/d1
Si
s/d0
9.6. Zadatak
Izvesti sklop za izdvojeno generiranje prijenosa i njegovom uporabom realizirati etiri-bitno
zbrajalo.
Kao to je poznato, bit preljeva kod potpunog zbrajala iznosi (vidi zadatak 9.3):
C i = ( Ai Bi )C i 1 + Ai Bi
Ako uvedemo supstitucije Pi = Ai Bi i Gi = Ai Bi , jednadba prelazi u:
C i = Pi C i 1 + Gi
Prisjetimo se, Pi je propagirajui lan, a Gi generirajui lan. Kako je ovo iterativna
formula, pogledajmo za sluaj etiri-bitnog zbrajala:
C0 = G0 + P0C1
Digitalna aritmetika.
197
G3 P3 G2 P2 G1 P1 G0 P0
CLA
C3
C0
C-1
C1
C2
B3
A2
B2
A1
B1
A0
B0
Ai
Bi
Ai
Bi
Ai
Bi
Ai
Bi
Ci
Gi
Si
Ci-1
Pi
Ci
Gi
Si
S3
Ci-1
Pi
Ci
Gi
Si
Ci-1
Pi
S1
S2
CLA
C3
C0
C1
Gi
Si
S0
G3 P3 G2 P2 G1 P1 G0 P0
Cout
Ci
C-1
C2
9.7. Zadatak
Realizirati sklop za mnoenje 4-bitnih brojeva.
Ci-1
Pi
Cin
198
r7
a3b3
r6
a3b2
a2b3
r5
a3b1
a2b2
a1b3
r4
a3b0
a2b1
a1b2
a0b3
r3
a2b0
a1b1
a0b2
a1b0
a0b1
a0b0
r2
r1
r0
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 b3b2 b1b0
=
=
=
+
z4
r7
=
+
y4
a3b3
z3
r6
+
x4
a3b2
y3
a2b3
z2
r5
0
a3b1
x3
a2b2
y2
a1b3
z1
r4
a3b0
a2b1
x2
a1b2
y1
a0b3
z0
r3
a2b0
a1b1
x1
a0b2
y0
a1b0
a0b1
x0
a0b0
r2
r1
r0
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.
Digitalna aritmetika.
199
r0
r1
&
r2
0
A3
Cout
A3
Cout
A3
Cout
r7
&
A2
S3
A2
S3
A2
S3
r6
&
A1
S2
A1
S2
A1
S2
r5
&
A0
S1
A0
S1
A0
S1
r4
&
B3
S0
r3
&
&
B3
B2
&
&
B1
&
B0
S0
&
B3
B2
&
B2
&
B1
&
B1
&
B0
&
B0
S0
a3
a2
a1
a0
b3
b2
b1
b0
9.8. 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).
Rjeenje je prikazano na slici.
G3 P3 G2 P2 G1 P1 G0 P0
G7 P7 G6 P6 G5 P5 G4 P4
G3 P3 G2 P2 G1 P1 G0 P0
Cout
CLA
C3
G'3
P'3
C0
G3 P3 G2 P2 G1 P1 G0 P0
C-1
C1
C2
CLA
C3
G'3
P'3
C0
C-1
C1
C2
Cin
200
9.9. 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.
Kao to je poznato, bit preljeva kod potpunog zbrajala iznosi C i = ( Ai Bi )C i 1 + Ai Bi ,
pri emu uz Pi = Ai Bi i Gi = Ai Bi dobivamo izraz C i = Pi C i 1 + Gi , pa slijedi:
C0 = G0 + P0C1
C1 = P1C0 + G1 = P1P0C1 + P1G0 + G1
C2 = P2C1 + G2 = P2 P1P0C1 + P2 P1G0 + P2G1 + G2
C3 = P3C 2 + G3 = P3 P2 P1 P0C 1 + P3 P2 P1G0 + P3 P2G1 + P3G2 + G3
Ostavimo prve tri jednadbe, a etvrtu zapiimo kao:
C3 = P'3 C 1 + G '3
gdje su (apostrof u ovom sluaju ne oznaava komplement):
P'3 = P3 P2 P1 P0 , G '3 = P3 P2 P1G0 + P3 P2G1 + P3G2 + G3 .
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
CLA
C3
G'3
P'3
C0
C-1
C1
C2
C0
C1
C2
C-1
C3
G'3
P'3
Cout
C0
C3
C1
C-1
C3
G'3
G'3
P'3
C0
CLA
C1
C2
C-1
P'3
C0
CLA
C1
C2
G3 P3 G2 P2 G1 P1 G0 P0
G7 P7 G6 P6 G5 P5 G4 P4
G3 P3 G2 P2 G1 P1 G0 P0
C2
CLA
P'3
CLA
G'3
G3 P3 G2 P2 G1 P1 G0 P0
G3 P3 G2 P2 G1 P1 G0 P0
C3
C-1
C3
G'3
P'3
C0
CLA
C1
C2
G3 P3 G2 P2 G1 P1 G0 P0
G3 P3 G2 P2 G1 P1 G0 P0
C-1
Cin
Digitalna aritmetika.
201
202
9.10. Zadatak
Uporabom 3 potpuna zbrajala, 3 poluzbrajala te potrebnog broja osnovnih logikih sklopova
ostvariti sklop za mnoenje trobitnih binarnih brojeva.
+
p3
x2y2
r4
=
+
r5
0
x2 y1
p2
x1 y2
r3
x2 y0
x1 y1
p1
x0 y2
r2
x1 y0
x0 y1
p0
x0 y0
r1
r0
r0
x0 y0
x1 y0
Ai
r1
Si
H
x0 y1
Bi
Ci
Ci-1 Si
x2 y0
x1 y1
Ai F
Bi Ci
Ai
Bi
x0 y2
Bi
Ci
Ci-1 Si
Si
Ci
r2
H
x2 y1
Si
Ai
x1 y 2
x2 y 2
r3
Ai F
Bi Ci
Ci-1 Si
r4
Ai F
Bi Ci
r5
Digitalna aritmetika.
203
9.11. Zadatak
Prikazati izvedbu potpunog zbrajala pogodnog za uporabu CLA sklopova. Proraunati
vrijeme stabilizacije izlaza uz pretpostavku da svaki logiki sklop kasni jednako.
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
direktnom realizacijom poluzbrajalima slijedi:
=1
=1
&
&
204
9.12. 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)
Digitalna aritmetika.
205
206
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 tdls izraunati su svi P i G izlazi potpunih zbrajala. Nakon jo 2 t dls , tj.
u trenutku t = 1 tdls + 2 t dls = 3 t dls sve CLA jedinice u prvoj razini izraunavaju svoje P
i G izlaze (zapravo, P se dobije t = 1 tdls + 1 t dls = 2 t dls ). Na temelju tih izlaza CLA
sklop najvie razine nakon jo 2 t dls , tj. u trenutku t = 3 tdls + 2 t dls = 5 tdls izraunava
ispravne bitove prijenosa. Prijenos se vodi do CLA sklopa koji rauna prijenose za
gornjih 16 bitova rezultata, to se izrauna nakon jo 2 t dls , 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 t dls , tj. u trenutku t = 7 tdls + 2 t dls = 9 tdls CLA sklopovi prve razine imaju
izraunate ispravne prijenose za sva potpuna zbrajala, te se ispravni rezultat pojavljuje
jo 2 t dls kasnije, tj. u trenutku t = 9 t dls + 2 t dls = 11 tdls . Ispravan prijenos najvieg bita
pri tome se uzima s hijerarhijski najnieg CLA sklopa, gdje je bio dostupan ve u
trenutku t = 7 tdls . Hijerarhijskim povezivanjem CLA sklopova dobili smo, dakle, jo
bri rad sklopova.
ZADACI ZA VJEBU
1.
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").
2.
Napiite u VHDL-u ponaajni model 5-bitnog CLA sklopa koji dodatno generira svoje
P i G lanove (emu oni slue?)
3.
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)
00101111, (c) 00000000, (d) 11111111, (e) 01011010. Obaviti zbrajanje 3 i -3, 114 i 17, -28 i -43, -100 i -113; koji je rezultat?
4.
5.
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.
Digitalna aritmetika.
207
6.
Neka se za kodiranje dekadskih brojeva koristi Excess-3 kod. Projektirati sklop koji
rauna (B-1)-vi komplement jednoznamenkastog broja. Projektirati sklop koji rauna Bti komplement troznamenkastog broja.
7.
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.
8.
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
1.
2.
Registri.
10.
209
Registri.
10.1. Zadatak
Uporabom D bistabila nacrtati shemu 4-bitnog registra s paralelnim ulazima i paralelnim
izlazima.
Q3
D
CP
Q2
CP
Q1
CP
Q
CP
Q
D3
Q0
CP
Q
D2
Q
Q
D1
D0
10.2. Zadatak
Uporabom D bistabila nacrtati shemu 4-bitnog posmanog registra sa serijskim ulazom i
paralelnim izlazima.
Q2
Q3
D
CP
CP
CP
Q
Q1
CP
Q
Q0
CP
Q
10.3. Zadatak
Projektirati trobitni posmani registar uporabom bridom okidanih D bistabila i potrebnog
broja multipleksora 4/1. Mogunosti sklopa su sljedee:
210
S1
0
0
1
1
Funkcija
Posmak udesno; punjenje bitom Sin
Posmak ulijevo; punjenje bitom Sin
Paralelni upis
Kruni posmak udesno
Pout1
Pout0
d0
d1
y
d2
a
d3 a1 0
d0
d1
CP
y
d2
a
d3 a1 0
CP
Sin Pin0 S1 S0 CP
d0
d1
y
d2
a
d3 a1 0
Pout2
D
CP
Pin1
Pin2
10.4. Zadatak
Projektirati sklop koji e prolaziti kroz
sljedea stanja: 0 8 4 10 5 2
9 12 14 7 3 1 0 ...
Sklop je potrebno ostvariti uporabom
strukture prikazane na slici (posmani
registar + multipleksor). Nespecificirana
stanja treba tako rijeiti da sklop u
minimalnom broju koraka doe u stanje 0.
d0
d1
d2
d3
d4
d5
d6
1
A B C D
Sin
CP
CP
mux 8/1
d7
a2 a1 a0
Registri.
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
211
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
A'
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
B'
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C'
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D'
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
Sin=A'
D
D
D
0
D
D
D
0
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
Iz stanja 15 = 1111 moemo prijei u stanje Sin 111
(vidi sliku). Za Sin=0 to je 7, a za Sin=1 to je 15. Ako smo
doli u stanje 7, to stanje je definirano i do nule nam
treba jo 3 koraka (oznaeno u zagradi). Uz vor 7
podvueno se nalazi i ukupni broj koraka do nule 3
plus 1 za prijelaz 15 u 7. Ako smo doli u stanje 15,
vrtimo se cikliki u krug to nije put prema stanju 0 u
minimalnom broju koraka.
15
7 (3)
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
212
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
Iz stanja 6 potrebno je prijei u stanje 3 (vidi sliku ispod).
11
13
5 (8)
14 (4)
13 (4)
5
6
3 (2)
11
4
3 (2)
13
5 (8)
11
Shema traenog sklopa je dakle:
d0
mux 8/1
d1
d2
0
d3
d4
d5
d6
0
1
A B C D
Sin
CP
CP
d7
a2 a1 a0
11 (5)
6
Registri.
213
10.5. Zadatak
Uporabom potpunog zbrajala i potrebnog broja sinkronih bridom okidanih D registara
realizirati sklop koji obavlja serijsko zbrajanje dvaju binarnih brojeva. Objasniti rad sklopa.
Prikazati na vremenskom dijagramu proces zbrajanja 4-bitnih brojeva 5 i 9.
Ain
Bin
Ai Si
Bi F
Ci-1 Ci
D
CP
Rout
Reset
CP
D
CP
Cout
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.
Vremenski dijagram prikazan je u nastavku.
Uoiti da signal Reset djeluje asinkrono.
214
0
5 = 0101(2)
t
Bin
1
9 = 1001(2)
t
CP
t
Reset
t
Rout
1
14 = 1110(2)
t
Cout
t
10.6. Zadatak
Akcija
Ostaviti prethodno stanje registra
Upisati stanje s paralelnih ulaza
Registri.
215
D0
Q0 D1
0
1
a0
Q1 D2
CP
y
a0
CP
Q2
y
a0
CP
L
CP
10.7. Zadatak
Uporabom dva 4-bitna posmana registra ija je funkcionalnost prikazana tablicom ostvariti
8-bitni posmani registar iste funkcionalnosti. Dozvoljeno je jo koristiti multipleksor te
potreban broj osnovnih logikih sklopova.
S1
0
0
1
1
S0
0
1
0
1
Funkcija
Posmak udesno; punjenje bitom SRin
Posmak ulijevo; punjenje bitom SLin
Paralelni upis
Resetiranje registra
Za ovaj jednostavan sluaj zadanih operacija sklopovi se mogu spojiti direktno, kao to
je prikazano na shemi.
A B C D
SRin
SRin
SLout
SLout
A B C D
S1 S0
CP
E F G H
SRout
SLin
SRin
A B C D
SLout
S1 S0 CP
SRout
SRout
SLin
SLin
S1 S0 CP
10.8. Zadatak
Uporabom dva 4-bitna posmana registra ija je funkcionalnost prikazana tablicom ostvariti
8-bitni posmani registar iste funkcionalnosti. Dozvoljeno je jo koristiti multipleksor 2/1 te
dekoder 2/4.
216
S1
0
0
1
1
Funkcija
Posmak udesno; punjenje bitom SRin
Posmak ulijevo; punjenje bitom SLin
Paralelni upis
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
0
0
1
1
S0
0
1
0
1
S1x
0
0
1
0
S0x
0
1
0
0
K
0
0
0
1
SRin
d0
d1
y
a
SRin
SLout
E F G H
A B C D
SLout
S1 S0 CP
SRout
SRin
SLout
S1 S0 CP
SLin
d3 d2 d1 d0
dek 2/4
a1 a0
S1 S0
A B C D
CP
SRout
SRout
SLin
SLin
Registri.
217
10.9. Zadatak
Napisati strukturni model 4-bitnog posmanog registra sa serijskim ulazom i paralelnim
izlazima, te ulazom za reset. Kao osnovu za opis registra koristiti komponentu Dbistabil
opisanu u zadatku 8.3.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY Reg4bit IS PORT (
Sin, Reset: IN std_logic;
Q: OUT std_logic_vector( 3 DOWNTO 0);
Clock: IN std_logic
);
END Reg4bit;
ARCHITECTURE Structural OF Reg4bit IS
COMPONENT Dbistabil IS PORT (
D, Reset: IN std_logic;
Q, Qn: OUT std_logic;
Clock: IN std_logic
);
END COmponent;
SIGNAL Qint: std_logic_vector( 3 DOWNTO 0);
BEGIN
-- povezivanje pojedinih D bistabila u 4-bitni registar
D3:
D2:
D1:
D0:
Dbistabil
Dbistabil
Dbistabil
Dbistabil
PORT
PORT
PORT
PORT
map
map
map
map
10.10. Zadatak
Ponaajnim VHDL-om modelirati registar prikazan slikom. Registar
nailaskom impulsa CP pohranjuje vrijednost narinutu na njegovom
ulazu. Upravljaki ulazi S i C (postavljanje i brisanje) moraju biti
sinkroni. Svi signali moraju biti iskljuivo ulazni odnosno izlazni.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
2
D
CP
C
218
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;
ARCHITECTURE Behavioral OF d_reg IS
BEGIN
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;
10.11. Zadatak
Koritenjem registra iz prethodnog zadatka nacrtati shemu 5bitnog posmanog registra prikazanog na slici i napisati
odgovarajuu specifikaciju u VHDL-u. Operacije koje
obavlja registar odreene su ulazom ctrl: 00 ne dogaa se
nita, 01 posmak u desno, 10 paralelni upis te 11
nedefinirano. Napomena: sklop iz prethodnog zadatka
upotrebljavati kao crnu kutiju!
5
Pout
Sin
reset
CP
ctrl
Pin
2
Nacrtajmo najprije kako bismo spojili sve potrebne sklopove. Nepotpuna shema
prikazana je u nastavku:
Registri.
219
220
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),
pouti(3 DOWNTO 2));
r2: d_reg PORT MAP (clk, '1', reset, pint (5 DOWNTO 4),
pouti(5 DOWNTO 4));
pout <= pouti(4 DOWNTO 0);
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.
Registri.
221
D0
Sin
1
J
CP
K
Q
Q
D1
J
CP
K
Q
Q
D3
D2
J
CP
K
J
CP
K
Q
Q
CP
Objanjenje:
Prvi bistabil uporabom invertora pretvoren je u D bistabil koji je i inae osnova za
izgradnju registara. Meutim, kako smo time potroili raspoloive invertore, potrebno
se je dosjetiti kako i ostale JK bistabile pretvoriti u D bistabile. To nije preteko jer je
uvjet da bismo iz JK bistabila dobili D bistabil upravo dovoenje komplementarnih
vrijednosti na ulaze J i K. No komplementarne vrijednosti ve imamo na izlazu
prethodnog bistabila, pa je dovoljno samo spojiti izlaz bistabila sa J ulazom sljedeeg
JK bistabila, a komplementirani izlaz sa K ulazom.
10.13. Zadatak
Prikazati funkciju sklopa 74LS194. Opisati sklop ponaajnim VHDL-om.
Sklop 74LS194 ima funkciju posmanog registra, ije je suelje
prikazano na slici, a funkcija opisana tablicom:
S1
0
0
1
1
Akcija
Zadri
Posmak desno
Posmak lijevo
Uitaj
QA*
QA
RIN
QB
A
QB*
QB
QA
QC
B
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;
ARCHITECTURE SHREG_ARCH OF SHREG74LS194 IS
SIGNAL IQ : STD_LOGIC_VECTOR(3 DOWNTO 0);
QC*
QC
QB
QD
C
QD*
QD
QC
LIN
D
222
BEGIN
PROCESS (CLK, CLR, IQ)
BEGIN
IF (CLR='1') THEN
IQ <= "0000";
ELSIF (CLK'event AND CLK='1') THEN
CASE S IS
WHEN "00" => NULL;
WHEN "01" => IQ <= RIN & IQ(3 DOWNTO 1);
WHEN "10" => IQ <= IQ(2 DOWNTO 0) & LIN;
WHEN "11" => IQ <= D;
WHEN OTHERS => NULL;
END CASE;
END IF;
Q <= IQ;
END PROCESS;
END SHREG_ARCH;
10.14. Zadatak
Ponaajnim VHDL-om modelirati 8-bitni posmani registar sa serijskim i paralelnim ulazima
i paralelnim izlazom, ija je funkcija zadana tablino:
S2
0
0
0
0
1
1
1
1
S1
0
0
1
1
0
0
1
1
S0
0
1
0
1
0
1
0
1
Akcija
Zadri
Uitaj
Posmak u desno, punjenje s LIN
Posmak u lijevo, punjenje s RIN
Cikliki posmak u desno
Cikliki posmak u lijevo
Aritmetiki posmak u desno
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;
ARCHITECTURE SHREG_ARCH OF SHREG IS
SIGNAL IQ : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
PROCESS (CLK, CLR, IQ)
BEGIN
IF (CLR='1') THEN
IQ <= (OTHERS=>'0');
Registri.
223
Q2 Q1 Q0
Sin
S/R
Q3 Q2 Q1
Q2 Q1 Q0
Sin
Sin
S/R
CP
Q0
S/R
1
D Q
CP
CP
CP
224
ZADACI ZA VJEBU
1.
2.
Funkcija
uva se trenutno pohranjen podatak.
Posmak u desno, punjenje sa Sin.
Posmak u lijevo, punjenje sa Sin.
Paralelni upis.
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.
Brojila.
11.
225
Brojila.
11.1. Zadatak
Asinkrono binarno brojilo sastavljeno je od 3 dvostruka JK bistabila. Na ulaz brojila dovode
se impulsi takta. Projektirati sklop temeljen na ovom brojilu koji e nakon svakih osam
impulsa takta na izlazu dati jedinicu. Koje stanje treba dekodirati ako se eli raditi na
maksimalnoj frekvenciji? Na raspolaganju su jo samo NI sklopovi.
B0
CP
B1
CP
Q
B2
CP
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:
B2
1
B1
0
B0
1
B2
1
B1
1
B0
0
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 B1B0 :
&
&
226
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:
Vrijeme dekodiranja
stanja
t dek 0 = 3 tdb + 2 tdls
t dek 3 = 1 t db + 2 t dls
t dek 4 = 3 t db + 2 t dls
t dek 6 = 2 t db + 2 t dls
t dek 7 = 1 t db + 2 t dls
B2
B1
B0
B2
B1
B0
&
CP
B
J 0Q
CP
Q
K
B
J 1Q
CP
Q
K
B2
Q
J
CP
Q
K
&
m7
Brojila.
227
11.2. Zadatak
Realizirati asinkrono brojilo sa 12 stanja uporabom dvostrukih JK bistabila. Pri tome se
koristiti:
a) Asinkronim ulazom za postavljanje,
b) Asinkronim ulazom za brisanje.
Odrediti potreban broj bistabila. Na raspolaganju su jo i NI sklopovi. Ako je poznato da je tdls
= 10 ns, tdb = 20 ns a toitanja = 20 ns, odrediti za svaki sluaj maksimalnu frekvenciju rada
sklopa.
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 .
150123456789101112131415
12 stanja
228
D1
D2
D3
&
Sd
CP B0
Q
K
Cd
CP
Sd
CP B1
Q
K
Cd
Sd
CP B2
Q
K
Cd
Sd
CP B3
Q
K
Cd
Vremenska analiza
Da bismo utvrdili kojom maksimalnom frekvencijom smiju dolaziti impulsi takta,
potrebno je razmotriti dva vremena: (i) vrijeme potrebno za slijednu promjenu stanja u
ciklusu brojanja i (ii) vrijeme potrebno za povratak na poetak ciklusa. Maksimalna
frekvencija rada odreena je veim od ta dva vremena.
B2 B2
B1
B0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
B2
B2
B1
B0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
Brojila.
229
B2 B2
B1
B0
B2
B2
B1
B0
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:
230
D1
D2
D3
1
Sd
Q
J
CP B0
Q
K
Cd
CP
Sd
Q
J
CP B1
Q
K
Cd
Sd
Q
J
CP B2
Q
K
Cd
Sd
Q
J
CP B3
Q
K
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:
D1
D0
D2
D3
J
CP
Sd
CP B0
K
Cd
Sd
CP B1
Q
Cd
Sd
CP B2
Q
Cd
Sd
CP B3
Q
Cd
&
&
&
&
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.
231
B1
B0
B2
B2
B1
B0
232
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
D1D0
00
01
11
10
00
01
11
10
D3 D2
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:
Nacrtati vremenske dijagrame za a) i b) dijelove zadatka.
Brojila.
233
11.3. Zadatak
Realizirati sinkrono trobitno binarno brojilo uporabom dvostrukih JK bistabila.
D0
B0
CP
K
D1
B1
CP
K
D2
B2
CP
K
Q
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.
Q2
0
0
0
0
1
1
1
1
Q0
0
1
1
0
0
1
1
0
n+1
Q1
0
1
1
1
1
0
0
0
Q2
0
0
0
1
1
1
1
0
Q0
1
1
0
0
1
1
0
0
J2
0
0
0
1
K2
0
0
0
1
J1
0
1
0
0
K1
0
0
0
1
J0
1
0
1
K0
0
1
0
1
01
11
Q1Q0
10
Q2 0
1
K2
Q2 0
1
00
01
11
Q1 Q0
10
234
J1
00
Q2 0
01
11
Q1 Q0
10
Q1 Q0
10
1
J0
Q2 0
00
01
11
K1
Q2 0
1
00
01
11
Q1Q0
10
K0
00
Q2 0
01
Q1Q0
10
11
1
1
J 2 = Q1Q0
K 2 = Q1Q0
J1 = Q2Q0
K1 = Q2Q0
J 0 = Q2Q1 + Q2Q1
K 0 = Q2Q1 + Q2Q1
D0
D1
D2
&
&
B0
&
CP
&
B1
&
CP
Q
&
B2
CP
Q
&
&
CP
11.5. Zadatak
Realizirati sinkrono trobitno brojilo uporabom dvostrukih JK bistabila, i potrebnog broja
osnovnih logikih sklopova, koje prolazi kroz stanja: 041570. Osigurati siguran
start brojila (tako da se nespecificirana stanja prebace u 0).
Brojila.
235
n
Q1
0
0
1
1
0
0
1
1
Q2
0
0
0
0
1
1
1
1
Q0
0
1
0
1
0
1
0
1
n+1
Q1
0
0
0
0
0
1
0
0
Q2
1
1
0
0
0
1
0
0
Q0
0
1
0
0
1
1
0
0
J2
1
1
0
0
K2
1
0
1
1
J1
0
0
0
1
K1
1
1
1
1
J0
0
K0
00
01
11
01
11
Q1Q0
10
Q1 Q0
10
Q2 0
1
J0
00
01
11
Q2 0
1
J 2 = Q1
K 2 = Q1 + Q0
J 1 = Q2 Q0
K1 = 1
J 0 = Q2 Q1
K 0 = Q1
Shema sklopa:
K2
Q2 0
J1
00
Q1 Q0
10
00
01
11
Q1 Q0
10
K1
Q2 0
1
00
01
11
Q1 Q0
10
1
1
1
1
11
Q1 Q0
10
1
1
K0
00
Q2 0
1
01
236
&
B0 Q
D1
&
CP
B1
D2
CP
Q
CP
1
B2 Q
Q
CP
11.6. Zadatak
0
0
1
1
0
1
1
0
0
0
1
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
1
1
1
0
0
0
1
1
1
00
01
11
Q1Q0
10
K2
Q2 0
1
00
01
11
Q1Q0
10
Brojila.
237
J1
00
01
11
Q1Q0
10
Q2 0
1
J0
00
01
11
Q1Q0
10
Q2 0
1
K1
Q2 0
1
00
01
11
Q1Q0
10
11
Q1Q0
10
K0
00
Q2 0
1
01
Shema sklopa:
D0
J
CP
K
D1
&
J
CP
K
D2
J
CP
K
CP
238
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
Moramo detektirati stanje 6 i djelovati na ulaze za postavljanje. 6=110(2), pa je shema
sklopa:
D0
D2
D1
&
1
ulaz
Sd
Q
B0
CP
Q
Sd
Q
B1
CP
Q
Sd
Q
B2
CP
Q
Brojila.
239
Q0
Q1
Q2
20
240
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
Prikazati funkciju sklopa 74LS163. Opisati sklop ponaajnim VHDL-om.
Sklop 74LS163 jest asinkrono 4-bitno brojilo, ije je suelje prikazano na
slici.
LD (load) i CLR (clear) djeluju sinkrono
Aktivan LD tijekom rastueg brida signala takta uitava stanje
brojila s ulaza ABCD.
Aktivan CLR tijekom rastueg brida signala takta brie brojilo (tj.
upisuje sve nule)
CLR nadjaava LD
LD nadjaava ENP i ENT
Ako je ENT=1 i ENP=1 brojilo se inkrementira
RCO = QDQCQBQAENT, koristi se za kaskadiranje ipova
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;
ARCHITECTURE C74LS163_ARCH OF C74LS163 IS
SIGNAL IQ : UNSIGNED (3 DOWNTO 0);
BEGIN
PROCESS (CLK, ENT, IQ)
BEGIN
IF (CLK'event AND CLK='1') THEN
IF CLR='0' THEN
IQ <= "0000";
ELSIF LD='0' THEN
IQ <= D;
ELSIF (ENT='1' AND ENP='1') THEN
Brojila.
241
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
Uporabom SR bistabila projektirati 4-bitno prstenasto brojilo. Nacrtati potpuni dijagram
prijelaza stanja. Da li je to brojilo sa sigurnim startom?
etiribitno prstenasto brojilo je brojilo koje broji u sljedeem ciklusu:
1000 0100 0010 0001 1000
Karakteristika brojila je ciklus brojanja kroz n stanja, pri emu je za realizaciju
potroeno n bistabila.
Trenutno stanje
Sljedee stanje
Q0 Q1 Q2 Q3 Q0 Q1 Q2 Q3
0 0 0 0
0 0 0 1 1 0 0 0
0 0 1 0 0 0 0 1
0 0 1 1
0 1 0 0 0 0 1 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0 0 1 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
1 1 1 1
S0
1
0
R0
Minimizacijom slijedi:
S 3 = Q2 , R3 = Q2
S 2 = Q1 , R2 = Q1
S1 = Q0 , R1 = Q0
S 0 = Q3 , R0 = Q3
Potrebna pobuda
S1 R1 S2 R2
0 0
0 0 1
0 1 1 0
1 0 0
S3
0
1
R3
1
0
242
Prilikom dekodiranja stanja Q3 je promatran kao bit najvee, a Q0 kao bit najmanje
teine.
Iz dijagrama je vidljivo da ovo nije sklop sa sigurnim startom.
11.10. Zadatak
Uporabom SR bistabila projektirati 4-bitno Johnsonovo brojilo. Nacrtati potpuni dijagram
prijelaza stanja. Da li je to brojilo sa sigurnim startom?
etiribitno Johnsonovo brojilo je brojilo koje broji u sljedeem ciklusu:
0000 1000 1100 1110 1111 0111 0011 0001 0000
Karakteristika brojila je ciklus brojanja kroz 2n stanja, pri emu je za realizaciju
potroeno n bistabila.
Brojila.
Trenutno stanje
Q0 Q1 Q2 Q3
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 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
1 1 1 1
243
Sljedee stanje
Q0 Q1 Q2 Q3
1 0 0 0
0 0 0 0
0 0 0 1
0 0 1 1
1 1 0 0
1 1 1 0
1 1 1 1
0 1 1 1
S0
1
0
R0
0
0
1
Potrebna pobuda
S1 R1 S2 R2
0 0
0 0
0 0 1
0 1 0
1 0 0
0 1 0
0 0
0 0
S3
0
0
R3
0
0
Minimizacijom slijedi:
S 3 = Q2 , R3 = Q2
S 2 = Q1 , R2 = Q1
S1 = Q0 , R1 = Q0
S 0 = Q3 , R0 = Q3
Zbog specifine realizacije, sklop je poznat i pod nazivom brojilo s ukrtenim prstenom.
Analizom projektiranog sklopa dolazi se do sljedeeg potpunog dijagrama prijelaza
stanja:
244
Prilikom dekodiranja stanja Q3 je promatran kao bit najvee, a Q0 kao bit najmanje
teine.
Iz dijagrama je vidljivo da ovo nije sklop sa sigurnim startom.
ZADACI ZA VJEBU
1.
2.
3.
4.
Q
Q
12.
245
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.
Dijagram treba itati na
sljedei nain: iz stanja S0, sa
znamenkom 0 prelazi se u
stanje S0, a sa znamenkom 1
u stanje S1. Dok je automat u
stanju S0, izlaz je 1 (uglate
zagrade!), i sl.
S0
S1
[1]
[0]
1
S2
1
[0]
Kodirano stanje
Q1
Q0
1
1
0
1
1
0
Zatim napiemo tablicu prijelaza stanja. Sa I emo oznaiti znak koji je pristigao na ulaz
automata.
Q1
0
0
0
0
1
1
1
1
Korak n
Q0
0
0
1
1
0
0
1
1
I0
0
1
0
1
0
1
0
1
Korak n+1
Q1
Q0
0
1
1
0
1
0
1
1
1
1
0
1
Izlaz
Y
0
0
0
0
1
1
Pobuda
D1
0
1
1
1
1
0
D0
1
0
0
1
1
1
246
00
01
1
D1
Q1 0
1
00
01
11
Q0I
10
11
Q0I
10
D0
Q1 0
00
01
11
Q0I
10
1
1
B0
D
CP
&
Q
&
Q
I
1
CP
B
D 1Q
CP
Q
247
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
0
0
1
1
I0
0
1
0
1
Znaenje
Pritisnuta je tipka A
Pritisnuta je tipka B
Pritisnuta je tipka C
Nije pritisnuta niti jedna tipka
I1
ita
tipkovnice
I0
CP
t
I1 I0
01
11
10
11
t
O1O0
10
01
t
KA
t
I0
Kombinacijski dio
Izlazni
registar
O1
O0
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.
Automat se obino prikazuje dijagramom prijelaza stanja. Automat koji ostvaruje
prethodno zadanu funkciju prikazan je na sljedeoj slici. Poetno stanje oznaeno je sa
S0 (koje oznaava da niti jedna tipka jo nije pritisnuta). Automat moe mijenjati stanje
248
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
01/01,1
S0
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.
1. Odrediti potreban broj i vrstu bistabila.
2. Kodirati stanja. Kompleksnost kombinacijskog dijela ovisiti e o nainu na koji
kodiramo stanja.
3. Napisati tablicu u kojoj se prikae kako novo stanje i izlazi automata ovise o
trenutnom stanju i trenutnim ulazima.
4. Proiriti tablicu ulazima bistabila koje koristimo i postaviti ih tako da se osigura
ispravan prelazak stanja kako je prethodno navedeno u tablici.
5. Po potrebi minimizirati funkcije ulaza bistabila i izlaza automata.
6. Nacrtati sklop prema dobivenim funkcijama.
Budui da imamo tri stanja, dovoljna su nam dva bistabila. Koristiti emo JK bistabile,
a stanja emo kodirati na sljedei nain:
S000, S101, S210.
249
10,11
0x
x0
01,11
J,K
Q1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Trenutno stanje
i pobuda
Q0
I1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
I0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Sljedee
stanje
Q1
Q0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
x
x
x
x
x
x
x
x
Sljedei izlazi
O1
0
0
1
0
0
0
0
0
0
0
0
0
x
x
x
x
O0
0
1
0
0
0
0
0
0
0
0
0
0
x
x
x
x
KA
1
1
1
0
0
0
0
0
0
0
0
0
x
x
x
x
Potrebna pobuda
bistabila
J1
K1
J0
K0
0
x
1
x
0
x
1
x
0
x
1
x
0
x
0
x
1
x
x
1
1
x
x
1
1
x
x
1
0
x
x
1
x
0
0
x
x
0
0
x
x
0
0
x
x
1
0
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
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
250
I1
ita
tipkovnice
I0
&
&
D0
Q0
O1
D1
Q1
O0
&
D2
Q2
KA
CP
&
B1
&
CP
&
B0
CP
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
0
0
1
1
I0
0
1
0
1
Znaenje
Pritisnuta je tipka A
Pritisnuta je tipka B
Pritisnuta je tipka C
Nije pritisnuta niti jedna tipka
ita
tipkovnice
I1
I0
251
I1
ita
tipkovnice
I0
Kombinacijski dio
Sekvencijski dio
Kombinacijski
dio
O1
O0
KA
CP
11
S0
11
[00,0]
00
11
11
S1
S2
[00,1]
[01,1]
00,01,10
01
10
11
S3
[10,1]
00,
01,
10
00,01,10
S4
[00,0]
[O1O0,KA]
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.:
252
Q2 Q1
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
Q0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
I1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
I0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Sljedee stanje
Q2
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
x
x
x
x
x
x
x
x
x
x
x
x
Q1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
x
x
x
x
x
x
x
x
x
x
x
x
Q0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
x
x
x
x
x
x
x
x
x
x
x
x
Izlazi za
trenutno stanju
O1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
x
x
x
x
x
x
x
x
x
x
x
x
O0 KA
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
J2
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
K2
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
0
0
0
1
x
x
x
x
x
x
x
x
x
x
x
x
J1
0
1
1
0
0
0
0
0
x
x
x
x
x
x
x
x
0
0
0
0
x
x
x
x
x
x
x
x
x
x
x
x
K1
x
x
x
x
x
x
x
x
1
1
1
1
1
1
1
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
J0
1
0
1
0
x
x
x
x
0
0
0
0
x
x
x
x
0
0
0
0
x
x
x
x
x
x
x
x
x
x
x
x
K0
x
x
x
x
1
1
1
1
x
x
x
x
1
1
1
1
x
x
x
x
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
253
KA = Q1 + Q0
J 2 = (Q1 + Q0 )(I1 + I 0 )
K 2 = I1I 0
J1 = Q2Q0 (I1 I 0 )
K1 = 1
J 0 = Q2Q1I 0
K0 = 1
Sklop koji ostvaruje zadani automat:
I1
ita
tipkovnice
I0
&
O1
&
O0
KA
1
1
&
&
B
J 2 Q
CP
Q
K
=1
&
1
B
J 1 Q
CP
Q
K
&
1
B
J 0 Q
CP
Q
K
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.
a) Mealyjev automat. Rjeenje je prikazano na slici:
254
S1
0/0
S2
1/1
0/0
1/0
1/0
0/0
S0
1/1
1/1
S4
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.
Za pohranjivanje 5 stanja trebamo 3 bistabila. Stanja emo kodirati na sljedei nain:
S0111, S1001, S2010, S3011, S4100. Tablica prijelaza s pobudom bistabila:
Trenutno stanje i
pobuda
Sljedee stanje
Izlaz u sljedeem
stanju
Q2 Q1 Q0
I
Q2 Q1 Q0
O
0 0 0
0
x x x
x
0 0 0
1
x x x
x
0 0 1
0
0 1 0
0
0 0 1
1
0 1 1
0
0 1 0
0
1 0 0
0
0 1 0
1
1 1 1
1
0 1 1
0
0 0 1
1
0 1 1
1
0 1 0
1
1 0 0
0
0 1 1
1
1 0 0
1
1 0 0
1
1 0 1
0
x x x
x
1 0 1
1
x x x
x
1 1 0
0
x x x
x
1 1 0
1
x x x
x
1 1 1
0
1 1 1
0
1 1 1
1
0 0 1
0
Nakon minimizacije funkcija i faktorizacije dobiva se:
O = Q2Q1Q0 + Q0 (Q2 + I )
D2 = Q2Q0 I + Q0 (Q2 + I )
D1 = Q1Q0 + (Q2 I )
D2
x
x
0
0
1
1
0
0
0
1
x
x
x
x
1
0
D1
x
x
1
1
0
1
0
1
1
0
x
x
x
x
1
0
D0
x
x
0
1
0
1
1
0
1
0
x
x
x
x
1
1
255
I
1
&
&
=1
&
&
&
B0
=1
&
CP
B1
&
Q
CP
&
B2
CP
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
1
[0]
[0]
0
1
S1'
[1]
S2'
1
[1]
1
S0
S3
0
[0]
0
0
S0'
[1]
[0]
S4
[0]
0
S3'
[1]
S4'
[1]
256
ULAZ
t
IZLAZ
t
Projektirati
emo
Mooreov
1
0
automat koji obavlja ovo
ienje. Zamislimo da je od
0
1
pamtivijeka
ulaz
bio
u
1
S0
S1
S2
S3
konstantnoj nuli. Izlaz e tada
[0]
[0]
[1]
[1]
0
1
biti 0. Oznaimo ovo stanjem S0.
Ako sada ulaz skoi u jedinicu,
0
budui da ne znamo da li time
nastupa period jedinice ili je to samo kratkotrajni um, prelazimo u novo stanje S1 u
kojemu je izlaz takoer 0. Ako u ovom stanju ulaz padne na 0, vraamo se u stanje S0 (i
time smo izbacili smetnju). Meutim, ako je ulaz opet 1, to znai da je nastupio period
jedinice i prelazimo u novo stanje S2 koje na izlazu daje 1, i u njemu ostajemo tako
dugo dok je ulaz 1. Ako ulaz kratkotrajno padne na 0, prelazimo u stanje S3 (koje jo
uvijek na izlazu daje 1) iz kojega se vraamo u S2 ako se ulaz odmah digne u 1.
Meutim, ako ulaz ostane na nuli, nastupa period 0 i prelazimo u stanje S0 koje na
izlazu ponovno daje 0. Automat je prikazan na slici:
Imamo etiri stanja pa nam trebaju minimalno dva bistabila. Kodirajmo stanja
Grayevim kodom: S000, S101, S211, S310.
Iskoristiti emo T bistabile. Tablica prijelaza stanja zajedno sa pobudom bistabila:
Trenutno stanje i ulaz
Q1
Q0
ULAZ
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
Sljedee stanje
Q1
Q0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
Izlaz
IZLAZ
0
0
0
0
1
1
1
1
Pobuda bistabila
T1
T0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
257
IZLAZ = Q1
Shema sklopa:
ULAZ
IZLAZ
&
&
B1
=1
CP
B0
CP
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
Objasniti odnos izmeu strojeva s konanim brojem stanja i registara.
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.
12.7. Zadatak
Objasniti odnos izmeu strojeva s konanim brojem stanja i brojila.
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.
258
12.8. Zadatak
Uporabom T bistabila projektirati etiribitno binarno brojilo metodom projektiranja stroja s
konanim brojem stanja. Pokazati da rezultat odgovara poznatom nainu spajanja bistabila sa
paralelnim prijenosom. Pokazati nain izvoenja brojila sa serijskim prijenosom.
B3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Trenutno stanje
B2
B1
B0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
B3
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
Sljedee stanje
B2
B1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
B0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
T3
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
Potrebna pobuda
T2
T1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
T0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
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
259
S1 = T1 = B0
S 2 = T2 = B1 B0 = B1 S1
S 3 = T3 = B2 B1 B0 = B2 S 2
Dobiveni izrazi direktno odgovaraju izrazima za serijski prijenos.
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
S1
1
0
[001]
S2
S3
[010]
[011]
S0
[000]
1
0
S7
[111]
S6
S5
[110]
[101]
1
Trenutno stanje i
pobuda
Q2 Q1 Q0
0 0 0
0 0 0
0 0 1
0 0 1
0 1 0
0 1 0
0 1 1
0 1 1
1 0 0
1 0 0
1 0 1
1 0 1
1 1 0
1 1 0
1 1 1
1 1 1
Funkcije nakon minimizacije:
M
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
S4
[100]
Sljedee stanje
Q2 Q1 Q0
0 0 1
0 0 1
0 1 0
0 1 1
0 1 1
1 1 0
1 0 0
0 1 0
1 0 1
0 0 0
1 1 0
1 0 0
1 1 1
1 1 1
0 0 0
1 0 1
T2
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
T1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
T0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
260
Za vjebu.
Nacrtati shemu automata.
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.
5
9
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:
R (Q3 , Q2 , Q1 , Q0 ) = m(9) + d (10,11,12,13,14,15) = Q3Q0
Q3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Trenutno stanje
Q2
Q1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
Q0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Q3
0
0
0
0
0
0
0
1
1
1
x
x
x
x
x
x
261
Sljedee stanje
Q2
Q1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
x
x
x
x
x
x
x
x
x
x
x
x
Reset
R
0
0
0
0
0
0
0
0
0
1
x
x
x
x
x
x
Q0
1
0
1
0
1
0
1
0
1
0
x
x
x
x
x
x
T3
0
0
0
0
0
0
0
1
0
0
x
x
x
x
x
x
Pobuda bistabila
T2
T1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
x
x
x
x
x
x
x
x
x
x
x
x
T0
1
1
1
1
1
1
1
1
1
1
x
x
x
x
x
x
B0
CP
Cd
D1
B1
CP
Q
Cd
D2
&
B2
CP
Q
Cd
D3
&
B3
CP
Q
Cd
CP
Ima li ovo brojilo siguran start? Nacrtajmo sada potpun dijagram prijelaza stanja.
&
262
10
11
1
12
13
5
9
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.
D2
0
0
0
1
1
1
1
0
Potrebna pobuda
D1
D0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
Slijedi:
D2
00
01
11
Q1Q0
10
1
1
Q2 0
1
D1
00
Q2 0
1
01
11
Q1Q0
10
1
1
263
D0
Q2 0
00
01
D2 = Q2Q0 + Q1Q0
&
&
B0
D
CP
11
Q1Q0
10
D1 = Q2Q0 + Q1Q0
&
Q
&
B1
D
CP
D0 = Q2Q1 + Q2Q1
&
Q
&
Q
B
D 2Q
CP
Q
CP
Na svim ulazima nalazi se dvorazinska logika, pa je najdue vrijeme potrebno na prolaz,
stabilizaciju i mirovanje signala jednako:
T = t db + 2t dls + t setup = 20 + 2 10 + 20 = 60ns
f max =
1
1
=
= 16.66 MHz
T 60n
12.12. Zadatak
1/0
0/1
S0
1/0
S1
0/0
0/1
1/1
S2
264
S0
S1
S2
Q0
0
0
1
1
0
0
1
1
I0
0
1
0
1
0
1
0
1
Q1
1
0
0
0
0
0
Q0
0
1
1
0
0
1
O
1
0
1
0
0
1
D
1
0
0
0
0
0
J
0
1
0
1
0
1
Minimizacijom se dobije:
J0
00
01
11
Q2 0
1
Q1 Q0
10
00
Q1 0
1
K2
Q2 0
00
01
11
Q1 Q0
10
Q2 0
J=I
K=I
01
11
Q0 I
10
1
1
Q1 Q0
10
J0
00
01
11
Slijedi:
D = Q1Q0 I
O = Q1 I + Q1 I
B0
Q
J
CP
Q
K
&
B1
Q
D
CP
Q
&
&
265
Trenutno stanje
Q2
0
0
0
0
1
1
1
1
Q1
0
0
1
1
0
0
1
1
Q0
0
1
0
1
0
1
0
1
Q2
0
0
0
1
1
1
1
0
Q1
0
1
1
0
0
1
1
0
Q0
1
0
1
0
1
0
1
0
Izlazi u trenutnom
stanju
O1
O0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
Minimizacijom slijedi:
T2:
Q2Q1
00
Q0
01
11
10
0
1
Q1Q0
Q1
Q0
Q2
266
T1:
Q0
Q2Q1
00
01
11
10
0
1
T0:
Q0
Q2
Q1
Q0
Q2Q1
00
01
11
10
Q1
Q2Q1
00
Q0
01
11
01
11
1
Q2Q0
O1 = Q1 , O0 = Q2 Q0 + Q1Q0 + Q2 Q1Q0
T2 = Q1Q0 , T1 = Q0 , T0 = 1
10
0
1
Q0
Q2Q1Q0
Q2Q1
00
Q0
10
Q2
Q1
O0:
Q0
Q2
Q1
O1:
Q0
1
Q1
Q0
Q2
Q1Q0
267
&
T
CP
Q0
T
CP
Q
Q1
Q
Q2
T
CP
CP
&
&
O0
&
O1
?
0
?
?
?
f
D
CP
Q
Q
1
S
CP
Sljedee stanje
Q1
Q0
0
1
1
0
1
1
0
0
Potrebna pobuda
D1
D0
0
1
1
0
1
1
0
0
268
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
B
A
B
0
1
1
0
1
0
1
0
Q1
s= 1
Q0
s= 1
A
B
0
1
1
1
0
0
0
1
0
1
0
0
O2
s= 0
O1
s= 0
O0
s= 0
to bi uradili u sluaju da na raspolaganju imamo logike blokove s dvoulaznim LUTovima a trebamo ostvariti funkcije od vie varijabli? Tada bi za svaku funkciju trebalo
koristiti vie logikih blokova!
269
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:
Trenutno stanje
Q2
0
0
0
0
1
1
1
1
Q1
0
0
1
1
0
0
1
1
Izlaz u trenutnom
stanju
O2
O1
O0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
Sljedee stanje
Q0
0
1
0
1
0
1
0
1
Q2
0
0
0
1
1
0
Q1
0
1
1
0
0
0
Q0
1
0
1
0
1
0
Pobuda potrebna za
promjenu stanja
D2
D1
D0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
D2:
Q2Q0
Q2Q1
00
Q0
01
Q1Q0
10
11
Q1
Q0
Q2
270
D1:
Q1Q0
Q2Q1
00
Q0
0
1
01
11
Q0
Q0
Q2Q1
0
00
01
11
10
Q2Q1
00
Q0
01
11
Q0
Q2Q0
Q2Q0
Q2Q1
00
Q0
10
Q2
Q1
O1:
Q0
Q2
Q1
O2:
Q0
Q2
Q1
Q2Q1Q0
D0:
10
01
Q1Q0
10
11
Q1
Q0
Q2
O0:
271
Q1Q0
Q2Q1
00
Q0
0
1
01
11
10
1
Q1Q0
Q1
Q2
Q0
Q2
Slijedi:
D2 = Q1Q0 + Q2 Q0
D1 = B1 B0 + B2 B1 B0
D0 = B0
O2 = Q2 Q0
O1 = Q2 Q0 + Q1Q0
O0 = Q1Q0 + Q1Q0 + Q2
272
Upravljaki
signali
c
d
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
Trenutno stanje
Q2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
Q1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
Sljedee stanje
Q0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Q2
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
Q1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
Q0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
Potrebna pobuda
D2
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
D1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
D0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
cdQ2
c d Q2Q1
000
Q1Q0
c dQ2Q1
c=0
001 011
00
01
11
10
1
c d Q2Q1
010
110
Q0
Q0
Q1
1
Q2
100
c=1
101 111
d
c Q2Q1Q0
c dQ2Q1Q0
Q1
Q2
273
c d Q1
D1:
cdQ2
000
Q1Q0
c=0
001 011
00
01
010
110
Q0
10
1
d
Q2
Q0
Q1
Q1
c=0
001 011
010
00
01
11
Q2
c dQ1Q0
c d Q0
cdQ2
000
Q1Q0
100
c=1
101 111
11
D0:
c Q1Q0
100
c=1
101 111
110
1
Q0
10
1
Q2
1
d
Q0
Q1
Q1
c dQ0
Q2
Dakle, slijedi:
D2 = c d Q2 Q1 + c dQ2 Q1 + c d Q2 Q1 + c Q2 Q1Q0 + c dQ2 Q1Q0
D1 = c Q1Q0 + c d Q1 + c dQ1Q0
D0 = c dQ0 + c d Q0
Q2 Q1 Q0
Sin
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.
274
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.
Tada elimo da sklop prolazi kroz sljedea stanja:
Q2
0
0
0
0
1
1
1
1
Q1
0
0
0
0
1
1
1
Q0
0
0
0
0
1
1
QB
0
0
0
0
1
pokrivena stanja
4, 5, 6, 7
2, 3
1
0
8
12
14
15
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
&
1
&
Q2 Q1 Q0
Sin
S/R
1
CP
CP Q
CP
275
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 Q B + Q1Q0 QB
Hammingov
dekoder
Podatak
CP
D(1)
C
D(2)
P
D(3)
C
D(4)
P
D(5)
P
D(6)
P
D(7)
C
D(8)
P
D(9)
P
D(10)
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;
ARCHITECTURE hamming_ARCH OF hamming IS
BEGIN
PROCESS (D, CP)
VARIABLE sindrom1 : BIT_VECTOR(0 to 3);
VARIABLE sindrom2 : BIT_VECTOR(0 to 3);
VARIABLE sindrom : BIT_VECTOR(0 to 3);
VARIABLE izlaz : BIT_VECTOR(0 to 10);
VARIABLE ispravka: BIT_VECTOR(0 to 11);
BEGIN
------
oitani sindrom
izraunati sindrom
mjesto pogreke
ispravljeni izlaz
rije pogreke
276
277
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;
ARCHITECTURE hamming_ARCH OF hamming IS
BEGIN
PROCESS (D, CP)
VARIABLE sindrom1 : STD_LOGIC_VECTOR(0 to 3);
VARIABLE sindrom2 : STD_LOGIC_VECTOR(0 to 3);
VARIABLE sindrom : STD_LOGIC_VECTOR(0 to 3);
VARIABLE izlaz : STD_LOGIC_VECTOR(0 to 10);
VARIABLE ispravka: STD_LOGIC_VECTOR(0 to 11);
BEGIN
IF cp'event AND cp='1' THEN
-- 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 := "0" & ispravka(0 to 10);
END IF;
IF( sindrom(1) = '1' ) THEN
ispravka := "00" & ispravka(0 to 9);
END IF;
IF( sindrom(2) = '1' ) THEN
ispravka := "0000" & ispravka(0 to 7);
END IF;
IF( sindrom(3) = '1' ) THEN
ispravka := "00000000" & ispravka(0 to 3);
END IF;
-- Ispravljanje pogresnog bita
izlaz := D XOR ispravka(1 to 11);
O <= izlaz(2) & izlaz(4 to 6) & izlaz(8 to 10);
END IF;
END PROCESS;
END hamming_ARCH;
278
12.19. Zadatak
Prikazati osnovnu strukturu VHDL modela kojim se opisuje Mooreov stroj s konanim
brojem stanja.
ulazi
Kombinacijski dio
Kombinacijski
dio
izlazi
Sekvencijski 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;
ENTITY automatMoore IS PORT (
ulazi: IN std_logic_vector(N DOWNTO 0);
reset: IN std_logic;
izlazi: OUT std_logic_vector(M DOWNTO 0);
clock: IN std_logic
);
END automatMoore;
279
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:
SIGNAL state_present, state_next: std_logic_vector(1 DOWNTO 0);
CONSTANT S0: std_logic_vector(1 DOWNTO 0) := "00";
CONSTANT S1: std_logic_vector(1 DOWNTO 0) := "01";
CONSTANT S2: std_logic_vector(1 DOWNTO 0) := "10";
280
ili pak:
TYPE stateType IS (S0, S1, S2, S3);
SIGNAL state_present, state_next: stateType;
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
281
Kombinacijski dio
Sekvencijski dio
CP
izlazi
Kombinacijski
dio
ulazi
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:
Kombinacijski dio
Sekvencijski dio
CP
Registar
izlazi
Kombinacijski
dio
282
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY automat1 IS PORT (
input0: IN std_logic; y: OUT std_logic; clock: IN std_logic);
END automat1;
ARCHITECTURE Behavioral OF automat1 IS
SIGNAL state_present, state_next: std_logic_vector(1 DOWNTO 0);
CONSTANT S0: std_logic_vector(1 DOWNTO 0) := "11";
CONSTANT S1: std_logic_vector(1 DOWNTO 0) := "01";
CONSTANT S2: std_logic_vector(1 DOWNTO 0) := "10";
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;
283
284
12.22. Zadatak
Stroj s konanim brojem stanja (vidi zadatak 12.2) opisati VHDL-om.
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;
ARCHITECTURE Behavioral OF automat2 IS
SIGNAL state_present, state_next: std_logic_vector(1 DOWNTO 0);
SIGNAL o1_next, o0_next, ka_next: std_logic;
CONSTANT S0: std_logic_vector(1 DOWNTO 0) := "00";
CONSTANT S1: std_logic_vector(1 DOWNTO 0) := "01";
CONSTANT S2: std_logic_vector(1 DOWNTO 0) := "10";
BEGIN
PROCESS( i1, i0, state_present )
VARIABLE pom: std_logic_vector(1 DOWNTO 0);
BEGIN
pom := (i1, i0);
CASE state_present IS
WHEN S0 =>
CASE pom IS
WHEN "00" => state_next <= S1; o1_next <= '0';
o0_next <= '0'; ka_next <= '1';
WHEN "01" =>
state_next <= S1; o1_next <= '0';
o0_next <= '1'; ka_next <= '1';
WHEN "10" => state_next <= S1; o1_next <= '1';
o0_next <= '0'; ka_next <= '1';
WHEN "11" => state_next <= S0; o1_next <= '0';
o0_next <= '0'; ka_next <= '0';
WHEN OTHERS =>
state_next <= S0; o1_next <= '0';
o0_next <= '0'; ka_next <= '0';
END CASE;
WHEN S1 =>
CASE pom IS
WHEN "00" => state_next <= S2; o1_next <= '0';
o0_next <= '0'; ka_next <= '0';
WHEN "01" => state_next <= S2; o1_next <= '0';
o0_next <= '0'; ka_next <= '0';
WHEN "10" => state_next <= S2; o1_next <= '0';
o0_next <= '0'; ka_next <= '0';
WHEN "11" => state_next <= S0; o1_next <= '0';
o0_next <= '0'; ka_next <= '0';
WHEN OTHERS =>
state_next <= S0; o1_next <= '0';
o0_next <= '0'; ka_next <= '0';
END CASE;
WHEN S2 =>
CASE pom IS
WHEN "00" => state_next <= S2; o1_next <= '0';
o0_next <= '0'; ka_next <= '0';
WHEN "01" => state_next <= S2; o1_next <= '0';
285
12.23. Zadatak
Stroj s konanim brojem stanja (vidi zadatak 12.5) opisati VHDL-om.
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;
ARCHITECTURE Behavioral OF automat3 IS
SIGNAL state_present, state_next: std_logic_vector(1 DOWNTO 0);
CONSTANT S0: std_logic_vector(1 DOWNTO 0) := "00";
CONSTANT S1: std_logic_vector(1 DOWNTO 0) := "01";
CONSTANT S2: std_logic_vector(1 DOWNTO 0) := "10";
CONSTANT S3: std_logic_vector(1 DOWNTO 0) := "11";
BEGIN
PROCESS( ulaz, state_present )
BEGIN
CASE state_present IS
WHEN S0 =>
IF ulaz = '1' THEN
ELSE state_next <=
WHEN S1 =>
IF ulaz = '1' THEN
ELSE state_next <=
WHEN S2 =>
IF ulaz = '1' THEN
ELSE state_next <=
WHEN S3 =>
IF ulaz = '1' THEN
ELSE state_next <=
WHEN OTHERS => state_next <= S0;
END CASE;
END PROCESS;
state_next <=
S0; END IF;
state_next <=
S0; END IF;
state_next <=
S3; END IF;
state_next <=
S0; END IF;
S1;
S2;
S2;
S2;
286
ZADACI ZA VJEBU
1.
Uporabom logikih blokova iz zadatka 12.14 realizirati sklop s dva izlaza (f1 i f2), pri
emu je:
f1 ( 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;
ENTITY automat IS PORT (
END automat;
ARCHITECTURE Behavioral OF automat IS
SIGNAL p_st, n_st: std_logic_vector( 1 DOWNTO 0 );
CONSTANT s0: std_logic_vector( 1 DOWNTO 0 ) := "10";
CONSTANT s1: std_logic_vector( 1 DOWNTO 0 ) := "01";
CONSTANT s2: std_logic_vector( 1 DOWNTO 0 ) := "11";
SIGNAL n_a, n_c: std_logic;
BEGIN
PROCESS (p_st, x1, x2)
BEGIN
CASE p_st IS
WHEN S0 =>
n_a <= '0'; n_c <= '1';
IF x1 = '1' THEN b <= '1'; n_st <= S1;
ELSIF x2 = '0' THEN b <= '0'; n_st <= S2;
ELSIF x1 = '0' THEN b <= '1'; n_st <= S1;
ELSE b <= '0'; n_st <= S0;
287
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;
3.
Suelje D bistabila
4.
5.
Upotrebom troulaznog logikog bloka FPGA (slino zadatku 12.14) realizirati T bistabil
sa sinkronim ulazom za ponitavanje stanja. Potom, upotrebom odgovarajueg broja tih
blokova nainiti brojilo sa paralelnim prijenosom koje broji u ciklusu 0, 1, , 7, 0, .
Da li bi isto brojilo izvedeno sa serijskim prijenosom moglo raditi na vioj frekvenciji?
6.
288
S1
[1,0]
1
1
0
0
8.
S2
[1,1]
S3
[1,1]
Memorije.
13.
289
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]
BL[0]
BL[1]
BL[2]
BL[3]
BL[4]
BL[5]
BL[6]
BL[7]
290
Lokacija Sadraj
ED
2D
DA
AD
0
1
2
3
LSB
b0
1
1
0
1
b1
0
0
1
0
b2
1
1
0
1
Sadraj po bitovima
b3
b4
1
0
1
0
1
1
1
0
b5
1
1
0
1
MSB
b7
1
0
1
1
b6
1
0
1
0
13.2. Zadatak
Prikazati osnovnu memorijsku eliju kod permanentne memorije izvedene MOSFET-om.
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 napajanje ("otpor" je takoer izveden MOSFET-om).
+UDD
+UDD
+UDD
+UDD
+UDD
+UDD
+UDD
+UDD
WL[0]
WL[1]
WL[2]
WL[3]
BL[0]
BL[1]
BL[2]
BL[3]
BL[4]
BL[5]
BL[6]
BL[7]
Memorije.
291
13.3. Zadatak
Prikazati jednotranzistorsku MOSFET DRAM eliju. Objasniti nain uvanja, zapisivanja i
itanja informacije. Pretpostaviti da CS iznosi 50 fF, kapacitet linije bita CB = 25CS a logikoj
jedinici odgovara napon od 5V. Izraunati napon na liniji BL prilikom itanja pohranjene
logike jedinice.
Jednotranzistorska MOSFET DRAM elija prikazana je na slici.
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.
Zapisivanje sadraja obavlja se postavljanjem vrijednosti na liniju bita (logiko 0 ili
logiko 1) te otvaranjem tranzistora (WL=1). Npr. ako zapisujemo logiko 1, na liniju
bita dovodimo UDD i zatim otvaramo tranzistor. Kapacitet CS nakon nekog e se
vremena nabiti na UDD, i tada moemo zatvoriti tranzistor i ukloniti podatak s linije bita.
itanje podatka obavlja se dovoenjem WL=1
jedinice na WL, te oitavanjem napona na
liniji bita. Pretpostavimo da je u eliji
BL
US UF
CS
zapisana logika jedinica. Tada e se naboj QS
pohranjen na kapacitetu CS nakon otvaranja
UB UF
CB
tranzistora podijeliti na kondenzatore CS i CB
(CB je kapacitet same linije bita). Kako su oni
spojeni paralelno, podjela e se obaviti tako da napon na oba kondenzatora bude jednak
i iznosi UF, tj. vrijedit e sljedee:
292
UF =US
CS
CS + CB
CS
CS
1
= 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)
Umax
WL=0
IL
CS
U1,min
US(t), QS(t)
BL
th
Memorije.
293
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:
IL =
dQS
dU S
= C S
dt
dt
I L = C S
odnosno
th =
CS
U max U 1, min
IL
th =
CS
50 fF
U S =
1V = 50 s.
1nA
IL
13.5. Zadatak
Q
TA
Q
TB
Dva invertora povezana su u bistabilni element. elija moe raditi na tri naina rada:
294
T5
T2
T4
T1
T3
T6
WL[0]
WL[1]
A[0]
WL[2]
A[1]
Mem. rije 1
Mem. rije 2
Dekoder
WL[3]
Mem. rije 0
A[K-1]
WL[N-2]
WL[N-1]
Podaci
Memorijska elija
(1 bit)
Memorije.
295
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:
N=
C 256
=
= 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).
Napomena: U knjizi [Peruko] ovakav nain organizacije memorije poznat je kao 2D
organizacija. Ukoliko se eli dobiti vie informacija o ovom tipu (npr. Google), tada
treba obratiti panju da je na veini stranih sveuilita ovaj tip poznat kao 1D
organizacija (jer su memorijske rijei organizirane uzdu jedne dimenzije; odozgo
prema dolje).
Drugi primjer organizacije memorije temelji se ne popravljanju odnosa duljina linija
rijei i bita, i prikazan je na sljedeoj slici.
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.
296
Q=2
M bitova
M bitova
K L
Logika rije 1
Fizika rije 0
Logika rije P
Fizika rije 1
A[L+1]
Logika rije 2P
Fizika rije 2
Logika rije 3P
Dekoder retka
Logika rije 0
A[L]
A[K-1]
Memorijska elija
(1 bit)
Logika rije 0
Logika rije 1
M P = M 2L
A[0]
Dekoder stupca
A[L-1]
Podaci (M bitova)
C 256
=
= 32
M
8
2K = N
adresnih bitova, pa slijedi:
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.
Za adresiranje logike rijei unutar fizike rijei koristi se L bitova. Slijedi:
2 L = 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.
297
298
I3
A2
I2
A1
I1
A0
RAM
8x8
D7
D6
D5
D4
D3
D2
D1
D0
I0
1
O3
O2
O1
O0
13.8. Zadatak
000
000
000
0FF
0FF
0FF
100
100
100
1FF
1FF
1FF
1. bit
2. bit
3. bit
Memorije.
R /W
299
R /W
R /W
R /W
R /W
R /W
R /W
Podatkovni izlazi gornjih i donjih memorijskih modula spojeni su preko ILI sklopa:
Dout,dolje Dout, gore = Dout,dolje + Dout, gore
ZADACI ZA VJEBU
1.
14.
301
+UREF
Rf
IN
a3
R3
I3
a2
R2
I2
a1
R1
I1
a0
R0
I0
UN
A =
+
Uizl
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)
(2)
(3)
302
(4)
U izl = R f I 0 ai 2 i
(5)
i =0
Iz sheme proizlazi:
Ii =
(6)
R
U REF
U
U
2 i REF = REF Ri = 0i
Ri
R0
Ri
2
(7)
to daje:
R1 =
R0 80k
=
= 40k,
2
2
R2 =
R0 80k
=
= 20k,
4
4
R3 =
R0 80k
=
= 10k
8
8
U REF 3
ai 2 i
R0 i =0
(8)
pa slijedi:
R f = R0
U REF 3
U
U
ai 2 i = R f REF 0 2 3 + 0 2 2 + 0 21 + 1 2 0 = R f REF 1
R0 i =0
R0
R0
0.4
0.4
= 80k
= 6.4k
U REF
5
303
Maksimalni napon na izlazu odgovara najveem binarnom broju koji se moe dovesti
na ulaz: 1111(2)15. Tada je prema (8):
U izl (15 ) = 6.4k
5
15 = 6 V
80k
IN
2R
UN
2R
a0
2R
a1
2R
a2
2R
A =
+
Uizl
UX
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:
1. sluaj: a3=1, a2=0, a1=0, a0=0
Lijevo od toke 4 mrea djeluje otporom 2R, desno je takoer otpor 2R prema masi pa
imamo (nadomjesna shema):
304
2R
2R
2R
UX
UREF
2R
UREF
Pa je:
U X ,a3 = U 4 =
U REF
R U REF
R = U REF
=
R + 2R
3R
3
2R
2R
2R
UREF
Slijedi:
U3 =
U REF
R U REF
R = U REF
=
R + 2R
3R
3
U3
Slijedi:
UX
U X ,a 2 = U 4 = U 3
305
U
U
U
R
= 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!
3. sluaj: a3=0, a2=0, a1=1, a0=0
Prema prethodnim razmatranjima ve znamo da je nadomjesna shema ista kao i prije, i
da vrijedi:
U REF
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
U X , a1 = U 4 = 3 =
2
U2
2 = U REF = U X ,a 3
2
3 4
4
U X ,a 0 = U 4 =
U3
=
2
U2
2
U1
2 =
U REF U X , a3
=
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 , a3 + a2 U X , a 2 + a1 U X ,a1 + a0 U X ,a 0
= a3 U X , a3 + a2
U X ,a 3
+ a1
U X ,a3
2
4
U
a a a
= REF a3 + 2 + 1 + 0
3
2 4 8
U
= REF (8a3 + 4a2 + 2a1 + a0 )
3 8
U REF 3
=
ai 2 i
3 8 i =0
+ a0
U X ,a 3
8
Sada kada znamo koliko iznosi UX, moemo izraunati izlazni napon:
306
Rf
IN
2R
UX
IN =
A =
+
UN
Uizl
U X U N U X 0 U X
=
=
2R
2R
2R
U izl = I N R f + U N = I N R f + 0 = I N R f = U X
to daje:
U izl
R f U REF
=
2R 3 8
a 2
i =0
Slijedi:
0.4 =
R f U REF
Rf
5
R f = 3.84k
2R 3 8
2 1k 3 8
Rf
2R
307
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.
Neka dvoznamenkasti broj N ima znamenke A i B, pri emu vrijedi: N = 10 A + B . Ako
su a3a2a1a0 i b3b2b1 b0 reprezentacije tih znamenaka u BCD kodu, tada je traeni
konvertor prikazan na slici:
Rf
+UREF
IN
a3
a2
2R
a1
4R
a0
8R
b3
10R
b2
20R
b1
40R
b0
80R
A =
+
Uizl
Vrijedi:
U REF
U
U
U
U
U
U
U
+ 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
3
3
U
U
= REF ai 2 i + REF bi 2 i
8R i =0
80 R i =0
I N = a3
3
3
U REF
10 ai 2 i + bi 2 i
80 R
i =0
i =0
308
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
RS
R0
8R
4R
c0
2R
c1
c2
8R
c3
R0
RS
4R
b0
jedinice
2R
b1
b2
desetice
8R
b3
4R
a0
2R
a1
A =
+
a2
IN
Uizl
a3
stotice
8
R
15
i
8 R i =0
8R
15
i =0
i =0
309
Rf
1
R0
RS
jedinice
UX
U
desetice
IN
R0
RP
RP
RP
RS
UN
A =
+
Uizl
U
stotice
R0
R0
RP
UX
U
U X ,100 = U 3 = U
R0||R0
RP
U
R0 || R0
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:
U2 = U
R0 || R0
RP + R0 || R0
310
U2
RS
RP
R0
UX
Oito je da je tada:
U X ,10 = U 2
R0 || RP
R0 || R0
R0 || RP
=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
=U
RP + R0 || R0 RS + R0 || RP
RP + R0 || R0
R0 || RP
=1
RS + R0 || RP
R0 || RP
RR
R
= 1 0 P = 0 R0 = 9 RP
R0 || RP + R0 + R0 || RP
R0 + RP 10
8
8
R = 4.5k = 2400
15
15
R0 = 9 RP = 21,6k
311
RS = 8.1RP = 19.44k
Za izlazni napon vrijedi sljedea nadomjesna shema:
Rf
UN
UX
IN =
IN
R0
A =
+
Uizl
U X U N U X 0 U X
=
=
R0
R0
R0
U izl = I N R f + U N = I N R f + 0 = I N R f = U X
Rf
R0
U REF
1 . Taj se napon do toke 3
15
prenosi kao:
U X ,100 = U 3 =
U REF
R0 || R0
U
9
= REF
15 RP + R0 || R0
15 11
U REF
2 . Taj se napon do
15
U REF
R0 || R0
U
9
2
= REF 2
RP + R0 || R0
15
15 11
R0 || RP
U
1
9
= REF 2
RS + R0 || RP
15 11 10
U REF
5 . Taj se napon do
15
312
U1 =
R0 || R0
U REF
U
9
5
= REF 5
RP + R0 || R0
15
15 11
R0 || RP
U
9
1
= REF 5
15 11 10
RS + R0 || RP
R0 || RP
U
1 1
9
= REF 5
RS + R0 || RP
15 11 10 10
Rf
R0
= U REF
75 R f
1100 R0
R0 =
21.6k = 31.68k
U REF
75
5 75
U REF 9 1
(100 A + 10 B + 1 C )
15 11 100
Rf
R
U
9 1
= REF
(100 A + 10 B + 1 C ) f
R0
15 11 100
R0
313
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
Q
S
uul
CE
CP
A =
+
BROJILO
ud
D/A
CP
314
f cnt ,max =
1
1
1
=
=
= 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
f conv,1 =
1
1
1
=
=
= 5.26 MHz
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:
f ocitavanja, max =
f CP ,max
2 1
n
f CP ,max
2 1
10
5.26 M
= 5.15kHz
1023
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.
Pogodan je kontinuirano brojei A/D pretvornik, ija je principijelna shema prikazana
na slici u nastavku.
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.
315
CP
CP
naprijed /
/ natrag
UP
REVERZIBILNO
BROJILO
DN
uul
D/A KONVERTER
ud
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:
f cnt ,max =
1
1
1
=
=
= 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
=
=
= 5.26 MHz
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:
f conv,1 =
u
ul
d
Do razlike u odnosu na prethodni zadatak dolazi se kod
odreivanja
maksimalne
frekvencije
oitavanja
vrijednosti napona. Naime, kako je ulazni napon po
Poetak
definiciji vrlo sporo mijenjajui, jednom kada ga
rada
t
pretvornik stigne, stalno e moi pratiti ispravnu
vrijednost, i rezultat e se moi oitavati na svaki CP!
Dakle, upravo frekvencijom od 5.26 MHz. Ovaj pretvornik imati e problema samo u
dva sluaja: (1) na poetku ako ulazni napon nije nula, trebati e odreeno vrijeme da se
dostigne ulaz, i (2) ako se ulazni napon pone brzo mijenjati, jer ga tada pretvornik nee
moi slijediti dovoljno brzo. Sluaj 1 ilustriran je na skici. Na slici se takoer vidi da
316
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:
ub =
10
0.009775 V
2 1
10
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:
u ul =
V
0.009775
= 51416.5
1
s
5.26M
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
= = 1V
4
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:
b=1000
ud(b)>uul?
b=1010
gotovo
317
NE
b=1100
ud(b)>uul?
8<10.2!
poniti zadnji
podignuti bit
b=1010
DA
12>10.2!
b=1011
ud(b)>uul?
poniti zadnji
podignuti bit
b=1000
NE
10<10.2!
b=1010
ud(b)>uul?
Vidimo, zapravo, da se kod svakog bita (odnosno bistabila koji pohranjuje taj bit)
obavljaju sljedee tri operacije:
1) Postavi bistabil u 1
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.
Jedna mogua principijelna implementacija ovakvog pretvornika prikazana je na
sljedeoj slici.
318
uul
D/A pretvornik
-
+
Clear
Q
B3
Q
Cd
B2
Q
Cd
B1
Q
Cd
B0
Q
Cd
R
&
o0
CP
o0
o1
A
i
CP B
a1
CE
o1
o2
o2
o3
a0
o3
a
a1 0
&
1
CP
n1
n0
Start
319
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.
14.8. Pismeni ispit, 10. 10. 2003, 6. zadatak
Zadan je sklop prema slici. Poznato je:
R=2k, Rf=1,12k. Napon napajanja kao i
izlazi digitalnih sklopova u visokoj razini
iznose 5V. Napon niske razine iznosi 0V.
Nacrtati dijagram izlaznog napona u ovisnosti
o signalu takta kroz 16 perioda. Pretpostaviti
da se svi bistabili u digitalnim sklopovima
ukljuenjem napona resetiraju, te da se napon
na izlazu operacijskog pojaala moe
mijenjati beskonano brzo.
Rf
8R
A =
+
4R
2R
Uizl
CP
+UCC
A
Sin
a 1 i0
a0
i1 i2 i3
MUX
y
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:
320
Trenutno
stanje
A
B
C
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
Ulazi mux-a
i1/i2
1
0
1
0
1
0
1
0
a1
0
0
0
0
1
1
1
1
a0
0
0
1
1
0
0
1
1
Izlaz
y
1
1
1
0
1
0
0
0
Sljedee stanje
A
1
1
1
0
1
0
0
0
B
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
Broj za D/A
n3
0
1
0
1
0
1
0
1
n2
0
0
1
1
0
0
1
1
n1
0
0
1
1
0
0
1
1
Br.
n0
0
0
0
0
1
1
1
1
n
0
8
6
14
1
9
7
15
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).
Po pretpostavci zadatka, sklop se po ukljuenju nalazi u stanju 0, pa je dijagram
izlaznog napona prikazan u nastavku. Izlazni napon kod zadanog D/A pretvornika
rauna se po formuli:
U izl = R f
U REF
n = 0.35 n
8R
321
U izl
0.35
16
14
12
10
8
6
4
2
10 11 12 13 14 15 16
10 11 12 13 14 15 16
U izl
0.35
16
14
12
10
8
6
4
2
n
ZADACI ZA VJEBU
1.
2.
322
15.
323
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
324
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
RB
RC
RB
A'
RB
B'
RB
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.
Sklop u ovom sluaju izgleda kako je prikazano na sljedeoj slici.
Kako tranzistori u sljedeem stupnju vode (jer je f=1), njihova maksimalna struja
kolektora odreena je s:
I Czas =
U CC U CEzas
= 5.7mA
RC
I Czas
I
5. 7 m
I Bzas = Czas =
= 228A
hFE
hFE
25
325
+UCC
RC
IC
+UCC
RC
RB
A
RB
IB
RB
A'
(n 1) I B
B'
+UCC
RC
RB
IC
RB
RB
A' '
B' '
Nadomjesna shema:
I
f
RC
RB
RB
+UCC
+UBEzas
+UBEzas
326
U CC
U
+ n BEzas
RC
RB
U BEzas
U CC U BEzas
1
n
+
U U BEzas
RC R B
RC
RC
U U BEzas
IB =
=
=
= CC
RB
RB
RB
RB + nRC
+n
RC
U U BEzas I B RB
= 13.25
n = CC
I B RC
Slijedi da je maksimalni broj ulaza koji se smije prikljuiti na izlaz f jednak 13.
b) Faktor grananja uz tolerancija otpora
Odredimo ponovno maksimalnu struju kolektora tranzistora sljedeeg stupnja:
I Czas =
U CC U CEzas U CC U CEzas
=
= 7.125mA
RC
RC (1 0.2)
I Czas
I
7.125m
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:
U CC
U=
RC
U BEzas
RB
U BEzas
U
+ " + BEzas
RB
RB
1
1
1
1
+
+
+"+
RB
RC R B R B
U CC
=
RC
U BEzas
RB
+ (n 1)
U BEzas
RB
1
1 n 1
+
+
RB
RC RB
Struja baze tranzistora koji ima najvei bazni otpor tada je:
U CC
RC
IB =
U U BEzas
RB
327
U BEzas
RB
+ (n 1)
U BEzas
RB
1
1 n 1
+
+
RB
RC RB
U BEzas
U CC
=
RB
RC
U BEzas
RC
RB
R
+ 1 + (n 1) B
RB
RC
U CC U BEzas
RB + RC + (n 1) RC
RB
RB
pa je n odreen izrazom:
n=
U CC U BEzas I B RB + RC
I B RC
RB
RB
) = 2.998
I IL
RC
R1
RC
R1
f=V
R2
A=N
B=V
+UCC
R2
I Bzas
f=N
A=V
R3
-UBB
B=V
R3
-UBB
328
I IL
RC
R1
R2
f=V
sklop 1
R3
-UBB
+UCC
sklop 2
I IL
RC
R1
R2
f=V
R3
sklop k
-UBB
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:
I C max = hFE I B = 40 0.1m = 4mA
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:
IC =
U CC U CEzas
+ n I IL
R
Rmin =
U CC U CEzas
I C max n I IL
Rmin =
329
5 0.3
= 2.35k
4 m 4 0. 5m
Ujedno vidimo i da broj izlaza koji je spojen zajedno ne utjee na iznos otpora R.
15.3. Zadatak
Za TTL sklopove poznati su sljedei podaci: IOL=16mA, IOH=250A, IIL=1.6mA, IIH=40A,
UOHmin=2.4V, UOLmax=0.4V. Treba odrediti izraz za iznos vanjskog otpora R tako da se k
izlaza sklopova s otvorenim kolektorom moe spojiti u spojeni I, i zatim na tu toku
prikljuiti n ulaza. Odrediti iznos R za sluaj k = 5, n = 4.
R=
U CC U OH min
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:
330
R
I
&
&
&
&
U CC U OL max
+ 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
Zato je R odreen razlikom U CC U OL max a ne gledamo
+UCC
najnepovoljniji sluaj koji bi generirao najveu struju (pa bi
R
brojnik trebao biti maksimalan, dakle U CC )? Radi se o tome da
je tranzistor aktivan element pa kod njega ne moemo samo
tako izlazni napon uzeti kako elimo i pri tome drati struju po I = konst
B
volji veliku. Pogledajmo jednostavan sklop od jednog
U CE
tranzistora i jednog otpornika uz konstantnu baznu struju. Kako
se mijenja izlazni napon ( U CE ) u ovisnosti o otporu R?
Neka je iznos otpora R jednak 0. Tada je sav napon U CC na kolektoru tranzistora, pa
vrijedi U CE = U CC . Kolika je tada struja kolektora? Kako je tranzistor u NAPu
(normalnom aktivnom podruju) struja kolektora odreena je strujom baze i za faktor
istosmjernog pojaanja vea od bazne struje, pa iznosi (u naem sluaju kod TTL
sklopa) upravo I OL , kao to je prikazano na slici.
331
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
R=
U CC U OH min
= 1.84k
k I OH + n I IH
R=
U CC U OL max
= 0.479k
I OL n I IL
332
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.
R1
4k
R2
1.62k
R4
130
Tr4
A
B
Tr1
Tr2
f = AB
D
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:
U B 2 = U C 1 = uul + U CEzas1 = U CEzas 3 + U CEzas1 = 0.2 + 0.1 = 0.3V
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
333
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 izl = U CE 3 = U B 4 U BE 4 U D = U CC U U = 5 0.65 0.65 = 3.7V
U B 4 = U CC I B 4 R2 = U CC
I izl
1m
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:
I=
Analiza spojenog I
Neka jedan sklop na izlazu daje visoku naponsku razinu (lijevi sklop), a drugi nisku
(desni).
334
+UCC 5V
R1
4k
R2
1.62k
5V
R4
R4
130 130
Tr4
A
B
Tr1
Tr2
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:
U CC U CE 4 zas U D U CE 3 zas 5 0.2 0.7 0.2 3.9
=
=
= 30mA
R4
130
130
Struja od 30 mA u relativno bi kratkom periodu uzrokovala termiko unitenje
tranzistora, pa se zbog toga spojeni I ne smije izvoditi s standardnim TTL sklopom!
I=
15.5. Zadatak
Nacrtati prijenosnu karakteristiku standardnog TTLa.
335
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:
U ul = U U CEzas1 = 0.65 0.1 = 0.55V
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 ul = U BE 2 zas + U BE 3 U CEzas1 = U BE 2 zas + U U CEzas1 = 0.75 + 0.65 0.1 = 1.3V
U BE 3 U 0.65
=
=
= 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
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 ul = U BE 2 zas + U BE 3 zas = 0.75 + 0.75 = 1.5V
Izlazni napon tada je:
U izl = U CE 3 = 0.2V
i dalje ostaje nepromijenjen.
336
Tr4 vodi
Tr2, Tr3 u zapiranju
uizl [V]
4
Tr2 vodi
Tr3 ne vodi
3.7 V
2.647 V
Tr2 u zasienju
Tr3 vodi (ide u zasienje)
Tr4 ide u zapiranje
1
C
0.2 V
2
0.55 1
1.3 1.5
15.6. Zadatak
Prikazati TTL sklop s tri stanja. Prikazati simbol sklopa. Objasniti nain rada.
+UCC 5V
R4
R2
R1
Tr4
A
B
Tr1
Tr2
f = AB
D
Tr3
R3
D'
EN
337
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.
Simbol sklopa je:
&
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
Pull Up Network
(PUN)
f
X1
Pull Down Network
(PDN)
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:
338
NMOS
PMOS
+UDD
f=0
f=1
a) Invertor
Funkcija je zadana izrazom f = A . Ovaj izraz odreuje kada je vrijednost funkcije 1,
dakle odreuje PUN mreu. Kako je PUN sastavljen od PMOSa koji vodi kada je na
upravljakom ulazu (G) niska razina, moemo dovesti direktno A (jer tranzistor i treba
provesti kada je A nisko da izlaz spoji na UDD).
PDN mora ostvarivati komplement funkcije, dakle: f = A = A . No kako je PDN
sastavljen od NMOSa koji vodi kada mu je na upravljakoj elektrodi visoka razina,
moemo na njegov ulaz dovesti direktno A (jer PDN mora izlaz pritegnuti na masu kada
je A visoko).
Shema sklopa:
+UDD
Tr1
f =A
A
Tr2
339
A
nisko
visoko
Tr1
vodi
ne vodi
Tr2
ne vodi
vodi
f
UDD
0
f
1
0
A
1
0
f = A + B = A + B . Kako je PDN
sastavljen od NMOSa koji vodi
kada mu je na upravljakoj
elektrodi visoka razina, i budui da
imamo funkciju napisanu direktno
preko
varijabli
(a
ne
komplemenata),
na
ulaze
tranzistora u PDNu dovesti emo
direktno varijable, a tranzistorima
moramo ostvariti ILI funkciju to
emo
dobiti
paralelnim
povezivanjem tranzistora.
Shema sklopa prikazana je na slici.
+UDD
Tr1
Tr2
f = A+ B
A
Tr3
Tr4
340
A
nisko
nisko
visoko
visoko
B
nisko
visoko
nisko
visoko
Tr1
vodi
vodi
ne vodi
ne vodi
Tr2
vodi
ne vodi
vodi
ne vodi
Tr3
ne vodi
ne vodi
vodi
vodi
Tr4
ne vodi
vodi
ne vodi
vodi
f
UDD
0
0
0
B
0
1
0
1
A+ B
1
0
0
0
f
1
0
0
0
f = AB = AB . Kako je PDN
dakle:
sastavljen od NMOSa koji vodi kada mu je
na upravljakoj elektrodi visoka razina, i
budui da imamo funkciju napisanu direktno
preko varijabli (a ne komplemenata), na
ulaze tranzistora u PDNu dovesti emo
direktno varijable, a tranzistorima moramo
ostvariti I funkciju to emo dobiti
serijskim povezivanjem tranzistora.
Shema sklopa prikaza je desno.
Tr1
Tr2
f = AB
A
Tr3
Tr4
B
nisko
visoko
nisko
visoko
341
Tr1
vodi
vodi
ne vodi
ne vodi
Tr2
vodi
ne vodi
vodi
ne vodi
Tr3
ne vodi
ne vodi
vodi
vodi
Tr4
ne vodi
vodi
ne vodi
vodi
f
UDD
UDD
UDD
0
B
0
1
0
1
AB
1
1
1
0
f
1
1
1
0
342
Tr1
Tr2
Tr3
nisko
nisko
nisko
nisko
visoko
visoko
visoko
visoko
nisko
nisko
visoko
visoko
nisko
nisko
visoko
visoko
nisko
visoko
nisko
visoko
nisko
visoko
nisko
visoko
vodi
vodi
vodi
vodi
ne vodi
ne vodi
ne vodi
ne vodi
vodi
vodi
ne vodi
ne vodi
vodi
vodi
ne vodi
ne vodi
vodi
ne vodi
vodi
ne vodi
vodi
ne vodi
vodi
ne vodi
Tr4
ne vodi
ne vodi
vodi
vodi
ne vodi
ne vodi
vodi
vodi
Tr5
ne vodi
ne vodi
ne vodi
ne vodi
vodi
vodi
vodi
vodi
Tr6
ne vodi
vodi
ne vodi
vodi
ne vodi
vodi
ne vodi
vodi
f
UDD
UDD
UDD
0
UDD
0
UDD
0
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
AB + C
1
1
1
0
1
0
1
0
f
1
1
1
0
1
0
1
0
343
+UDD
Tr1
Tr2
Tr3
Tr4
Tr5
f = A B + (C + D ) E
Tr6
Tr7
Tr8
Tr10
Tr9
344
15.8. Zadatak
CMOS tehnologijom ostvarena je funkcija f (vidi sliku). O kojoj se funkciji radi?
+UDD
15.9. Zadatak
Uporabom CMOS tehnologije izvesti sklopove koji ostvaruju funkcije:
a) f = A + B
b) f = A B
c) f = ( A + B) C
d) f = ( A + B) (CD + E )
345
izlaz = g = f = f
Tr1
Tr5
Tr2
f = g = A+ B
Tr6
Tr3
Tr4
g = AB
b) Komplement funkcije glasi:
g= f = A+B
Rjeenje je prikazano na slici.
+UDD
+UDD
Tr5
Tr1
f = g = AB
Tr2
Tr6
Tr3
g = A+B
B
Tr4
346
+UDD
A
Tr1
Tr3
C
B
Tr7
f = g = ( A + B) C
Tr2
Tr8
Tr4
g = AB + C
Tr5
Tr6
Tr1
Tr2
Tr3
Tr4
Tr5
+UDD
Tr11
f = g = ( A + B ) (C D + E )
Tr12
Tr6
Tr7
g = A B + (C + D ) E
Tr8
Tr10
Tr9
347
15.10. Zadatak
Uporabom CMOS tehnologije izvesti sklopove koji ostvaruju funkcije:
a) f = A + B
b) f = A B
c) f = A B + C
d) f = ( A + B) (C D + E )
348
Tr1
Tr2
f = A+B
+UDD
Tr3
Tr5
Tr4
B
B
Tr6
b)
U izrazu imamo jedan komplement (B) i jednu nekomplementiranu varijablu (A).
Nastupio je sluaj 3. Zbog toga emo sve nekomplementirane varijable prevesti u
komplemente (u naem sluaju to je varijabla A), i realizirati ostatak sklopa kao da cijeli
izraz ima samo komplementirane varijable.
Dakle, projektiramo sklop koji obavlja funkciju:
f '= A B
pri emu na ulaz A dovodimo komplement. Rjeenje je prikazano na slici.
+UDD
Tr1
Tr2
+UDD
f = A B
Tr5
Tr3
A
A
Tr4
Tr6
c)
U izrazu imamo dva komplementa (A i B) i jednu nekomplementiranu varijablu (C).
Oito je dominantan komplement, pa je nastupio sluaj 1. Zbog toga emo sve
349
+UDD
Tr7
Tr1
Tr3
C
C
Tr8
Tr2
f = AB + C
Tr4
Tr5
Tr6
d)
U izrazu imamo jedan komplement (A) i etiri nekomplementirane varijable (B, C, D i
E). Oito su dominantne nekomplementirane varijable, pa je nastupio sluaj 2. Zbog
toga emo sve komplementirane varijable prevesti u nekomplementirane (u naem
sluaju to je varijabla A), i realizirati ostatak sklopa kao da cijeli izraz ima samo
nekomplementirane varijable.
Dakle, projektiramo sklop koji obavlja funkciju:
f ' = ( A + B) (CD + E )
pri emu na ulaz A dovodimo komplement. Ovakav oblik funkcije rjeava se
realizacijom njezinog komplementa g ' = f ' = A B + (C + D ) E , i dodatnim
invertorom na izlazu.
Rjeenje je prikazano na slici.
350
Tr7
Tr1
Tr3
Tr4
+UDD
A
A
Tr8
Tr1
Tr5
Tr2
f = g = ( A + B) (C D + E )
Tr2
Tr6
Tr7
g = AB + (C + D ) E
Tr8
Tr10
Tr9
15.11. Zadatak
Prikazati "propusna vrata" izvedena u CMOS tehnologiji.
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
EN
0
1
n-MOS
iskljuen
ukljuen
p-MOS
iskljuen
ukljuen
izlaz
visoki otpor
"kratki spoj" A i B
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".
351
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.
Struktura prikazana na prethodnoj slici gdje se uvodi i odvodi
n- i p-kanalnog MOSFET-a direktno spajaju esto se oznaava
simbolom prikazanim na slici desno. Slovo p pri tome oznaava
upravljaki ulaz (engl. gate) p-kanalnog MOSFET-a, a slovo n
oznaava upravljaki ulaz n-kanalnog MOSFET-a.
15.12. Zadatak
Prikazati multipleksor 2/1 u izveden u CMOS tehnologiji.
Jedna mogua izvedba kojom se moe utediti odreen broj tranzistora prikazana je na
slici:
352
TG1
proputa
ne proputa
TG2
ne proputa
proputa
Y
i0
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.
Multipleksor 2 n / 1 , n>1,
se u CMOS tehnologiji ostvaruje izgradnjom
multipleksorskog stabla sa n razina, pri emu se kao temeljni element koristi
multipleksor 2/1 izveden pomou propusnih vrata (vidi prethodni zadatak). Rjeenje je
prikazano na slici.
353
354
15.14. Zadatak
ip oznake CD40174B proizvoaa Texas Instruments sadri 6 pozitivnim bridom okidanih
D bistabila izveenih CMOS tehnologijom. Bistabili imaju i dodatni ulaz za brisanje. Prouiti
strukturu i nain izvedbe ovih bistabila. Na to se svodi implementacija bridom okidanih D
bistabila u CMOS tehnologiji?
CL
D
CL
&
CL
CL
CL
CL
&
CL
CLR
CLK
CL
CL
CL
NI CLR , X
NI (1, X ) = NI ( X ) = X
355
CL
D
CL
1
CL
CL
CL
CL
CL
CLK
CL
CL
CL
CL
CL
D
CL
CL
1
CLK
CL
CL
CL
356
74N
74S
IOL
16 mA
8 mA
IIL
1.6 mA
400 A
IOH
400 A
400 A
IIH
40 A
20 A
Analizirajmo oba sluaja. Kada sklop porodice 74N pobuuje vie sklopova porodice
74S, vrijedi:
Izlaz je L:
Izlaz je H:
I OL , N n I IL , S n
I OH , N n I IH , S n
I OL , N
= 40
I IL , S
I OH , N
I IH , S
= 20
I OL , S n I IL , N n
I OH , S n I IH , N n
I OL , S
I IL , N
I OH , S
I IH , N
=5
= 10
357
ZADACI ZA VJEBU
1.
2.
3.
Prikaite izlazni stupanj standardnog TTL sklopa. Objasnite zato je iznos otpora ba
130 (odnosno, ime je odreena gornja a ime donja granica).
4.
5.
Objasnite (definirajte) to znae sljedee oznake: IILmax, IIHmax, IOLmax, IOHmax. Ako su ti
podaci poznati za neku porodicu, na koji se nain rauna faktor grananja izlaza (engl.
fan-out) nekog sklopa iz te porodice? Izraunajte to za sluaj 74S porodice, kod koje su
podaci sljedei: IILmax=400A, IIHmax=20A, IOLmax=8mA, IOHmax=400A. Objasnite to
je to faktor grananja na ulazu sklopa (engl. fan-in) i ime je on odreen? Pokaite to na
primjeru NI i NILI sklopova izvedenih u CMOS-u. Koji od ta dva sklopa ima vei
faktor grananja na ulazu i zato? Objasnite (definirajte) to znae sljedee oznake:
UOHmin, UIHmin, UILmax, UOLmax. U kakvom su meusobnom odnosu ti naponi? Definirajte
kako se na temelju tih podataka rauna granica istosmjerne smetnje?
6.
7.
TTL sklopom potrebno je pobuivati CMOS sklop. Oba sklopa rade s naponom
napajanja od 5V. Za TTL sklop poznato je UOLmax=0.5V, UOHmin=2.7V. Za CMOS sklop
poznato je UILmax=1.5V, UIHmin=3.5V. Objasnite kako treba izvesti ovo spajanje, i zato.
8.
TTL sklopom koji radi s naponom napajanja 5V potrebno je pobuivati CMOS sklop
koji radi s naponom napajanja od 10V. Za TTL sklop poznato je UOLmax=0.5V,
UOHmin=2.7V. Za CMOS sklop poznato je UILmax=3V, UIHmin=7V. Objasnite kako treba
izvesti ovo spajanje, i zato.
9.
CMOS sklopom potrebno je pobuivati TTL sklop. Oba sklopa rade s naponom
napajanja od 5V. Objasnite kako treba izvesti ovo spajanje, i zato.
10. CMOS sklopom koji radi s naponom napajanja 10V potrebno je pobuivati TTL sklop
koji radi s naponom napajanja 5V. Objasnite kako treba izvesti ovo spajanje, i zato.
Dodatak 1. RC mrea.
359
Dodatak 1. RC mrea
Zadana je RC mrea prema slici. Izvor napona u(t)
spojen je na RC mreu. Izraunajte napon na
kondenzatoru ako su poznati iznosi otpora R i
kapaciteta C, te vrijedi:
t<0
0,
u (t ) = U H , 0 <= t < t1 .
U ,
t1 <= t
L
i (t )
u (t )
uC (t )
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
(4)
u (t ) = uC (t ) RC + uC (t )
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
+ K1
duC (t )
1
t
RC
=
dt ln uC (t ) =
+ K1 uC (t ) = e
uC (t )
RC
RC
odnosno
uC (t ) = e
t
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
360
1
uC (t ) =
(8)
e RC K (t ) + e RC K (t ) .
RC
Uvrtavanjem (7) i (8) u (5) slijedi
t
t
t
1
1
1
RC
RC
RC
u (t ) =
e
K (t ) + e
K (t ) +
e
K (t )
RC
RC
RC
odnosno
t
1
RC
(9)
u (t ) = e
K (t ) .
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 )
RC
u (t ) = e
RC
dt
moemo opet primijeniti separaciju varijabli budui da je u(t) u odreenom intervalu
konstantno
t
1
RC
dK (t ) =
e u (t ) dt .
RC
Slijedi
t
RC
K (t ) = e u (t ) + W .
pri emu je W konstanta. Uvrtavanjem (10) u (7) konano slijedi
uC (t ) = e
odnosno
t
RC
e RC u (t ) + e
uC (t ) = u (t ) + e
t
RC
t
RC
(10)
W .
(11)
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)
uC (t ) = U H U H e
t
RC
= U H (1 e
t
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
RC
uC (t1 ) = U H (1 e ) .
(14)
Uvrtavanjem (14) u (11) u trenutku t=t1 moemo odrediti novi iznos konstante W
Dodatak 1. RC mrea.
t1
RC
361
t1
RC
U H (1 e ) = U L + e
W
te je
t
t1
1
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
t1
1
uC (t ) = U L + e RC U H (1 e RC ) U L e RC
odnosno
t1
t
tRC
1
RC
(16)
uC (t ) = U L + U H (1 e ) U L e
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
363
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 )
Vrijedi metateorem o dualnosti: ako zamijenimo 1 i 0 te + i iz a) dobijemo b) i
obrnuto.
Neka je f = f ( A, B, C ,...,+,, ,0,1) . Dualna funkcija glasi f D = f ( A, B, C ,...,,+ , ,1,0) .
Koristit emo jo i sljedee zakone.
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
364
( X Y ) Z = X (Y Z )
( X Y ) Z = X (Y Z )
Asocijativnost
A2.
X Y = Y X
X Y = Y X
Komutativnost
A3.
Postoji 0B: X 0 = X
Postoji 1B: X 1 = X
Neutralni element
A4.
X X =0
X X = X
Samoinverz
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.
365
Dodatak 3. K tablice
Prazne K-tablice
Tablica za dvije varijable:
A
0
B
0
1
AB
00
C
01
11
10
01
11
10
0
1
AB
00
CD
00
01
11
10
366
ABC
000
DE
001
011
010
110
111
101
100
00
01
11
10
ABC
000
DE
001
011
010
100
00
01
11
10
A
B
AB
C
00
01
11
10
101
111
110
Dodatak 3. K tablice.
367
AB
CD
00
01
11
10
00
12
01
13
11
15
11
10
14
10
ABC
DE
000
001
011
010
110
111
101
100
00
12
24
28
20
16
01
13
25
29
21
17
11
15
11
27
31
23
19
10
14
10
26
30
22
18
ABC
DE
000
001
011
010
100
101
111
110
00
12
16
20
28
24
01
13
17
21
29
25
11
15
11
19
23
31
27
10
14
10
18
22
30
26
368
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.:
Polje
7
3
0
10
Susjedna polja
3, 5, 6, 15
1, 2, 7, 11
1, 2, 4, 8
2, 8, 11, 14
Literatura
369
Literatura
1. Materijali s auditornih vjebi (A.G. 2001./2002.)
2. Peruko, U., Digitalna elektronika. Logiko i elektriko projektiranje, III.
proireno izdanje, kolska knjiga, Zagreb, 1991.
3. Glavini, V., Predavanja iz Digitalne elektronike (radni materijali za predavanje
iz predmeta ZER03O4 Digitalna elektronika), Zagreb, 2002.
4. Glavini, V., Digitalno upravljanje, zbirka rijeenih zadataka, I dio, Uvod u
digitalnu tehniku, Sveuilina naklada, d.o.o., Zagreb, 1991.
5. Szabo, A., Impulsna i digitalna elektronika, Sveuilina naklada Liber, Zagreb,
1976.
6. Gajski, D. D., Principles of digital design, Prentice Hall, Upper Saddle River,
New Yersey, 1997.
7. Brown, S., Vranesic, Z., Fundamentals of digital logic with VHDL design,
McGraw-Hill Companies, Inc., 2000.
8. Elec 326: Digital Logic Design,
http://www.owlnet.rice.edu/~elec326/
Rice University
(posjeeno: 05. 05. 2003.)
9. Lattice Semiconductor Corporation
http://www.latticesemi.com/
(posjeeno: 05. 05. 2003.)
10. ELCT 762, Signal Integrity for High Speed Circuits - Fall 2003
http://www.ee.sc.edu/classes/fall03/elct762/
University of South Carolina
(posjeeno: 06. 12. 2003.)
11. ECE 410, Fall 2003
http://www.egr.msu.edu/classes/ece410/mason/
Michigan State University College of Engineering
(posjeeno: 17. 05. 2004.)
12. 6.111, Introductory Digital Systems Laboratory
http://sunpal7.mit.edu/6.111/s2003/
Massachusetts Institute of Technology
(posjeeno: 17. 05. 2004.)
13. CS/CoE 536, Reconfigurable System on Chip Design, Fall 2002
http://www.arl.wustl.edu/~lockwood/class/cs536/
Applied Research Laboratory
(posjeeno: 17. 05. 2004.)
14. Internet (Google)