Professional Documents
Culture Documents
Fer Zbirka Riješenih Zadataka Iz Digitalne Eletronike
Fer Zbirka Riješenih Zadataka Iz Digitalne Eletronike
ZBIRKA RIJEENIH
ZADATAKA IZ
DIGITALNE
ELEKTRONIKE I
DIGITALNE LOGIKE
Zagreb, 2005
Verzija 1.4
Predgovor
Zbirka rijeenih zadataka iz Digitalne elektronike i Digitalne logike
namijenjena je svim studentima koji polau ove kolegije, ili su
zainteresirani za pokriveno gradivo. Zbirka je nastala kao rezultat rada na
auditornim i laboratorijskim vjebama kroz akademske godine 2002/20032004/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 iz Digitalne elektronike i
Digitalne logike nastala je adaptacijom Zbirke rijeenih zadataka iz
Digitalne elektronike.
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.
9.
10.
11.
Brojila._______________________________________________________ 245
12.
13.
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:
lL0
lR0
lC0
lG0
Z0 =
lR0 + jlL0
lG0 + jlCo
lL0
Z0 =
lC0
L0
Co
F
H
= 0 r , = 0 r , 0 = (1 / 36 ) 10 9 , 0 = 4 10 7 .
m
m
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=
c
r
Moe se pokazati da je brzina irenja signala kod prijenosne linije bez gubitaka takoer
odreena izrazom:
v=
1
L0 C 0
Ako je prijenosna linija dugaka l, tada e signalu trebati lT0 vremena da doe do
njezinog kraja, te moemo pisati:
m
1
l
=
T0 = L0 C 0
v=
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.
Rs
Z0
Us(t)
+
-
B
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
Dakle, kada signal amplitude Ui doe na mjesto diskontinuiteta, signal amplitude Ui
vraa se kao reflektirani signal, a diskontinuitet prolazi signal amplitude (1+)Ui. Ovo
zapravo znai da na lijevo i desno od diskontinuiteta naponska razina postaje ista (lijevo
je prije refleksije bio napon Ui, nakon refleksije vraa se jo Ui, tako da je ukupni
napon na lijevoj strani (1+)Ui, to je isto naponu koji se nalazi na desnoj strani).
Budui da prijenosna linija ima dva mogua diskontinuiteta, refleksije se mogu dogaati
na ulazu i izlazu linije, pa se stanje na liniji obino prikazuje dijagramom odbijanja
(engl. bounce diagram, lattice diagram). Dijagram se sastoji od dvije paralelne linije
gdje lijeva strana predstavlja ulaz linije (toka A) a desna strana izlaz linije (toka B).
Vrijeme tee prema dolje.
Neka u trenutku t=0 na liniju dolazi signal Ui. Ako je duljina linije oznaena s l, a
kanjenje signala po jedinici duljine sa T0, tada je vrijeme potrebno da signal stigne s
ulaza na izlaz linije odreeno izrazom:
Td = l T0
Stanje na liniji promatra se u diskretnim vremenskim trenucima, koji su viekratnici
vremena Td. Stanje na liniji tada je prikazano dijagramom odbijanja u nastavku.
Napon u pojedinoj toki jednostavno se dobije zbrajanjem svih doprinosa do tog
trenutka. Npr. napon u toki A u trenutku tx iznosi:
U A (t x ) = U i + U i B + U i B A + U i B2 A + U i B2 A2
= U i (1 + B + B A + B2 A + B2 A2 )
U B (t x ) = U i + U i B + U i B A + U i B2 A
= U i (1 + B + B A + B2 A )
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
Us(t)
Z0
A
+
Z0 Z0
=0
Z0 + Z0
B =
0 Z0
= 1
0 + Z0
B =
Z0
=1
+ Z0
Z0
A
+
B =
RL=0
prijenosna linija
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
Da bi signal stigao s jednog kraja linije na drugi, potrebno mu je vrijeme:
Td =
l
0 .4
=
= 2 ns
v 2 10 8
Rizl
ug
uA
R0
uB
Rul
A =
B =
B
t=0 ns
t=0 ns
U i = 2,5V
t=2 ns
t=4 ns
U i B = 2,375V
U i B A = 0V
t=2 ns
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,5 H / m
Rul = 3900
C0 = 50 pF / m
10
L
=
C
0,5
= 10000 = 100
50 p
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
t=6 ns
t=9 ns
t=6 ns
U i B A = 0,38V
t=9 ns
U i B2 A = 0,361V
t=12 ns
t=15 ns
t=3 ns
U i B = 1,9V
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
l
Promatrajmo kretanje napona na oba kraja voda:
Ulazni kraj:
0.
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
t=30 ns
U i B3 A2 = 0,36V
U i B3 A2 = 0,36V
U i B3 A2 = 0,36V
t=36 ns
3
B
3
B
3
A
3
A
U i = 0,216V
U i = 0,216V
l
Dijagrami napona na ulazu i izlazu iz linije prikazani su u nastavku:
t=36 ns
14
ui [V]
2
1,5
1
1V
0,5
2
uA [V]
10
12
2
1,5
1
14
16
18
20
22
24
26
28
30
32
34
38
40
t [ns]
1,6V
1V
0,96V
0,576V
0,5
uB [V]
36
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
34
36
38
40
t [ns]
2V
2
1,5
1,2V
0,72V
0,5
2
10
12
14
16
18
20
22
24
26
28
30
32
t [ns]
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 , B =
=
=1
100 + 60
R L + Z 0, 2 + 60
gdje je RL otpor troila prikljuenog na izlaz voda (u ovom zadatku RL=). Postoje 3
diskontinuiteta: ulaz u prvi vod (toka A), spoj dvaju vodova (toka X) i izlaz iz drugog
voda (toka B). Napon na ulazu voda u trenutku t=0 odreen je iskljuivo naponskim
dijelilom Riz-Z0,1, prema formuli:
Ui = U g
Z 0,1
Riz + Z 0,1
= 5
100
= 2V
150 + 100
0 ns
0 ns
2 ns
4 ns
10 ns
k
l
14 ns
8 ns
12 ns
6 ns
g
h
10 ns
4 ns
8 ns
2 ns
6 ns
16 ns
n
p
12 ns
m
o
q
14 ns
16 ns
T2 = 1 + 2 = 0,75 i T3 = 1 + 3 = 1,25
16
17
UA[V]
5
3,68 V
4
3
4,016V
4,5392 V
2V
1,4 V
2
1
t [ns]
2
10
12
14
16
UX[V]
5
3,3 V
4,452 V
3,96 V
3
1,5 V
2
1
t [ns]
2
10
12
14
16
UB[V]
4,32 V
5
4
3,6 V
3V
4,587 V
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
RS
Idalji=ICm-ILm
R0
R0
blii kraj
Iblii=ICm+ILm
dalji 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
ut = u g
RTOT
1. sluaj:
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
2 = 0,12ns
Jednadba vrijedi od t = 10 ns nadalje.
Grafiki prikaz:
ut
10 ns
uul
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
Rg
iII
+
Rg
u2
R2
RT
+
R1 u1
ug
1
uP
di
diI
, iII =
=
M I
dt
R1 + R2 R1 + R2
dt
+
R1
di
u1 =
M I
R1 + R2
dt
+
R2
di
u2 =
M I
R1 + R2
dt
up = M
iC = C
uC
uP
R1 u1
ug
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
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
Opisani kod spada u najjednostavnije mogue, pri emu kod odjednom moe kodirati
samo jedan bit podatka (dakle 0 ili 1) i zbog toga ima samo dvije kodne rijei {0000,
1111}. Dakle, podatak 0 kodira se sa n nula, a podatak 1 sa n jedinica.
Podatak 1011 tada e uz n=5 biti kodiran kao 11111 00000 11111 11111.
Redundancija ovog kodiranja je vrlo velika; naime:
R=
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
bn = b0 b1 bn 1 1 = b0 b1 bn 1
Uz zadane podatke: 213 = 11010101(2), paritetni bit iznosi:
b8 = 1 0 1 0 1 0 1 1 = 1
te je kodna rije: 111010101 (podcrtan je paritetni bit).
Lako se je uvjeriti da ova kodna rije doista zadovoljava poetni uvjet:
b0 b1 bn 1 bn = 1 1 0 1 0 1 0 1 1 = 0
U ovom zadatku podatkovna rije ima k=8 bitova, broj zalihosnih bitova r=1, te je
ukupna duljina kodne rijei n=k+r=9. Redundancija koda tada je odreena izrazom:
R=
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 .
Redundancija R rauna se prema izrazu:
28
R=
p
W
to e dati:
p
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
=
=0
dW
p
(W + 1) + 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 =
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
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)
2.15. Zadatak
Dekadski broj 3720 prikaite u BCD kodu.
BCD kod za prikaz jedne dekadske znamenke koristi 4 bita, pri emu se znamenka
zapisuje kao binarni ekvivalent njezine vrijednosti. Za zapis 4-znamenkastog dekadskog
broja trebamo dakle 4 grupe od po 4 bita:
3
0011
7
0111
2
0010
0
0000
41
2.16. Zadatak
Dekadski broj 3720 prikaite u Excess-3 kodu.
Excess-3 kod za prikaz jedne dekadske znamenke koristi 4 bita, pri emu se znamenka
zapisuje kao binarni ekvivalent njezine vrijednosti uveane za 3. Za zapis 4znamenkastog dekadskog broja trebamo dakle 4 grupe od po 4 bita:
3
0110
7
1010
2
0101
0
0011
Distanca koda je minimalna distanca izmeu bilo koje dvije kodne rijei. Paljivom
analizom prethodne tablice slijedi da je minimalna distanca jednaka 2, to je ujedno i
distanca koda.
Broj pogreaka koje kod moe otkriti je 1. Broj pogreaka koje kod moe ispraviti je 0.
42
2.18. Zadatak
Ispiite sve kodne rijei 3-bitnog Grayevog koda. Koliko pogreaka kod moe otkriti a koliko
ispraviti?
0
0
0
0
1
1
1
1
Grayev kod
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
2.19. Zadatak
U nekom digitalnom sustavu potrebno je pohranjivati nenegativne cijele brojeve pri emu je
maksimalni broj koji treba pohraniti 1048575(10). Digitalni sustav projektiran je tako da
brojeve pohranjuje u BCD kodu. Koliko se sklopovlja moe utediti ako se umjesto BCD
koda za prikaz brojeva koristi prirodni binarni kod?
Broj bitova koje sustav troi za pohranu jednog broja u ovom je sluaju odreen
najveim brojem koji treba zapamtiti 1048575. Kako se radi o 7 znamenkastom broju,
oito je da sustav treba troiti 74=28 bitova (svaka BCD znamenka troi 4 bita).
Ukoliko se za prikaz broja odabere prirodni binarni kod, za prikaz svakog broja trebat
emo onoliko bitova koliko trebamo za prikaz najveeg. Pretvorimo li broj 1048575 u
binarni, slijedi:
1048575(10)=11111111111111111111(2)=220-1
Dakle, za prikaz najveeg broja trebat emo 20 bitova.
Iz priloenog moemo zakljuiti kako bi se prijelazom na prirodni binarni kod utedilo
120 /28=28.6% sklopovlja.
43
ZADACI ZA VJEBU
1.
2.
3.
4.
Prijemnik predajniku alje znak 'A' (odnosno njegov 8-bitni ASCII kod), pri emu za
zatitu podatka koristi kod n-strukog ponavljanja uz n=5. Brzina komunikacijskog
kanala koji koriste jest 210242 bita u sekundi. Prikaite slijed bitova koji se pojavljuju
na komunikacijskom kanalu. Izraunajte koliko bi vremena trebalo prijemniku za slanje
datoteke veliine 2010242 okteta, pod pretpostavkom da se ne pojaviti niti jedna
pogreka?
5.
6.
011110 je jedna Hammingova kodna rije. Pronaite sve ostale kodne rijei tog koda.
7.
8.
9.
45
a
b
&
&
a
b
&
c
d
i1
1
i2
&
Moemo pisati:
i1 = a b
i 2 = i1 + c
f = i 2 d = (i1 + c ) d = (a b + c ) d
46
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;
47
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
48
Za vjebu.
Ponovite zadatak za sklop prikazan na slijedeoj slici (sklop2). Provjerite uporabom
Xilinx-ovog simulatora s laboratorijskih vjebi da li su opisi koje ste generirali
rjeavajui b) i c) dio zadatka jednaki na ponaajnoj razini.
a
b
&
f
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
49
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.7 mA
= 0.094mA
50
U ul 2
U BB
R1
+
+ I CB 0
R1 + R2 R1 + R2
R1 + R2
Uvrtavanjem dobivamo:
U ul 2
U BB
R1
R2 U BB = 0.18V
+
+ I CB 0
U BEzap =
R1 + R2
R1 + R2 R1 + R2
50
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 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
51
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 = 0 A
U ul1 = 5V
U ul 2 = 0.3V
R = 1k
52
Analizirajmo rad sklopa. Oznaimo na slici dodatne napone koji e nam pomoi u
analizi sklopa.
+UCC
+UCC
IR
R
D
UulA
UulB
RC
UAB
R1
UD
Uizl
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:
53
+UCC
+UCC
RC
R
D
UulA
UulB
UAB
UD
R1
I1
IB
I2
Uizl
UBE
R2
-UBB
I2 =
U BEzas + U BB 0.8 + 5
=
= 0.058mA
R2
100k
U CC U CEzas 5 0.3
=
= 4.7 mA
RC
1k
54
+UCC
+UCC
IR
RC
I1
R
D
UulA
UulB
UAB
R1
UD
Uizl
+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
I1
D
UulA
UulB
UAB
RC
UD
R1
Uizl
+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
55
I C hFE I B
Uvrstimo li izraz za IC u prethodnu nejednadbu, moemo izraziti n:
U CC U CEzas
U U D U CEzas
+ n CC
hFE I B
RC
R
U CC U CEzas
RC
= 5.33
U D U CEzas
R
hFE I B
U CC
U CC U D U BEzas U BEzas + U BB
R + R1
R2
56
I B = I1 I 2 =
U CC U D U BEzas U BEzas + U BB
= 0.2248mA
R2
R + R1
U CC U CEzas
U U D U CEzas
+ n CC
RC
R
to je maksimalno ako su svi otpori R sklopova spojenih na izlaz minimalni, kao i otpor
RC u izlaznom krugu tranzistora.
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.
57
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
IOLmax
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
58
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 OH max
0 .8
=
=5
I IH max 0.16
n = min(nL , nH ) = min(6.25,5) = 5
59
3.5. Zadatak
Kao priprema za sljedee zadatke, izvedite izraz za izlazni napon naponskog dijelila zadanog
slikama.
+UCC
+UCC
R1
R1
R2
R2
UX
U2
Sluaj a)
Sluaj b)
I=
U CC
R1 + R2
I=
Slijedi:
U X = I R2 = U CC
UX
U CC U 2
R1 + R2
Slijedi:
R2
R1 + R2
U X = U 2 + I R2 = U 2 + (U CC U 2 )
R2
R1 + R2
= U CC I R1 = U CC (U CC U 2 )
R1
R1 + R2
3.6. Zadatak
Na slici su prikazani neoptereeni/optereeni diodni I sklop kod kojeg su svi ulazu blokirani
(ne utjeu na rad sklopa) osim jednog. Nacrtajte ovisnost napona UD o naponu Uul, ovisnosti
svih struja u sklopu o naponu Uul te prijenosne karakteristike za sklopove sa slike.
Pretpostavite da se napon Uul moe mijenjati od 0V do UCC=5V. Diodu promatrati kao idealni
element (pri voenju UD=0.7V i otpor je 0, pri nevoenju predstavlja beskonani otpor).
R=1k, RT=4k.
60
Uul
+UCC
UD
UD
I2
I1
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
61
Ovisnost napona UD o naponu Uul, ovisnost struje I o naponu Uul te ovisnost napona UX
o naponu Uul (prijenosna karakteristika UX je izlazni napon) prikazane su u nastavku.
UD [V]
5
4
3
2
1
0.7
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
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
62
I = I2 =
U CC
5
=
= 1 mA,
R + RT 1k + 4k
I1 = 0 mA
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
U X 0 .7
=
= 0.175 mA ,
RT
4k
63
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]
4.3
4
3
2
1
Uul [V]
4.125
4
3
2
1
Uul [V]
4.3
4
3
2
1
0.175
Uul [V]
64
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
UulA
Uizl
RB
D1
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
I1
Uul
RC
I2
D1
RB
Uizl
UD
UD1
UX
UBEzas
Napon UX tada se moe izraunati kao napon dijelila s dva izvora (jedan od prethodnih
zadataka):
65
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
66
I = I1 =
U CC U X 5 0.7 4.3
=
=
= 4.3 mA .
R
1k
1k
U CC U CEzas 5 0.3
=
= 4.7 mA
RC
1k
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.935 V
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
67
0.7
3.7 4
3.7
3.7
0.935
Uul [V]
0.7
-0.6
-1
Uul [V]
UX [V]
5
4
3
2
1
0.7
Uul [V]
I [mA]
5
4.3
4
3
2
1
0.6
Uul [V]
68
4.3
4
3
2
1
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.
69
4. Booleova algebra.
4.1. Zadatak
Navedite aksiome Booleove algebre. Njihovom uporabom pokaite da vrijedi:
A (A + A B ) = 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.
Ponovite postupak ali u prvom koraku primijenite A.4a.
A.4b
A.3a
A.2a
A.3b
A.1b
A.4a
A.2b
A.3a
A.1a
70
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.1
A.2
= A A
=0
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 f 1 = 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
f1 + f 2 + f 3
0
0
0
0
1
1
0
1
Booleova algebra.
71
4.5. Zadatak
Booleova funkcija zadana je Tablica 1. Prikaite tu funkciju:
a) sumom standardnih produkata (minterma)
b) umnokom standardnih suma (maksterma)
B
0
0
1
1
mintermi
0
1
0
1
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
72
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 M 1 M 2 M 3 M 6 = ( A + B + C) ( A + B + C ) ( A + B + C) ( A + B + C ) ( A + B + C)
4.6. Zadatak
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
1
1
1
1
0
1
0
1
0
1
0
1
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 + ABC
= (0,3,4,6 )
b)
f
= M1 M 2 M 5 M 7
= ( A + B + C ) ( A + B + C) ( A + B + C ) ( A + B + C )
= (1,2,5,7 )
makstermi
M0
M1
M2
M3
M4
M5
M6
M7
Booleova algebra.
c)
f
73
= m1 + m 2 + m5 + m7
= A B C + A BC + AB C + ABC
= (1,2,5,7 )
d)
f
= M0 M3 M4 M6
= ( A + B + C) ( A + B + C ) ( A + B + C) ( A + B + C)
= (0,3,4,6)
e)
f = mi f = M i , f = mi
iS
iS
iS
f = M i f = mi , f = M i
iR
iR
iR
Vezu moemo iskazati i rijeima: ako funkcija sadri mintermi mi, komplement
funkcije sadri odgovarajui maksterm Mi, ili alternativno, sadri sve one minterme
koje sama funkcija ne sadri. Isto tako, ako funkcija sadri maksterm Mi, tada
komplement sadri minterm mi, ili alternativno, sadri sve one maksterme koje sama
funkcija ne sadri.
4.7. Zadatak
Zadana je funkcija f = AC + BD + C D .
a) Prikaite ovu funkciju kao sumu standardnih produkata.
b) Prikaite ovu funkciju kao umnoak standardnih suma.
c) Prikaite funkciju tablino.
d) Oitajte iz tablice g = f u obliku sume standardnih produkata.
e) Oitajte iz tablice g = f u obliku umnoka standardnih suma.
f) Prikaite funkciju uporabom NI operacije.
g) Nacrtajte sklop koji obavlja funkciju f pomou NI sklopova.
a)
f
= AC + BD + C D
= A 1 C 1 + 1 B 1 D + 1 1 C D
= A ( B + B ) C ( D + D ) + ( A + A ) B (C + C ) D + ( A + A ) ( B + B ) C D
= ABC D + AB C D + AB C D + ABC D + ABCD + A BCD + A BC D + A B C D
= m13 + m8 + m9 + m12 + m15 + m7 + m5 + m1
= (1,5,7,8,9,12,13,15)
b)
74
[ 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.
75
e)
g = (1,5,7,8,9,12,13,15)
= (A + B + C + D )( A + B + C + D )(A + B + C + D )(A + B + C + D )
(A + B + C + D )(A + B + C + D )(A + B + C + D )( A + B + C + D )
f)
f = AC + BD + C D
f = f
= AC + BD + C D
= AC BD C D
= ACC BD CC D
&
&
1
&
Vrijedi:
&
A = A A
&
1
&
&
A+ B = AB
76
&
&
&
A B = A B
Zamjenom I, ILI i NE logikih sklopova u shemi sklopa dobijemo:
&
&
&
&
&
&
&
&
&
&
B
D
&
&
Odnosno:
A
C
&
&
&
&
&
&
Za vjebu.
Prikaite funkciju uporabom NILI operacije. Nacrtajte sklop koji obavlja funkciju f
pomou NILI sklopova.
Booleova algebra.
77
4.8. Zadatak
Zadana je
= m1 + m 2 + m4 + m7
= A B C + A BC + AB C + ABC
= C (A B + AB ) + C (A B + AB )
= C (A B) + C(A B)
= C (A B) + C A B
= (A B) C
= A B C
4.9. Zadatak
Napiite dualne funkcije od
a) f 1 = AB + ABC + AB C
b) f 2 = 1 A B + 0 C
a) [ f1 ]D = ( A + B ) ( A + B + C ) ( A + B + C )
b) [ f 2 ]D = (0 + A + B ) (1 + C )
4.10. Zadatak
Uporabom dualne funkcije odredite komplemente od
a) f 1 = AB + ABC + AB C
b) f 2 = 1 A B + 0 C
a) f1 ( A, B, C ) = f1 ( A , B , C ) D = (A + B ) (A + B + C ) (A + B + C )
b) f 2 ( A, B, C ) = f 2 ( A , B , C ) D = (0 + A + B ) (1 + C )
78
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.
79
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
&
&
a) ako se uporabom I i NE moe prikazati ILI, onda nam je i taj skup dovoljan. Krenimo
od De Morganovog zakona:
A+ B = AB
A + B = A B = NE (I ( NE ( A), NE (B )))
Zakljuujemo da je skup {I, NE} dovoljan.
80
f
= 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 ))))
Grafiki funkciju moemo prikazati samo uporabom baznih funkcija metodom
supstitucije. Najprije je potrebno svaki ne-baznu funkciju prikazati baznima, i zatim
obaviti supstituciju.
{I, NE}
1
&
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.
81
= AB + ABC + AB C
= AB + ABC + AB C
= A + B+ A + B +C + A + B+C
= ILI (NE (ILI (NE ( A), B )), NE (ILI (NE ( A), NE (B ), NE (C ))), NE (ILI ( NE ( A), B, NE (C ))
{ILI, NE}
1
&
1
1
Supstitucija:
1
1
1
1
1
1
1
82
1
1
1
c) Potrebno je sve tri operacije izraziti preko NI.
A = A + A = A + A == A A = NI ( A, A)
= AB + ABC + AB C
= AB + ABC + AB C
= AB ABC AB C
= NI (NI ( A, NI (B, B )), NI ( A, B, C ), NI ( A, NI (B, B ), C ))
Booleova algebra.
83
{NI}
&
&
&
&
&
&
&
Supstitucija:
A
B
&
&
&
&
&
&
&
&
&
&
&
&
A
B
&
&
&
&
&
&
84
= AB + ABC + AB C
= AB + ABC + AB C
= AB + ABC + AB C
= A + B+ A + B +C + A + B+C
= NILI
{NILI}
1
&
Booleova algebra.
85
Supstitucija:
A
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
C
1
1
86
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
&
1
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.
87
= ( 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
88
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.
89
Napomena: dan je VHDL opis sklopa pri emu su ponuene dvije implementacije
arhitekture. Arhitektura funkcijskaBinGray opisuje funkciju sklopa temeljei se na
case naredbi, dok arhitektura funkcijska2BinGray opisuje funkciju sklopa uporabom
osnovnih logikih funkcija. Konani VHDL opis treba sadravati samo jednu od
navedenih arhitektura.
Za vjebu.
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.
90
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.
91
t
f
25
50
75
100
125
150
=1
=1
=1
U sluaju da promatramo i kanjenja pojedinih sklopova dobivamo sljedee valne
oblike:
A
t
B
t
C
t
f
25
50
75
100
125
150
92
process (a,b)
begin
x <= a or b;
y <= x or b;
z <= x and y;
c <= z;
end process;
Booleova algebra.
93
4.19. Zadatak
Digitalni sklop (slika 2) izveden je bipolarnom
tehnologijom. Napisati Booleovu funkciju
koju ostvaruje sklop:
a) u pozitivnoj logici,
b) u negativnoj logici.
Kakve su te dvije funkcije meusobno?
UulA
+UCC
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
94
Uf
UA
UB
UC
Funkcija koju sklop ostvaruje u negativnoj logici dualna je funkciji koju sklop ostvaruje
u pozitivnoj logici, i glasi:
f = A+ BC = 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.
95
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 ,
96
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=a3a2a1a0 a drugi broj B=b3b2b1b0. Tablica
istinitosti funkcije e(a3,a2,a1,a0,b3,b2,b1,b0) tada e imati 28=256 redaka. Meutim, nema
potrebe da ispisujemo cijelu tablicu: kratkim promiljanjem moemo zakljuiti da e
tablica istinitosti biti vrlo rijetko popunjena s 1! Zbog toga moemo napisati djelominu
tablicu istinitosti samo one retke u kojima funkcija poprima vrijednost 1:
A
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.
97
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 2k 1 + 1 2k 2k 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 2k + 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?
98
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.
99
A(i) B(i)
&
=1
bitoviJednaki(i)
Jednaki(i-1)
&
Jednaki(i)
Naime, funkcija koja testira dva bita na jednakost upravo je EX-NILI (tj. komplement
od EX-ILI provjerite tablicom istinitosti). Zapravo, dizajn unutranjosti crne kutije
moe
se
shvatiti
i
kao
poseban
zadatak:
projektirajte
funkciju
Jednaki(i)(A(i),B(i),Jednaki(i-1)) koja poprima vrijednost 1 samo kada su ulazi A(i) i B(i)
jednaki, pri emu jo i ulaz Jednaki(i-1) mora biti 1.
Mi emo u nastavku, radi kraeg zapisa, funkciju Jednaki(i) oznaavati s E. Funkcija E
moe se algebarski zapisati:
E(Ai, Bi, Ei-1) = Ei-1 AND NOT (Ai XOR Bi) = Ei-1 AND (Ai XNOR Bi)
pri emu smo operator NOT-XOR oznaili standardnom kraticom XNOR (ili hrvatski
EX-NILI), koju emo i dalje koristiti.
Jednom kad smo dizajnirali unutranjost jednog stupnja, vrlo lagano moemo
projektirati k-bitni komparator. Za sluaj k=4 imamo:
4-bitni komparator
A(3) B(3)
&
A(2) B(2)
&
=1
A(1) B(1)
&
=1
A(0) B(0)
&
=1
=1
1
&
Jednaki(3)
&
&
Jednaki(2)
Jednaki(1)
Jednaki
&
Jednaki(0)
100
E = E 2 AND ( A3 XNOR B3 )
Booleova algebra.
101
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
102
15.
16.
17.
18.
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.
103
A
B
AB
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+ B
A+B
0
1
B
B
A
Direktno: upisati maksterme, minimizirati i proitati kao komplement od minimizacije
koja bi se radila da su upisane jedinice.
f = ( A + B )( A + B ) = ( AA + B ) = B
Indirektno: upisati maksterme i "praviti se" da su mintermi (dakle, jedinice), odnosno
raditi sa komplementarnom funkcijom. Obaviti minimizaciju, pa kao rezultat vratiti
komplement dobivenoga!
104
A
B
AB
AB
B
0
1
A
f =B
f = f =B
5.3. Zadatak
Minimizirajte funkciju f = (0,4,9,11,13,15) pomou K-tablice.
AB
CD
ACD
11
10
01
11
00
00
01
10
D
C
B
f = A C D + AD
AD
105
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
11
10
1
A
B
f = AD + BD
5.5. Zadatak
AB
CD
AC
00
01
00
01
11
10
AB
f = A C + A B + BCD
11
10
x
1
x
x
BCD
D
C
106
5.6. Zadatak
Minimizirajte funkciju f = (0,2,3,7 ) pomou K-tablice.
AB
C
AC
00
01
11
10
BC
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.
AB
CD
00
BC D
00
01
AC D
11
10
01
11
BD
10
C
B
f = BD + AC D + B C D
f = f = ( B + D )( A + C + D)( B + C + D)
107
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 + C C ) ( A + C + BB ) ( A + C )
= ( A + B ) (A + C ) (A + C )
= ( A + B ) ( A + CC )
= (A + B) A
= A A + B A
= AB
f = f
= AB
= A+ B
c) uporabom dualne funkcije f = [ f D ]D
je
potrebno
108
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:
AB
C
00
01
11
10
109
AB
C
00
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:
AB
C
00
01
11
10
110
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)
111
(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
1
4
5
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
1
4
5
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
1
4
5
112
5.9. Zadatak
Minimizirajte funkciju f = (0,1,2,3,4,6,7,12,13,15) pomou Quine-McCluskey metode.
Prvi dio postupka obuhvaa iterativnu primjenu zakona simplifikacije A + A = .
Minterm
0000 *
(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
(12,13)
(7,15)
(13,15)
(0,1,2,3)
(0,2,4,6)
(2,3,6,7)
12
13
15
P0
P1
P2
P3
P4
P5
P6
113
114
5.10. Zadatak
Metodom Quine-McCluskey minimizirati funkciju f = (4,5,7,8,9,10,11,12,15) .
Minterm
0100
1000
*
*
(4)
(8)
0101
1001
1010
1100
0111
1011
1111
*
*
*
*
*
*
*
(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
5
10
11
(5,7)
(7,15)
(11,15)
(8,9,10,11)
15
(8,12)
12
A BC
BC D
AC D
A BD
BCD
ACD
AB
(4,5)
(4,12)
4
5
(8,12)
(5,7)
(7,15)
(11,15)
10
11
12
15
P0
P1
P2
P3
P4
P5
P6
Svi ostali nepokriveni mintermi pokriveni su s vie od jednog preostalog lana, pa se
postavlja pitanje koje jo lanove odabrati, tako da se pokriju svi mintermi, a zadri
minimalnost funkcije? Rjeenje nudi Pyne-McCluskeyev pristup: iskaz "potrebno je
pokriti preostale lanove" treba zapisati kao Booleovu funkciju, i pronai onaj produktni
(8,9,10,11)
115
lan te funkcije koji sadri minimalni broj varijabli. U prethodnoj tablici svi su lanovi
imenovani (P0 = A BC , P1=...). Da bismo pokrili minterm 4, trebamo uzeti P0 ili P1, i da
bismo pokrili minterm 5, trebamo uzeti P0 ili P3, i da bismo pokrili minterm 7, trebamo
uzeti P3 ili P4, i da bismo pokrili minterm 12, trebamo uzeti P1 ili P2, i da bismo pokrili
minterm 15, trebamo uzeti P4 ili P5. Ovo moemo zapisati u obliku funkcije (obratiti
panju na podebljane 'i' i 'ili' u prethodnoj reenici):
p = (P0 + P1 )(P0 + P3 )(P3 + P4 )(P1 + P2 )(P4 + P5 )
= P0 P1P3P4 + P0 P1P3P5 + P0 P2 P3 P4 + 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 + P1P3 P5
+ P1P2 P3P4 + P1P2 P3 P5 + P1P3 P4 P5 + P1P2 P3 P4 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
f = m(0,4,10,17,21,26,27,31) + d (1,5,7,8,11,16,19,20,23,24,25) .
Osim to imamo zadan popis minterma (za koje funkcija poprima 1), imamo zadan i
popis kombinacija za koje nam je vrijednost funkcije nebitna (npr. jer se takav ulaz
nikada nee niti dogoditi), to je oznaeno sumom d-lanova. Budui da nam na tim
mjestima vrijednost funkcije nije bitna, na nekim mjestima emo smatrati da funkcija
poprima 1, a na nekima 0, kako bismo dobili to minimalniji oblik. Minimizacija se
provodi na standardni nain, s time da zaokruenja smijemo iriti i na podruja
prekrivena x-evima (smatrajui da tamo pie 1). No, kao i uvijek, postupak je potrebno
provoditi tako dugo dok se ne pokriju sve jedinice. Ako neki od x-eva ostane
nepokriven, smatrati emo da je vrijednost funkcije na tom mjestu ba nula, pa to
neemo niti trebati pokrivati.
116
ABC
DE
000
001
00
01
11
011
010
100
101
ADE
10
110
111
E
D
BC D
5.12. Zadatak
Metodom K-tablica minimizirati funkciju:
f = (0,2,3,6,7,8,10,11) .
BD
AB
CD
00
00
01
11
10
AC
BC
01
11
10
0
B
D
C
117
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) .
AB
CD
BD
00
AC
01
00
11
10
X
1
01
11
10
X
B
D
C
f = AC + BD
5.14. Zadatak
Metodom K-tablica minimizirati funkciju f ( A, B, C , D) = m(0,2,4,7,8,9,10,11,13,15) :
a) kao minimalnu sumu parcijalnih produkata,
b) kao minimalne produkte parcijalnih suma.
118
AB
CD
00
00
01
11
01
ACD
11
10
10
AD
BCD
f = B D + BCD + AD + A C D
b) Pronalaenje minimalog produkta parcijalnih suma:
AB
CD
ABD
00
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
K-tablicama minimizirati funkciju f ( A, B, C , D) = m(1,3,12,13,14,15) ako je poznato da za
ulazne varijable uvijek vrijedi B + D = 1 .
119
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
CD
00
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.
120
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
121
4 10 17 21 26 27
31
P0
P1
P2
P3
P4
P5
P6
P7
P8
P9
5.17. Zadatak
Zadane su funkcije
f 1 = (0,1,2,4,5,11,15) , f 2 = (0,2,4,13,15) , f 3 = (0,1,3,4,5,7,13,15) .
Pronai minimalni oblik ovih funkcija takav da je ukupni broj produkata u svim funkcijama
minimalan.
122
*
*
*
*
*
F:101
F:110
F:111
F:101
F:001
(1)
(2)
(4)
(5)
(3)
000X
00X0
0X00
0X01
00X1
010X
X101
01X1
0X11
1X11
11X1
X111
* 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)
0X0X
F:101 (0, 1, 4, 5)
0XX1
F:001 (1, 3, 5, 7)
X1X1
Analizom tablice moe se vidjeti da npr. minterm 15 nije oznaen kao kombiniran
(nema zvjezdice), iako je taj minterm bio kombiniran ak dva puta. Zato onda nije
123
f1
4 5
11
15
f2
4 13
abcd
a'b'd'
a'c'd'
bd
13
15
a'd
abd
a'c'
acd
f3
15
P0
P1
P2
P3
P4
P5
P6
P7
124
Da se je u ovom koraku dogodila situacija u kojoj svi mintermi nisu pokriveni, postupak
bismo nastavili Pyne-McCluskey metodom. Cilj bi bio pronai jo minimalni broj
produkata koje treba uzeti, tako da se pokriju sve funkcije. Produkti koji bi nakon tog
koraka ostali neiskoriteni, takoer bi se zanemarili u sljedeoj fazi.
U naem primjeru, pronaeni bitni primarni implikanti P1-P6 pokrivaju sve minterme i
dovoljni su za realizaciju svih funkcija (produkti P0 i P7 automatski se ne smiju koristiti
elimo li zaista minimalni zapis funkcija).
Prelazimo u sljedeu (posljednju) fazu. Cilj je samo uporabom dozvoljenih produkata
(P1-P6) pokriti svaku funkciju, ali na minimalan nain. Provedimo postupak odabira
bitnih primarnih implikanata u tablici samo za f1:
0
a'b'd'
a'c'd'
f1
4 5
11
15
P2
acd
abd
a'c'
P1
P3
P4
a'd
P5
P6
a'b'd'
a'c'd'
f2
4 13
15
P1
P2
acd
P3
abd
P4
a'c'
P5
a'd
P6
125
f3
0
13
15
a'b'd'
a'c'd'
P1
P2
acd
P3
abd
a'c'
a'd
P4
P5
P6
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.
AB
CD
BD
00
01
11
10
00
01
11
10
1
B
126
AB
CD
BD
00
A BC
01
11
10
00
01
11
10
AC D
1
A
A CD
ABC
AB
CD
A BC
00
01
11
10
00
01
11
10
A CD
AC D
1
B
ABC
127
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
AB
CD
00
00
AD
01
11
10
01
11
10
AB
128
BD
AB
CD
00
00
AD
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
b1b0
b2
129
b1 b0
00
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
b2
00
01
b0
f = b0
11
10
b1
b2
f
1
0
130
f 2 = m(6,7,8,10) .
Dalje je postupak standardan.
0000 * F:10 (0)
0001
0010
1000
0110
1010
0111
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)
X0X0
f1
0
a'bcd'
a'b'c'
a'cd'
ab'd'
a'bc
b'd'
f2
6
10
6
10
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 = ( P 2 + P5) ( P 0 + P 2) = P 2 + P 0 P 2 + P 0 P5 + P 2 P5
Minimalno pokrivanje postie se dodavanjem produkta P2. Produkte P0 i P5 tada se ne
smije koristiti, pa emo ih izbaciti iz tablice:
f1
a'b'c'
a'cd'
ab'd'
a'bc
0
1
2
f2
6
10
10
P1
P2
P3
P4
131
Sada treba na temelju dobivene tablice minimizirati svaku funkciju posebno. Imamo:
f1
a'b'c'
a'cd'
ab'd'
a'bc
0
1
2
10
P1
P2
P3
P4
P1
P2
P3
P4
f 1 = A B C + A CD + AB D
f2
6
a'b'c'
a'cd'
ab'd'
a'bc
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:
132
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:
z:
CD
AB
AB
00
01
11
00
01
11
10
BCD
D
C
z = A B + BD + B C D
10
BD
133
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;
134
component sklopOR4 is
Port ( a, b, c, d : in std_logic;
z : out std_logic);
end component;
component sklopAND3 is
Port ( a, b, c : in std_logic;
z : out std_logic);
end component;
signal ac, bc, cc, i1, i2, i3, i4: std_logic;
begin
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.
135
jedinica na izlazu i4, pa je konani rezultat pojava hazarda. Hazard ovog tipa, gdje je
izlaz stalno u '1' (osim kada kratkotrajno prijee u '0') naziva se statiki '1' hazard. No
zato je izlaz i4 kasnio? Analizirajmo to se dogaa s njegovim ulazima. Prva dva ulaza
spojena su na signale A i B. U trenutku t = 400 ns oni se ne mijenjaju. Na trei se ulaz
dovodi signal C . No on postaje '1' tek u trenutku t = 410 ns, a ne odmah kada C padne
na '0'! Zbog toga sklop i4 na svojim ulazima dobije sve '1' tek u trenutku t = 410 ns te se
njegov odziv '1' dobije 10 ns kasnije, dakle u trenutku t = 420 ns. Oito je glavni krivac
za cijeli dogaaj invertor! Naime, u trenutku t = 400 ns kad je C pao na '0' invertor koji
generira signal C ovu promjenu zakasni 10 ns, tako da na ulaz sklopa i4 signali A i B
dou odmah (u t = 400 ns), a ispravan signal C stigne tek u t = 410 ns. Razlog pojave
hazarda dakle je u razliitom vremenu potrebnom da svi signali prou kroz sklop do
izlaza (signali A, B i C to uine nakon dva sklopa, a njihovi komplementi tek nakon tri
sklopa).
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
A
Prijelaz
"101""001"
"111""110"
"111""101"
"111""001"
"110""001"
00
01
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'
11
10
Vidljivo gdje?
t = 200 ns
t = 400 ns
t = 600 ns
t = 800 ns
t = 1200 ns
136
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
137
f:
BC
A
00
01
11
10
f:
BC
A
00
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
A
00
01
11
10
138
Time funkcija poprima oblik f = B C + AB + AC i vie oito nije minimalna. No, ako
vrijedi prethodno uveden uvjet, tada ovako realizirana funkcija vie nema statikog '1'
hazarda. VHDL model sklopa koji realizira funkciju prikazan je u nastavku:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity sklop3 is
Port ( a, b, c : in std_logic;
f : out std_logic);
end sklop3;
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',
139
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '0' u polje gdje
funkcija poprima '1',
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje
funkcija poprima '0' te
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje
funkcija poprima '1'.
140
vei broj razina logike automatski znai i due vrijeme prolaska signala kroz logike
sklopove i time kasnija reakcija samog sklopa.
5.25. Zadatak
Objasnite sljedee pojmove: implikant, primarni implikant, bitni primarni implikant na
primjeru funkcije f ( A, B, C ) = m(1,3,6,7) .
BC
A
AC
ABC
00
BC
01
11
10
1
AB
A BC
B
ABC
ABC
141
ZADACI ZA VJEBU
1.
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.
7.
8.
f ( A, B, C , D, E ) = m(0,1,2,4,5,8,10,16,17,18,21,23,24,26,31) .
Zadana je funkcija f. Dvorazinskom logikom ostvariti sklop koji realizira ovu funkciju.
Na raspolaganju su varijable, komplementi varijabli te osnovni logiki sklopovi (I, ILI).
Zadatak rijeiti tako da se ne koristi vie od 3 osnovna logika sklopa. Invertori nisu na
raspolaganju, a f glasi:
f ( A, B, C , D, E ) = (0,1,4,5,8,9,10,11,13,15,16,17,20,21,24,25,26,27,29,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.
142
10.
11.
12.
13.
143
d0
d1
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:
&
1
s
d1
&
144
6.2. Zadatak
Prikazati logiki simbol, tablicu istinitosti, logiku funkciju, shemu sklopa te VHDL
ponaajni model dekodera 2/4.
145
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
Y2 ( A1 , A0 ) = m( 2) = A1 A0
Y3 ( A1 , A0 ) = m( 3) = A1 A0
<=
<=
<=
<=
NOT A1
NOT A1
A1 AND
A1 AND
END ponasajna;
Shema sklopa:
a1
a0
&
y3
&
y2
&
y1
&
y0
146
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
147
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
KODER
4/2
I2
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
Y1 ( I 3 , I 2 , I 1 , I 0 ) = m(4,5,6,7,8,9,10,11,12,13,14,15) = I 3 I 2 + I 3
Z
1
1
1
1
0
148
Y0 ( I 3 , I 2 , I 1 , I 0 ) = m(2,3,8,9,10,11,12,13,14,15) = I 3 I 2 I 1 + I 3
Z ( I 3 , I 2 , I 1 , I 0 ) = m(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) = I 3 + I 2 + I 1 + I 0
6.5. Zadatak
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
149
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
C
C
C
1
MUX 4/1
D0
D1
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
150
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
151
&
D0
D1
D2
D3
D4
1
1
MUX 8/1
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:
152
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
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
153
f 2 = (0,1,2,5)
f1
f2
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A 1 A0
A B C
6.9. Zadatak
Uporabom dekodera 3/8 iji su izlazi komplementirani ostvariti logike funkcije:
f 1 = (0,3,4,6,7 )
f 2 = (0,1,2,5)
Ovakav dekoder na izlazu ima aktivnu nulu, tj. kada je onemoguen, svi su izlazi u
jedinici, a kada je omoguen, onaj izlaz koji je adresiran nalazi se u nuli dok su svi
ostali izlazi u jedinici.
Ako uoimo da su funkcije identine onima iz prethodnog zadatka, potrebno je samo
smisliti kako pomou ovakvog dekodera realizirati isto ponaanje.
154
X + Y = X Y = NI (X , Y )
Dakle, komplementirane izlaze treba "pokupiti" NI sklopovima, pa emo opet imati
izvornu sumu minterma! Sklop je prikazan u nastavku:
A2 A1 A0
A2 A1 A0
A2 A1 A0
&
f1
&
f2
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A1 A0
A2 A 1 A0
A B C
6.10. Zadatak
Realizirati sklop koji ostvaruje dvije funkcije: (i) generator parnog pariteta pp, (ii) generator
neparnog pariteta pn, trobitnog podatka b2b1b0.
a) uporabom dvostrukog dekodera/demultipleksora 2/4
b) uporabom dvostrukog multipleksora 4/1
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
155
A1 A0
Dvostruki dekoder 2/4
b2b1b0
b2b1b0
b2b1b0
b2b1b0
b2b1b0
b2b1b0
b2b1b0
pp
pn
b2b1b0
A1 A0
b2
b1 b0
156
D0
D1
D2
D3
D0
D1
D2
D3
Sel1 Sel0
Dvostruki multipleksor 4/1
D0
D1
D2
pp
pn
D3
D0
D1
D2
D3
Sel1 Sel0
b2
b1
b0
Realizacija funkcija uporabom dvostrukog demultipleksora 4/1
157
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(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).
158
A1
A0
b2
A2
D0
D1
A0
D2
D3
D0
D1
r0
r1
r2
r3
D2
D3
b1
b0
1
A1
D0
D1
A1
A0
A0
E
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
b2 b1 b0
r3
r2
r1
r0
159
d0
a2
a1
a0
d1
d2
d3
E
6.12. Zadatak
Uporabom programirljive ispisne memorije 88 i dvostrukog multipleksora 4/1 realizirati
vieizlaznu funkciju:
f 1 = (1,6,7,11,12,13,16,17,22,27,30)
f 2 = (1,2,4,5,6,8,10,12,15,21,24,29)
160
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
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
f2
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
f1
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
D
E
A2
A1
A0
161
PROM 8x8
D7 D6 D5 D4 D3 D2 D1 D0
I3 I2 I1 I0 I3 I2 I1 I0
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
162
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
163
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
164
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.
z = sel d 0 + sel d1
Ovaj izraz definira sljedei sklop:
Shema sklopa:
d0
d0
&
1
d1
&
s0
&
d1
&
sel
c0
&
sel
c3
&
c2
s1
s2
165
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.
166
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 = m 3,4,6,7 . Na raspolaganju je
jo jedan invertor, te logika '0' i logika '1'.
30.
(
)
(
)
Multipleksorom 4/1 realizirati funkciju f A, B, C = m 1,2,3,4,5,7 . Pri tome se ne
smije koristiti niti jedan logiki sklop, niti logika '0' ili logika '1'.
31.
32.
Komparator dvobitnih binarnih brojeva je sklop koji ima etiri ulaza (a1, a0, b1, b0) te
jedan izlaz (y). Izlaz y postavljen je u logiku jedinicu samo kada su binarni brojevi
A=a1a0(2) i B=b1b0(2) jednaki.
a. Napiite algebarski izraz kojim je odreena funkcija ovog sklopa.
167
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.
DEK y2
y3
a1 a0
A
B
C
a I
0
I1
I0
I1
a
169
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).
170
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
171
7.2. Zadatak
Zadane su funkcije f1 = A B + AB + ABC i f 2 = AC + A C + AB C . Prikazati PLA temeljen
na NILI sklopovima koji implementira ove funkcije.
Pretpostavimo da na raspolaganju imamo PLA koji ima dvije razine NILI sklopova, i
invertore na izlazima (ovo zapravo ne smijemo pretpostaviti ako u zadatku eksplicitno
ne pie da invertori postoje no neka za sada pretpostavka vrijedi). Takav sklop i
rjeenje zadatka prikazan je na sljedeoj slici.
A
1
B
1
C
1
1
1
f1
f2
A B C D E = A + B + C + D + E = NILI (A , B , C , D, E )
Dakle, ako je u produktu varijabla u nekomplementiranom obliku, u NILI treba dovesti
komplement, i obratno.
Prvi produkt u f1 je A B . Zbog toga na prvi NILI sklop dovodimo A i B . Drugi
produkt AB , pa na drugi NILI dovodimo A i B , itd.
Kada ostvarimo sve produkte prvom razinom NILI sklopova, drugom razinom ih treba
sumirati. To meutim nije mogue direktno, jer na izlazu NILI sklopa imamo
komplementiranu sumu. Zbog toga je na izlazu NILI sklopova jo potrebno staviti jedan
invertor (to se moe ostvariti bez dodatnih elemenata jer su PLA-ovi obino
"opskrbljeni" programirljivim invertorom na izlazu).
Meutim, zadatak je mogue rijeiti jo na jedan nain. Prikaimo zadane funkcije u Ktablicama.
172
f1:
BC
A
00
01
0
1
AB
11
10
AB
ABC
f2:
BC
A
AC
00
0
1
01
11
10
AB
1
AB C
AC
Proitajmo sada kako izgleda zapis ovih funkcija u obliku produkta parcijalnih suma!
Drugim rijeima, minimizirajmo nule umjesto jedinica. Slijedi:
f1:
A+ B
BC
A
00
01
0
1
11
10
1
A + B +C
173
f2:
A+C
BC
A
00
01
11
10
A + B +C
f1 = ( A + B) ( A + B + C )
f2 = ( A + C) ( A + B + C )
Sada ove funkcije moemo direktno realizirati PLA strukturom tipa NILI-NILI. Naime,
prirodan zapis funkcije za realizaciju PLA strukturom tipa NI-NI jest suma produkata, a
za realizaciju PLA strukturom tipa NILI-NILI upravo produkt suma.
Uvjerimo se da je to tako. Npr. sljedee vrijedi:
NILI(NILI(x,y), NILI(z,w)) = NE(ILI(NE(ILI(x,y)),NE(ILI(w,z))))
Po DeMorganu vrijedi: NE(ILI(NE(a),NE(b))) = I(a,b), pa gornji izraz poprima oblik:
NILI(NILI(x,y), NILI(z,w)) = (DeMorgan) = I(ILI(x,y),ILI(w,z))
to je upravo oblik produkta suma.
Rjeenje je tada:
A
1
B
1
C
1
1
1
f1
f2
174
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
175
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 , x 3 ) = x1 + x3
O3 = NILI (x1 , x 2 , x3 ) = x1 + x 2 + x 3
O4 = NILI (x1 , x 2 ) = x1 + x 2
O5 = NILI (x 2 , x3 ) = x 2 + x 3
f 1 = NILI (O1 , O2 , O3 ) = O1 + O2 + O3 = O1 O2 O3
= (x1 + x 2 )(x1 + x3 )(x1 + x 2 + x 3 )
f 2 = NILI (O2 , O4 , O5 ) = O2 + O4 + O5 = O2 O4 O5
176
1
1
f1
f2
7.4. Zadatak
Realizirati funkcije:
f 1 = (0,1,3,5,11,15) i f 2 = (0,2,4,8,12,14 )
a) PLA-om tipa ILI-od-I,
b) PLA-om tipa NILI-od-NILI s komplementiranim izlazima.
c) PLA-om tipa NILI-od-NILI (direktno).
a) ILI-od-I tip
A
1
B
1
C
1
D
1
&
&
&
&
&
&
&
&
&
&
&
1
f1
f2
177
A
1
B
1
C
1
D
1
1
1
f1
f2
f 1 = (2,4,6,7,8,9,10,12,13,14)
f 2 = (1,3,5,6,7,9,10,11,13,15)
A
1
B
1
C
1
D
1
1
1
f1
f2
178
7.5. Zadatak
Na raspolaganju je PAL sljedeih karakteristika 363, tj. 3 ulaza, 3 izlaza, ILI sklopovi
imaju po dva ulaza. Realizirati funkcije: f1 = ABC + A C , f 2 = ABC + BC i f 3 = A + B C .
&
&
&
&
&
&
f1
f2
f3
Iz ovog rjeenja odmah se moe vidjeti i veliki nedostatak PAL porodice: svi produkti
moraju se ostvariti onoliko puta koliko su potrebni. Kako produkt ABC imamo dva puta
(u funkciji f1 i u funkciji f2), morali smo ga i ostvariti dva puta. Naime, kako kod PALa
ILI polje nije programirljivo, ne postoji mogunost dijeljenja produkata.
7.6. Zadatak
Na raspolaganju je PAL sljedeih karakteristika: 3 ulaza, 3 izlaza, ILI sklopovi imaju po dva
ulaza, izlazi ILI sklopova i njihovi komplementi dovode se natrag u I ravninu.
Realizirati funkciju: f = AB + AC + BC + AB
179
A
1
B
1
C
1
1
1
1
&
&
&
&
&
&
f1
f2
7.7. 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:
180
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.8. 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.
181
f = X 1 X 2 = X 1 X 2 + X 1 X 2 = (1,2 )
Dakle, funkcija se moe izraziti kao suma minterma 1 i 2, pa na ulaze d1 i d2 treba
dovesti 1, a na preostale ulaze d0 i d3 treba dovesti 0. Programiran logiki blok prikazan
je na slici:
X1
X2
0
1
1
0
7.9. 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 .
0
0
0
1
0
0
1
1
182
7.10. Zadatak
Na raspolaganju je FPGA s dvoulaznim logikim blokovima temeljenim na LUTovima.
Prikazati strukturu sklopa. Programirati sklop tako da ostvaruje logiku funkciju f.
f = f 2 f 3 , f1 = A B , f 2 = A + B , f 3 = f1 + C .
a1
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
f 1 = f ( A, B) = A B = AB + A B = (1,2 )
U LUT treba upisati uzorak 0110 (na 1. i 2. ulaz dekodera dovodi se 1, a na 0. i 3. ulaz
dekodera dovodi se 0).
Istovremeno se s prve okomite linije varijabla A dovodi i na a1 ulaz logikog bloka
dolje-lijevo, a varijabla B sa druge okomite linije na ulaz a0. Kako ovaj logiki blok
treba ostvariti funkciju f2:
183
f 2 = f ( A, B) = A + B = A ( B + B ) + ( A + A ) B = A B + A B + AB = (0,1,3)
u LUT treba upisati uzorak 1101.
Izlaz f1 se preko zadnje okomite linije srednjeg snopa dovodi na ulaz a1 logikog bloka
gore-desno. Istovremeno se na a0 ulaz tog bloka dovodi varijabla C (treom
vodoravnom linijom gornjeg vodoravnog snopa, pa zatim treom okomitom linijom
srednjeg okomitog snopa). Taj sklop obavlja funkciju f3 (koja ovisi o f1 i C):
f 3 = f ( f 1 , C ) = f1 + C = f 1 (C + C ) + ( f 1 + f1 )C = f1C + f 1C + f 1C = (0,1,3)
pa LUT popunjavamo uzorkom 1101.
Konano se na ulaz a1 logikog bloka dolje-desno dovodi f2 preko druge okomite linije
srednjeg okomitog snopa, a na ulaz a0 dovodi se f3 (prvom okomitom linijom desnog
okomitog snopa, pa prvom vodoravnom linijom srednjeg vodoravnog snopa, i konano
prvom okomitom linijom srednjeg okomitog snopa). Taj sklop ostvaruje logiku I
funkciju:
f = f ( f 2 , f 3 ) = f 2 f 3 = (3)
pa LUT popunjavamo uzorkom 0001.
Rezultat f vodi se preko etvrte okomite linije desnog okomitog snopa i etvrte
vodoravne linije gornjeg vodoravnog snopa na izlazni konektor f.
7.11. Zadatak
Uporabom logikih blokova s 2 ulaza realiziranih multipleksorima 2/1 i LUT-om realizirati
funkciju f ( A, B, C , D) = m(1,2,5,6,9,10,12,13,14,15) . Nije potrebno crtati shemu samog
logikog bloka.
f 1 ( A, B, C , D) = AB = f 1 ( A, B) = m(3)
f 2 ( A, B, C , D) = C D + CD = f 2 (C , D) = m(1,2)
184
f ( A, B, C , D) = f 1 + f 2 = f ( f1 , f 2 ) = f 1 f 2 + f1 f 2 + f 1 f 2 = m(1,2,3)
Sada moemo iskoristiti jedan logiki blok za realizaciju funkcije f1, jedan logiki blok
za realizaciju funkcije f2 te jedan logiki blok za realizaciju funkcije f koji rauna
logiku ILI operaciju.
Rjeenje je prikazano na slici:
7.12. 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
185
C in
Cin
Cin
C in
0
C in
C in
1
D0
D1
D2
Cout
D3
D0
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
186
I3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
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:
I3I2
I1I0
00
I2
00
01
11
10
01
11
10
I2
I3
I3
I0
I1
O0:
I3I2
I1I0
00
187
00
01
01
11
10
11
10
I 2 I1
I0
I1
I3
I2
O1 = I 2 + I 3
O0 = I 2 I 1 + I 3
I3
1
I2
1
I1
1
&
&
I3
&
&
O1
&
O0
188
ZADACI ZA VJEBU
1.
2.
3.
Bistabil.
189
8. Bistabil.
8.1. Zadatak
Prikaite tablice stanja, simbole, jednadbe promjene stanja i dijagrame stanja za:
a) SR bistabil (prikazati i izvedbu NI sklopovima te objasniti rad),
b) JK bistabil,
c) T bistabil,
d) D bistabil.
&
&
190
Qn +1
0
0
1
1
0
1
0
1
Qn
S
CP
R
0
1
?
Simbol bistabila
Tablica stanja
Qn +1 = S + Qn R
uz uvijet: S R = 0
Jednadba promjene stanja
11
00
01
?
10
11
1
01
00
10
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
Qn +1
0
0
1
0
1
0
Qn
Qn
J
CP
K
0
1
Simbol bistabila
Tablica stanja
Qn +1 = Qn K + Qn J
Jednadba promjene stanja
10,11
00
01
01,11
Dijagram stanja
00
10
J,K
Bistabil.
191
c) T bistabil
Qn +1
Qn
Qn
T
CP
Tablica stanja
Simbol bistabila
Qn +1 = T Qn + T Qn
Jednadba promjene stanja
1
0
Dijagram stanja
d) D bistabil
Qn +1
0
1
0
1
D
CP
Tablica stanja
Simbol bistabila
Qn +1 = D
Jednadba promjene stanja
1
Dijagram stanja
1
D
192
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
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.
193
Tablica 2. Tablica stanja T bistabila.
Qn
Qn +1
0
0
0
1
0
1
1
1
0
1
1
0
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 )
Izraz moemo minimizirati pa dobijemo:
T
n
Q 0
1
00
01
11
1
1
T = J Qn + K Qn
JK
10
194
JK bistabil
J
&
&
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:
Bistabil.
195
J
n
Q 0
1
Q 0
J =T
K =T
T bistabil
T
J
CP
K
CP
8.3. Zadatak
Razmotriti naine modeliranja bistabila u VHDL-u na primjeru T bistabila upravljanog
razinom signala takta. U model ugraditi kanjenje izlaza.
J
&
&
&
&
CP
JK bistabil
196
NI3
NI3
NI3
NI3
PORT
PORT
PORT
PORT
END Structural;
Bistabil.
197
T bistabil
J
&
&
&
&
Qint
CP
Qn int
JK bistabil
Drugi nain modeliranja bistabila jest modeliranje pomou jednadbe prijelaza stanja,
to nas tipino vodi na ponaajni model. Naime, jednadba prijelaza stanja govori kako
se bistabil "ponaa" na koji se nain mijenja njegovo stanje ovisno u trenutnom stanju
i trenutnoj pobudi (vidi sliku).
198
T
CP
Qn +1 = T Qn + T Qn
Qn +1 = T Qn + T Qn
Uvijet: promjena na CP=1
Q
Analiziramo li prikazano rjeenje, otkrit emo nekoliko problema (razmislite koje sve?),
od kojih emo spomenuti samo jedan. Analizom moemo uoiti "loe" definirano
suelje (opet se sugerira da su Q i Qn ujedno i ulazi u bistabil). Naime, signali Q i Qn
proglaeni su INOUT iz razloga to jednadba promjene stanja realizirana u bloku
process ita njihove vrijednosti, to ne bi bilo mogue da su signali proglaeni samo
OUT. No, ovaj problem rjeava se (kao to smo ve prethodno vidjeli) vrlo lagano:
potrebno je dodati dva interna signala, ime se dobiva sljedei model:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY Tbistabil IS PORT (
J, K, CP: IN std_logic;
Q, Qn: OUT std_logic
);
END Tbistabil;
ARCHITECTURE Behavioral OF Tbistabil IS
SIGNAL Qint, Qnint: std_logic;
BEGIN
Bistabil.
199
PROCESS (T,CP)
BEGIN
IF CP='1' THEN
Qint <= (NOT T AND Qint) OR (T AND NOT Qint) AFTER 15 ns;
Qnint <= (NOT T AND NOT Qint) OR (T AND Qint) AFTER 15 ns;
END IF;
END PROCESS;
Q <= Qint;
Qn <= Qnint;
END Behavioral;
Zadnja dva modela takoer imaju jedan vrlo vaan problem: iako je nama jasno da oba
modela modeliraju jedan T bistabil, sintetiziranje ovih modela u fiziko sklopovlje
vjerojatno e rezultirati s implementiranjem dva bistabila! Naime, prilikom sinteze
sklopovlja na temelju VHDL opisa (ili nekog drugog; npr. Veriloga) sintetizator
sklopovlja mora otkriti to odreeni opis zapravo modelira, i zatim uporabom ciljne
arhitekture koja mu stoji na raspolaganju realizirati sklop koji se ponaa u skladu s tim
opisom. Ovaj proces ve je sam po sebi izuzetno teak a jo je tei kada ga treba
obaviti nad loim modelom. Glavni problem kod zadnja dva modela jest injenica da
smo svaki od izlaza (Q i Qn) modelirali zasebno iako to nije bilo potrebno, jer znamo
u kakvom su odnosu ta dva signala oni su uvijek komplementarni. Ova injenica,
meutim, moe vrlo lagano "promaknuti" sintetizatoru, i rezultirati stvaranjem jednog
bistabila koji implementira izlaz Q, i jednog bistabila koji implementira izlaz Qn. Pri
tome e sklop kao cjelina prema van i dalje djelovati kao jedan bistabil problem je
samo to emo za taj sklop potroiti sklopovlja za dva bistabila.
Kako bismo olakali sintetizatoru sklopovlja interpretaciju naih modela, moemo
slijediti heuristiko pravilo koje kae: odnose meu signalima uinite eksplicitnima, ili
signale meu kojima postoji jasna veza nemojte modelirati zasebno. Sljedei model
gotovo e sigurno rezultirati sintezom jednog bistabila:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY Tbistabil IS PORT (
J, K, CP: IN std_logic;
Q, Qn: OUT std_logic);
END Tbistabil;
ARCHITECTURE Behavioral OF Tbistabil IS
SIGNAL Qint, Qnint: std_logic;
BEGIN
PROCESS (T,CP)
BEGIN
IF CP='1' THEN
Qint <= (NOT T AND Qint) OR (T AND NOT Qint) AFTER 15 ns;
END IF;
END PROCESS;
Qnint <= NOT Qint;
Q <= Qint;
Qn <= Qnint;
END Behavioral;
200
No i ovdje treba biti vrlo oprezan: jednom minornom izmjenom koda poput ubacivanja
izraza za Q i Qn unutar IF bloka vjerojatno bi rezultiralo sintezom dva bistabila!
Treba jo napomenuti da ovaj pregled naina modeliranja bistabila nije niti priblino
potpun. Bistabili se u VHDL-u mogu modelirati na jo mnogo naina (npr. uporabom
"uvara" engl. guard), ali za potrebe kolegija Digitalna elektronika i Digitalna logika
predstavlja dovoljno irok spektar.
8.4. Zadatak
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;
Bistabil.
201
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.5. Zadatak
Na izlaz logikog bloka s tri ulaza ostvarenog multipleksorima 2/1 i LUT-om direktno je
spojen D bistabil. Nacrtati ovu strukturu. Programirati LUT i projektirati sklop tako da djeluje
kao JK bistabil. Ulaze logikog bloka oznaiti s A2A1A0, gdje je A2 ulaz najvee teine. Neka
A2 odgovara ulazu J, a ulaz A1 ulazu K.
Napiimo tablicu promjene stanja bistabila JK, i ulaz bistabila koji doista imamo:
202
K
0
0
1
1
0
0
1
1
Qn+1
0
1
0
0
1
1
1
0
Qn
0
1
0
1
0
1
0
1
D
0
1
0
0
1
1
1
0
A2
A1
A0
0
1
0
0
1
1
1
0
D
CP
8.6. 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
Bistabil.
203
Implementacija:
d0
D
d1
CP
Kada je CP = 1, adresiran je ulaz d1, pa se podatak D prenosi na izlaz Q, ali i povratnom
vezom vraa na ulaz d0. Sve promjene podatka D za vrijeme trajanja CP=1 prenose se i
na izlaz. Kada CP prijee u 0, adresiran je ulaz d0, no kako je na taj ulaz direktno spojen
izlaz sklopa, podatak koji je bio na izlazu u trenutku kada je CP preao u 0 ostaje
zarobljen u sklopu. Ovo je takoer stabilno stanje.
b) sinkroni D bistabil okidan bridom signala vremenskog voenja (master slave D
registar).
Simbol:
Izvedba bistabilima:
D
CP
D
CP
D
CP
D
CP
Q
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
204
trenutni njegov izlaz se prosljeuje kroz drugi bistabil (multipleksor). Stanje ostaje
stabilno, i eventualne promjene ulaza D vie nemaju utjecaja na izlaz.
8.7. Zadatak
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
Q1
d0
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
Bistabil.
205
D
t
CP
CP
t
Q1
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.
D
t
CP
CP
t
Q1
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
206
d0
D
d1
Q1
a
CP = CLK
d0
d1
Q2
a
CP = CLK
CLK
Sklop zapravo reagira na padajui brid signala CLK. Signali CP i CP generiraju se na
temelju signala CLK, te je oito da e na ovaj nain signal CP uvijek raniti pred
signalom CP .
Slian nain realizacije bistabila (i generiranja signala CP i CP ) danas se koristi kod
vrlo popularne porodice integriranih logikih sklopova CMOSa!
ZADACI ZA VJEBU
1.
Uporabom dva NILI sklopa ostvariti osnovni SR bistabil. Ako je kanjenje svakog NILI
sklopa 10 ns, nacrtati vremenske dijagrame izlaza Q i Q za pobudu zadanu slikom. Da
li se u odzivu sklopa pojavljuju oscilacije? Zato? Da li bi SR bistabil izveden realnim
komponentama oscilirao? Zato? Prilikom rjeavanja zadatka pretpostavite da je u
poetnom trenutku izlaz Q u logikoj nuli, a izlaz Q u logikoj jedinici.
Bistabil.
207
Pobuda bistabila
2.
3.
Digitalna aritmetika.
209
9. Digitalna aritmetika.
9.1. Zadatak
Za brojeve 10010(2), 10111(2), 00000(2), 12012(3) te 22001(3) izraunati (B-1)-vi te B-ti
komplement.
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
B K = ( B 1) K + 1 = 01101( 2 ) + 1( 2 ) = 01110 ( 2 )
Zbrajanjem broja X i njegovog B-tog komplementa dobit e se broj kod kojeg su na
mjestima znamenaka pribrojnika nule, i generira se vodea jedinica kao preljev:
+
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
210
(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
Baza
10
10
10
10
16
16
16
16
3
3
3
3
X-komplement
9
10
9
10
15
16
15
16
2
3
2
3
Broj
00104589
00104589
00104991
00104991
000A357F
000A357F
0044FEB2
0044FEB2
00220022
00220022
01002200
01002200
Komplement
99895410
99895411
99895008
99895009
FFF5CA80
FFF5CA81
FFBB014D
FFBB014E
22002200
22002201
21220022
21220100
Digitalna aritmetika.
211
9.3. Zadatak
Za sljedee binarne brojeve u zapisu dvojnog komplementa izraunati 101101+110000,
101101+111111,
1101011+0111101,
1101001+1111001,
11001010+11100,
11001010+1111100. Svi se brojevi pamte kao 8-znamenkasti. Komentirati ispravnost
dobivenih rezultata.
00101101
+00110000
-------01011101
Rezultat je ispravan!
45+48=93
01101011
+00111101
-------10101000
Rezultat je neispravan! Zbrajanjem
pozitivnih brojeva dobili smo negativni
broj.
107+61-88
11001010
+00011100
-------11100110
Rezultat je ispravan!
-54+28=-26
00101101
+00111111
-------01101100
Rezultat je ispravan!
45+63=108
01101001
+01111001
-------11100010
Rezultat je neispravan! Zbrajanjem
pozitivnih brojeva dobili smo negativni
broj.
105+121-30
11001010
+01111100
-------01000110
Rezultat je ispravan!
-54+124=70
9.4. Zadatak
Za sljedee binarne brojeve u zapisu dvojnog komplementa izraunati 101101-110000,
101101-111111, 1101011-0111101, 1101001-1111001, 11001010-11100, 110010101111100. Svi se brojevi pamte kao 8-znamenkasti. Komentirati ispravnost dobivenih
rezultata.
00101101
-00111111
-------00101101
+11000001
-------11101110
Rezultat je ispravan!
45-48=-3
Rezultat je ispravan!
45-63=-18
212
01101011
-00111101
-------01101011
+11000011
-------00101110
Rezultat je ispravan!
107-61=46
11001010
-00011100
-------11001010
+11100100
-------10101110
Rezultat je ispravan!
-54-28=-82
9.5. Zadatak
Pomnoite sljedee binarne brojeve 11011110010, 10101111001, 10011111, 1101111111.
11011110010
-------------110111
000000
000000
110111
000000
-------------1111011110
10011111
----------10011
10011
10011
----------10000101
10101111001
-------------101011
101011
000000
000000
101011
-------------10000110011
1101111111
----------11011
11011
11011
11011
11011
----------1101000101
Digitalna aritmetika.
213
9.6. Zadatak
Pomnoite sljedee heksadekadske brojeve 3712, 2B19, A7FFE3BC2, D47F53C8. Svi se
brojevi spremaju kao 6 znamenkasti.
3712
-------------37
6E
-------------3DE
2B19
-------------2B
183
-------------433
Rezultat je 0003DE.
A7FFE3BC2
----------1F7FFA
737FEA
7DFFE8
14FFFC
----------27374887C
Rezultat je 000433.
D47F53C8
----------4267B
27D7D
9F5F4
6A3F8
----------458B3038
9.7. Zadatak
Izvesti poluzbrajalo - napisati logike izraze, prikazati simbol.
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
Ai
Bi
Si
Ci
Simbol poluzbrajala
214
9.8. 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
Si = 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
Ai
Bi
Bi
Si
Ai
Ci
Bi
Si
Si
Ci
Ci
Ci-1
Izvedba uporabom poluzbrajala
9.9. Zadatak
Realizirati etiri-bitno zbrajalo uporabom potpunih zbrajala i bez dodatnih sklopova.
Bi
c
Ci
Ai
F Ci-1
Si
s3
Bi
Ci
Ai
F Ci-1
Si
s2
Bi
Ci
Ai
F Ci-1
Si
s1
Bi
Ci
Ai
F Ci-1
Si
s0
Digitalna aritmetika.
215
9.10. 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
Bi
c/p
Ci
b2
a2
=1
Ai
F Ci-1
Si
s/d3
Bi
Ci
b1
a1
=1
Ai
F Ci-1
Si
s/d2
Bi
Ci
b0
a0
=1
Ai
F Ci-1
Si
s/d1
Bi
Ci
Ai
F Ci-1
Si
s/d0
9.11. 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.8):
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
216
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.12. Zadatak
Realizirati sklop za mnoenje 4-bitnih brojeva.
Ci-1
Pi
Cin
Digitalna aritmetika.
217
a3a2a1a0 b3b2b1b0
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 b3b2b1b0
=
=
=
+
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.
218
&
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.13. Zadatak
Povezati dva 4-bitna CLA sklopa tako da se ostvari CLA za 8-bitno zbrajalo.
Kako nam je broj CLA sklopova ogranien na 2, jedini nain na koji moemo povezati
ove sklopove jest u seriju, ime se dobiva efekt ripple-carry-ja, ali ne izmeu pojedinih
potpunih zbrajala, ve izmeu CLA sklopova, to, obzirom da njih ima puno manje u
odnosu na broj potpunih zbrajala i ne predstavlja veliki vremenski gubitak (barem za
relativno krae brojeve).
Rjeenje je prikazano na slici.
G 3 P3 G 2 P2 G 1 P1 G 0 P0
G 7 P7 G 6 P6 G 5 P5 G 4 P4
G 3 P3 G 2 P2 G 1 P1 G 0 P0
Cout
CLA
C3
G'3
P'3
C0
G 3 P3 G 2 P2 G 1 P1 G 0 P0
C-1
C1
C2
CLA
C3
G'3
P'3
C0
C-1
C1
C2
Cin
Digitalna aritmetika.
219
9.14. Zadatak
Povezati 4-bitne CLA sklopove tako da se ostvari CLA za 16-bitno zbrajalo. Na raspolaganju
je 5 4-bitnih CLA sklopova.
Kada bismo CLA sklopove povezali u seriju (kao u prethodnom zadatku) vrijeme
propagacije ispravnog prijenosa kroz CLA sklopove ve bi bilo zamjetno. Budui da
imamo 5 CLA sklopova, moemo ih povezati hijerarhijski, ime se moe dobiti na
brzini. Ideja je da peti CLA sklop "predvia" bitove prijenosa za etiri CLA sklopa nie
razine, ba kao to svaki od tih CLA sklopova "predvia" bitove prijenosa za potpuna
zbrajala koja su na najnioj razini.
Standardni CLA sklop osim izlaza C0, C1, C2 i C3 ima jo i izlaze P4 i G4, koji nam slue
za hijerarhijsko povezivanje CLA sklopova. U nastavku emo izvesti izraze za svaki od
tih izlaza.
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 Ci 1 + Gi , pa slijedi:
C0 = G0 + P0C1
C1 = P1C0 + G1 = P1 P0C1 + P1G0 + G1
C2 = P2C1 + G2 = P2 P1 P0C1 + P2 P1G0 + P2G1 + G2
C3 = P3C 2 + G3 = P3 P2 P1 P0 C1 + P3 P2 P1G0 + P3 P2 G1 + P3G2 + G3
Ostavimo prve tri jednadbe, a etvrtu zapiimo kao:
C3 = P '3 C1 + G '3
gdje su (apostrof u ovom sluaju ne oznaava komplement):
P'3 = P3 P2 P1 P0 , G '3 = P3 P2 P1G0 + P3 P2 G1 + 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
220
Zbirka rijeenih zadataka
Digitalna aritmetika.
221
9.15. 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
x2y1
p2
x1y2
r3
x2y0
x1y1
p1
x0y2
r2
x1y0
x0y1
p0
x0y0
r1
r0
r0
x0 y0
x1 y0
Ai
x0 y1
Bi
x2 y0
x1 y1
Ci
Ci-1 Si
Ai F
Bi Ci
Ai
x2 y1
r1
Si
Bi
Ai
x0 y2
Si
Ci
x1 y2
x2 y 2
Bi
Si
r2
Ci
Ci-1 Si
r3
Ci-1 Si
r4
Ai F
Bi Ci
Ai F
Bi Ci
r5
222
9.16. 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
&
&
Digitalna aritmetika.
223
9.17. Zadatak
Izraunati i objasniti koliko iznosi vrijeme stabilizacije rezultata kod sljedeih sklopova:
a) poluzbrajalo
b) potpuno zbrajalo izvedeno pomou dva poluzbrajala
c) sklopa za paralelno zbrajanje 32-bitnih binarnih brojeva (RCA izvedba; engl. Ripple Carry
Adder, tj. sklop za paralelno zbrajanje)
d) sklopa za paralelno zbrajanje 32-bitnih binarnih brojeva uporabom jedne razine 4-bitnih
CLA sklopova
e) sklopa za paralelno zbrajanje 32-bitnih binarnih brojeva uporabom potrebnog broja razina
4-bitnih CLA sklopova (broj razina odrediti tako da se dobije minimalno vrijeme)
224
Digitalna aritmetika.
225
CLA sklopa; time ukupno trebamo 6 4-bitnih CLA sklopova). Budui da se na dnu
nalaze samo dva CLA sklopa, prijenos izmeu njih rijeit emo direktnim povezivanjem
(a ne novom razinom CLA sklopova). Postupak izraunavanja tada je sljedei. U
trenutku t = 0 ns na sklop se dovode svi ulazi. Nakon 1 tdls , tj. u trenutku
t = 0 + 1 t dls = 1 t dls izraunati su svi P i G izlazi potpunih zbrajala. Nakon jo 2 tdls , tj.
u trenutku t = 1 t dls + 2 t dls = 3 tdls sve CLA jedinice u prvoj razini izraunavaju svoje P
i G izlaze (zapravo, P se dobije t = 1 t dls + 1 t dls = 2 t dls ). Na temelju tih izlaza CLA
sklop najvie razine nakon jo 2 t dls , tj. u trenutku t = 3 t dls + 2 t dls = 5 t dls izraunava
ispravne bitove prijenosa. Prijenos se vodi do CLA sklopa koji rauna prijenose za
gornjih 16 bitova rezultata, to se izrauna nakon jo 2 tdls , tj. u trenutku
t = 5 t dls + 2 t dls = 7 t dls . Ovi prijenosi vode se na ulaze CLA sklopova prve razine.
Nakon jo 2 tdls , tj. u trenutku t = 7 t dls + 2 t dls = 9 t dls CLA sklopovi prve razine imaju
izraunate ispravne prijenose za sva potpuna zbrajala, te se ispravni rezultat pojavljuje
jo 2 tdls kasnije, tj. u trenutku t = 9 t dls + 2 t dls = 11 t dls . Ispravan prijenos najvieg bita
pri tome se uzima s hijerarhijski najnieg CLA sklopa, gdje je bio dostupan ve u
trenutku t = 7 t dls . Hijerarhijskim povezivanjem CLA sklopova dobili smo, dakle, jo
bri rad sklopova.
ZADACI ZA VJEBU
1.
Izraunajte B i B-1 komplemente od EE2A(16), 3F2(16), 2000(3), 10(3), 562(8), 1100(2), 1(2),
10(2). Sve komplemente izraunati na 4 znamenke.
2.
3.
4.
5.
Prikazati sklop koji se temelji na 9-bitnom binarnom zbrajalu, a koji moe, ovisno o
signalu X obaviti binarno zbrajanje (X=1) ili binarno oduzimanje (X=0) dva 9-bitna
binarna broja zapisana u dvojnom komplementu. Ako se takvom sklopu na ulaz dovedu
sljedei binarni brojevi:
a) A = 135, B = 100
b) A = 57, B = 212
c) A = -34, B = 133
d) A = -250, B = 230
napisati rezultate operacija zbrajanja i oduzimanja, kao i oekivane rezultate (izraun
provesti "runo").
6.
Napiite u VHDL-u ponaajni model 5-bitnog CLA sklopa koji dodatno generira svoje
P i G lanove (emu oni slue?)
7.
Sljedee brojeve prikazati binarnim zapisom u dvojnom komplementu: 110, 13, -25, 78, -128, 212, -130. Za prikaz brojeva u dvojnom komplementu koristiti 8 bitova (mogu
li se svi zadani brojevi uope zapisati u 8 bita?). Dodatno, utvrditi o kojim se brojevima
radi, ako je njihov binarni prikaz dvojnim komplementom jednak: (a) 11001101, (b)
226
00101111, (c) 00000000, (d) 11111111, (e) 01011010. Obaviti zbrajanje 3 i -3, 114 i 17, -28 i -43, -100 i -113; koji je rezultat?
8.
9.
Neka se za kodiranje dekadskih brojeva koristi Excess-3 kod. Projektirati sklop koji
rauna sumu dva jednoznamenkasta broja. Uporabom tog sklopa projektirati sklop koji
rauna sumu dva troznamenkasta broja.
10.
Neka se za kodiranje dekadskih brojeva koristi Excess-3 kod. Projektirati sklop koji
rauna (B-1)-vi komplement jednoznamenkastog broja. Projektirati sklop koji rauna Bti komplement troznamenkastog broja.
11.
Neka se za kodiranje dekadskih brojeva koristi BCD kod. Projektirati sklop koji rauna
sumu dva jednoznamenkasta broja. Uporabom tog sklopa projektirati sklop koji rauna
sumu dva troznamenkasta broja.
12.
Neka se za kodiranje dekadskih brojeva koristi BCD kod. Projektirati sklop koji rauna
(B-1)-vi komplement jednoznamenkastog broja. Projektirati sklop koji rauna B-ti
komplement troznamenkastog broja.
MINI-PROJEKTI ZA VJEBU
1.
2.
Registri.
10.
227
Registri.
10.1. Zadatak
Uporabom D bistabila nacrtati shemu 4-bitnog registra s paralelnim ulazima i paralelnim
izlazima.
Q3
D
CP
CP
Q2
D
CP
Q1
D
CP
D3
Q0
D
CP
D2
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:
228
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
d2
a
d3 a1 0
d0
d1
d2
a
d3 a1 0
CP
y
d2
a
d3 a1 0
CP
Sin Pin0 S1 S0 CP
d0
d1
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
mux 8/1
d1
d2
d3
d4
d5
d6
1
A B C D
Sin
CP
CP
d7
a2 a1 a0
Registri.
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
229
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
230
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
14 (4)
13 (4)
5 (8)
9
5
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.
231
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
Rout
CP
Q
Reset
CP
D
Cout
CP
Q
Bitovi brojeva dovode se serijski na ulaze Ain i Bin pri emu se najprije dovodi najmanje
znaajni bit. Signalom Reset najprije je potrebno resetirati D bistabile. Prvi D bistabil
uva bit rezultata, dok drugi D bistabil uva bit preljeva potreban za zbrajanje sljedeih
znaajnijih bitova.
Rout uva rezultat zbrajanja trenutnih bitova a Cout je preljev nastao zbrajanjem bitova
koji su u trenutku rastueg brida CP-a bili na ulazu potpunog zbrajala.
Vremenski dijagram prikazan je u nastavku.
Uoiti da signal Reset djeluje asinkrono.
232
Ain
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
Uporabom potrebnog broja D bistabila i multipleksora 2/1 ostvariti 3-bitni registar s
mogunou paralelnog upisa podataka. Rad registra definiran je signalom L na nain:
Signal L
0
1
Akcija
Ostaviti prethodno stanje registra
Upisati stanje s paralelnih ulaza
Registri.
233
D0
Q0 D 1
0
1
y
a0
D
CP
Q1 D 2
y
a0
D
CP
Q2
D
CP
a0
Q
Q
L
CP
10.7. Zadatak
Uporabom dva 4-bitna posmana registra sa serijskim i paralelnim ulazima i serijskim
izlazom ija je funkcionalnost opisana 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
SRout
SLin
SRin
G H
A B C D
SLout
S1 S0 CP
SRout
SRout
SLin
SLin
S1 S0 CP
10.8. Zadatak
Uporabom dva 4-bitna posmana registra sa serijskim i paralelnim ulazima i serijskim
izlazom ija je funkcionalnost prikazana tablicom ostvariti 8-bitni posmani registar iste
funkcionalnosti. Dozvoljeno je jo koristiti multipleksor 2/1 te dekoder 2/4.
234
S1
0
0
1
1
S0
0
1
0
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
Registri.
235
A B C D
SRin
d0
d1
E F
G H
y
a
SRin
A B C D
SLout
SLout
S1 S0 CP
SRin
SRout
SLout
SLin
A B C D
S1 S0 CP
SRout
SRout
SLin
SLin
d3 d2 d1 d0
dek 2/4
a1 a0
S1 S0
CP
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.4.
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
236
Q <= Qint;
END Structural;
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;
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;
CP
C
Registri.
237
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:
238
r0: d_reg PORT MAP (clk, '1', reset, pint (1 DOWNTO 0),
pouti(1 DOWNTO 0));
r1: d_reg PORT MAP (clk, '1', reset, pint (3 DOWNTO 2),
Registri.
239
Zato je uope uveden interni signal (vektor) pouti? Razlog tomu je injenica da
interni signal pint koji se dovodi na ulaze dvobitnih registara ovisi o trenutnom izlazu
sklopa. No kako je trenutni izlaz sklopa (pout) u opisu sklopa proglaen izlaznim
(out), njegova se vrijednost ne moe itati! Da bismo rijeili taj problem, moemo
postupiti dvojako: ili pout proglasiti ulazom/izlazom (dakle, u VHDL-u to bi bilo
inout), ili uvesti interni signal koji direktno spajamo na izlaz sklopa. Prvo rjeenje je
loe jer moe rezultirati sintezom dodatnog sklopovlja (kako bi se osiguralo da se s tih
pinova sklopa doista moe i itati i pisati). Drugo je rjeenje, iz oitog razloga, bolje.
10.12. Zadatak
Uporabom potrebnog broja sinkronih bridom okidanih JK bistabila ostvariti 4-bitni posmani
registar sa serijskim ulazom i paralelnim izlazom. Dozvoljeno je koristiti jedan invertor.
D0
Sin
1
J
CP
K
Q
Q
D1
J
CP
K
Q
Q
D3
D2
J
CP
K
Q
Q
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.
240
10.13. Zadatak
Prikazati funkciju sklopa 74LS194. Opisati sklop ponaajnim VHDL-om.
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);
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;
QC*
QC
QB
QD
C
QD*
QD
QC
LIN
D
Registri.
241
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
242
Q2 Q1 Q0
Sin
S/R
Q 3 Q2 Q1
0
Sin
S/R
CP
Q0
Q2 Q1 Q0
Sin
S/R
1
D Q
CP
CP
CP
Registri.
243
ZADACI ZA VJEBU
1.
2.
3.
4.
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.
Na raspolaganju je posmani registar sa serijskim ulazom i paralelnim izlazima.
Njegovom uporabom projektirati sekvencijski sklop koji na izlazu cikliki generira
slijed 0,1,1,0,0,1,1,1. Na raspolaganju su jo i osnovni logiki sklopovi.
Na raspolaganju je 3-bitni registar s paralelnim ulazima i paralelnim izlazima.
Njegovom uporabom projektirati sekvencijski sklop koji na izlazu cikliki generira
slijed 0,1,3,2,6,7,5,4.
Brojila.
11.
245
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 B1 B0 :
B2 B1 B0 = B2 B1 B0 = NI (NI (B2 , B1 , B0 ))
(napomena: B0 ne treba ostvarivati NI sklopom jer iz svakog bistabila imamo izlaz i
njegov komplement) trebamo sklop:
B2
B1
B0
&
&
246
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 t dls
t dek1 = 1 t db + 2 t dls
t dek 3 = 1 t db + 2 t dls
t dek 5 = 1 t db + 2 t dls
t dek 6 = 2 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.
247
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 .
a) Uporaba asinkronog ulaza za postavljanje.
Kada se aktivira asinkroni ulaz za postavljanje, brojilo prelazi u stanje "sve jedinice", tj.
etiri-bitno brojilo prelazi u stanje 1111(2) = 15, to traje do sljedeeg impulsa CP. No
kako je stanje 15 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo
kroz koja jo stanja brojilo mora prolaziti:
postaviti u 15
150123456789101112131415
12 stanja
248
D1
D2
D3
&
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
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.
249
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:
250
D0
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:
D0
D1
D2
D3
1
J
CP
Sd
CP B0
K
Cd
Sd
CP B1
Q
Cd
Sd
CP B2
Q
Cd
Sd
CP B3
Q
Cd
&
&
&
&
Kod ove izvedbe, ak i ako se npr. B3 resetira puno ranije od B2, to e za posljedicu
imati prestanak djelovanja signala koji detektira stanje 12, signal za reset e i dalje
djelovati jer je on pohranjen u bistabilu koji e se postaviti u neaktivno stanje (1) tek
kada CP postane 1 (CP djeluje sa 1 jer ga naknadno dodatni NI sklop invertira).
Brojila.
251
B1
B0
B2
B2
B1
B0
252
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.
253
11.3. Zadatak
Realizirati sinkrono trobitno binarno brojilo uporabom dvostrukih JK bistabila.
D0
B0
D1
CP
CP
Q
B2
CP
Q
B1
D2
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
J2
00
01
11
Q1Q0
10
Q2 0
1
K2
Q2 0
1
00
01
11
Q1Q0
10
254
J1
00
Q2 0
01
11
Q1Q0
10
Q1Q0
10
1
J0
Q2 0
00
01
11
K1
Q2 0
1
00
01
11
K0
00
Q2 0
01
11
Q1Q0
10
Q1Q0
10
J 2 = Q1Q0
K 2 = Q1Q0
J1 = Q2Q0
K1 = Q2Q0
J 0 = Q2Q1 + Q2Q1
K 0 = Q2Q1 + Q2Q1
D0
&
&
&
B
J 0 Q
CP
Q
K
D1
&
&
B
J 1 Q
CP
Q
K
D2
&
&
B
J 2 Q
CP
Q
K
&
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.
255
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
J2
Q2 0
1
00
01
11
01
11
Q1Q0
10
Q1Q0
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
Q1Q0
10
00
01
11
Q1Q0
10
K1
Q2 0
1
00
01
11
Q1Q0
10
1
1
1
1
11
Q1Q0
10
1
1
K0
00
Q2 0
1
01
256
B
J 0 Q
CP
Q
K
&
D1
&
1
B
J 1 Q
CP
Q
K
D2
B
J 2 Q
CP
Q
K
CP
11.6. Zadatak
Realizirati sinkrono trobitno brojilo uporabom dvostrukih JK bistabila, i potrebnog broja
osnovnih logikih sklopova, koje prolazi kroz stanja: 041570. Nije potrebno
osigurati siguran start brojila. Provjeriti da li e tako realizirano brojilo raditi ispravno.
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.
257
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
D1
J
CP
&
J
CP
D2
J
CP
CP
258
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
T
B0
CP
Q
Sd
Q
T
B1
CP
Q
Sd
Q
T
B2
CP
Q
Brojila.
259
Q0
Q1
Q2
20
260
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.
Brojila.
261
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?
S0
1
0
R0
Minimizacijom slijedi:
S3 = 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
262
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?
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
263
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:
S3 = 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:
264
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.
265
Kod Mooreovog automata prijelaz u novo stanje funkcija je trenutnog stanja i pristiglog
znaka, a izlaz samo funkcija trenutnog stanja. Grafiki je automat prikazan na slici.
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
266
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
&
CP
Q
I
1
CP
&
B1
CP
Q
267
12.2. Zadatak
Na slici je prikazan sklop koji oitava pritisak na jednostavnu tipkovnicu sastavljenu od triju
tipaka. U ovisnosti o pritisnutoj tipki, izlaz sklopa odreen je tablicom i traje tako dugo dok je
tipka pritisnuta. Pretpostaviti da se ne moe dogoditi situacija da vie tipaka bude pritisnuto
istovremeno, te da nakon svakog pritiska tipke slijedi period u kojem niti jedna tipka nije
pritisnuta. Izlazi sklopa mijenjaju se u skladu sa signalom takta.
I1
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
I1I0
01
11
10
11
t
O1O0
01
10
t
KA
t
I1
ita
tipkovnice
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
268
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
10/10,1
11/00,0
S1
00,01,10/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.
269
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
270
&
ita
tipkovnice
I1
&
I0
&
D0
D1
D2
Q1
O1
O0
Q2
KA
Q0
CP
B1
&
&
CP
K
&
J
1
B0
CP
K
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
271
I1
ita
tipkovnice
I0
Kombinacijski dio
Sekvencijski dio
Kombinacijski
dio
O1
O0
KA
CP
11
S0
11
[00,0]
00
S1
11
11
01
S2
[00,1]
11
[01,1]
00,01,10
10
00,
01,
10
S3
[10,1]
00,01,10
S4
[00,0]
00,01,10
[O1O0,KA]
I1I0
Poetno stanje je S0. U tom stanju eka se na pritisak bilo koje tipke. Ukoliko se
pritisne tipka A (kd 00) ide se u stanje S1 i postavlja odgovarajui izlaz, ukoliko se
pritisne tipka B (kd 01) ide se u stanje S2 i postavlja odgovarajui izlaz a ako se
pritisne tipka C (kd 10) ide se u stanje S3 i postavlja odgovarajui izlaz. Na sljedei
impuls takta odmah se prelazi ili u stanje S0 ili u stanje S4 gdje se eka na otputanje
tipke. Usporedimo li ovaj Mooreov automat sa prethodnim Mealyjevim, vidimo da je
osnovna razlika u opisivanju ponaanja u trenutku kada se pritisne tipka. Mealyjev
automat vezao je izlaze uz prijelaze, pa je sve tri tipke mogao opisati prijelazom u jedno
novo stanje uz odgovarajui izlaz. Mooreov automat izlaz vee iskljuivo uz stanje, pa
za svaku tipku mora generirati novo stanje sa odgovarajuim izlazom.
Postupak realizacije sklopa isti je kao i kod Mealyjevog automata. Najprije odreujemo
potreban broj bistabila. Kako imamo 5 stanja, trebamo minimalno 3 bistabila. Zatim
kodiramo stanja. Npr.:
272
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
273
KA = Q1 + Q0
J 2 = (Q1 + Q0 )(I1 + I 0 )
K 2 = I1 I 0
J1 = Q2Q0 (I1 I 0 )
K1 = 1
J 0 = Q2Q1 I 0
K0 = 1
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:
274
S1
0/0
1/1
1/0
1/0
0/0
S0
S2
0/0
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
275
&
I
1
&
&
=1
&
&
&
=1
B
D 0Q
CP
Q
&
&
B
D 1Q
CP
Q
&
B
D 2Q
CP
Q
CP
b) Mooreov automat.
Mooreov automat koji rjeava zadani problem u ovom e sluaju imati dvostruki broj
stanja. Naime, pogledajmo Mealyjev automat iz a) dijela zadatka. Iz stanja S1 sa
ulazom 1 idemo u S3 i na izlazu dajemo 0. Iz stanja S4 sa ulazom 0 idemo takoer u
stanje S3 ali sada na izlazu dajemo 1. No budui da kod Mooreovog automata izlaz
ovisi iskljuivo o trenutnom stanju, tada u S3 moramo dati ili 0 ili 1 to nee biti u
skladu s potrebnim ponaanjem automata. Zbog toga stanje S3 cijepamo (u najgorem
sluaju) u onoliko stanja koliko ima razliitih izlaza koje treba dati. Slino razmatranje
moemo provesti za sva ostala stanja. Automat koji emo tako dobiti jest:
0
S1
[0]
[1]
[0]
0
S0'
[1]
[0]
S3
[0]
S3'
[1]
S2'
[1]
S0
S2
S1'
1
S4
[0]
1
0
S4'
[1]
276
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
277
IZLAZ = Q1
Shema sklopa:
ULAZ
IZLAZ
&
&
B
T 1Q
CP
Q
=1
B
T 0Q
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.
278
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
279
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
S1
1
S0
[001]
S2
[010]
S3
[011]
[000]
1
0
S7
[111]
S6
[110]
S5
[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
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
S4
[100]
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
280
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:
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
281
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
Uoiti da u tablici za stanje 9 pie da je sljedee stanje 10, ali se istovremeno signal R
postavlja u 1. Budui da signal R ima vei prioritet, iz stanja 9 brojilo e otii u stanje 0.
Razlog zbog kojeg u tablici stoji da e brojilo iz stanja 9 otii u stanje 10 jest bolja
minimizacija. Logiki izrazi koji opisuju ulaze Ti tj. pobudu bistabila bit e
jednostavniji. Nakon minimizacije dobije se:
T0 = 1
T1 = Q0
T2 = Q1Q0
T3 = Q2Q1Q0
R = Q3Q0
Shema sklopa:
D0
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.
&
282
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:
11
Q1Q0
10
1
1
D2
00
01
Q2 0
1
D1
00
Q2 0
1
01
11
Q1Q0
10
1
1
283
D0
Q2 0
00
01
D2 = Q2 Q0 + Q1Q0
&
&
B0
D
CP
11
Q1Q0
10
D1 = Q2 Q0 + Q1Q0
&
&
B1
D
CP
D0 = Q2 Q1 + Q2 Q1
&
&
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
Stroj s konanim brojem stanja zadan je slikom. O kojoj
se vrsti automata radi? Projektirati sklop i nacrtati logiku
shemu ako je bistabil B1 tipa D, a bistabil B0 tipa JK.
Koristiti minimalni broj osnovnih logikih sklopova (I,
ILI, NE). Stanje Si kodirati binarnim zapisom dekadskog
broja i.
1/0
S0
0/1
1/0
S1
0/0
1/1
S2
0/1
284
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
Q1Q0
10
00
Q1 0
1
K2
Q2 0
J
01
11
Q0I
10
1
1
Q1Q0
10
J0
00
01
11
Q1Q0
10
Q2 0
J =I
K=I
00
01
11
Slijedi:
D = Q1Q0 I
O = Q1 I + Q1 I
B
J 0Q
CP
Q
K
&
B
D 1Q
CP
Q
&
&
285
Q1
0
0
1
1
0
0
1
1
Q0
0
1
0
1
0
1
0
1
Sljedee stanje
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 :
Q0
Q2Q1
00
01
11
10
0
1
Q1Q0
Q1
Q0
Q2
286
T1 :
Q0
Q2Q1
00
01
11
10
0
1
T0 :
Q0
Q2Q1
Q2
Q1
Q0
00
01
11
10
Q0
Q2Q1
Q1
00
01
11
Q0
Q2Q1
Q0
Q2Q1Q0
00
01
11
10
0
1
10
Q2
Q1
O0 :
Q0
Q2
Q1
O1:
Q0
1
Q2Q0
O1 = Q1 , O0 = Q2 Q0 + Q1Q0 + Q2 Q1Q0
T2 = Q1Q0 , T1 = Q0 , T0 = 1
1
Q1
Q2
Q0
Q1Q0
287
&
T
CP
Q0
T
CP
Q1
Q2
T
CP
CP
&
&
O0
&
O1
?
?
?
?
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
288
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
Q1
1
1
0
s= 1
Q0
0
1
1
1
1
1
0
A
B
s= 0
0
0
0
1
s= 1
O2
O1
s= 0
0
1
0
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!
289
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 :
Q0
Q2Q1
Q2Q0
00
01
1
Q1Q0
11
10
Q1
Q0
Q2
290
D1:
Q0
Q2Q1
Q1Q0
00
0
1
01
11
Q0
Q2Q1
0
Q0
00
01
11
10
Q0
Q2Q1
00
01
11
Q0
Q2Q1
10
1
Q2
Q1
O1 :
Q0
Q2
Q1
O2:
Q0
Q2
Q1
Q2Q1Q0
D0 :
10
Q0
Q2Q0
Q2Q0
00
01
1
Q1Q0
11
10
Q1
Q0
Q2
O0 :
Q0
Q2Q1
291
Q1Q0
00
0
1
01
11
10
1
Q1Q0
Q1
Q2
Q0
Q2
Slijedi:
D2 = Q1Q0 + Q2 Q0
D1 = B1 B0 + B2 B1 B0
D 0 = B0
O2 = Q2 Q0
O1 = Q2 Q0 + Q1Q0
O0 = Q1Q0 + Q1Q0 + Q2
292
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
293
c d Q1
D1:
cdQ2
000
Q1Q0
c=0
001 011
00
01
010
11
10
Q2
D0:
100
c=0
001 011
01
11
110
Q0
Q1
Q1
d
Q2
c dQ1Q0
010
00
c=1
101 111
Q0
c d Q0
cdQ2
000
Q1Q0
c Q1Q0
100
c=1
101 111
110
1
Q0
10
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.
294
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
CP
Q2 Q1 Q0
Sin
S/R
1
CP Q
CP
295
Malo paljivijom analizom moemo uoiti da sklop nikada ne prolazi kroz stanja 9, 10,
11 ili 13. Zbog toga ta stanja moemo proglasiti don't care stanjima za funkciju Sin,
ime se moe dobiti jo minimalniji izraz:
S in = Q2 QB + Q1Q0 QB
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
296
297
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;
298
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;
299
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";
300
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
301
Kombinacijski dio
Sekvencijski dio
Kombinacijski
dio
izlazi
CP
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
302
303
304
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';
305
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;
306
ZADACI ZA VJEBU
1.
Uporabom logikih blokova iz zadatka 12.14 realizirati sklop s dva izlaza (f1 i f2), pri
emu je:
f 1 ( A, B, C , D ) = A (B + C ) D + A C
f 2 ( A, B, C , D ) = (B + C ) A + AD
2.
VHDL-om je opisan neki automat. Na temelju tog opisa nacrtati grafiki prikaz
automata. O kojoj se vrsti automata radi i zato?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY automat IS PORT (
END automat;
307
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.
308
S1
[1,0]
1
1
1
8.
S2
[1,1]
0
0
0
S3
[1,1]
Memorije.
13.
309
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]
310
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.
311
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.
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:
312
UF = US
CS
CS + CB
UF = US
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.
313
Neka logikoj razini 1 odgovara napon Umax. Da bi se sadraj elije ispravno oitao,
napon na CS smije pasti najnie do napona U1,min, ime je odreena razlika napona
U S = U max U 1,min . Za struju IL vrijedi:
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.
IL
1nA
13.5. Zadatak
Prikazati CMOS SRAM eliju i objasniti naine rada.
Q
TA
Q
TB
Dva invertora povezana su u bistabilni element. elija moe raditi na tri naina rada:
314
T5
T2
T4
T1
T3
T6
Pogledajmo prvo "prirodni" nain organizacije memorije: memorijske elije koje uvaju
bitove iste logike rijei smjetene su jedna do druge, a pojedine rijei smjetene su
jedna ispod druge.
M bitova
WL[0]
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.
315
Kako je u ovom sluaju kapacitet memorije (C=256 bitova) odreen umnokom broja
logikih rijei (N) i broja bitova u jednoj logikoj rijei (M), broj logikih rijei jednak
je:
N=
C 256
=
= 32
8
M
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.
316
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)
M P = M 2L
A[0]
Dekoder stupca
A[L-1]
Podaci (M bitova)
C 256
=
= 32
8
M
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:
2L = P
L = log 2 P = log 2 2 = 1
Dakle, jedan adresni bit dovodi se na dekoder stupca, a preostalih K-L=5-1=4 adresna
bita dovode se na dekoder retka. Memorija u tom sluaju ima Q = 24 = 16 fizikih rijei,
gdje svaka fizika rije sadri dvije logike rijei.
Proraunajmo jo i duljine linija rijei i bita. Jedna fizika rije sadri PM=28=16
bitova, pa je duljina linije rijei 16. Memorija ima Q=16 fizikih rijei pa je duljina
linije bita 16.
Memorije.
317
318
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
Na raspolaganju je potreban broj memorijskih modula prikazanih na
slici. Njihovom uporabom projektirati memoriju 5123.
R /W
000
000
000
0FF
0FF
0FF
100
100
100
1FF
1FF
1FF
1. bit
2. bit
3. bit
Memorije.
R /W
319
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
3.
4.
5.
6.
14.
321
+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)
322
(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 izl = R f
U REF 3
ai 2 i
R0 i = 0
(8)
0.4 = R f
U REF 3
U
U
ai 2i = R f REF 0 23 + 0 2 2 + 0 21 + 1 2 0 = R f REF 1
R0 i =0
R0
R0
pa slijedi:
R f = R0
0 .4
0 .4
= 80k
= 6 .4 k
U REF
5
323
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
Rf
2R
IN
2R
UN
2R
a0
2R
a1
2R
a2
2R
UX
A =
+
Uizl
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):
324
2R
2R
2R
UX
UREF
2R
UREF
Pa je:
U X ,a 3 = 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
325
U
U
U
R
= 3 = REF = X ,a 3
2
3 2
2
R+R
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 X ,a1
U
=U4 = 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 =
2
2
U REF U X ,a 3
=
38
8
Sumiramo li utjecaj svih izvora na napon toke X (pomnoen sa ai, jer ako je ai=0, tada
taj napon ne doprinosi naponu UX), slijedi:
U X = a3 U X ,a 3 + a 2 U X ,a 2 + a1 U X ,a1 + a0 U X ,a 0
= a3 U X ,a 3 + a 2
U X ,a 3
+ a1
U X ,a 3
2
4
U
a
a a
= REF a3 + 2 + 1 + 0
3
2 4 8
U
= REF (8a3 + 4a2 + 2a1 + a0 )
38
3
U
= REF ai 2i
3 8 i =0
+ a0
U X ,a 3
8
Sada kada znamo koliko iznosi UX, moemo izraunati izlazni napon:
326
Rf
4
2R
UX
IN =
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 =
Rf
R f U REF
5
R f = 3.84k
2R 3 8
2 1k 3 8
Rf
2R
327
14.3. Zadatak
Konstruirati D/A konvertor koji e na ulazu primati dvoznamenkasti dekadski broj zapisan u
BCD kodu, i koristiti mreu s teinski rasporeenim otporima.
Rf
+UREF
a3
a2
2R
a1
4R
a0
8R
b3
10R
b2
20R
b1
40R
b0
80R
IN
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
8 R 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
328
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
a2
IN
A =
+
Uizl
a3
stotice
8
R
15
U C 0 U C1 U C 2 U C 3
+
+
+
8
4
2
R
R
R
R = R c0U REF + c1U REF + c2U REF + c3U REF
UT =
P
1
1
1
1
4R
2R
R
8R
+
+
+
8R 4 R 2 R R
8
R U REF 3
RPU REF 3
U REF 3
i
i
15
=
c
2
=
c
2
=
ci 2 i
i
i
8 R i =0
8R
15
i =0
i =0
Ako umjesto UT piemo samo U, nadomjesna shema poetnog sklopa prikazana je na
sljedeoj slici:
329
Rf
1
R0
RS
RP
RP
U
jedinice
RS
RP
UX
U
desetice
IN
R0
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
330
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
R0
R0
R0 RP
9
81
9
RS +
= R0 RS +
= R0 RS = R0 = RP = 8.1RP
R0
R0 + RP
10
10
+ R0
9
Sada moemo izraunati traene otpore:
RP =
8
8
R = 4.5k = 2400
15
15
R0 = 9 RP = 21,6k
331
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 =
R0 || R0
U REF
U
9
= REF
15 RP + R0 || R0
15 11
U REF
2 . Taj se napon do
15
R0 || R0
U REF
U
9
2
= REF
2
15
15 11
RP + R0 || R0
R0 || RP
U
9
1
= REF 2
RS + R0 || RP
15 11 10
U REF
5 . Taj se napon do
15
332
U1 =
R0 || RP
U
9
1
= REF 5
RS + R0 || RP
15 11 10
R0 || RP
U
9
1 1
= REF 5
RS + R0 || RP
15 11 10 10
(100 1 + 10 2 + 1 5) = REF
125
15 11 100
15 11 100
75
= U REF
1100
Rf
R0
= U REF
75 R f
1100 R0
Rf =
R0 =
21.6k = 31.68k
U REF
75
5 75
U REF 9 1
(100 A + 10 B + 1 C )
15 11 100
Rf
R0
R
U REF 9 1
(100 A + 10 B + 1 C ) f
15 11 100
R0
333
14.5. Zadatak
Kako se zove 10 bitni A/D pretvornik ija je principijelna shema prikazana na slici? Ako je tdb
20 ns, tsetup 20 ns, tls 10 ns, tda 100 ns (vrijeme potrebno za d/a pretvorbu), te tk 50 ns (vrijeme
reagiranja komparatora), koja se frekvencija oitavanja uzoraka moe postii u najgorem
sluaju? Koji je najmanji napon koji sklop moe izmjeriti? Poznato je da se na ulaz sklopa
mogu dovoditi naponi od 0 do 10 V. Brojilo je izvedeno kao sinkrono, sa serijskim
prijenosom.
START
Q
S
uul
CE
CP
A =
+
BROJILO
ud
D/A
CP
334
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.26MHz
t db + t da + t k + t setup 20n + 100n + 50n + 20n 190n
Najdulje vrijeme pretvorbe dobiva se kada se pretvara maksimalni doputeni napon, jer
tada brojilo mora brojati do kraja. To znai da je za pretvorbu u tom sluaju potrebno
potroiti 2n-1 impulsa takta, pa je maksimalna frekvencija oitavanja u najgorem sluaju
jednaka:
f ocitavanja ,max =
f CP ,max
n
2 1
f CP ,max
10
2 1
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.
335
CP
CP
naprijed /
/ natrag
uul
UP
DN
REVERZIBILNO
BROJILO
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.26MHz
t db + t da + t k + t setup 20n + 100n + 50n + 20n 190n
Najvea frekvencija CPa odreena je najmanjom dozvoljenom frekvencijom (odnosno
najduom stazom), pa impulsi CPa smiju biti maksimalne frekvencije:
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
336
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 =
0.009775
V
= 51416.5
1
s
5.26 M
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
337
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.
338
uul
D/A pretvornik
-
Clear
Q
B3
Cd
R
B2
Q
Cd
B1
Cd
R
Q
B0
Cd
R
&
o0
CP
CP B
CE
o0
o1
a1
o1
o2
o2
o3
a0
o3
a
a1 0
&
1
CP
n1
n0
Start
339
10, ime se selektira bistabil B1. Sljedei CP Johnsonovo brojilo prebacuje u stanje 100,
i uzrokuje postavljanje B1. Na izlazu D/A time se dobije napon 10 V koji je manji od
10.2 V pa je izlaz komparatora 0. Na sljedei CP Johnsonovo brojilo prebacuje u stanje
010, no kako se na ulaz R od B1 dovodi 0, nita se ne dogaa. Sljedei CP Johnsonovo
brojilo prebacuje u stanje 001 (1 na izlazu C). Rastui brid koji se time dobije okida
dvobitno brojilo i ono prelazi u stanje 11, ime se selektira bistabil B0. Sljedei CP
Johnsonovo brojilo prebacuje u stanje 100, i uzrokuje postavljanje B0. Na izlazu D/A
time se dobije napon 11.2 V koji je vei od 10.2 V pa je izlaz komparatora 1. Na
sljedei CP Johnsonovo brojilo prebacuje u stanje 010, a kako se time na ulaz R od B0
dovodi 1, B0 se resetira. Istodobno na ovo stanje reagira i NI sklop (dvobitno brojilo je u
stanju 11, i B=1) i na izlazu daje 0 ime se na CE dovodi 0 (jer je po pretpostavci Start
odavno zavrio). Ovime se blokira daljnje odbrojavanje Johnsonovog brojila, i postupak
konverzije je gotov.
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
a1 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:
340
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
7
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
341
U izl
0.35
16
14
12
10
8
6
4
2
0
10 11 12 13 14 15 16
ZADACI ZA VJEBU
1.
2.
15.
343
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
A
RB
B
344
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
A
B'
RB
B
Treba uoiti da struja u tom sluaju tee iz UCC kroz RC na izlaz f, i dalje se dijeli kroz
sve tranzistore sklopova sljedeeg stupnja spojene na taj izlaz. to je ta struja vea, vei
je pad napona na RC, i napon izlaza f pada. Ukoliko je previe sklopova spojeno na taj
izlaz, napon na f e previe pasti, i struja vie nee biti dovoljna za dranje svih
tranzistora u zasienju, ime se dobiva neispravan rad. Vidimo dakle da ovaj sluaj
postavlja ogranienje na broj ulaza koje spajamo na promatrani izlaz.
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
345
+UCC
RC
IC
+UCC
RC
RB
A
RB
IB
RB
A'
(n 1) I B
n
RB
B'
+UCC
RC
IC
RB
RB
A' '
B' '
Nadomjesna shema:
I
RC
+UCC
RB
RB
+UBEzas
+UBEzas
346
U CC
U
+ n BEzas
RC
RB
U BEzas
U CC U BEzas
n
1
+
RC
RC
U U BEzas
RC RB
U U BEzas
IB =
=
= CC
=
RB
RB + nRC
RB
RB
+n
RC
U U BEzas I B R B
n = CC
= 13.25
I B RC
Slijedi da je maksimalni broj ulaza koji se smije prikljuiti na izlaz f jednak 13.
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 RB RB
U CC
=
RC
U BEzas
RB
+ (n 1)
U BEzas
RB
1
1 n 1
+
+
RB
RC R B
Struja baze tranzistora koji ima najvei bazni otpor tada je:
U U BEzas
RB
347
U BEzas
RB
+ (n 1)
U BEzas
RB
1
1 n 1
+
+
RB
RC R B
U BEzas
U CC
=
RB
RC
RB
RC
U BEzas
RC
+ 1 + ( n 1)
RB
RB
U CC U BEzas
R B + RC + ( n 1) RC
RB
RB
pa je n odreen izrazom:
n=
U CC U BEzas I B R B + 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
348
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
U CC U CEzas
I C max n I IL
Rmin =
349
5 0 .3
= 2.35k
4 m 4 0 .5 m
Ujedno vidimo i da broj izlaza koji je spojen zajedno ne utjee na iznos otpora R.
15.3. Zadatak
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.
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:
350
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
brojnik trebao biti maksimalan, dakle U CC )? Radi se o tome da
R
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.
351
U CE [V ]
U CC
NAP!
I C = hFE I B = I OL
U CE = U CC I C R
Zasienje
I C hFE I B = I OL
U CE = U CEzas
0.4V
0.1V
R[]
0
R>0
U CC U OH min
= 1.84k
k I OH + n I IH
R=
U CC U OL max
= 0.479k
I OL n I IL
352
15.4. Zadatak
Nacrtati standardni TTL. Koju funkciju ostvaruje sklop? Koji su dijelovi sklopa? Analizirati
rad sklopa (bez optereenja i sa optereenjem identinim sklopovima). Analizirati spojeni I
izveden ovim sklopovima.
+UCC 5V
R1
4 k
R2
1.62k
R4
130
Tr4
A
B
Tr1
Tr2
R3
1k
f = AB
D
Tr3
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 C1 = u ul + 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
353
svega 0.3V to nije dovoljno da provede serija tranzistora Tr2 i Tr3, pa su oni sigurno u
zapiranju.
Pretpostavimo sada da izlaz sklopa nije optereen. Tada je struja baze IB4 = 0, nema
pada napona na otporu R2 te je UB4=UCC. Bitno je uoiti da zbog nepostojanja
optereenja izlaza izlazna je struja jednaka 0, pa Tr4 nije u zasienju (unato visokom
naponu baze) ve je na rubu zapiranja i aktivnog podruja. Tada je UBE4 isto kao i UD
jednako U. Izlazni napon tada je:
U izl = U CE 3 = U B 4 U BE 4 U D = U CC U U = 5 0.65 0.65 = 3.7V
I izl
1m
R2 == 5
1.62k = 5 32.4mV = 4.9676V
hFE
50
Analiza spojenog I
Neka jedan sklop na izlazu daje visoku naponsku razinu (lijevi sklop), a drugi nisku
(desni).
354
+UCC 5V
R1
4 k
R2
1.62k
5V
R4
R4
130 130
Tr4
A
B
Tr1
Tr2
R3
1k
D
Tr3
Tr3
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.
355
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
= 5 0.65m 1.62k 0.65 0.65 = 2.647V
356
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
R3
f = AB
D
Tr3
D'
EN
357
Kada je ulaz EN na nuli, sklop se ponaa kao "obini" standardni TTL sklop. Kad je EN
na visokoj razini, tranzistor provede i uzrokuje zatvaranje Tr2 (to zatvori i Tr3) i Tr4.
Izlaz f tada je izoliran i od visoke, i od niske razine.
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:
358
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
359
A
nisko
visoko
Tr1
vodi
ne vodi
f
UDD
0
Tr2
ne vodi
vodi
f
1
0
A
1
0
+UDD
Tr1
Tr2
f = A+ B
A
Tr3
Tr4
360
A
nisko
nisko
visoko
visoko
B
nisko
visoko
nisko
visoko
Tr2
vodi
ne vodi
vodi
ne vodi
Tr1
vodi
vodi
ne vodi
ne vodi
Tr3
ne vodi
ne vodi
vodi
vodi
f
UDD
0
0
0
Tr4
ne vodi
vodi
ne vodi
vodi
B
0
1
0
1
A+ B
1
0
0
0
f
1
0
0
0
Tr1
Tr2
f = AB
A
Tr3
Tr4
B
nisko
visoko
nisko
visoko
361
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
362
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
f = A B + (C + D ) E = ( A + B) (CD + E )
Dakle, uporabom NMOS tranzistora trebati e ostvariti funkciju (A ILI B) I ((C I D)
ILI E).
Sklop je prikazan na slici.
Tranzistori Tr1 i Tr2 spojeni su u seriju i ostvaruju (A' I B'). Tranzistori Tr3 i Tr4
spojeni su u paralelu i ostvaruju (C' ILI D'). Paraleli tranzistora Tr3 i Tr4 u seriju je
spojen Tr5 ime se ostvaruje ((C' ILI D') I E'). Konano, serija tranzistora Tr1 i Tr2
spojena je u paralelu s upravo opisanom podmreom ime se ostvaruje (A' I B') ILI ((C'
ILI D') I E').
Na slian nain moe se analizirati i PDN.
363
+UDD
Tr1
Tr2
Tr3
Tr4
Tr5
f = A B + (C + D ) E
Tr6
Tr7
Tr8
Tr10
Tr9
364
15.8. Zadatak
CMOS tehnologijom ostvarena je funkcija f (vidi sliku). O kojoj se funkciji radi?
+UDD
f
E
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 )
365
izlaz = g = f = f
Krenimo redom u rjeavanje zadanih funkcija.
a) Komplement funkcije glasi:
g = f = AB
Rjeenje je prikazano na slici.
+UDD
+UDD
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
366
+UDD
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
367
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 )
f = A + B = B* B = A + B*
Pri tome smo uveli supstituciju B * = B , pa je B = B * . Zbog toga na ulaz B* treba
dovesti komplement od B. Rjeenje je prikazano na slici.
368
Tr1
Tr2
f = A+B
+UDD
Tr3
A
Tr5
Tr4
B* = 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 = A* A = A* B
pri emu na ulaz A dovodimo komplement. Rjeenje je prikazano na slici.
+UDD
Tr1
Tr2
+UDD
f = A B
Tr5
A =A
A
Tr3
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
369
f = A B + C = C* C = A B + C*
pri emu na ulaz C dovodimo komplement. Rjeenje je prikazano na slici.
+UDD
+UDD
Tr7
Tr1
Tr3
C* = 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 ) = A* A = ( A* + B) (CD + E )
pri emu na ulaz A* dovodimo komplement od A. 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.
370
+UDD
Tr7
Tr1
A* = A
A
Tr3
Tr4
+UDD
Tr8
B
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".
371
O popularnosti ove strukture dovoljno govori podatak da u seriji 40xx postoji nekoliko
ipova s ovim vratima. ip 4016 sadri 4 propusna vrata, dok ip 4066 sadri vrata
poboljanih karakteristika. ipovi s oznakama 4051, 5052 i 4053 sadre implementacije
multipleksora/demultipleksora uporabom propusnih vrata, i to: 4051 sadri jedan 8/1
multipleksor/demultipleksor, 4052 sadri dva 4/1 multipleksora/demultipleksora a 4053
sadri tri 2/1 multipleksora/demultipleksora. Dobra karakteristika ovih sklopova vidljiva
je iz njihovog opisa: oni mogu biti multipleksori ili demultipleksori, jer propusna vrata
proputaju o oba smjera! To znai da kod npr. multipleksora/demultipleksora 8/1 sklop
moemo koristiti kao multipleksor, pri emu imamo 8 ulaza i 1 izlaz, ili kao
demultipleksor pri emu imamo 1 ulaz i 8 izlaza.
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:
372
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.
373
374
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
CL
1
&
CL
CL
CL
CL
1
&
CL
CLR
CLK
CL
CL
CL
Kako bismo doli do principa izgradnje bistabila, pojednostavnimo shemu tako to
emo eliminirati signal za brisanje. Ovo emo napraviti tako da pretpostavimo da je taj
ulaz stalno spojen na '1'. Kako se ovaj signal vodi iskljuivo do NI logikih sklopova,
pogledajmo u to se oni pretvaraju:
NI CLR, X
NI (1, X ) = NI ( X ) = X
375
CL
CL
CL
CL
CL
CL
CL
CLK
CL
CL
CL
Na slici su odmah i osjenanje dvije interesantne strukture; precrtajmo sliku jo jednom:
1
CL
D
CL
1
CL
CL
CLK
CL
CL
CL
376
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
377
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.
379
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
u (t )
i(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
380
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
u (t ) = e
K (t ) .
(9)
RC
U zadatku koji rjeavamo, pobuda u(t) je vremenski promjenjiva, ali bitno je uoiti da je
po dijelovima konstantna. Ukoliko se ograniimo na rjeavanje jednadbe po
dijelovima, moemo postupiti na slijedei nain. Ako (9) zapiemo kao
t
dK (t )
1
u (t ) = e RC
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
381
t1
RC
U H (1 e ) = U L + e
W
te je
t
t1
1
(15)
W = U H (1 e RC ) U L e RC
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
t t1
t1
U L + U H (1 e RC ) U L e RC , t1 <= t
383
384
( 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.
385
Dodatak 3. K tablice
Prazne K-tablice
Tablica za dvije varijable:
A
B
0
1
AB
C
00
01
11
10
01
11
10
0
1
AB
CD
00
00
01
11
10
386
ABC
DE
000
001
011
010
110
111
101
100
00
01
11
10
ABC
DE
000
001
011
010
100
00
01
11
10
A
B
AB
C
00
01
11
10
101
111
110
Dodatak 3. K tablice.
387
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
388
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
389
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)