366
Zavod za elektroniku, mikroelektroniku, računalne i inteligentne sustave Marko Čupić, dipl. ing. ZBIRKA RIJEŠENIH ZADATAKA IZ DIGITALNE ELEKTRONIKE Zagreb, 2004

Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Embed Size (px)

Citation preview

Page 1: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zavod za elektroniku, mikroelektroniku, računalne i inteligentne sustave

Marko Čupić, dipl. ing.

ZBIRKA RIJEŠENIH ZADATAKA IZ

DIGITALNE ELEKTRONIKE

Zagreb, 2004

Page 2: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Verzija 1.3 (2002-2005) Marko Čupić. Zabranjeno je umnažanje / reproduciranje / modificiranje bilo kojih dijelova Zbirke bez pismene dozvole autora.

Page 3: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Predgovor Zbirka riješenih zadataka iz Digitalne elektronike namijenjena je svim studentima koji polažu ovaj kolegij, ili su zainteresirani za pokriveno gradivo. Zbirka je nastala kao rezultat rada na auditornim i laboratorijskim vježbama kroz akademske godine 2002/2003-2004/2005. Temeljni materijal korišten za izradu zbirke čine zadaci s auditornih vježbi u akademskoj godini 2001/2002. Zbirka je nadopunjena nizom zadataka u skladu s obnovljenim područjima obrađenim na predavanjima u akademskoj godini 2002/2003. U zbirci se također nalaze riješeni zadaci s kolokvija, pismenih ispita, kao i određen broj zadataka koje studenti vrlo često rješavaju pogrešno. Ponegdje su čak uključeni i ti pogrešni načini rješavanja, zajedno s objašnjenjem zašto je to pogrešno, i ispravnim rješenjem. Zbirka riješenih zadataka ne sadrži teorijska razmatranja koja pokriva ovaj kolegij, te se u tu svrhu preporuča knjiga prof. dr. sc. Uroša Peruška – Digitalna elektronika, logičko i električko projektiranje, III. prošireno izdanje, kao i uredno pohađanje predavanja. U zbirci se osim samog logičkog i električkog projektiranja digitalnih sklopova nalaze i zadaci vezani uz opisivanje i simuliranje istih uporabom VHDL-a. Više o samom jeziku za opis sklopovlja – VHDL-u – može se pronaći u materijalima za laboratorijske vježbe Stjepana Groša, dipl. ing. Dobar uvod u VHDL dostupan je također kroz skriptu mr. sc. Siniše Šegvića – Uvod u programski jezik VHDL, koja se može pronaći na stranicama kolegija. Ovim putem želio bih se također zahvaliti svima koji su mi pomogli u izradi ove zbirke, a napose mentoru prof. dr. sc. Vladi Glaviniću, bez kojeg ova zbirka nikada ne bi ugledala svjetlo dana, mr. sc. Borisu Kette-u za vrlo korisne rasprave i nove kuteve gledanja na pojedina područja digitalne elektronike, kolegi Stjepanu Grošu, dipl. ing. za podršku i komentare prilikom izrade Zbirke, kao i svima ostalima.

Marko Čupić, dipl. ing.

Zagreb, veljača 2004.

Page 4: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Sadržaj

1. Refleksije, preslušavanja i utjecaj kapacitivnosti. _________________________1

2. Zaštitno kodiranje. Brojevni sustavi. __________________________________25

3. Osnovni logički sklopovi.____________________________________________41

4. Booleova algebra. _________________________________________________65

5. Minimizacija logičkih funkcija. ______________________________________99

6. Standardni kombinacijski moduli. ___________________________________137

7. Standardni programirljivi moduli. ___________________________________163

8. Bistabil. ________________________________________________________179

9. Digitalna aritmetika. ______________________________________________193

10. Registri. ______________________________________________________209

11. Brojila. _______________________________________________________225

12. Strojevi s konačnim brojem stanja._________________________________245

13. Memorije. _____________________________________________________289

14. A/D i D/A konverzija.____________________________________________301

15. Integrirani logički sklopovi. ______________________________________323

Page 5: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 1

1. Refleksije, preslušavanja i utjecaj kapacitivnosti.

1.1. Zadatak Koji su tipični uzroci izobličenja signala u digitalnim sustavima? Objasnite ukratko.

Najčešći uzroci izobličenja signala u digitalnim sustavima su:

• Refleksije. • Preslušavanja. • Parazitne kapacitivnosti i induktivnosti.

Refleksije dolaze do izražaja kada je duljina vodova kojima signal putuje relativno velika u odnosu na valnu duljinu samog signala. U tom slučaju vodove treba promatrati kao prijenosne linije (engl. transmission lines). Preslušavanja nastaju kao rezultat utjecaja međukapaciteta i međuinduktiviteta. Manifestiraju se kao pojava pozitivnih ili negativnih naponskih smetnji na vodiču uslijed promjene naponske razine na nekom drugom vodiču. Parazitne kapacitivnosti i induktivnosti utječu na povećavanje vremena potrebnog za promjenu naponskih razina u digitalnom sustavu. Pri tome je uobičajeno dominantan utjecaj parazitnih kapacitivnosti.

1.2. Zadatak Objasnite pojam prijenosne linije.

Dugački vodiči (obzirom na valnu duljinu signala koji kroz njih putuje) nazivaju se prijenosne linije. Prijenosne linije imaju nekoliko karakterističnih parametara:

• C0 – kapacitet po jedinici duljine [pF/cm] • L0 – induktivitet po jedinici duljine [nH/cm] • R0 – otpor po jedinici duljine [Ω/cm] • G0 – vodljivost po jedinici duljine [S/cm] • Z0 – karakteristična impedancija [Ω] • T0 – kašnjenje signala po jedinici duljine [ps/cm]

Vrlo pojednostavljena nadomjesna shema prijenosne linije prikazana je u nastavku (a budući da se nećemo detaljno baviti prijenosnim linijama, model je dovoljan kako bi se dobila gruba slika o pojavama vezanim za prijenosne linije).

Page 6: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

2 Zbirka riješenih zadataka

lR0lL0

lG0lC0

olCjlG

lLjlRZ

ωω

++

=0

000

U zadacima u nastavku zbirke promatrat ćemo samo idealnu prijenosnu liniju (uniformna linija bez gubitaka; R0→0, G0→0), čija je također pojednostavljena nadomjesna shema zajedno s karakterističnom impedancijom prikazana u nastavku.

lL0

lC0

oC

LZ 0

0 =

Za razumijevanje prijenosne linije bitno je prisjetiti se činjenice da su električni signali koje koristimo u sklopovima zapravo elektromagnetski valovi koji se kroz prostor šire određenom brzinom (ograničenom brzinom svjetlosti c=3×108 m/s). Za napon i struju na prijenosnoj liniji važno je zapamtiti da su funkcija i vremena i položaja, što ćemo vidjeti u zadacima u nastavku.

Elektromagnetski valovi šire se kroz prostor brzinom µε

1=v , pri čemu su:

rµµµ ⋅= 0 , rεεε ⋅= 0 ,

⋅= −

m

F90 10)36/1( πε ,

⋅= −

m

H70 104πµ .

Lako se vidi da je za medij u kojem je εr=1 i µr=1: cs

mv =

⋅== 8

00

1031

εµ.

Kako je kod prijenosnih linija uobičajeno ispunjeno µr=1, slijedi da je brzina širenja signala određena izrazom:

r

cv

ε= .

Može se pokazati da je brzina širenja signala kod prijenosne linije bez gubitaka također određena izrazom:

Page 7: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 3

00

1

CLv = .

Ako je prijenosna linija dugačka l, tada će signalu trebati l⋅T0 vremena da dođe do njezinog kraja, te možemo pisati:

=⇒⋅

==s

mCLT

Tl

l

CLv

1000

000

1.3. Zadatak

Signal frekvencije 1 GHz putuje vodičem duljine 20 cm (npr. nekom sabirnicom). Poznato je εr=1.44. Da li vodič treba promatrati kao prijenosnu liniju? Da li isti zaključak vrijedi za sklop koji je izveden na čipu, gdje je duljina dotičnog vodiča smanjena na 25 µm?

Brzina širenja signala iznosi

⋅=⋅

==s

mcv

r

88

105.244.1

103

ε

Valna duljina signala iznosi mf

v25.0

101

105.29

8

=⋅⋅

==λ

Kako je u prvom slučaju 0.25 m približno jednako duljini vodiča od 20 cm, vodič je potrebno promatrati kao prijenosnu liniju. U drugom slučaju, gdje je duljina vodiča 10000 puta manja od valne duljine signala vodič nije potrebno promatrati kao prijenosnu liniju.

1.4. Zadatak Objasnite pojam refleksije i transmisije.

Neka je na prijenosnu liniju spojen izvor, čija je nadomjesna shema prikazana naponskim izvorom Us(t) i otporom Rs, te trošilo RL. Nadomjesna shema cijelog sklopa prikazana je u nastavku.

Us(t)+

-

Rs Z0

RLprijenosna linija

A B

AρBρ

Definiraju se faktor refleksije na ulazu linije ρA i faktor refleksije na izlazu linije ρB:

Page 8: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

4 Zbirka riješenih zadataka

0

0

ZR

ZR

S

SA +

−=ρ i

0

0

ZR

ZR

L

LB +

−=ρ .

Faktor refleksije je mjera diskontinuiteta (razlike u otporu) koji vidi signal, i određuje koliko će se signala reflektirati u suprotnom smjeru. Ako je sa X označen diskontinuitet, tada će vrijediti:

X

ρ

ρ+1Upadni val

Reflektirani val

Transmitirani val

Dakle, kada signal amplitude Ui dođe na mjesto diskontinuiteta, signal amplitude ρ⋅Ui vraća se kao reflektirani signal, a diskontinuitet prolazi signal amplitude (1+ρ)⋅Ui. Ovo zapravo znači da na lijevo i desno od diskontinuiteta naponska razina postaje ista (lijevo je prije refleksije bio napon Ui, nakon refleksije vraća se još ρ⋅Ui, tako da je ukupni napon na lijevoj strani (1+ρ)⋅Ui, što je isto naponu koji se nalazi na desnoj strani). Budući da prijenosna linija ima dva moguća diskontinuiteta, refleksije se mogu događati na ulazu i izlazu linije, pa se stanje na liniji obično prikazuje dijagramom odbijanja (engl. bounce diagram, lattice diagram). Dijagram se sastoji od dvije paralelne linije gdje lijeva strana predstavlja ulaz linije (točka A) a desna strana izlaz linije (točka B). Vrijeme teče prema dolje. Neka u trenutku t=0 na liniju dolazi signal Ui. Ako je duljina linije označena s l, a kašnjenje signala po jedinici duljine sa T0, tada je vrijeme potrebno da signal stigne s ulaza na izlaz linije određeno izrazom:

0TlTd ⋅=

Stanje na liniji promatra se u diskretnim vremenskim trenucima, koji su višekratnici vremena Td. Stanje na liniji tada je prikazano dijagramom odbijanja u nastavku. Napon u pojedinoj točki jednostavno se dobije zbrajanjem svih doprinosa do tog trenutka. Npr. napon u točki A u trenutku tx iznosi:

( )222

222

1

)(

ABABABBi

ABiABiABiBiixA

U

UUUUUtU

ρρρρρρρρρρρρρρ

⋅+⋅+⋅++⋅=

⋅⋅+⋅⋅+⋅⋅+⋅+=

U istom trenutku napon u točki B iznosi:

( )ABABBi

ABiABiBiixB

U

UUUUtU

ρρρρρρρρρρ

⋅+⋅++⋅=

⋅⋅+⋅⋅+⋅+=2

2

1

)(

Page 9: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 5

Do razlike je došlo uslijed činjenice da reflektirana komponenta 22ABiU ρρ ⋅⋅ koja je u

trenutku t=0+4Td krenula od točke A prema točki B tamo još nije stigla.

t=0 t=0

t=0+1Tdt=0+1Td

t=0+2Td t=0+2Td

t=0+3Td t=0+3Td

t=0+4Td t=0+4Td

t=0+5Tdt=0+5Td

t=0+6Td t=0+6Td

iU

BiU ρ⋅

ABiU ρρ ⋅⋅

ABiU ρρ ⋅⋅ 2

22ABiU ρρ ⋅⋅

23ABiU ρρ ⋅⋅

33ABiU ρρ ⋅⋅

l

t=tx

A B

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 određen:

0

0

ZR

ZUU

SSi +

=

Page 10: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

6 Zbirka riješenih zadataka

1.5. Zadatak

Koji su karakteristični slučajevi opterećenja prijenosne linije? Izračunajte faktor refleksije.

Postoje tri karakteristična slučaja:

• Terminirana linija: RL=Z0. • Kratki spoj linije: RL=0. • Otvorena linija: RL=∞.

Us(t)+

-

Rs Z0

RL=Z0prijenosna linija

A B

AρBρ

000

00 =+−

=ZZ

ZZBρ

Us(t)+

-

Rs Z0

RL=0prijenosna linija

A B

AρBρ

10

0

0

0 −=+−

=Z

ZBρ

Us(t)+

-

Rs Z0

RL=prijenosna linija

A B

AρBρ

10

0 =+∞−∞

=Z

ZBρ

U slučaju kada je linija terminirana, nema refleksija! Ujedno je potrebno zapamtiti i kada je linija terminirana: otpor tereta i impedancija linije moraju biti jednaki (RL=Z0).

Page 11: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 7

1.6. Zadatak

Dva digitalna sklopa povezana su dugačkim vodom na tiskanoj pločici. Sklop A šalje sklopu B informaciju podizanjem napona ug=U na izlazu s 0V na +5V. Poznati su slijedeći podaci: izlazni otpor sklopa A iznosi 100Ω, karakteristična impedancija voda iznosi 100Ω, ulazni otpor sklopa B iznosi 3900Ω. Brzina signala kroz prijenosnu liniju iznosi 2⋅108 m/s, a duljina samog voda iznosi 40 cm. Prikažite naponsko stanje na vodu.

Poznato je:

Ω= 100izR , Ω= 1000R , Ω= 3900ulR , smv /102 8⋅= , mcml 4.040 == Da bi signal stigao s jednog kraja linije na drugi, potrebno mu je vrijeme:

nsv

lTd 2

102

4.08 =

⋅==

Prikazani sklopovi mogu se nadomjestiti električkom shemom prema slici:

Au BuulR

izlR

gu

0RA B

Faktor refleksije na ulaznom kraju voda:

0100100

100100

0

0 =+−

=+−

=RR

RR

iz

izAρ

Vidimo da je izlazni otpor sklopa A prilagođen karakterističnoj impedanciji voda pa na tom kraju neće dolaziti do refleksije. Faktor refleksije na izlaznom kraju voda:

A B

izu ulu

Page 12: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

8 Zbirka riješenih zadataka

95,01003900

1003900

0

0 =+−

=+−

=RR

RR

ul

ulBρ

Kako je ρB≠0, na ovom kraju dolaziti će do refleksije. Nacrtajmo dijagram odbijanja:

t=0 ns t=0 ns

t=2 nst=2 ns

t=4 ns t=4 ns

VUi 5,2=

VU Bi 375,2=⋅ ρ

VU ABi 0=⋅⋅ ρρ

l

A B

VRR

RUU

izgi 5,2

100100

1005

0

0 =+

⋅=+

=

VU Bi 375,295,05,2 =⋅=⋅ ρ

VU ABi 0095,05,2 =⋅⋅=⋅⋅ ρρ

Promatrajmo kretanje napona na oba kraja voda:

Izlaz sklopa A: Au (ulazni kraj voda)

Ulaz sklopa B: Bu (izlazni kraj voda)

0. t=0⋅Td =0 ns uA(0 ns)=2,5 V

t=0⋅Td =0 ns uB(0 ns)=0 V

t=1⋅Td =2 ns uA(2 ns)=2,5 V

1. t=1⋅Td =2 ns uB(2 ns)=2,5+2,375=4,875 V

2. t=2⋅Td =4 ns uA(4 ns)=2,5+2,375=4,875 V

t=2⋅Td =4 ns uB(4 ns)=2,5+2,375=4,875 V

Page 13: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 9

Objašnjenje po fazama… 0. Sklop A generira na izlazu napon od 5V. Napon se dijeli na dijelilu izlR - 0R .

Zatim započinje širenje naponskog vala prema izlazu voda. U ovom trenutku napon u točci B i dalje je 0, jer naponskom signalu treba Td vremena kako bi stigao do drugog kraja.

1. Naponski val amplitude 2.5V stiže do kraja voda. Tu se događa refleksija, i reflektirani val počinje se širiti prema početku voda. Reflektirani val ima amplitudu jednaku amplitudi upadnog vala puta faktor refleksije. Signal koji se iz ove točke širi dalje (prema teretu; transmitirani val) ima amplitudu jednaku amplitudi upadnog vala pomnoženoj faktorom refleksije uvećanim za 1. Dakle, vraća se 2,375V, a na teret ide 4,875V.

2. Reflektirani val stiže do početka voda. Kako je ovaj kraj otporno prilagođen, nema refleksije. Napon u toj točki od sada na dalje jednak je naponu koji je vladao prije dolaska reflektiranog vala (2.5V) uvećanom 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 očekivati.

Grafički prikaz:

Za vježbu: Kakvo bi bilo stanje na vodu uz: a) Rul=∞, b) Rul=0?

1.7. Zadatak

Dva digitalna sklopa komuniciraju preko dugačkog voda na tiskanoj pločici. Poznati su slijedeći podaci: izlazni otpor sklopa A iznosi 150Ω, induktivitet voda po jedinici duljine 0.5µH/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. Prikažite naponsko stanje na vodu.

Poznato je:

Ω= 150izR mHL /5,00 µ= Ω= 3900ulR mpFC /500 =

t

ug

t

uA

5

5

t2

uB

5

4 6 [ns]

Page 14: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

10 Zbirka riješenih zadataka

Karakterističnu impedanciju voda možemo odrediti poznavanjem induktiviteta po jedinici duljine i kapaciteta po jedinici duljine voda:

Ω==== 1001000050

5,00 pC

LR

µ

Brzina širenja signala po vodu iznosi:

s

m

CLv 8

12600

1021050105,0

11 −−−

⋅=⋅⋅⋅

==

Vrijeme potrebno za prolaz signala do kraja voda iznosi:

nsv

lTd 3

102

6.08 =

⋅==

Faktor refleksije na ulaznom kraju voda:

2.05

1

100150

100150

0

0 ==+−

=+−

=RR

RR

iz

izAρ

Vidimo da izlazni otpor sklopa A nije prilagođen karakterističnoj impedanciji voda (ρA≠0) pa će na tom kraju dolaziti do refleksije. Faktor refleksije na izlaznom kraju voda:

95.01003900

1003900

0

0 =+−

=+−

=RR

RR

ul

ulBρ

Kako je ρB≠0, na ovom kraju također će dolaziti do refleksije. Napon koji će se po uključenju izvora pojaviti na prijenosnoj liniji iznosi:

VRR

RUU

izgi 2

100150

1005

0

0 =+

⋅=+

=

Page 15: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 11

t=0 ns t=0 ns

t=3 nst=3 ns

t=6 ns t=6 ns

t=9 ns t=9 ns

t=12 ns t=12 ns

t=15 ns t=15 ns

t=18 ns t=18 ns

VUi 2=

VU Bi 9,1=⋅ ρ

VU ABi 38,0=⋅⋅ ρρ

VU ABi 361,02 =⋅⋅ ρρ

VU ABi 0722,022 =⋅⋅ ρρ

VU ABi 06859,023 =⋅⋅ ρρ

VU ABi 013718,033 =⋅⋅ ρρ

l

A B

Promatrajmo kretanje napona na oba kraja voda:

Ulazni kraj: Izlazni kraj:

0. t=0⋅Td =0 ns uA(0 ns)=2 V

t=0⋅Td =0 ns uB(0 ns)=0 V

t=1⋅Td =3 ns uA(3 ns)=2 V

1. t=1⋅Td =3 ns uB(3 ns)=2+1,9=3,9 V

2. t=2⋅Td =6 ns uA(6 ns)=2+1,9+0,38=4,28 V

t=2⋅Td =6 ns uB(6 ns)=2+1,9=3,9 V

t=3⋅Td =9 ns uA(9 ns)=2+1,9+0,38=4,28 V

3. t=3⋅Td =9 ns uB(9 ns)=2+1,9+0,38+0,36=4,64 V

4. t=4⋅Td =12 ns t=4⋅Td =12 ns

Page 16: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

12 Zbirka riješenih zadataka

uA(12 ns)=2+1,9+0,38+0,36+0,0722 = 4,7132 V

uB(12 ns)=2+1,9+0,38+0,36=4,64 V

t=5⋅Td =15 ns uA(15 ns)=2+1,9+0,38+0,36+0,0722 = 4,7132 V

5. t=5⋅Td =15 ns uB(15 ns) = = 2+1,9+0,38+0,36+0,0722+0,06859 = 4,78179 V

6. t=6⋅Td =18 ns uA(18 ns) = = 2+1,9+0,38+0,36+0,0722 +0,06859+0,013718 = 4,795508 V

t=6⋅Td =18 ns uB(15 ns) = = 2+1,9+0,38+0,36+0,0722+0,06859 = 4,78179 V

Za vježbu: Nacrtati stanje na vodu prema izračunatim vrijednostima. Kojem naponu teži napon na krajevima voda? Zašto?

1.8. Zadatak Izlaz digitalnog sklopa priključen je na dugački vod. Sklop generira jedan idealni pravokutni impuls amplitude 5V i trajanja 2 ns. Ako je vod neopterećen, prikažite naponsko stanje na vodu. Još je poznato: Td=6 ns, karakteristična impedancija voda iznosi 100Ω, izlazni otpor digitalnog sklopa iznosi 400Ω.

6.05

3

100400

100400

0

0 ==+−

=+−

=RR

RR

iz

izAρ

1100

100

0

0 =+∞−∞

=+−

=RR

RR

ul

ulBρ

Pravokutni impuls od amplitude 5 V u trajanju od 2 ns možemo prikazati kao sumu dvije step funkcije: ug(t) = 5 (S(t)-S(t - 2 ns)) Efektivno dakle imamo pozitivni naponski skok u t = 0 ns i negativni naponski skok u t = 2 ns, a odziv na skok već je riješen u prethodnim zadacima.

VUU gi 1100400

1005

100400

100=

+⋅=

+=

Page 17: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 13

U trenutku t=0 kroz liniju kreće signal amplitude Ui, a 2 ns nakon njega kroz liniju se počinje širiti signal amplitude –Ui. Dijagram odbijanja prikazan je u nastavku:

t=0 ns t=0 ns

t=6 nst=6 ns

t=12 ns t=12 ns

t=18 ns t=18 ns

t=24 ns t=24 ns

t=30 ns t=30 ns

t=36 ns t=36 ns

VUi 1=

l

A B

VUi 1−=

VU Bi 1=⋅ ρ

VU Bi 1−=⋅ ρ

VU ABi 6,0=⋅⋅ ρρ

VU ABi 6,0−=⋅⋅ ρρ

VU ABi 6,02 =⋅⋅ ρρ

VU ABi 6,02 −=⋅⋅ ρρ

VU ABi 36,023 =⋅⋅ ρρ

VU ABi 36,023 −=⋅⋅ ρρVU ABi 36,023 =⋅⋅ ρρ

VU ABi 36,023 −=⋅⋅ ρρVU ABi 216,033 =⋅⋅ ρρ

VU ABi 216,033 −=⋅⋅ ρρ

Dijagrami napona na ulazu i izlazu iz linije prikazani su u nastavku:

Page 18: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

14 Zbirka riješenih zadataka

2

1,5

1

0,5

2 4 6 8 10 12 14 16 18 20 22 2624 28 30 32 34 36 38 40t [ns]

ui [V]

2

1,5

1

0,5

2 4 6 8 10 12 14 16 18 20 22 2624 28 30 32 34 36 38 40t [ns]

uA [V]

2

1,5

1

0,5

2 4 6 8 10 12 14 16 18 20 22 2624 28 30 32 34 36 38 40t [ns]

uB [V]

1V

1V 0,96V

1,6V

0,576V

2V

1,2V

0,72V

1.9. Zadatak

Izlaz digitalnog sklopa priključen je na dugački vod. Sklop u trenutku t=0 generira naponski skok amplitude 5V. Ako je vod neopterećen, prikažite naponsko stanje na vodu. Vod se sastoji od dva dijela. Na prvom dijelu kašnjenje signala po jedinici duljine iznosi

mnsT /1010 = a na drugom dijelu kašnjenje signala po jedinici duljine iznosi mnsT /52

0 = .

Duljina prvog dijela iznosi 0,2 m, a duljina drugog dijela 0,4 m. Karakteristična impedancija prvog dijela voda iznosi 100Ω a drugog dijela voda 60Ω, izlazni otpor digitalnog sklopa iznosi 150Ω. Prikažite naponsko stanje na liniji.

Kašnjenje signala na prvom dijelu voda iznosi:

nsTlTd 2102,0101

1 =⋅=⋅=

a na drugom dijelu voda:

nsTlTd 254,0202

2 =⋅=⋅= .

Vidimo da je kašnjenje signala kroz oba dijela vodiča je jednako. U zadatku imamo 4 faktora refleksije, određena sljedećim izrazima:

Page 19: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 15

2,0100150

100150

1,0

1,0 =+−

=+−

=ZR

ZR

iz

iz

Aρ , 25,010060

10060

1,02,0

1,02,0

2 −=+−

=+−

=ZZ

ZZρ ,

25,060100

60100

2,01,0

2,01,0

3 =+−

=+−

=ZZ

ZZρ , 1

60

60

2,0

2,0

3 =+∞−∞

=+−

=ZR

ZR

L

Naime, postoje 3 diskontinuiteta: ulaz u prvi vod (točka A), spoj dvaju vodova (točka X) i izlaz iz drugog voda (točka B). Napon na ulazu voda u trenutku t=0 određen je isključivo naponskim dijelilom Riz-Z0,1, prema formuli:

VZR

ZUU

izgi 2

100150

1005

1,0

1,0 =+

⋅=+

=

Dijagram odbijanja prikazan je u nastavku:

A BX

0 ns

2 ns

4 ns

8 ns

10 ns

12 ns

14 ns

16 ns

18 ns

0 ns

2 ns

4 ns

8 ns

10 ns

12 ns

14 ns

16 ns

18 ns

a

bc

d e

f g

h i

j k

l m

n o

p q

Radi preglednosti dijagrama pojedine reflektirane i transmitirane komponente nisu direktno upisivane, već su samo označene slovima. Uz navedene faktore refleksije, bitna su nam i dva faktora transmisije:

75,01 22 =+= ρT i 25,11 33 =+= ρT

Tada su pojedine komponente definirane izrazima:

Page 20: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

16 Zbirka riješenih zadataka

VUa i 2==

VaTb 5,12 ==

Vac 5,02 −== ρ

Vcd A 1,0−== ρ

Vbe B 5,1== ρ

VeTdf 9,132 =+= ρ

VdTeg 3,023 =+= ρ

Vfh A 38,0== ρ

Vgi B 3,0== ρ

ViThj 28,032 =+= ρ

VhTik 36,023 =+= ρ

Vjl A 056,0== ρ

Vkm B 36,0== ρ

VmTln 436,032 =+= ρ

VlTmo 132,023 =+= ρ

Vnp A 0872,0== ρ

Voq B 132,0== ρ Obratiti pažnju na način izračuna f (slično kao i g, j, k, ...). Kad signal predstavljen sa h dođe u točku X, jedan dio se reflektira natrag prema točki A ( 2ρd ), a dio se transmitira

dalje prema točki B ( 2dT ). Kako istovremeno u tu točku dolazi i signal iz točke B

predstavljen sa e, jedan dio tog signala reflektira se natrag prema točki B ( 3ρe ), a dio se

transmitira dalje prema točki A ( 3eT ). Tada ukupni signal koji se vraća prema A sadrži

reflektiranu komponentu signala d i transmitiranu komponentu signala e, odnosno:

32 eTdf += ρ . Isto tako, ukupni signal koji se vraća prema B sadrži reflektiranu

komponentu od e, i transmitiranu komponentu od d, dakle: 23 dTeg += ρ

Grafički prikaz napona u točkama A, X i B dan je u nastavku.

Page 21: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 17

1

2

3

4

5

2 4 6 8 1210 14 16t [ns]

UA[V]

1

2

3

4

5

2 4 6 8 1210 14 16t [ns]

UX[V]

1

2

3

4

5

2 4 6 8 1210 14 16t [ns]

UB[V]

2 V1,4 V

3,68 V4,016V

4,5392 V

1,5 V

3,3 V3,96 V

4,452 V

3 V3,6 V

4,32 V 4,587 V

1.10. Zadatak Objasnite utjecaj preslušavanja na rad digitalnih sklopova.

Do preslušavanja dolazi uslijed međuinduktivnih i međukapacitivnih veza. Razlikujemo preslušavanje na bližem kraju i preslušavanje na daljem kraju. Npr. promotrimo rad dijela sabirnice (dva para sklopova), prikazanih na slici.

X Y

W Z

Page 22: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

18 Zbirka riješenih zadataka

Sklopove možemo nadomjestiti:

RS R0

R0 R0

ICmbliži kraj dalji kraj

RS R0

R0 R0

ILmbliži kraj dalji kraj

Ibliži=ICm+ILm

Idalji=ICm-ILm

Vidimo dakle da je utjecaj preslušavanja uvijek veći na bližem kraju a manji na daljem kraju. Struja zbog međukapacitivnosti kod donjeg sklopa uvijek teče prema oba kraja, dok je smjer struje zbog međuinduktivnosti određen Lenzovim zakonom (npr. ako struja u gornjem sklopu poteče na desno, u donjem će sklopu poteći na lijevo). Detaljnija matematička obrada prikazana je u sljedećem zadatku.

1.11. Zadatak

Izlaz jednog digitalnog sklopa A spojen je na ulaze dvaju digitalnih sklopova B i B' preko dugačkog voda na tiskanoj pločici. 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.

Izračunajte 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.

Izlaz digitalnog sklopa A može se nadomjestiti idealnim naponskim izvorom koji u seriju ima spojen izlazni otpor. Nesavršenu liniju nadomještamo savršenom uz dodatak kapacitivnosti CP. Ulazi sklopova B i B' nadomještaju se paralelnom kombinacijom ulaznog otpora Rul i kapacitivnosti CT.

A

B

B'

Page 23: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 19

izlR

gu

PC

ulR TC

ulR TC

A

B

B'

Ovu shemu možemo nacrtati i na drugačiji način, tako da grupiramo otpore na jedno mjesto a kapacitivnosti na drugo:

izlR

gu ulR ulR PC TC TC

Thevenin

Po Theveninu ovaj se strujni krug može pojednostavniti na:

TOTR

tu TOTCi

pri čemu je:

VRRR

RRuu

ululizl

ululgt 873.4

||

|| =+

⋅=

izlululTOT RRRR ||||= PTTTOT CCCC ++=

Može se napisati slijedeća naponska jednadžba:

∫ ⋅+⋅= dttiC

RtituTOT

TOTt )(1

)()(

1. slučaj:

Page 24: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

20 Zbirka riješenih zadataka

t=0, skok napona izvora s 0V na ut. Rješenje jednadžbe glasi:

−==

−11)()( τt

tCul eututu , TOTTOT CR ⋅= 1,1τ , 130||10||101, kkRTOT =

ns52,11 =τ Jednadžba vrijedi do t = 10 ns.

2. slučaj:

t=10ns, skok napona izvora s ut na 0V (kraj naponskog impulsa). Rješenje jednadžbe tada glasi:

2

10

)10()()( τnt

ulCul enstututu−−

⋅=== , TOTTOT CR ⋅= 2,2τ , 10||10||102, kkRTOT =

ns12,02 =τ Jednadžba vrijedi od t = 10 ns nadalje.

Grafički prikaz:

Za vježbu: Izračunati vrijeme porasta, vrijeme pada i trajanje impulsa prema predavanjima. Ako se trajanje impulsa skrati na 1 ns, kako će tada izgledati izlazni napon? Hoće li sklop B ispravno protumačiti da je primio visoku naponsku razinu (pretpostavimo da napon na ulazu mora biti barem 4V da bi bio shvaćen kao visoka razina)?

t10 ns

ut

t10 ns

uul

Page 25: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 21

X Y

Z W

vod A

vod B

1.12. Zadatak

Dva para digitalnih sklopova (X, Y) i (W, Z) povezani su dugačkim paralelnim vodovima na tiskanoj pločici, na sljedeći način: 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 slijedeći podaci: napon visoke razine UH=3.8V, napon niske razine UL=0,3V, struja niske razine IIL=-1.6mA, struja visoke razine IIH≈0mA, Rul

H=∞, RulL=4kΩ, Rizl

H=100Ω, RizlL=10kΩ. Kapacitet između

vodova iznosi C=10pF, a međuinduktivitet M=100nH. Izlazi sklopova X i W nalaze se na visokoj razini (UH). Sklop X u trenutku t1 pošalje 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 preslušavanja!

Postoje dvije komponente preslušavanja:

i) zbog međuinduktiviteta ii) zbog kapaciteta

Utjecaj preslušavanja u općem slučaju Utjecaj međuinduktiviteta Utjecaj kapaciteta

gR

gu 1R1u

Pu

2R2u TR

Ii

IIi

+

- +

-

M

gR

gu 1R1u

Cu

2R2u TR

Ci

+

-

+

-

C

dt

diMu I

p = , dt

diM

RRRR

ui IPII

2121

1

+=

+=

dt

duCi C

C =

dt

diM

RR

Ru I

21

11 +

= +

dt

duCRR C⋅)||( 21

dt

diM

RR

Ru I

21

22 +

−= +

dt

duCRR C⋅)||( 21

Page 26: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

22 Zbirka riješenih zadataka

U trenutku t1 sklop X generira padajući brid impulsa. Vrijedi: 0),(),()( 111 =−=−= −−−

HHC UUtBtAtu ϕϕ

HLC UUtBtAtu −=−= +++ ),(),()( 111 ϕϕ

sV

t

UU

t

tutu

t

u

dt

du

f

HL

f

CC

f

CC 811 107)()( ⋅−=−=−=∆≈

−+

IHI Iti =− )( 1 i ILI Iti =+ )( 1

sA

t

II

t

titi

t

i

dt

di

f

IHIL

f

II

f

II 511 102,3)()( ⋅−=−=−=∆≈

−+

Uz sklopove postavljene kao u zadatku, R1 odgovara Rul

H sklopa Z, R2 odgovara RizlH

sklopa W. Dobije se:

mVu 7321 −= Kako je u stacionarnom stanju napon na vodu B jednak UH, pod utjecajem preslušavanja napon pada na VuUH 068,3)732,0(8,31 =−+=+ . Grafički prikaz:

Zašto derivacije nisu delta funkcije? → naponski skok kod uA impulsa također nije savršeno okomit. Možemo aproksimirati trapezom trajanja tf/tr, pa bi derivacije bile pravokutni impulsi. Međutim, i to je samo aproksimacija, stvarno impulsi izgledaju kao na slici... Za vježbu. Izračunati i nacrtati utjecaj preslušavanja u trenutku t=t1+T (dakle, na rastući brid). Ponoviti analizu uz pretpostavku da su susjedni sklopovi sada X i W, te Y i Z.

t

uA

t

t

uB

dt

diI

tt1 t1+T

dt

duC

?

?

?

Page 27: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Refleksije, preslušavanja i utjecaj kapacitivnosti. 23

ZADACI ZA VJEŽBU

1. (Pismeni ispit 30.09.2004.)

Više sklopova spojeno je na zajedničku sabirnicu koja se ponaša kao dugačka linija. Zbog kvara, jedan od sklopova (npr. sklop C) sabirnicu kratko spaja na masu. Prikažite stanje na sabirnici nakon što jedan sklop A na izlazu generira napon od 5V, u trajanju od 5td. Na sabirnicu je još priključen samo ulaz sklopa B, dok su svi ostali sklopovi u stanju visoke impedancije. Sklopovi B i C fizički su smješteni blizu. Poznato je: izlazni otpor sklopa iznosi 150Ω, ulazni otpor sklopa 2400Ω a karakteristična impedancija voda iznosi 100Ω.

2. (Pismeni ispit 07.02.2005.)

Izlaz digitalnog sklopa spojen je na dugački vod na tiskanoj pločici, koji se ponaša kao kao prijenosna linija. Ako je poznato da je izlazni otpor sklopa 50Ω, a Z0=100Ω, nacrtajte stanje na vodu za slučaj da se napon na izlazu sklopa promijeni s 0,3V na 5V, te ako je:

a. na kraj voda spojeno trošilo ulaznog otpora 100Ω,

b. kraj voda otvoren (nema spojenih trošila).

Page 28: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zaštitno kodiranje. Brojevni sustavi. 25

2. Zaštitno kodiranje. Brojevni sustavi.

2.1. Zadatak Četiri-bitni podatak 1011 potrebno je zaštititi kodom n-strukog ponavljanja (uz n=5). Prikazati zaštićeni podatak i navesti svojstva ovog kodiranja. Pokazati način ispravljanja pogreške na primjeru.

Opisani kod spada u najjednostavnije moguće, pri čemu kod odjednom može kodirati samo jedan bit podatka (dakle 0 ili 1) i zbog toga ima samo dvije kodne riječi 000…0, 111…1. 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:

8.05

41 ==−==n

n

n

rR

i povećanjem n raste prema 1 (r je broj zaštitnih, tj. redundantnih bitova, n je ukupan broj bitova). No, zahvaljujući velikoj redundanciji, kod može otkrivati i ispravljati čak (n-1)/2 pogrešaka, gdje je s x definirana funkcija zaokruženja prema prvom manjem cijelom broju. U našem primjeru, broj pogrešaka koje kod može otkriti i ispraviti iznosi: ( ) ( ) 222/152/1 ==−=−n . Kako smo došli do ovog zaključka? Ključ je u

računanju udaljenosti primljene kodne riječi i svake moguće ispravne kodne riječi, gdje se udaljenost računa kao broj različitih bitova. Ako kodna riječ ima n bitova, tada je uslijed pogreške mogla nastupiti jedna od sljedećih situacija: promijenjeno je nula bitova, promijenjen je jedan bit, …, promijenjeno je svih n bitova. Pogledajmo to grafički za n=5 (i uzmimo u obzir da imamo samo dvije ispravne kodne riječi):

Na prikazanoj slici referentna kodna riječ je 00000. Isto razmatranje možemo napraviti ako kao referentnu kodnu riječ uzmemo 11111, čime dobijemo simetričnu sliku:

Page 29: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

26 Zbirka riješenih zadataka

Uzevši u obzir da je vjerojatnost pojave višestruke pogreške uobičajeno manja od vjerojatnosti pojave manje pogreške, uvijek će se pretpostavljati da je došlo do minimalnog broja promijenjenih bitova. Zbog toga će se izračunati udaljenost primljene riječi do svake ispravne kodne riječi, i kao prava poslana kodna riječ bit će uzeta ona ispravna kodna riječ koja ima minimalnu udaljenost. Npr. ako je primljena kodna riječ 10101, računamo udaljenosti: d(10101, 00000) = 3 d(10101, 11111) = 2 Dakle, pretpostavit ćemo da je poslana kodna riječ 11111, što odgovara podatku 1. Na ovaj način kod će pouzdano ispravljati svaku jednostruku pogrešku, i svaku dvostruku pogrešku, što smo inicijalno i utvrdili. No u slučaju trostruke pogreške, kod će zakazati. Naime, tada će udaljenost primljene riječi biti manja do one druge kodne riječi, i ispravljanje pogreške će zakazati (zbog čega smo i izrekli tvrdnju da kod pouzdano ispravlja do dvije pogreške). Općenito vrijedi sljedeća tvrdnja: kod s minimalnom udaljenošću d između svake dvije ispravne kodne riječi može ispraviti ( ) 2/1−d pogrešaka.

Tvrdnja se može izreći i obratno: da bi kod mogao ispravljati t pogrešaka, minimalna distanca između svake dvije ispravne kodne riječi mora biti 12 +≥ td . Ova tvrdnja vrijedit će i za sve kodove koje ćemo obraditi u nastavku.

2.2. Zadatak Oktet 213 potrebno je zaštititi paritetnim bitom uz uporabu parnog pariteta. Objasniti ovaj način zaštitnog kodiranja, i svojstva.

Traženo kodiranje obavlja se tako da se podatkovnoj riječi doda još jedan bit, koji se postavi na onu vrijednost uz koju je cijela kodna riječ traženog pariteta. Ako je n-bitna podatkovna riječ dana bitovima b0, b1, …, bn-1, a paritetni bit označimo s bn, tada uz pretpostavku parnog pariteta mora vrijediti:

0110 =⊕⊕⊕⊕ − nn bbbb

Page 30: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zaštitno kodiranje. Brojevni sustavi. 27

odakle odmah slijedi:

110 −⊕⊕⊕= nn bbbb

Ako se pak koristi neparni paritet, tada paritetni bit mora zadovoljavati izraz:

1110 =⊕⊕⊕⊕ − nn bbbb

odakle odmah slijedi:

110110 1 −− ⊕⊕⊕=⊕⊕⊕⊕= nnn bbbbbbb

Uz zadane podatke: 213 = 11010101(2), paritetni bit iznosi:

1110101018 =⊕⊕⊕⊕⊕⊕⊕=b

te je kodna riječ: 111010101 (podcrtan je paritetni bit). Lako se je uvjeriti da ova kodna riječ doista zadovoljava početni uvjet:

0110101011110 =⊕⊕⊕⊕⊕⊕⊕⊕=⊕⊕⊕⊕ − nn bbbb

U ovom zadatku podatkovna riječ ima k=8 bitova, broj zalihosnih bitova r=1, te je ukupna duljina kodne riječi n=k+r=9. Redundancija koda tada je određena izrazom:

1111.09

1 ===n

rR .

Ovaj kod otkriva svaku jednostruku pogrešku, i svaki neparan broj pogrešaka. Kod ne može ispraviti niti jednu pogrešku.

2.3. Zadatak Niz okteta 25, 12, 250, 54, 93, 33, 196, 212 potrebno je zaštititi uporabom uzdužnog i poprečnog pariteta (koristiti parni paritet). Pri tome treba koristiti takav način kodiranja koji će osigurati minimalnu redundanciju! Prikažite kodirane podatke i izračunajte redundanciju.

Niz koji kodiramo sastoji se od 6488 =⋅ bitova. Ovaj niz potrebno je presložiti u blok bitova koji u svakom retku sadrži W podatkovnih bitova, a u svakom stupcu H podatkovnih bitova. Ukupan broj podatkovnih bitova tada će biti HWp ⋅= i to mora

biti jednako 64. Cijeli blok očito će biti dimenzija ( ) ( )11 +⋅+= HWn . Broj zalihosnih bitova tada je 1++= HWr . Redundancija R računa se prema izrazu:

Page 31: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

28 Zbirka riješenih zadataka

n

rR =

Budući da tražimo takav način kodiranja da redundancija bude minimalna, pronađimo minimum te funkcije dviju varijabli (W i H). U tu svrhu ćemo najprije eliminirati jednu od varijabli korištenjem supstitucije:

W

pH =

što će dati:

( )

+⋅+= 11W

pWn

1++=W

pWr

pa imamo:

( )( )

+⋅+

++=

11

1

W

pW

W

pW

WR

Derivirajmo R po W i izjednačimo s nulom:

( ) ( ) ( )

( )0

11

11111122

=

+⋅+

−++

+

++−

++

+−

=

W

pW

W

pW

W

pW

W

p

W

pW

W

p

dW

WdR

Nakon kraćeg računa slijedi:

023 =− WppW tj. slijedi:

( ) 02 =− pWpW Kako niti p niti W ne mogu biti 0, slijedi da je treći član jednak 0, pa imamo:

pW =

Odavde odmah slijedi i H uvrštavanjem u početnu supstituciju:

Page 32: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zaštitno kodiranje. Brojevni sustavi. 29

pp

p

W

pH ===

Uz zadane parametre slijedi:

8=W 8=H

17188 =++=r ( )( ) 811818 =++=n

21.081

17 ≅=R

To znači da ćemo svaki oktet staviti u jedan redak. Zaštićeni blok podataka iznosi: 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 Prvi redak pripada paritetnim bitovima poprečnog pariteta, a zadnji stupac pripada paritetnim bitovima uzdužnog pariteta.

2.4. Zadatak Poruku 101100011010(2) potrebno je zaštititi uporabom Hammingovog koda koristeći parni paritet. Zatim pretpostavite da tijekom prijenosa takve zaštićene poruke uslijed djelovanja smetnji 12-ti bit (brojeći s lijeva na desno počevši od 1) promjeni iznos. Da li možemo otkriti da je došlo do pogreške u prijenosu, i možemo li ispraviti pogrešku? Pokažite to.

Hammingov kod miješa zaštitne bitove s podatkovnim bitovima. Najprije je potrebno ustanoviti koliko će zaštićena riječ imati bitova i kako će se oni računati. Možemo se poslužiti jednostavnom metodom: generiramo određen broj bitova od 1 naviše. Svaki bit koji je potencija broja 2 je zaštitni; preostali su podatkovni. Stanemo kada smo generirali dovoljan broj podatkovnih bitova (12 jer naša poruka ima toliko bitova). Zatim ispod svakog bita napišemo njegov redni broj u binarnom obliku (vidi tablicu). 'C' označava da je bit zaštitni, 'P' označava da je bit podatkovni. U ovom zadatku bitovi se numeriraju s lijeva na desno počevši od 1.

Page 33: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

30 Zbirka riješenih zadataka

C C P C P P P C P P P P P P P C P

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1720 21 × 22 × × × 23 × × × × × × × 24 × 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Potrebno je poslati ukupno 17 bitova kako bismo mogli sigurno prenijeti 12 bitova poruke (sigurno u smislu mogućnosti ispravljanja jednostruke pogreške). Vrijednost zaštitnog bita izračunamo na slijedeći način:

• Pronađemo u tablici onaj redak u kojem ispod traženog zaštitnog bita imamo 1. • Suma modulo 2 (što je ekvivalentno operaciji isključivo ili) tog bita sa svim

bitovima koji u tom istom retku imaju 1 mora zadovoljavati traženi paritet (dakle, biti 0 za parni paritet, odnosno 1 za neparni paritet).

Upisujemo poruku:

C C P C P P P C P P P P P P P C P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

? ? 1 ? 0 1 1 ? 0 0 0 1 1 0 1 ? 0 (? označava da na ovom mjestu još ne znamo vrijednost određenog bita)

C(1) ima 1 u petom (zadnjem) retku. U tom retku 1 imaju još i P(3), P(5), P(7), P(9), P(11), P(13), P(15), P(17). Sumiramo vrijednosti svih navedenih P-bitova: 1+0+1+0+0+1+1+0 mod 2 = 4 mod 2 = 0, te je C(1) = 0. Da se traži 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 traži neparan paritet, C(2) bi bio komplement dobivenog rezultata, dakle 1. C(4) ima 1 u trećem 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 traži 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 traži 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 traži neparan paritet, C(16) bi bio komplement dobivenog rezultata, dakle 1.

Page 34: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zaštitno kodiranje. Brojevni sustavi. 31

Sumu modulo 2 obavlja operacija isključivo ili, koju ćemo u nastavku označavati sa XOR što je uobičajena oznaka za ovu operaciju u VHDLu koji ćemo obraditi nešto kasnije. Za parni paritet možemo 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 Što nakon još jedne primjene XOR operacije s C(i) daje: C(1)=P(3)⊕P(5)⊕P(7)⊕P(9)⊕P(11)⊕P(13)⊕P(15)⊕P(17) C(2)=P(3)⊕P(6)⊕P(7)⊕P(10)⊕P(11)⊕P(14)⊕P(15) C(4)=P(5)⊕P(6)⊕P(7)⊕P(12)⊕P(13)⊕P(14)⊕P(15) C(8)=P(9)⊕P(10)⊕P(11)⊕P(12)⊕P(13)⊕P(14)⊕P(15) C(16)=P(17) Da se je tražio neparni paritet imali bismo npr.: C(1)⊕P(3)⊕P(5)⊕P(7)⊕P(9)⊕P(11)⊕P(13)⊕P(15)⊕P(17)=1 Što bi dalo nakon primjene XOR s C(1) na lijevoj i desnoj strani jednakosti: C(1)=Komplement_od( P(3)⊕P(5)⊕P(7)⊕P(9)⊕P(11)⊕P(13)⊕P(15)⊕P(17) ) Slično i za ostale zaštitne bitove… Niz zaštitnih bitova: C(16) C(8) C(4) C(2) C(1) = 01100. Zaštićena poruka tada glasi: 00110111000110100. Ako se promjeni 12-ti bit, nova poruka glasi: 00110111000010100. Računanjem zaštitnih bitova dobiti ćemo: C'(16) = 0, C'(8) = 0, C'(4) = 0, C'(2) = 0, C'(1) = 0, te novi niz zaštitnih bitova glasi: 00000. Niz zaštitnih bitova očitan iz dobivene poruke je: 01100, te je pogreška nastupila na mjestu koje određuje sindrom: očitani niz zaštitnih bitova XOR izračunati niz zaštitnih bitova = 01100 XOR 00000 = 01100. Pogreška je nastupila na mjestu 01100(2)=12(10). Da bismo ispravili pogrešku, potrebno je 12. bit komplementirati pa je ispravna zaštićena poruka: 00110111000110100, odnosno bio je poslan niz bitova: 101100011010.

Page 35: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

32 Zbirka riješenih zadataka

2.5. Zadatak Blok od 8000 okteta šalje se komunikacijskim medijem. Koliko je zaštitnih bitova potrebno, i kolika je redundancija, ako za zaštitu koristimo: a) uzdužni plus poprečni paritet b) Hammingov kod

a) Uporaba uzdužnog plus poprečnog pariteta Poredajmo podatkovne bitove u tablicu koja ima jedan oktet po retku. trebamo 8000 paritetnih bitova za uzdužni paritet, i 8 paritetnih bitova za poprečni paritet. Ukupno trebamo: r = 8000 + 8 + 1 = 8009 paritetnih bitova (+1 zbog gornjeg desnog bita tablice). Poslati ćemo n = 8000⋅8 + 8009 = 72009 bitova. Redundancija je:

111,072009

8009 ===n

rR

što je više od 11%. b) Uporaba Hammingovog koda Ako štitimo blok od k = 8000⋅8 = 64000 bitova, broj paritetnih bitova mora biti:

12 +≥ nr Zašto? Promatramo li niz zaštitnih bitova kao r-bitni binarni broj Cr-1Cr-2…C1C0, taj broj mora moći poprimiti poziciju na kojoj je došlo do pogreške, ili vrijednost nula ako niti na jednoj poziciji nije došlo do pogreške. Kako štitimo n bita, slijedi da zaštitni broj mora moći poprimiti vrijednosti: 0, 1, 2, ..., n-1, n tj. ukupno n+1 vrijednost. Napisano na drugi način:

12 ++≥ rkr Prvi r koji ovo zadovoljava jest r=16:

640171166400065536216 =++≥= Ukupno ćemo prenijeti n = 64000+16 = 64016 bitova, pa je redundancija:

00025,064016

16 ===n

rR

što je višestruko manje od uzdužnog plus poprečnog pariteta.

o1 … on × p1,1 … p1,8 v1 … p8000,1 … p8000,8 vn

Za vježbu. Riješite a) dio zadatka tako da podatkovne bitove složite na način koji će potrošiti minimalno potreban broj zaštitnih bitova. Koliko tada iznosi redundancija? Usporedite s rješenjem b) dijela zadatka.

Page 36: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zaštitno kodiranje. Brojevni sustavi. 33

2.6. Zadatak Potrebno je zaštititi četiri podatka: 00, 01, 10 i 11. Podaci se štite s četiri zaštitna bita, tako da se postavi jedinica na mjesto koje odgovara numeričkoj vrijednosti podatka. Koliko se pogrešaka takvim kodiranjem može otkriti, a koliko ispraviti? Pretpostaviti da je uslijed djelovanja pogrešaka primljena poruka d=000101 (zaštitni su bitovi nakon korisnih). Neka kriterij za otkrivanje ispravne poruke bude minimalna distanca koda.

Napišimo sve kodne riječi u zadanom kodu: Bitovi poruke Zaštitni bitovi Podatak d1 d0 c3 c2 c1 c0 0 0 0 0 0 1 p0 0 1 0 0 1 0 p1 1 0 0 1 0 0 p2 1 1 1 0 0 0 p3

Izračunajmo minimalnu distancu koda (najmanji broj bitova koji se razlikuju između dvije kodne riječi):

Minimalna distanca je dakle: min d = 3. Zahtjev za otkrivanje pogreške glasi: min d ≥ t + 1, t je broj pogrešnih bitova koje možemo otkriti. 3 ≥ t + 1 ⇒ t ≤ 2: možemo otkriti dva pogrešna bita.

Zahtjev za ispravljanje pogreške glasi: min d ≥ 2⋅t + 1, t je broj pogrešnih bitova koje možemo ispraviti. 3 ≥ 2⋅t + 1 ⇒ t ≤ 1: možemo ispraviti jedan pogrešan bit. Npr. ako je primljena poruka d=000101: najbliža kodna riječ je 000001 s distancom 1 (sve ostale imaju veću distancu do d), pa zaključujemo da je to poslana kodna riječ.

2.7. Zadatak Potrebno je zaštititi slijedeći niz bitova: 1010100000101010101. Potrebno je koristiti Hammingov kod uz neparni paritet. Pogreška neka djeluje na 10. bit.

Niz koji treba poslati je oblika: xx1x010x1000001x01010101, gdje x označava pozicije zaštitnih bitova. Potrebno je 5 zaštitnih bitova. C(1)=Komplement(

P(3)⊕P(5)⊕P(7)⊕P(9)⊕P(11)⊕P(13)⊕P(15)⊕P(17)⊕P(19)⊕P(21)⊕P(23) )

p0 - p1 3 p0 - p2 3 p0 - p3 4 p1 - p2 4 p1 - p3 3 p2 - p3 3

Page 37: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

34 Zbirka riješenih zadataka

C(2)=Komplement( P(3)⊕P(6)⊕P(7)⊕P(10)⊕P(11)⊕P(14)⊕P(15)⊕P(18)⊕P(19)⊕P(22)⊕P(23)

) C(4)=Komplement(

P(5)⊕P(6)⊕P(7)⊕P(12)⊕P(13)⊕P(14)⊕P(15)⊕P(20)⊕P(21)⊕P(22)⊕P(23) ) C(8)=Komplement(

P(9)⊕P(10)⊕P(11)⊕P(12)⊕P(13)⊕P(14)⊕P(15)⊕P(24) ) C(16)=Komplement(

P(17)⊕P(18)⊕P(19)⊕P(20)⊕P(21)⊕P(22)⊕P(23)⊕P(24) )

Izračunati niz zaštitnih bitova: 10100. Zaštićeni niz bitova: 001101001000001101010101. Niz nakon djelovanja pogreške: 001101001100001101010101. Očitani niz zaštitnih bitova: 10100. Izračunati niz zaštitnih bitova: 11110. Pogreška je na 10100 XOR 11110 = 01010 = 10(10). Niz nakon ispravljanja pogreške: 001101001000001101010101.

2.8. Zadatak Potrebno je zaštititi slijedeći niz bitova: 100110000010100. Potrebno je koristiti Hammingov kod uz parni paritet. Pogreška neka djeluje na 19. bit.

Potrebno je 5 zaštitnih bitova. C(1)=P(3)⊕P(5)⊕P(7)⊕P(9)⊕P(11)⊕P(13)⊕P(15)⊕P(17)⊕P(19) C(2)=P(3)⊕P(6)⊕P(7)⊕P(10)⊕P(11)⊕P(14)⊕P(15)⊕P(18)⊕P(19) C(4)=P(5)⊕P(6)⊕P(7)⊕P(12)⊕P(13)⊕P(14)⊕P(15)⊕P(20) C(8)=P(9)⊕P(10)⊕P(11)⊕P(12)⊕P(13)⊕P(14)⊕P(15) C(16)=P(17)⊕P(18)⊕P(19)⊕P(20) Izračunati niz zaštitnih bitova: 10000. Zaštićeni niz bitova: 00100010100000110100. Niz nakon djelovanja pogreške: 00100010100000110110. Očitani niz zaštitnih bitova: 10000. Izračunati niz zaštitnih bitova: 00011. Pogreška je na 10000 XOR 00011 = 10011 = 19(10). Niz nakon ispravljanja pogreške: 00100010100000110100.

2.9. Zadatak Potrebno je zaštititi slijedeći niz bitova: 1111010001. Potrebno je koristiti Hammingov kod uz neparni paritet. Pogreška neka djeluje na 12. bit.

Potrebno je 4 zaštitnih bitova.

Page 38: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zaštitno kodiranje. Brojevni sustavi. 35

C(1)=Komplement( P(3)⊕P(5)⊕P(7)⊕P(9)⊕P(11)⊕P(13) ) C(2)=Komplement( P(3)⊕P(6)⊕P(7)⊕P(10)⊕P(11)⊕P(14) ) C(4)=Komplement( P(5)⊕P(6)⊕P(7)⊕P(12)⊕P(13)⊕P(14) ) C(8)=Komplement( P(9)⊕P(10)⊕P(11)⊕P(12)⊕P(13)⊕P(14) ) Izračunati niz zaštitnih bitova: 1100. Zaštićeni niz bitova: 00111111010001. Niz nakon djelovanja pogreške: 00111111010101. Očitani niz zaštitnih bitova: 1100. Izračunati niz zaštitnih bitova: 0000. Pogreška je na 1100 XOR 0000 = 1100 = 12(10). Niz nakon ispravljanja pogreške: 00111111010001.

2.10. Zadatak Poznato je da je 001100(2) ispravna Hammingova kodna riječ. Napišite sve preostale kodne riječi koje pripadaju tom kodu.

Kako bismo otkrili o kojem se Hammingovom kodu radi, potrebno je utvrditi broj podatkovnih bitova u riječi, broj zaštitnih bitova u riječi te korišteni paritet. Krenimo redom. Poznato je da navedena riječ pripada (nekom) Hammingovom kodu. To znači da je oblika: C C P C P P

1 2 3 4 5 6

? ? ? Jednu kodnu riječ već znamo, pa je možemo upisati: C C P C P P

1 2 3 4 5 6

0 0 1 1 0 0 Također znamo da je riječ ispravna. Ako je korišten 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) = 1⊕0 = 1 ≠ 0 (pročitano iz tablice) C(2) = P(3)⊕P(6) = 1⊕0 = 1 ≠ 0 (pročitano iz tablice) C(4) = P(5)⊕P(6) = 0⊕0 = 0 ≠ 1 (pročitano iz tablice) Uz uporabu parnog pariteta nismo dobili zaštitne bitove kakvi se nalaze u zadanoj kodnoj riječi. Štoviše, dobili smo točno njihove komplemente, što upućuje na uporabu

Page 39: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

36 Zbirka riješenih zadataka

neparnog pariteta. Provjerimo dakle koje bismo zaštitne bitove dobili da je korišten neparni paritet. Tada mora vrijediti: C(1)=Komplement(P(3)⊕P(5))=Komplement(1⊕0)=Komplement(1)=0 C(2)=Komplement(P(3)⊕P(6))=Komplement(1⊕0)=Komplement(1)=0 C(4)=Komplement(P(5)⊕P(6))=Komplement(0⊕0)=Komplement(0)=1 Vidimo da zaštitni bitovi izračunati uz pretpostavku neparnog pariteta odgovaraju zaštitnim bitovima u zadanoj kodnoj riječi, pa zaključujemo da se radi o Hammingovom kodu s neparnim paritetom. Iz zadane kodne riječi također možemo pročitati i koja je podatkovna riječ zaštićena. Radi se o riječi 100(2). Kako je to trobitna riječ, postoji još 7 mogućih riječi: 000(2), 001(2), 010(2), 011(2), 101(2), 110(2) te 111(2). Kako sada znamo da trebamo koristiti neparni paritet, odnosno da mora vrijediti: C(1)=Komplement(P(3)⊕P(5)) C(2)=Komplement(P(3)⊕P(6)) C(4)=Komplement(P(5)⊕P(6)) možemo izračunati zaštitne bitove i za preostale podatkovne riječi.

Podatkovna riječ Hammingova riječ 000(2) 110100(2) 001(2) 100001(2)

010(2) 010010(2) 011(2) 000111(2)

100(2) 001100(2) 101(2) 011001(2) 110(2) 101010(2)

111(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 pogreška? Na kojem mjestu, i kako se to matematički može izračunati? Kako glasi podatak koji je poslan (ako je najviši bit podatka spremljen na prvo moguće lijevo mjesto u Hammingovoj kodnoj riječi), i kolika je redundancija ovog kodiranja? Korišten je parni paritet.

Primljeni niz bitova: 000011011100101. Očitani niz zaštitnih bitova: 1000. Uz zadanu 15-bitnu riječ i parni paritet vrijede izrazi: C(1)=P(3)⊕P(5)⊕P(7)⊕P(9)⊕P(11)⊕P(13)⊕P(15) C(2)=P(3)⊕P(6)⊕P(7)⊕P(10)⊕P(11)⊕P(14)⊕P(15)

Page 40: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zaštitno kodiranje. Brojevni sustavi. 37

C(4)=P(5)⊕P(6)⊕P(7)⊕P(12)⊕P(13)⊕P(14)⊕P(15) C(8)=P(9)⊕P(10)⊕P(11)⊕P(12)⊕P(13)⊕P(14)⊕P(15) Izračunati niz zaštitnih bitova na temelju ovih izraza glasi: 0010. Pogreška je tada na 1000 XOR 0010 = 1010 = 10(10). Dakle, pogreška je očito nastupila, i njezin položaj određen je temeljem razlike sindroma. Niz nakon ispravljanja pogreške: 000011011000101. Podatak koji je poslan: 01101000101. Redundancija kodiranja u ovom slučaju iznosi:

27,015

4 ===n

rR

2.12. Zadatak

Zadan je broj x=177,296875(10) (u bazi 10). Potrebno je taj isti broj zapisati u slijedećim 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 množenja novom bazom.

Pretvorba cijelog broja

baza rezultat

dijeljenja ostatak

dijeljenja smjer čitanja

177 : 2 = 88 1 88 : 2 = 44 0 44 : 2 = 22 0 22 : 2 = 11 0 11 : 2 = 5 1 5 : 2 = 2 1 2 : 2 = 1 0 1 : 2 = 0 1

Kod postupka uzastopnog množenja decimalni se dio uzastopno množi s bazom. Ukoliko rezultat množenja postane veći ili jednak 1, cijeli dio se pamti, a u nastavak množenja ulazi samo decimalni ostatak.

Page 41: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

38 Zbirka riješenih zadataka

Pretvorba decimalnog dijela broja

baza rezultat dijeljenja

cjelobrojni dio

smjer čitanja

0,296875 ⋅ 2 = 0,59375 0 0,59375 ⋅ 2 = 1,1875 1

0,1875 ⋅ 2 = 0,375 0 0,375 ⋅ 2 = 0,75 0 0,75 ⋅ 2 = 1,5 1

0,5 ⋅ 2 = 1 1 0

Možemo pisati: 177,296875(10) = 10110001,010011(2). b) Baza 8 Ponovimo postupak opisan u a).

Pretvorba cijelog broja

baza rezultat

dijeljenja ostatak

dijeljenja smjer čitanja

177 : 8 = 22 1 22 : 8 = 2 6 2 : 8 = 0 2

Pretvorba decimalnog dijela broja

baza rezultat dijeljenja cjelobrojni

dio smjer čitanja

0,296875 ⋅ 8 = 2,375 2 0,375 ⋅ 8 = 3 3

0

Možemo pisati: 177,296875(10) = 261,23(8). c) Baza 16 Ponovimo postupak opisan u a).

Pretvorba cijelog broja

baza rezultat

dijeljenja ostatak

dijeljenja smjer čitanja

177 : 16 = 11 1 (1) 11 : 16 = 0 11 (B)

Page 42: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Zaštitno kodiranje. Brojevni sustavi. 39

Pretvorba decimalnog dijela broja

baza rezultat dijeljenja

cjelobrojni dio

smjer čitanja

0,296875 ⋅ 16 = 4,75 4 (4) 0,75 ⋅ 16 = 12 12 (C)

0

Možemo 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) možemo 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 6 1 , 2 3 (8)

010 110 001 , 010 011 (2)

Dakle, 2(8) se razvije u 010(2); na isti način razvijemo i ostale znamenke. 261,23(8) = 010110001,010011(2) = 10110001,010011(2) b) Baza 16 Kako je 16=24, za prikaz jedne znamenke trebamo 4 bita. Izvorno je broj zapisan u bazi 8=23, te za prikaz jedne znamenke treba 3 bita. Konverziju možemo obaviti posredno, prevodeći broj metodom razvoja iz oktalnog (baza 8) u binarni zapis (baza 2), pa metodom grupiranja iz binarnog u heksadekadski zapis (baza 16). Pretvorba u binarni oblik:

2 6 1 , 2 3 (8)

010 110 001 , 010 011 (2)

Page 43: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

40 Zbirka riješenih zadataka

Broj 10110001,010011(2) sada grupiramo u grupe od po četiri bita (počevši od decimalnog zareza na lijevo i desno). Na početak i kraj broja možemo dodati proizvoljan broj nula (masnim slovima u nastavku), pa imamo:

1011 0001 , 0100 1100 (2)

B 1 , 4 C (16)

tj. 261,23(8) = B1,4C(16).

2.14. Zadatak Potrebno je obaviti slijedeće pretvorbe: a) AE7,24(16) u dekadsku, binarnu i oktalnu bazu. b) 731,56(8) u dekadsku, binarnu i heksadekadsku bazu.

a) AE7,24(16) = 10⋅162+14⋅161+7⋅160+2⋅16-1+4⋅16-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) = 7⋅82+3⋅81+1⋅80+5⋅8-1+6⋅8-2 = 473,71875(10) 731,56(8) = 111 011 001, 101 110(2) 731,56(8) = 0001 1101 1001, 1011 1000(2) = 1D9,B8(16) ZADACI ZA VJEŽBU

1. Brojeve: 12.15, 253 i 0.275 prikazati u binarnom, oktalnom i heksadekadskom obliku.

2. Prijemnik je s komunikacijskog kanala primio sljedeće poruke: 000111, 011101, 111111. Ako je poznato da su primljene poruke podaci zaštićeni Hammingovim kodom, te uz pretpostavku da je broj pogrešnih poruka manji od broja ispravnih poruka, otkriti da li je za kodiranje korišten parni ili neparni paritet, te koji su podaci poslani.

3. Pismeni ispit 21.09.2004.

Poruku ABBA potrebno je zaštititi uporabom uzdužnog + poprečnog pariteta (koristiti neparni paritet). Za svako slovo šalje se njegov 8-bitni ASCII kod (A ima kod 65). Prikazati zaštićenu poruku, te izračunati redundanciju kodiranja. Pokazati kako se obavlja ispravljanje ako se uslijed djelovanja smetnje promijeni najznačajniji bit prvog slova poruke.

Page 44: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 41

3. Osnovni logički sklopovi.

3.1. Zadatak Na slici je prikazan sklop ostvaren uporabom I i ILI logičkih sklopova.

&

1≥

&

a

b

c

df

Koju funkciju ostvaruje taj sklop? a) Napišite logički izraz koji definira funkciju sklopa. b) Napišite VHDL opis temeljen na funkcijskom ponašanju sklopa. c) Napišite VHDL opis temeljen na strukturnoj građi sklopa.

a) Označimo s i1 i i2 interne međurezultate.

&

1≥

&

a

b

c

df

i1

i2

Možemo pisati:

bai ⋅=1 cii += 12

( ) ( ) dcbadcidif ⋅+⋅=⋅+=⋅= 12 b) Označimo "granice" sklopa, ulaze u sklop te izlaze iz sklopa. Nazovimo sklop "sklop1". U VHDL-u opis sklopa sastoji se od dva dijela: opis sučelja preko kojega sklop komunicira s vanjskim svijetom (ENTITY ključna riječ), te opis djelovanja sklopa (što je moguće ostvariti na dva načina: funkcijskim odnosno ponašajnim opisom te strukturnim opisom; ARCHITECTURE ključna riječ).

Page 45: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

42 Zbirka riješenih zadataka

&

1≥

&

a

b

c

df

sklop1i1

i2

Opis sklopa u VHDL-u temeljen na funkcionalnosti sklopa prikazan je u nastavku. library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY sklop1 IS PORT( a, b, c, d: IN std_logic; f : OUT std_logic ); END sklop1; ARCHITECTURE funkcijska OF sklop1 IS BEGIN f <= ((A AND B) OR C) AND D; END funkcijska;

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 (također funkcijskim opisom) i konačno traženi 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;

Page 46: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 43

Opis I sklopa: library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY sklopAND IS PORT( x1, x2: IN std_logic; y : OUT std_logic ); END sklopAND; ARCHITECTURE funkcijskaAND OF sklopAND IS BEGIN y <=x1 AND x2; END funkcijskaAND;

Opis zadanog sklopa: library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY sklop1 IS PORT( a, b, c, d: IN std_logic; f : OUT std_logic ); END sklop1; ARCHITECTURE strukturna OF sklop1 IS SIGNAL i1, i2: std_logic; COMPONENT sklopOR PORT( x1, x2: IN std_logic; y : OUT std_logic ); END COMPONENT; COMPONENT sklopAND PORT( x1, x2: IN std_logic; y : OUT std_logic ); END COMPONENT; BEGIN c1: sklopAND PORT MAP (a, b, i1); -- pozicijsko -- povezivanje c2: sklopOR PORT MAP (i1, c, i2); -- pozicijsko -- povezivanje c3: sklopAND PORT MAP (x2 => d, x1 => i2, y => f); -- povezivanje -- putem imena END strukturna;

Kod povezivanja signala komponenti pomoću kojih se opisuje struktura sklopa s internim signalima koje koristi sam sklop ili s njegovim ulaznim/izlaznim vratima (ključna riječ PORT MAP) moguće je povezivanje na dva načina. Kod pozicijskog povezivanja navode se samo signali komponente koja se opisuje, a povezivanje je implicitno s vratima komponente i to onim redoslijedom kako je to definirano u COMPONENT dijelu opisa. Kod povezivanja preko imena eksplicitno se navodi koji signal komponente se spaja na koji signal sklopa, pri čemu redoslijed ovog nabrajanja ne mora slijediti redoslijed definiran u COMPONENT dijelu. Dodatak zadatku: kako bi se provjerilo da li se opisana komponenta doista ponaša u skladu s našim očekivanjima, potrebno je obaviti testiranje rada komponente (npr. putem generiranja test uzoraka s poznatim izlazima i provjerom podudarnosti s izlazima koje daje sklop za te uzorke).

Page 47: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

44 Zbirka riješenih zadataka

Za vježbu. Ponovite zadatak za sklop prikazan na slijedećoj slici (sklop2). Provjerite uporabom Xilinx-ovog simulatora s laboratorijskih vježbi da li su opisi koje ste generirali rješavajući b) i c) dio zadatka jednaki na ponašajnoj razini.

&

&1

1≥

1

a

b

c

f

3.2. Zadatak Zadana je tranzistorska sklopka prema slici. Poznati su slijedeći podaci:

VUU BBCC 5=−=

Ω= kRC 1

Ω= kR 101

Ω= kR 1002

50=FEh

VUCEzas 3.0=

VUBEzas 8.0=

AICB µ1.00 =

VUul 41 =

VUul 3.02 =

a) Provjeriti da li tranzistor ulazi u zasićenje i zapiranje prema očekivanju.

b) Neka su tolerancije svih otpornika i izvora napajanja 10%. Provjerite da li i u najgorem slučaju sklopka funkcionira ispravno.

a) Kada je na ulaz sklopa spojena visoka naponska razina (Uul1) očekujemo da tranzistor vodi (štoviše, da se nalazi u zasićenju) i da je izlazni napon Uizl vrlo mali. Kada je tranzistor u zasićenju, napon baza – emiter iznosi otprilike 0.8V (UBEzas), a napon kolektor – emiter otprilike 0.3V (UCEzas). Kada na ulaz sklopa spojimo nisku naponsku razinu, očekujemo da tranzistor ode u zapiranje i ne vodi, čime izlazni napon skače otprilike na iznos od +UCC (ukoliko je izlaz neopterećen). Provjerit ćemo ova dva slučaja koristeći se oznakama napona i struja kao na slici. Provjera zasićenja. U zasićenju, na ulazu je Uul=Uul1, UBE=UBEzas, UCE=UCEzas, dok ICB0 ne postoji.

+UCC

-UBB

1R

2R

Uul

Uizl

CR

+UCC

-UBB

1R

2RUBE

1I2I

0CBI

Uul

Uizl

BI

CR

Page 48: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 45

Tranzistor je u zasićenju kada vrijedi:

FE

CB h

II ≥

odnosno kada je bazna struja barem dovoljna (a poželjno i veća) od struje potrebne za potporu kolektorske struje. Zato je potrebno izračunati ove struje i provjeriti da li prethodna nejednadžba vrijedi.

mAR

UU

R

UU

R

U

R

UIII BEzasBBBEzasulRR

B 262.021

1

2121

21 =+−−=−=−=

mAR

UUI

C

CEzasCCCzas 7.4=−=

mAmA

mA 094.050

7.4262.0 =≥

Vidimo da je nejednakost zadovoljena, pa je tranzistor doista u zasićenju. Provjera zapiranja. U zapiranju, na ulazu je Uul=Uul2, UBE=UBezap=? dok ICB0 sada postoji. U tom slučaju struju I2 možemo odrediti superpozicijom, pa zatim napon UBezap iznosi:

BBBEzap URIU −⋅= 22

Superpozicija kaže da struju I2 možemo odrediti tako da gledamo utjecaj jednog po jednog naponskog odnosno strujnog izvora (dok su ostali naponski izvori kratko spojeni a strujni izvori otpojeni). U ulaznom krugu imamo slijedeće naponske izvore: Uul2 i UBB te strujni izvor ICB0. Možemo pisati:

21

10

2121

22 RR

RI

RR

U

RR

UI CB

BBul

++

++

+=

Uvrštavanjem dobivamo:

VURRR

RI

RR

U

RR

UU BBCB

BBulBEzap 18.02

21

10

2121

2 −=−⋅

+

++

++

=

Utjecaj Uul2 kada je UBB kratko spojen a ICB0 otpojen

Utjecaj UBB kada je Uul2 kratko spojen a ICB0 otpojen

Utjecaj ICB0 (strujno djelilo!) kada su Uul2 i UBB kratko spojeni

Page 49: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

46 Zbirka riješenih zadataka

Tranzistor je sigurno u zapiranju jer je UBEzap manji od napona praga vođenja Uγ koji iznosi oko 0.3V. b) Uz zadane tolerancije potrebno je ponovno provjeriti da li je tranzistor u zasićenju odnosno u zapiranju, ovisno o ulaznom naponu. Provjera zasićenja. Najnepovoljniji slučaj za zasićenje je kada je struja baze minimalna, a struja kolektora maksimalna, jer se tada može dogoditi da više ne vrijedi odnos:

FE

CB h

II ≥

Minimalne vrijednosti označavat ćemo podvlakom, a maksimalne crticom iznad vrijednosti. Minimalna struja baze odnosno maksimalna struja zasićenja kada bi tranzistor trebao biti u zasićenju iznose (prepisujemo prethodne formule):

mAR

UU

R

UU

R

UU

R

UU

R

U

R

UIII

BEzasBBBEzasul

BEzasBBBEzasulRR

Bzas

221.0)1.01(

)1.01(

)1.01( 21

1

21

1

21

2121

=⋅−+⋅+−

⋅+−=

+−−=−=−=

mAR

UU

R

UUI

C

CEzasCC

C

CEzasCCCzas

78.5)1.01(

)1.01( =⋅−−⋅+=

−=

Vidimo da je tranzistor još uvijek u zasićenju, jer vrijedi:

mAmA

mA 1156.050

78.5221.0 =≥

Provjera zapiranja.

VURRR

RI

RR

U

RR

U

URRR

RI

RR

U

RR

UU

BBCBBBul

BBCBBBul

BEzap

062.0)1.01()1.01()1.01()1.01(

)1.01()1.01()1.01(

)1.01()1.01()1.01( 2

21

10

2121

2

2

21

10

2121

2

−=⋅−−⋅+⋅

⋅++⋅−

⋅−+⋅++⋅−

⋅−+⋅++⋅−

=

−⋅

++

++

+=

Vidimo da je tranzistor i u najgorem slučaju sigurno u zapiranju jer je UBEzap manji od napona praga vođenja Uγ.

Page 50: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 47

3.3. Zadatak

Diodni I sklop spojen je s invertorom iz prethodnog zadatka kojemu je na ulaz dodana dioda. a) Provjerite da li taj sklop funkcionira i koju logičku funkciju ostvaruje. b) Ako na izlaz tog sklopa spojimo ulaze identičnih sklopova, postoji li kakvo ograničenje na njihov broj? Objasnite. c) Ponovite analizu za tolerancije otpora od 10%.

+UCC

-UBB

1R

2R

Uul

Uizl

CR

R

+UCC

Uizl

UulA

UulB

Invertor s dodanom diodom Diodni I sklop

+UCC

-UBB

1R

2R

Uizl

R

+UCC

UulA

UulB

CR

Diodni I sklop spojen na invertor s dodanom diodom Poznati su slijedeći podaci:

VUU BBCC 5=−=

Ω= kRC 1

Ω= kR 101

Ω= kR 1002

100=FEh

VUCEzas 3.0=

VUBEzas 8.0=

AICB µ00 =

VUul 51 =

VUul 3.02 =

Ω= kR 1

a) Sklop najprije računa logičku I operaciju ulaza, a zatim rezultat komplementira invertorom. Dakle, logička funkcija sklopa je NE( A I B ), tj.:

BABAf +=⋅=

Page 51: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

48 Zbirka riješenih zadataka

Analizirajmo rad sklopa. Označimo na slici dodatne napone koji će nam pomoći u analizi sklopa.

+UCC

-UBB

1R

2RUAB

Uizl

R

+UCC

UulA

UulBUD

D

UBE

RICR

Kada je na jednom ulazu sklopa niska razina, npr. UulA = Uul2 = 0.3V (vrijednost drugog ulaza neka je visoka razina), dotična dioda provede i na njoj je pad napona od 0.7V. Tada je:

VUUU DulAAB 17.03.0 =+=+=

Treba uočiti da druga dioda ne vodi jer je na njoj pad napona:

VVUU ulBAB 7.0451 <−=−=−

Da bi tranzistor došao duboko u zasićenje, napon baza-emiter mora biti 0.8V (a minimalno 0.7V za početak zasićenja). Isto tako, dioda D mora provesti kako bi mogla poteći struja baze, što znači da na njoj mora također 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š viši zbog pritezanja napona baze na –UBB preko R2). Međutim, 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. Teče struja IR za koju osjenčani dio sheme uopće ne postoji, a njezin iznos je:

mAR

UUI ABCC

R 41000

15 =−=−=

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 slijedeću situaciju:

Page 52: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 49

+UCC

-UBB

1R

2RUAB

Uizl

R

+UCC

UulA

UulBUD 1I

D

UBE2IBI

CR

Struje I1, I2 te IB iznose:

mAkkRR

UUUI BEzasDCC 3182.0

101

8.07.05

11 =

+−−=

+−−=

mAkR

UUI BBBEzas 058.0

100

58.0

22 =+=+=

mAmmIIIB 2602.0058.03182.021 =−=−=

Napon UAB iznosi:

VkmRIUU CCAB 6818.413182.051 =⋅−=⋅−=

Budući da tranzistor vodi, struja kolektora iznosi:

mAkR

UUI

C

CEzasCCC 7.4

1

3.05 =−=−=

Provjerimo da je tranzistor doista u zasićenju:

mAIhImA BFEC 02.267.4 =⋅≤=

b) Promotrimo najprije situaciju kada je izlaz iz sklopa visoka naponska razina, tj. kada je barem jedan od ulaza u sklop spojen na nisku naponsku razinu:

Page 53: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

50 Zbirka riješenih zadataka

+UCC

-UBB

1R

2RUAB

Uizl

R

+UCC

UulA

UulBUD

D

UBE

RI

R

+UCC

R

+UCC

1

n

1I

1I

CR

Kako je Uizl visoka naponska razina, ulazne diode slijedećeg stupnja ne vode. Struja kolektora tada je nula, i broj ulaza slijedećeg stupnja koji je spojen nema nikakvog utjecaja. Ako se na oba ulaza spoji visoka naponska razina, imamo slijedeću situaciju:

+UCC

-UBB

1R

2RUAB

Uizl

R

+UCC

UulA

UulBUD

D

UBE

R

+UCC

RI

R

+UCC

RI

1

n

1ICR

Struje I1, I2 i IB izračunali smo već u prethodnom dijelu zadatka. Međutim, sada struja kolektora izlaznog tranzistora više nije uvjetovana samo Strujom kroz otpor RC, već i strujama IR koje teku iz ulaznog stupnja sklopova povezanih na izlaz! Struja kolektora tada iznosi:

RC

CEzasCCC In

R

UUI ⋅+−=

Struja IR iznosi:

mAR

UUUI CEzasDCC

R 4=−−=

Page 54: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 51

Uvrštavanjem izraza za IR u izraz za IC slijedi:

R

UUUn

R

UUI CEzasDCC

C

CEzasCCC

−−⋅+−=

Prisjetimo se, da bi tranzistor bio u zasićenju, struja kolektora IC ograničena je strujom baze IB! Mora vrijediti:

BFEC IhI ⋅≤

Uvrstimo li izraz za IC u prethodnu nejednadžbu, možemo izraziti n:

BFECEzasDCC

C

CEzasCC IhR

UUUn

R

UU ⋅≤−−⋅+−

→ 33.5=−−

−−⋅≤

R

UUUR

UUIh

nCEzasDCC

C

CEzasCCBFE

Zaključujemo da n mora biti manji ili jednak 5 da bi sklop ispravno funkcionirao. Ukoliko bi n bio veći od 5, struja kolektora bila bi prevelika za struju baze te bi, da se uspostavi ravnoteža, tranzistor izašao iz zasićenja i ušao u aktivno područje, čime bi se napon UCE znatno povećao. Povećanje ovog napona bilo bi toliko koliko je potrebno da se struja kolektora izjednači sa strujom koju može podržati bazna struja, odnosno dok ne bi vrijedilo:

BFEC IhI ⋅=

Naime, uvidom u izraz koji opisuju IC, vidi se da je ta struja građena od komponente kroz otpor RC i struje IR (tj. n⋅ IR). Obje ove komponente padaju povećanjem napona UCE. U digitalnoj elektronici ograničenje ovog tipa naziva se fan-out, odnosno faktor grananja na izlazu koji govori koliko se maksimalno ulaza istovjetnih sklopova može spojiti na izlaz sklopa, a da sklop i dalje funkcionira ispravno. c) Kada je barem jedan od ulaza u sklop na niskoj naponskoj razini, tranzistor je u zapiranju, i već smo vidjeli da nema posebnih ograničenja na rad sklopa. Kada su oba ulaza na visokoj naponskoj razini, tranzistor će provesti. U najgorem slučaju. Struja baze biti će minimalna, a struja kroz kolektor tranzistora maksimalna. Izračunajmo te struje za najgori slučaj.

2121 R

UU

RR

UUUIII BBBEzasBEzasDCC

B

+−+

−−=−=

Minimalna struja baze bit će (uz tolerancije otpora):

Page 55: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

52 Zbirka riješenih zadataka

mAR

UU

RR

UUUIII BBBEzasBEzasDCC

B 2248.021

21 =+−+

−−=−=

Struja kolektora određena je sa:

R

UUUn

R

UUI CEzasDCC

C

CEzasCCC

−−⋅+−=

Što je maksimalno ako su svi otpori R sklopova spojenih na izlaz minimalni, kao i otpor RC u izlaznom krugu tranzistora.

R

UUUn

R

UUI CEzasDCC

C

CEzasCCC

−−⋅+−=

Uvrštavanjem u nejednadžbu:

BFEC IhI ⋅≤

može se izračunati n:

883.3=−−

−−⋅≤

R

UUU

R

UUIh

nCEzasDCC

C

CEzasCCBFE

Dakle, ako se dopuste tolerancije otpora od 10%, u najgorem slučaju faktor grananja iznosi samo 3 sklopa!

3.4. Zadatak Za neki logički sklop zadani su sljedeći 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 može nadomjestiti otporom RL = 100Ω prema masi, a izlaz sklopa pri visokoj naponskoj razini otporom RH = 1000Ω prema napajanju UCC, izračunajte koliko iznose struje IOLmax i IOHmax. Neka je UCC = 5V. Ako je poznato da su IIHmax = 0.16 mA te IILmax

= 0.8 mA, izračunajte koliko iznosi faktor grananja izlaza (fan-out) zadanog sklopa.

UILmax predstavlja maksimalni napon koji će se na ulazu još uvijek protumačiti kao niska naponska razina. UOLmax predstavlja maksimalnu vrijednost napona koju će sklop generirati na izlazu u slučaju kada je izlaz nizak. UOLmax tipično je manji od UILmax, a njihova razlika čini granicu istosmjerne smetnje pri niskoj razini:

VUUU OLILLGS 5.15.02maxmax, =−=−=

Page 56: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 53

UIHmin predstavlja minimalni potreban napon na ulazu koji će se protumačiti kao visoka naponska razina. UOHmin predstavlja minimalnu vrijednost napona koju će sklop generirati na izlazu u slučaju kada je izlaz visok. UOHmin tipično je veći od UIHmin, a njihova razlika čini granicu istosmjerne smetnje pri visokoj razini:

VUUU IHOHHGS 7.05.32.4minmin, =−=−=

Granica istosmjerne smetnje tada se definira kao manja od ove dvije vrijednosti, pa vrijedi:

VUUU HGSLGSGS 7.0)7.0,5.1min(),min( ,, ===

Struju IOLmax možemo izračunati iz sljedećeg razmatranja. Po pretpostavci zadatka izlaz sklopa u slučaju kada je na izlazu niska naponska razina može se nadomjestiti otporom RL prema masi, kao što je prikazano na nadomjesnoj shemi (slika 1-a).

RL Uizl

IOLmax

≤ UOLmax

+UCC

Uizl

RH

IOHmax

≥ UOHmin

a) izlaz je L b) izlaz je H

Slika 1. Nadomjesna shema izlaznog stupnja sklopa Struja IOL ulazi u sklop i na otporu RL stvara pad napona LOLizl RIU ⋅= podižući tako

napon na izlazu sklopa. Kako taj napon ne smije prerasti UOLmax koji je unaprijed zadan, može se izračunati kolika je maksimalna struja IOL koja će na izlazu podići napon na UOLmax, i tu ćemo struju nazvati IOLmax:

mAR

UIRIU

L

OLOLLOLOL 5

100

5.0maxmaxmaxmax ===⇒⋅=

Struju IOHmax možemo izračunati koristeći pretpostavku da se izlaz sklopa u slučaju kada je na izlazu visoka naponska razina može 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 rušeći tako napon na izlazu sklopa HOHCCizl RIUU ⋅−= .

Kako taj napon ne smije pasti ispod UOHmin koji je unaprijed zadan, može se izračunati kolika je maksimalna struja IOH koja će na izlazu spustiti napon na UOHmin, i tu ćemo struju nazvati IOHmax:

mAR

UUIRIUU

H

OHCCOHHOHCCOH 8.0

1000

8.0

1000

2.45minmaxmaxmin ==

−=

−=⇒⋅−=

Page 57: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

54 Zbirka riješenih zadataka

Prilikom izračuna faktora grananja izlaza zapravo nas zanima koliko istovjetnih sklopova možemo priključiti na izlaz jednog sklopa (a da sklop, dakako, radi ispravno). Tu moramo provjeriti opet dva slučaja. Kada je izlaz sklopa na niskoj naponskoj razini, on može primati struju ne veću od IOLmax. No u tom slučaju iz svakog od ulaza sklopova priključenih na izlaz promatranog sklopa u najgorem slučaju dolazi struja IILmax. Kako za ispravan rad sklopa suma tih struja ne smije prekoračiti iznos IOLmax slijedi:

25.68.0

5

max

maxmaxmax ===⇒≤⋅

IL

OLLOLILL I

InIIn

nL je faktor grananja izlaza za slučaj kada je napon na izlazu nizak. Kada je izlaz sklopa na visokoj naponskoj razini, on može davati struju ne veću od IOHmax. U tom slučaju u svaki od ulaza sklopova priključenih na izlaz promatranog sklopa u najgorem slučaju ulazi struja IIHmax. Kako za ispravan rad sklopa suma tih struja ne smije prekoračiti iznos IOHmax slijedi:

516.0

8.0

max

maxmaxmax ===⇒≤⋅

IH

OHHOHIHH I

InIIn

nH je faktor grananja izlaza za slučaj kada je napon na izlazu visok. Kako se faktor grananja definira kao najveći broj ulaza sljedećeg stupnja pri kojem svi sklopovi još rade ispravno (neovisno o stanju izlaza), za njegov izračun treba uzeti manji od izračunatih faktora:

5)5,25.6min(),min( === HL nnn

Page 58: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 55

3.5. Zadatak

Kao priprema za sljedeće zadatke, izvedite izraz za izlazni napon naponskog dijelila zadanog slikama.

UX

R1

R2

+UCC

UX

R1

R2

+UCC

U2

a) jednostavno naponsko dijelilo b) naponsko dijelilo s dva izvora

Slučaj a) Struja kroz dijelilo iznosi:

21 RR

UI CC

+=

Slijedi:

21

22 RR

RURIU CCX +

=⋅=

Slučaj b) Struja kroz dijelilo iznosi:

21

2

RR

UUI CC

+−

=

Slijedi:

( )

( )21

121

21

22222

RR

RUUURIU

RR

RUUURIUU

CCCCCC

CCX

+−−=⋅−=

+−+=⋅+=

3.6. Zadatak Na slici su prikazani neopterećeni/opterećeni diodni I sklop kod kojeg su svi ulazu blokirani (ne utječu 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 može mijenjati od 0V do UCC=5V. Diodu promatrati kao idealni element (pri vođenju UD=0.7V i otpor je 0Ω, pri nevođenju predstavlja beskonačni otpor). R=1kΩ, RT=4kΩ.

Page 59: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

56 Zbirka riješenih zadataka

+UCC

R

UXUulUD

I

+UCC

R

UXUulUD

I

RTI2

I1

a) neopterećen izlaz b) opterećen izlaz

Slučaj a) Krenimo u razmatranje od Uul=UCC. Napon na diodi tada iznosi:

VUUUUU CCCCulXD 0=−=−=

i dioda ne vodi. U sklopu također ne teče nikakva struja. Počnemo li smanjivati Uul, napon na diodi počinje rasti. Struje i dalje ne teku, i napon UX ostaje jednak UCC. Kada UD dostigne vrijednost od 0.7V, dioda počinje voditi. To se dakle dogodi kod ulaznog napona Uul*:

VUUUVUUU DCCululCCD 3.47.057.0 * =−=−=⇒=−=

Daljnjim smanjivanjem napona Uul napon na diodi ostaje konstantnih 0.7V jer dioda vodi. To za posljedicu ima spuštanje napona UX koji je do tada bio konstantan (iznosa UCC). Budući da dioda vodi, naponi UD, Uul i UX povezani su sljedećom relacijom:

XDul UUU =+

Sada kroz sklop teče struja I određena relacijom:

R

UUUI ulDCC −−

=

Spuštanjem napona Uul ova je struja sve veća, zbog čega se na otporu R stvara sve veći pad napona, te izlazni napon UX pada, prema relaciji:

DulCCX UURIUU +=⋅−=

Kad napon Uul dođe do nule, UX je minimalan a struja I maksimalna, te iznose:

VUUU DulX 7.07.00 =+=+=

mAkkR

UUUI ulDCC 3.4

1

3.4

1

07.05==

−−=

−−=

Page 60: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 57

Ovisnost napona UD o naponu Uul, ovisnost struje I o naponu Uul te ovisnost napona UX o naponu Uul (prijenosna karakteristika – UX je izlazni napon) prikazane su u nastavku.

Uul [V]

UD [V]

51 2 3 4 4.3

1

5

4

3

2

Uul [V]

UX [V]

51 2 3 4 4.3

1

5

4

3

2

0.7

Uul [V]

I [mA]

51 2 3 4 4.3

1

5

4

3

2

4.3

0.7

0

0

0

Slučaj b) Krenimo u razmatranje od Uul=UCC. Otpori R i RT čine naponsko dijelilo, te uz pretpostavku da dioda ne utječe na napon UX, vrijedi:

Vkk

k

RR

RUU

T

TCCX 4

41

45 =

+=

+=

Napon na diodi tada iznosi:

VUUU ulXD 154 −=−=−= .

Očito je da uz ovaj napon dioda doista ne vodi (pa time ne utječe na napon UX), te provedena analiza vrijedi. U ovom trenutku također vrijedi:

Page 61: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

58 Zbirka riješenih zadataka

mAImAkkRR

UII

T

CC 0,141

512 ==

+=

+==

Počnemo 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 počinje voditi. To se događa za ulazni napon koji je za 0.7 V manji od napona dijelila:

VUUU DXul 3.37.04 =−=−=

Daljnjim smanjivanjem ulaznog napona (a zbog vođenja diode) napon UX počinje padati, slijedeći ulazni napon prema formuli:

DulX UUU +=

Zbog toga se konačno počinju mijenjati i struje u sklopu, te od ovog trenutka vrijede izrazi:

IIIR

UI

R

UUI

T

XXCC =+=−

= 212

Napon na diodi ostaje konstantnih 0.7V. Smanjivanjem napona Uul do 0V napon UX također se linearno smanjuje do napona VUUU DulX 7.07.00 =+=+= , struja I raste

do iznosa:

( ) ( )mA

kkR

UUUI DulCC 3.4

13.4

17.005

==+−

=+−

= ,

struja I2 pada do iznosa

mAkR

UI

T

X 175.04

7.02 === ,

a struja I1 raste do vrijednosti:

mAIII 125.4175.03.421 =−=−= Ovisnost napona UD o naponu Uul, ovisnost struja I, I1 i I2 o naponu Uul te ovisnost napona UX o naponu Uul (prijenosna karakteristika – UX je izlazni napon) prikazane su u nastavku.

Page 62: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 59

Uul [V]

UD [V]

51 2 3 43.3

1

5

4

3

2

0.7

0

-1

Uul [V]

UX [V]

51 2 3 43.3

1

5

4

3

2

0.7

0

Uul [V]

I [mA]

51 2 3 4

1

5

4

3

2

4.3

0 3.3

Uul [V]

I1 [mA]

51 2 3 4 4.3

1

5

4

3

2

4.125

0 3.3

Uul [V]

I2 [mA]

51 2 3 4 4.3

1

5

4

3

2

4.3

0 3.3

0.175

Page 63: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

60 Zbirka riješenih zadataka

3.7. Zadatak Zadan je sklop prema slici. Grafički prikažite ovisnosti napona UX i struja I, I1 i I2 o naponu Uul. Prikažite prijenosnu karakteristiku. Pretpostavite da su svi elementi idealni. Objasnite kako se može 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

R

+UCC

UulA

UulB

D1

RC

RB

Uizl

Kao pomoć u rješavanju zadatka označimo 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

UX

Uizl

R

+UCC

Uul

UD1

D11I

RC

RB

UD

2II

UBEzas

Krenimo u analizu uz pretpostavku da je ulazni napon Uul=UCC. Ako pretpostavimo da je time dioda blokirana (ne vodi), tada ona ne utječe na napon UX. Budući da je tada baza tranzistora preko otpora R i RB i diode D1 spojena na UCC, tranzistor očito vodi, pa vrijedi:

VUD 7.01 = , VU BEzas 7.0= ,

mAkkkRR

UUUII

B

BEzasDCC 6.06

6.3

51

7.07.0512 ==

+−−

=+

−−== , mAI 01 =

Napon UX tada se može izračunati kao napon dijelila s dva izvora (jedan od prethodnih zadataka):

Page 64: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 61

( ) ( )( )

( ) ( )( )

Vkk

k

RR

RUUUUUU

B

BDBEzasCCDBEzasX

4.451

57.07.057.07.0

11

=+

⋅+−++=

+⋅+−++=

Budući da vrijedi izraz:

DulX UUU +=

slijedi da je napon na diodi D u ovom slučaju negativan:

VUUU ulXD 6.054.4 −=−=−=

Zbog toga dioda D ne vodi, ne utječe na napon UX pa smo potvrdili prethodnu pretpostavku i valjanost računa. Ulazni napon bez ikakvih promjena u radu sklopa možemo smanjivati sve do trenutka kada napon na diodi UD ne dosegne 0.7V, što se dogodi pri naponu:

VUUU DXul 7.37.04.4 =−=−=

Od tog trenutka daljnje smanjivanje ulaznog napona povlači za sobom pad napona UX (UD je konstantnih 0.7V a vrijedi DulX UUU += ), porast struja I i I1 te pad struje I2.

Kad napon UX padne na vrijednost ispod 1.4V, tj.:

VUUU BEzasDX 4.11 =+<

dioda D1 i tranzistor se isključuju, čime struja I2 postaje 0. Ovo se događa kod ulaznog napona:

VUUU DXul 7.07.04.1 =−=−= .

Od tog trenutka nadalje vrijede sljedeće relacije za struje:

( )R

UUUII DulCC +−

== 1 , mAI 02 =

U točki isključenja tranzistora (UX=1.4V) struje I i I1 su iznosile:

mAkkR

UUII XCC 6.3

1

6.3

1

4.151 ==

−=

−==

Smanjivanjem ulaznog napona do vrijednosti 0V napon UX postaje 0.7V a struje:

Page 65: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

62 Zbirka riješenih zadataka

mAkkR

UUII XCC 3.4

1

3.4

1

7.051 ==

−=

−== .

Prijenosnu karakteristiku dobit ćemo praćenjem izlaznog napona, što će odgovarati praćenju struje I2 koja će ovdje odgovarati struji baze tranzistora, pa će u nastavku biti preimenovana u IB. Počnimo analizu opet od Uul=UCC. Tranzistor je u zasićenju, IB=0.6 mA, UCEzas=0.3V.

mAkR

UUI

C

CEzasCCC 7.4

1

3.05=

−=

−=

Kako je mAhImAI FEBC 607.4 =⋅≤= tranzistor je doista u zasićenju.

Dok je tranzistor u zasićenju, izlazni se napon ne mijenja (iznosi UCEzas). Kritični trenutak nastupa kada se dogodi:

mAh

IIhImAI

FE

CBFEBC 047.0

100

7.47.4 ===⇒⋅== .

Naime, daljnjim smanjivanjem struje IB tranzistor više nije u zasićenju već je u NAP-u, i izlazni napon počinje rasti. Pogledajmo kod kojeg se ulaznog napona događa ova promjena. Kombiniranjem izraza za napon UX:

DulX UUU +=

s izrazom za struju IB=I2:

B

BEzasDXB R

UUUI

−−= 1

uz IB=0.047mA slijedi:

VUUURIUR

UUUUI BEzasDDBBul

B

BEzasDDulB 935.01

1 =++−=⇒−−+

=

Padom ulaznog napona pada i struja baze, pa je struja kolektora određena izrazom:

BFEC IhI =

i pada zajedno sa strujom baze. Kako mora vrijediti naponska jednadžba izlaznog kruga:

CCCCCEizl RIUUU −==

padom kolektorske struje izlazni napon raste. Ovaj porast izlaznog napona ići će do iznosa UCC u trenutku kada se tranzistor isključuje uz struju baze 0 mA (što smo već

Page 66: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Osnovni logički sklopovi. 63

prethodno izračunali da se događa kod napona Uul=0.7V). Daljnjim smanjivanjem ulaznog napona izlazni se napon ne mijenja. Prijenosna karakteristika prikazana je u nastavku.

Uul [V]

Uizl [V]

51 2 3 4

1

5

4

3

2

0.3

00.935

0.7

Traženi grafički prikazi slijede.

Uul [V]

UD [V]

51 2 3 43.7

1

5

4

3

2

0.7

0

-1-0.6

Uul [V]

UX [V]

51 2 3 43.7

1

5

4

3

2

0.7

0

Uul [V]

I [mA]

51 2 3 4

1

5

4

3

2

4.3

0 3.7

0.6

Page 67: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

64 Zbirka riješenih zadataka

Uul [V]

I1 [mA]

51 2 3 4 4.3

1

5

4

3

2

4.3

0 3.7

Uul [V]

I2 [mA]

51 2 3 4 4.3

1

5

4

3

2

4.3

0 3.7

0.6

Na određivanje napona UIHmin utječe više 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 logičkoj razini, izlaz mora biti nizak. Pogledamo li prijenosnu karakteristiku sklopa, odmah vidimo da za taj slučaj ulazni napon ne smije biti manji od 0.935V (jer inače napon izlaza više nije nizak, tj. 0.3V). Ovime je određen minimalni iznos parametra UIHmin. Međutim, bitno je za uočiti da pri naponu od 0.935V kroz bazu teče upravo dovoljna struja da podrži kolektorsku struju koju generira RC. Priključivanjem bilo kakvog opterećenja na izlaz sklopa (koje generira dodatnu struju) struja koju bi tranzistor trebao "progutati" postala bi veća od one koju podržava bazna struja. To se, naravno, neće dogoditi, već će izlazni napon porasti (tranzistor ulazi u NAP) kako bi osigurao da i dalje kroz tranzistor teče onolika struja kolika je podržana 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, povećanjem vrijednosti UIHmin povećava se i struja baze koja će u najgorem slučaju teći kroz tranzistor, i time osigurati željeni faktor grananja. Dakako, slično razmatranje vrijedi i za odabir ostalih parametara sklopa.

Page 68: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 65

4. Booleova algebra.

4.1. Zadatak Navedite aksiome Booleove algebre. Njihovom uporabom pokažite da vrijedi:

( ) BABAAA ⋅=⋅+⋅

A.1. Neutralni element a) AA =+ 0 b) AA =⋅1 A.2. Komplement a) 1=+ AA b) 0=⋅ AA A.3. Komutativnost a) ABBA +=+ b) ABBA ⋅=⋅ A.4. Distributivnost a) CABACBA ⋅+⋅=+⋅ )( b) )()( CABACBA +⋅+=⋅+

( )BAAA ⋅+⋅ ( ) ( )( )BAAAA +⋅+⋅= A.4b

( ) ( )( )BAAAA +⋅+⋅= A.3a

( )( )BAA +⋅⋅= 1 A.2a

( )( )1⋅+⋅= BAA A.3b

( )BAA +⋅= A.1b

( ) ( )BAAA ⋅+⋅= A.4a

( )BA ⋅+= 0 A.2b

( ) 0+⋅= BA A.3a

BA ⋅= A.1a Za vježbu. Ponovite postupak ali u prvom koraku primijenite A.4a.

Page 69: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

66 Zbirka riješenih zadataka

4.2. Zadatak Koristeći samo aksiome A.1. – A.4. pokažite da vrijedi 00 =⋅A . Za svaki korak navedite aksiome koje koristite.

0⋅A 00 +⋅= A A.1

AAA ⋅+⋅= 0 A.2 )0( AA +⋅= A.4

AA ⋅= A.1 0= A.2

4.3. Zadatak Koristeći samo aksiome A.1. – A.4. pokažite da vrijedi AAA =⋅ . Za svaki korak navedite aksiome koje koristite.

AA ⋅ 0+⋅= AA A.1

AAAA ⋅+⋅= A.2 )( AAA +⋅= A.4

1⋅= A A.2 A= A.1

4.4. Zadatak Booleove funkcije možemo prikazivati tablicom kombinacija. Zadana je funkcija

CBAABCBACBAf ++=),,( . Prikažite funkciju tablicom kombinacija.

CBAABCBACBAf ++=),,(

Neka je BAf =1 , ABCf =2 te CBAf =3 . Tada je 321 ffff ++= :

Tablica 1. Tablični prikaz Booleove funkcije

1f 2f 3f f

A B C A B C BA ABC CBA 321 fff ++

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

Page 70: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 67

4.5. Zadatak Booleova funkcija zadana je Tablica 1. Prikažite tu funkciju: a) sumom standardnih produkata (minterma) b) umnoškom standardnih suma (maksterma)

a) u tablici promatramo one retke za koje je vrijednost funkcije 1=f .

A B C f mintermi

0 0 0 0 0m

0 0 1 0 1m

0 1 0 0 2m

0 1 1 0 3m

1 0 0 1 4m

1 0 1 1 5m

1 1 0 0 6m

1 1 1 1 7m

To su mintermi 4m , 5m i 7m pa je 754 mmmf ++= . U retku koji pripada mintermu

4m vrijednosti varijabli su slijedeće: A=1, B=0, C=0. Budući da minterm odgovara umnošku varijabli, a u tom retku funkcija mora poprimiti vrijednost 1, slijedi da umnožak mora biti 1, tj. CBAm ⋅⋅=⋅⋅== 11114 . Sličnim razmatranjem dobije se:

CBAm ⋅⋅=5 i ABCm =7 . Tražena funkcija tada glasi:

ABCCBACBAmmmf ++=++= 754 .

b) u tablici promatramo one retke za koje je vrijednost funkcije 0=f .

A B C f makstermi

0 0 0 0 0M

0 0 1 0 1M

0 1 0 0 2M

0 1 1 0 3M

1 0 0 1 4M

1 0 1 1 5M

1 1 0 0 6M

1 1 1 1 7M

Page 71: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

68 Zbirka riješenih zadataka

To su makstermi 0M , 1M , 2M , 3M i 6M , te je 63210 MMMMMf ⋅⋅⋅⋅= . U retku

koji pripada makstermu 0M vrijednosti varijabli su slijedeće: A=0, B=0, C=0. Budući

da maksterm odgovara zbroju varijabli, a u tom retku funkcija mora poprimiti vrijednost 0, slijedi da suma mora biti 0, tj. CBAM ++=++== 00000 . Sličnim razmatranjem

dobije se: CBAM ++=1 , CBAM ++=2 , CBAM ++=3 i CBAM ++=6 .

Tražena funkcija tada glasi:

)()()()()(63210 CBACBACBACBACBAMMMMMf ++⋅++⋅++⋅++⋅++=⋅⋅⋅⋅=

4.6. Zadatak

Funkcija ( )CBAf ,, zadana je tablično. a) Zapišite funkciju kao sumu minterma. b) Zapišite funkciju kao produkt maksterma. c) Zapišite komplement funkcije kao sumu minterma. d) Zapišite komplement funkcije kao produkt maksterma.

e) Kakva je veza između kanonskih oblika f i f ?

A B C f mintermi makstermi

0 0 0 1 0m 0M

0 0 1 0 1m 1M

0 1 0 0 2m 2M

0 1 1 1 3m 3M

1 0 0 1 4m 4M

1 0 1 0 5m 5M

1 1 0 1 6m 6M

1 1 1 0 7m 7M

a) f

6430 mmmm +++=

CBACBABCACBA +++= ( )∑= 6,4,3,0

b) f

7521 MMMM ⋅⋅⋅=

)()()()( CBACBACBACBA ++⋅++⋅++⋅++= ( )∏= 7,5,2,1

Page 72: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 69

c) f 7521 mmmm +++=

ABCCBACBACBA +++= ( )∑= 7,5,2,1

d) f 6430 MMMM ⋅⋅⋅=

)()()()( CBACBACBACBA ++⋅++⋅++⋅++= ( )∏= 6,4,3,0

e)

∑∏∑∉∈∈

==⇔=Si

iSi

iSi

i mfMfmf ,

∏∑∏∉∈∈

==⇔=Ri

iRi

iRi

i MfmfMf ,

Vezu možemo iskazati i riječima: ako funkcija sadrži mintermi mi, komplement funkcije sadrži odgovarajući maksterm Mi, ili alternativno, sadrži sve one minterme koje sama funkcija ne sadrži. Isto tako, ako funkcija sadrži maksterm Mi, tada komplement sadrži minterm mi, ili alternativno, sadrži sve one maksterme koje sama funkcija ne sadrži.

4.7. Zadatak Zadana je funkcija DCBDCAf ++= . a) Prikažite ovu funkciju kao sumu standardnih produkata. b) Prikažite ovu funkciju kao umnožak standardnih suma. c) Prikažite funkciju tablično. d) Očitajte iz tablice fg = u obliku sume standardnih produkata.

e) Očitajte iz tablice fg = u obliku umnoška standardnih suma. f) Prikažite funkciju uporabom NI operacije. g) Nacrtajte sklop koji obavlja funkciju f pomoću NI sklopova.

a) f DCBDCA ++=

DCDBCA ⋅⋅+⋅⋅⋅+⋅⋅⋅= 111111 DCBBAADCCBAADDCBBA ⋅+⋅++⋅+⋅⋅+++⋅⋅+⋅= )()()()()()( DCBADCBABCDAABCDDCABDCBADCBADCAB +++++++=

15715129813 mmmmmmmm +++++++= ( )∑= 15,13,12,9,8,7,5,1

b)

Page 73: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

70 Zbirka riješenih zadataka

Poslužimo se činjenicom da je: [ ][ ] ff DD = .

[ ]Df ))()(( DCDBCA +++= ))(())(( DCDBCDCDBA +++++= )()()()( DCDCDCBCDCADDCAB +++++++= DDCCDCBDCCBCADDCADABDCAB +++++++= DCBDCBCADCADABDCAB ++++++= DCCBADDABC ++++++= )1()1( DCADBC ++= [ ][ ]DDf ))()(( DCDABC +++=

)00)(00)(00( DCDACB +++++++++= ))()(( DCBBAADCCBBADDCBAA +++++++++=

))()()((

))()()((

DCBADCBADCBADCBA

DCBADCBADCBADCBA

++++++++++++⋅⋅++++++++++++=

14640111032 MMMMMMMM ⋅⋅⋅⋅⋅⋅⋅=

( )∏= 14,11,10,6,4,3,2,0

c)

A B C D f fg = 0 0 0 0 0 0 1 1 0 0 0 1 1 0 2 0 0 1 0 0 1 3 0 0 1 1 0 1 4 0 1 0 0 0 1 5 0 1 0 1 1 0 6 0 1 1 0 0 1 7 0 1 1 1 1 0 8 1 0 0 0 1 0 9 1 0 0 1 1 0

10 1 0 1 0 0 1 11 1 0 1 1 0 1 12 1 1 0 0 1 0 13 1 1 0 1 1 0 14 1 1 1 0 0 1 15 1 1 1 1 1 0

d)

( )DABCCDBADCBADBCADCBACDBADCBADCBA

g

+++++++=

=∑ 14,11,10,6,4,3,2,0

Page 74: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 71

e)

( )( )( )( )( )( )( )( )( )DCBADCBADCBADCBA

DCBADCBADCBADCBA

g

++++++++++++⋅⋅++++++++++++=

= ∏ 15,13,12,9,8,7,5,1

f)

DCBDCAf ++=

DCCBDCCA

DCBDCA

DCBDCA

ff

⋅⋅=

⋅⋅=

++=

=

g) Zadatak rješavamo metodom supstitucije.

&1

&

1

& 1≥

A

B

C

Df

Vrijedi:

1

&

AAA ⋅=

1≥

&

&

&

BABA ⋅=+

Page 75: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

72 Zbirka riješenih zadataka

&

& &

BABA ⋅=⋅

Zamjenom I, ILI i NE logičkih sklopova u shemi sklopa dobijemo:

&

& &

&

&

&

& &

&

&

&

&

A

B

C

Df

Odnosno:

&

&

&

&

&

&

A

B

C

Df

Za vježbu. Prikažite funkciju uporabom NILI operacije. Nacrtajte sklop koji obavlja funkciju f pomoću NILI sklopova.

Page 76: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 73

4.8. Zadatak

Zadana je ( ) ∑= )7,4,2,1(,, CBAf poznata pod nazivom «neparni paritet». Napišite

algebarski izraz ove funkcije uporabom samo ⊕ operacije.

),,( CBAf

7421 mmmm +++= ABCCBACBACBA +++= ( ) ( )ABBACBABAC +++= ( ) ( )BACBAC ≡+⊕= ( ) ( )BACBAC ⊕+⊕= ( ) CBA ⊕⊕= CBA ⊕⊕=

4.9. Zadatak Napišite dualne funkcije od a) CBAABCBAf ++=1

b) CBAf ⋅+⋅⋅= 012

a) [ ] ( ) ( ) ( )CBACBABAf D ++⋅++⋅+=1

b) [ ] ( ) ( )CBAf D +⋅++= 102

4.10. Zadatak

Uporabom dualne funkcije odredite komplemente od a) CBAABCBAf ++=1

b) CBAf ⋅+⋅⋅= 012

a) [ ] ( ) ( ) ( )CBACBABACBAfCBAf D ++⋅++⋅+== ),,(),,( 11

b) [ ] ( ) ( )CBACBAfCBAf D +⋅++== 10),,(),,( 22

Page 77: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

74 Zbirka riješenih zadataka

4.11. Zadatak Da li su funkcije

CBAABCBAf ++=1 i

)()()()()(2 CBACBACBACBACBAf ++⋅++⋅++⋅++⋅++= logički jednake?

a) Navedene funkcije korištene već su korištene u prethodnim zadacima te obje imaju identičan tablični prikaz (Tablica 1). Zbog toga su te funkcije jednake. b) Algebarska metoda

1f

( )

( )BCBA

ABCBA

ABCBA

ABCCBA

CBAABCBA

CBAABCBA

+⋅=+=

+⋅=++⋅=

++⋅=++=

1

1

1

( ) ( )( ) ( ) ( )( )( ) ( )( ) ( )( )( ) ( )( ) ( ) ( )( ) ( ) ( )( )

( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( ) ( )

2

111

f

CBACBACBACBACBA

ACBACBCBACBACBACBA

AACBCCBACCBA

CBBABA

CBBABA

CBBBA

=++⋅++⋅++⋅++⋅++=

++⋅++⋅++⋅++⋅++⋅++=+⋅+⋅+⋅+⋅+⋅+=

⋅+⋅⋅+⋅⋅+=+⋅+⋅+=

+⋅+⋅=

4.12. Zadatak

Zadana je funkcija BCDCADCAf ++= . Objasnite kako biste sklopovski realizirali njezin komplement, ako su na raspolaganju sve varijable i komplementi, jedan višeulazni I sklop, te potreban broj ILI sklopova.

Kako imamo na raspolaganju samo jedan višeulazni I sklop, funkciju koju je potrebno realizirati očito treba prikazati u obliku umnoška parcijalnih suma. Dakle, ako realiziramo funkciju fg = , funkcija g treba biti zapisana u produktnom obliku. U tu svrhu komplement ćemo realizirati kao dualnu funkciju u komplementiranim varijablama, pa imamo:

( ) ( ) ( )CBDCADCAg +⋅++⋅++= Iz ovog oblika realizacija je trivijalna!

Page 78: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 75

4.13. Zadatak

Sve se logičke funkcije mogu prikazati tablicom kombinacija i zatim kao suma minterma ili produkt maksterma. Pri tome se koriste samo operacije I, ILI i NE pa zaključujemo da su te tri operacije dovoljne za prikaz bilo koje druge funkcije. Da li se taj skup funkcija može smanjiti na: a) I, NE b) ILI, NE c) NI d) NILI Prikažite CBAABCBAf ++= algebarski i grafički.

Tražena funkcija izvodi se na slijedeći način:

&

1

&

&1

1≥

A

B

C

f

a) ako se uporabom I i NE može prikazati ILI, onda nam je i taj skup dovoljan. Krenimo od De Morganovog zakona:

BABA ⋅=+ Komplementiranjem ovog izraza dobivamo:

BABA ⋅=+ Primjenom zakona involucije slijedi:

( ) ( )( )( )BNEANEINEBABA ,=⋅=+ Zaključujemo da je skup I, NE dovoljan.

Page 79: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

76 Zbirka riješenih zadataka

f CBAABCBA ++= CBAABCBA ++= CBAABCBA ⋅⋅= ( )( )( ) ( )( ) ( )( )( )( )( )CBNEAINECBAINEBNEAINEINE ,,,,,,,= Grafički funkciju možemo prikazati samo uporabom baznih funkcija metodom supstitucije. Najprije je potrebno svaki ne-baznu funkciju prikazati baznima, i zatim obaviti supstituciju.

I, NE

1≥

&

1

1

1

Obavimo supstituciju:

&

1

&

&1

A

B

C

f

1

1

1

& 1

Ovime je postupak završen te je pokazano kako se izvorna funkcija može izvesti samo uporabom I i NE logičkih sklopova. b) ako se uporabom ILI i NE može prikazati I, onda nam je i taj skup dovoljan. Krenimo od De Morganovog zakona:

BABA +=⋅ Komplementiranjem dobivamo:

BABA +=⋅ Primjenom zakona involucije slijedi:

Page 80: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 77

( ) ( )( )( )BNEANEILINEBABA ,=+=⋅ Zaključujemo da je skup ILI, NE dovoljan. f

CBAABCBA ++=

CBAABCBA ++= CBACBABA +++++++= ( )( )( ) ( ) ( ) ( )( )( ) ( ) ( )( )(( CNEBANEILINECNEBNEANEILINEBANEILINEILI ,,,,,,,=

ILI, NE

&

1

1

11≥

Supstitucija:

1≥

1

11

1

1

1

1

1

1

1

1≥

1≥

1

1

1

1≥

A

B

C

f

Page 81: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

78 Zbirka riješenih zadataka

Kako je komplement od komplementa sama vrijednost, dva uzastopna invertora možemo izbaciti, pa konačna shema sklopa izgleda:

1≥

1

1

1

1

1

1

1≥

1≥

1

1

1

1≥

A

B

C

f

c) Potrebno je sve tri operacije izraziti preko NI.

),( AANIAAAAAAA =⋅==+=+=

( ) ( )( )BBNIAANINIBABA ,,,=⋅=+

)),(),,(()),(( BANIBANINIBANINEBABA ==⋅=⋅ f CBAABCBA ++=

CBAABCBA ++= CBAABCBA ⋅⋅= ( )( ) ( ) ( )( )( )CBBNIANICBANIBBNIANINI ,,,,,,,,,=

Page 82: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 79

NI

1

&

1≥

&

&

&

&

& &

Supstitucija:

A

B

C

f

&

&

&

&

&

&

&

&

&

&

&

&

Primjenom zakona involucije slijedi:

A

B

C

f

&

&

&

&

&

&

Page 83: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

80 Zbirka riješenih zadataka

d) Potrebno je sve tri operacije izraziti preko NILI.

),( AANILIAAAAAAA =+==⋅=⋅=

)),(),,(()),(( BANILIBANILINILIBANILINEBABA ==+=+

( ) ( )( )BBNILIAANILINILIBABA ,,,=+=⋅ f CBAABCBA ++=

CBAABCBA ++=

CBAABCBA ++=

CBACBABA +++++++= ( )( )

( ) ( ) ( )( )( ) ( )( )( )( )( ) ( ) ( )( )( ) ( )( )

=

CCNILIBAANILINILI

CCNILIBBNILIAANILINILI

BAANILINILI

NILI

CCNILIBAANILINILI

CCNILIBBNILIAANILINILI

BAANILINILI

NILI

NILI

,,,,

,,,,,,

,,,

,

,,,,

,,,,,,

,,,

NILI

1

1≥

1≥

1≥ 1≥

&

1≥

1≥

1≥

Page 84: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 81

Supstitucija:

1≥

1≥1≥

1≥

1≥

1≥

1≥

1≥

1≥

1≥1≥

1≥

1≥

1≥ 1≥

A

B

C

f

Nakon primjene zakona involucije:

1≥

1≥

1≥

1≥

1≥

1≥

1≥

1≥

1≥

1≥ 1≥

A

B

C

f

Page 85: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

82 Zbirka riješenih zadataka

4.14. Zadatak Zadana je funkcija ( ) ( ) EDBCABf ++⋅+= . a) Prikažite sklop koji realizira ovu funkciju. b) Koliko razinski je taj sklop? Zašto je to bitno? c) Može li se ista funkcija realizirati dvorazinskim sklopom? Objasnite i prikažite rješenje.

a)

&

1≥

1≥

&

1≥

A

B

C

D

Ef

b) Sklop je 4-razinski. Ovaj podatak bitan je kod fizičke implementacije funkcija zbog toga što svaki logički sklop ima određeno vrijeme kašnjenja. Što je više razina, to će proći više vremena prije no što se konačan rezultat pojavi na izlazu sklopa.

&

1≥

&

1≥

1≥

c) Svaka Booleova funkcija može se u najgorem slučaju prikazati kao suma produkata ili produkt suma, što se može direktno realizirati dvorazinskim sklopom.

Page 86: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 83

f ( ) ( ) EDBCAB ++⋅+= ECDBCABDAB ++++= ( ) ECDBCDAB ++++= 1 ECDBCAB +++=

4.15. Zadatak Konstruirati sklop koji kodira trobitni binarni broj u Gray-ev kod. Pri tome se koristiti isključivo EX-ILI sklopovima. Opisati sklop VHDL-om. Modelirati vrijeme prolaska signala kroz sklop kašnjenjem od 20 ns.

Prikažimo tablično funkciju sklopa:

n b2 b1 b0 g2 g1 g0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 2 0 1 0 0 1 1 3 0 1 1 0 1 0 4 1 0 0 1 1 0 5 1 0 1 1 1 1 6 1 1 0 1 0 1 7 1 1 1 1 0 0

Vrijedi: g2=f2(b2,b1,b0), g1=f1(b2,b1,b0), g0=f0(b2,b1,b0). Pronađimo te funkcije!

( )( )( )

2

112

0010012

010101012

0120120120122

)()(

b

bbb

bbbbbbb

bbbbbbbbb

bbbbbbbbbbbbg

=+=

+++=

+++=+++=

( ) ( )

21

1212

00120012

0120120120121

bb

bbbb

bbbbbbbb

bbbbbbbbbbbbg

⊕=+=

+++=+++=

( ) ( )

01

0101

2212201

0120120120120

bb

bbbb

bbbbbbbb

bbbbbbbbbbbbg

⊕=+=

+++=

+++=

Page 87: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

84 Zbirka riješenih zadataka

1=

1=

2b

1b

0b

2g

1g

0g

Novost u odnosu na dosad viđeni 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;

Page 88: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 85

Napomena: dan je VHDL opis sklopa pri čemu su ponuđene dvije implementacije arhitekture. Arhitektura funkcijskaBinGray opisuje funkciju sklopa temeljeći se na case naredbi, dok arhitektura funkcijska2BinGray opisuje funkciju sklopa uporabom osnovnih logičkih funkcija. Konačni VHDL opis treba sadržavati samo jednu od navedenih arhitektura. Za vježbu. Napišite VHDL opis ovog sklopa: a) ponašajni (tj. funkcijski) model, ali bez uporabe bloka PROCESS b) strukturni model Za vježbu. Komunikacijskim medijem prenose se okteti. Konstruirajte sklop koji će na ulazu primati oktete, a na izlazu generirati Hammingovu kodnu riječ koja sadrži taj oktet. Sklop ima dodatni ulaz P, koji kada je u 1 znači 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 ponašajni opis sklopa koji trobitni broj kodiran Grayevim kodom pretvara u njegov binarni ekvivalent. Napisati funkcijsku ovisnost izlaza sklopa o ulazima.

Prikažimo funkciju sklopa tablično. g2 g1 g0 b2 b1 b0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1

Sklop dakle ima tri izlaza. Iz tablice direktno možemo očitati izraze za svaki od izlaza: b2 = g2 b1 = g2 ⊕ g1 b0 = g2 ⊕ g1 ⊕ g0 Ponašajni opis sklopa tada je prikazan u nastavku.

Page 89: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

86 Zbirka riješenih zadataka

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 simetričnih impulsa periode T = 50 ns. Kašnjenje svakog logičkog sklopa je 10 ns. a) Odrediti koju logičku funkciju obavlja sklop (zanemarite kašnjenja). Nacrtati valne oblike A i f koji odgovaraju toj logičkoj funkciji.

b) Nacrtati valne oblike napona A, napona f, te napone na izlazima svih ostalih logičkih sklopova u trajanju od 150 ns, ako se u obzir uzmu i kašnjenja pojedinih sklopova. (Napomena: zanemariti sve pojave osim kašnjenja). c) Napisati u VHDL-u ponašajni model upotrijebljenog logičkog sklopa, te njegovom uporabom strukturni model cijelog sklopa.

a) Logička funkcija koju obavlja sklop glasi:

( )( ) ( ) AAAAAAAAf =⊕=⊕⊕=⊕⊕⊕= 11 Traženi valni oblici su:

1=

1=

1=

Page 90: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 87

t

t

A

f

0 25 50 75 100 125 150

b) Uvedimo dodatne oznake u shemi sklopa.

1=

1=

1=

U slučaju da promatramo i kašnjenja pojedinih sklopova dobivamo sljedeće valne oblike:

t

t

t

t

A

B

C

f

0 25 50 75 100 125 150

Page 91: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

88 Zbirka riješenih zadataka

c) VHDL opis sklopa prikazan je u nastavku. library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY sklopXOR IS PORT( x1, x2: IN std_logic; y : OUT std_logic ); END sklopXOR; ARCHITECTURE funkcijskaXOR OF sklopXOR IS BEGIN y <= transport x1 XOR x2 after 10 ns; END funkcijskaXOR;

library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY sklop2 IS PORT( a : IN std_logic; f : OUT std_logic ); END sklop2; ARCHITECTURE strukturna OF sklop2 IS SIGNAL b, c: std_logic; COMPONENT sklopXOR PORT( x1, x2: IN std_logic; y : OUT std_logic ); END COMPONENT; BEGIN c1: sklopXOR PORT MAP (a, '1', b); c2: sklopXOR PORT MAP (a, b, c); c3: sklopXOR PORT MAP (a, c, f); END strukturna;

Kašnjenje se modelira transportnim modelom, što je definirano ključnom riječi transport. Kod transportnog modela svaka promjena na ulazu (ma kako kratka), imat će utjecaj na izlaz sklopa.

4.18. Pismeni ispit, 10. 10. 2003, 2. zadatak Sklop s ulazima a i b te izlazom c opisan je VHDLom. Arhitektura sklopa sastoji se od internih signala x, y i z te proces bloka zadanog slikom. Svi signali su tipa std_logic. U trenutku t = 0 ns signali a i b postavljaju se na vrijednost 0, a u trenutku t = 5 ns signal a prelazi u 1. Nacrtati vremenski dijagram svih signala sklopa za period 0 ns ≤ t ≤ 10 ns kakav bi se dobio simulacijom u Xilinx WebISE alatu. Objasnite odziv sklopa.

U trenutku t=0 ns, svi su postavljeni na U. U trenutku t=0+ ns signali a i b postavljaju se na vrijednost nula. Zbog toga se ulazi u process blok (jer se u listi osjetljivosti nalaze signali a i b). U prvom prolazu kroz taj

process (a,b) begin x <= a or b; y <= x or b; z <= x and y; c <= z; end process;

Page 92: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 89

blok x postaje 0, y ostaje U (naime, U or 0 = U), z ostaje U (U and U = U), te c ostaje U. Kako se a ili b ovime nisu promijenili, izvođenje process bloka ovime završava, i simulacija se nastavlja. U trenutku t=5 ns signal a prelazi u 1, čime se ponovno pokreće izvođenje process bloka (jer je a u njegovoj listi osjetljivosti). U prvom prolazu signal x postavlja se na 1 (1 or 0 = 1), signal y postavlja se na 0 (0 or 0 = 0), signal z postavlja se na 0 (0 and U = 0), a signal c i dalje ostaje U. Kako se niti sada nije promijenila niti jedna varijabla iz liste osjetljivosti process bloka, ne ulazi se ponovno u njegovo izračunavanje, i simulacija se nastavlja. Grafički prikaz dat je u nastavku.

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 međusobno?

Prema naponskim razinama sklop obavlja sljedeću funkciju:

A B C f L L L H L L H H L H L H L H H H H L L H H L H H H H L H H H H L

+UCC

UulA

UulB

+UCC

UulC

Uf

Page 93: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

90 Zbirka riješenih zadataka

a) ako L tumačimo kao 0, a H kao 1 (pozitivna logika) imamo funkciju:

CBAf ++= b) ako L tumačimo kao 1, a H kao 0 (negativna logika) imamo funkciju:

CBAf = Funkcije su međusobno dualne.

4.20. Pismeni ispit, 25. 02. 2004, 8. zadatak

Koju funkciju obavlja sklop prikazan na slici u negativnoj logici, a koju u pozitivnoj logici? U kakvom su odnosu te dvije funkcije?

Zadatak možemo riješiti na više načina. Možda je najjednostavniji direktnim očitanjem. Naime, u pozitivnoj logici A i B spojeni su na I sklop (dvije diode i otpor prema napajanju). Izlaz tog I sklopa spojen je na invertor, pa se zapravo računa NE ( A I B ), tj. A NI B. Izlaz invertora zajedno s varijablom C spojeni su na ILI sklop (dvije diode i otpor prema masi). Dakle, sklop ostvaruje funkciju (A NI B) ILI C:

CBACBAf ++=+⋅= Funkcija koju sklop ostvaruje u negativnoj logici dualna je funkciji koju sklop ostvaruje u pozitivnoj logici, i glasi:

CBACBAf ⋅⋅=⋅+= Drugi način rješavanja jest analiza izlaznog napona sklopa:

UA UB UC Uf Nisko Nisko Nisko Visoko Nisko Nisko Visoko Visoko Nisko Visoko Nisko Visoko Nisko Visoko Visoko Visoko

Visoko Nisko Nisko Visoko Visoko Nisko Visoko Visoko Visoko Visoko Nisko Nisko Visoko Visoko Visoko Visoko

UA

UB

UC

Uf

+UCC

Page 94: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 91

U pozitivnoj logici niskoj naponskoj razini odgovara logička nula, a visokoj logička jedinica. Primjenimo li to na naponsku tablicu, slijedi:

A B C f 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1

Funkcija se očito može zapisati kao jednočlani produkt maksterma:

CBAMf ++== 6

U negativnoj logici niskoj naponskoj razini odgovara logička jedinica, a visokoj logička nula. Primjenimo li to na naponsku tablicu, slijedi:

A B C f 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 0

Funkcija se očito može zapisati kao jednočlana suma minterma (u dobivenoj tablici minterm m0 nalazi se na dnu!):

CBAmf ⋅⋅== 1 , čime smo potvrdili prethodno rješenje. Osim toga, pokazali smo i da su funkcije međusobno dualne (jer su minterm m1 i maksterm M6 međusobno dualni).

Page 95: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

92 Zbirka riješenih zadataka

4.21. Zadatak Dvorazinskom logikom projektirajte sklop koji uspoređuje dva 4-bitna binarna broja, i kao rezultat vraća 1 ako su oni jednaki, 0 inače. Komentirajte rješenje za opći slučaj usporedbe k-bitnih brojeva.

Budući da se kao rezultat očekuje rješenje koje ima najviše dvije razine logike (suma parcijalnih produkata ili produkt parcijalnih suma), rješavanju 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. Međutim, nema potrebe da ispisujemo cijelu tablicu: kratkim promišljanjem možemo zaključiti da će tablica istinitosti biti vrlo rijetko popunjena s 1! Zbog toga možemo napisati djelomičnu tablicu istinitosti – samo one retke u kojima funkcija poprima vrijednost 1:

A B a3 a2 a1 a0 b3 b2 b1 b0 e m 0 0 0 0 0 0 0 0 1 m0 0 0 0 1 0 0 0 1 1 m17 0 0 1 0 0 0 1 0 1 m34 0 0 1 1 0 0 1 1 1 m51 0 1 0 0 0 1 0 0 1 m68 0 1 0 1 0 1 0 1 1 m85 0 1 1 0 0 1 1 0 1 m102 0 1 1 1 0 1 1 1 1 m119 1 0 0 0 1 0 0 0 1 m136 1 0 0 1 1 0 0 1 1 m153 1 0 1 0 1 0 1 0 1 m170 1 0 1 1 1 0 1 1 1 m187 1 1 0 0 1 1 0 0 1 m204 1 1 0 1 1 1 0 1 1 m221 1 1 1 0 1 1 1 0 1 m238 1 1 1 1 1 1 1 1 1 m255

inače 0 ostali Funkcija dakle sadrži sve minterme oblika ( )122 +⋅=+⋅ kk nnn gdje je n neka vrijednost broja a k broj bitova broja. U našem slučaju k=4, pa n može poprimiti broj iz intervala [0, 2k-1]=[0,15], i ukupno imamo upravo 2k=16 takvih minterma. Traženo rješenje tada glasi:

( )255238221204187170153136

1191028568513417001230123 ,,,,,,,

mmmmmmmm

mmmmmmmmbbbbaaaae

++++++++++++++++=

Komentirajmo još i rješenje. Za realizaciju jednog minterma trebamo jedan I sklop s

k⋅2 ulaza (u ovom slučaju 8 ulaza). Funkcija ukupno sadrži 2k minterma (u ovom slučaju to iznosi 16), pa trebamo jedan ILI sklop s 2k ulaza (dakle, s 16 ulaza). Međutim, kako je broj razina logike ograničen na 2, sklop će relativno brzo izračunavati

Page 96: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 93

točan 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 sadržavala upravo toliko minterma.

4.22. Zadatak Neka se funkcija e, čiji su argumenti dva k-bitna broja A i B, realizira kao suma minterma. Izračunati koliko će ta funkcija sadržavati minterma, i kako će izgledati njezina direktna realizacija, ako je funkcija definirana (i) e = (A>B), (ii) e = (A≥B).

Do rješenja se dolazi jednostavnim razmatranjem. U prvom slučaju, funkcija poprima 1 ako je vrijednost broja A strogo veća od vrijednosti broja B. Svaki od tih brojeva može poprimiti vrijednost iz intervala [0, 2k-1]. Ako fiksiramo vrijednost broja A na vrijednost n, tada broj B može poprimiti točno n različitih vrijednosti, a da vrijedi A>B. Npr. ako je vrijednost broja A n=5, tada B može poprimiti vrijednosti 0,1,2,3,4 pri čemu je zadovoljeno A>B. Kako n može biti iz intervala [0, 2k-1], ukupan broj kombinacija za koje vrijedi A>B, što predstavlja i broj minterma funkcije e, iznosi:

( )( ) ( )2

122

2

1121212

0

−=+−−=∑−

=

kkkk

n

k

n

Npr. funkcija e=(A>B) za 4-bitne brojeve sadržavala bi 120 minterma. Njezina direktna realizacija zahtijevala bi 120 8-ulaznih I sklopova, te jedan 120 ulazni ILI sklop. Što je sa slučajem za k=32? U drugom slučaju, gdje je e definiran s e = (A≥B), do rezultata možemo doći na dva načina. Ako fiksiramo vrijednost broja A na n, tada B može poprimiti n+1 vrijednost a da vrijedi A≥B. Npr. za n=5 B može poprimiti vrijednosti 0,1,2,3,4,5. Sumiranjem po svim vrijednostima broja A slijedi:

( ) ( )2

122

212

10

1

12

1

12

0

+⋅==

=⇒−==⇒=

+==+ ∑∑

=

=

kk

tkkn

kk

t

tn

tn

nt

n

Alternativno, broj slučajeva za koje vrijedi (A≥B) možemo dobiti i kao sumu broja slučajeva za koje vrijedi (A>B) i (A=B) jer su ti slučajevi međusobno disjunktni. Prvo smo već izračunali, a drugo iznosi upravo 2k, pa sumiranjem slijedi:

( ) ( )2

1222

2

122 +=+− kkk

kk

Npr. funkcija e=(A≥B) za 4-bitne brojeve sadržavala bi 136 minterma. Njezina direktna realizacija zahtijevala bi 136 8-ulaznih I sklopova, te jedan 136 ulazni ILI sklop. Što je sa slučajem za k=32?

Page 97: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

94 Zbirka riješenih zadataka

4.23. Zadatak Projektirajte sklop koji uspoređuje dva 4-bitna binarna broja, i kao rezultat vraća 1 ako su oni jednaki, 0 inače. Broj razina logike nije bitan, ali dizajn mora raditi i za višebitne brojeve (k>4). Komentirajte rješenje za opći slučaj usporedbe k-bitnih brojeva.

Kako sada imamo potpunu slobodu u dizajnu sklopa, pogledajmo najprije kako bismo riješili analogan problem: napisati program koji uspoređuje dva k-bitna broja i vraća 1 ako su oni jednaki! Pseudokod rješenja 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: uspoređuju se i-ti bitovi brojeva, i nova vrijednost rezultata (Jednaki) definira se kao logičko I vrijednosti rezultata iz prošle iteracije, i trenutne usporedbe i-tih bitova. Za konačan, unaprijed poznat broj ponavljanja, ovu petlju možemo "raspetljati" po indeksu k. Npr. za k=4 možemo 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 možemo dizajnirati iterativno! Ako unutrašnjost For petlje gledamo kao crnu kutiju, tada su njeni ulazi Jednaki(i-1), A(i), B(i) a izlaz Jednaki(i). To možemo modelirati sklopovski:

Page 98: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 95

&

1=

&

A(i) B(i)

Jednaki(i-1)

Jednaki(i)

bitoviJednaki(i)

Naime, funkcija koja testira dva bita na jednakost upravo je EX-ILI (provjerite tablicom istinitosti). Zapravo, dizajn unutrašnjosti crne kutije može 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 kraćeg zapisa, funkciju Jednako(i) označavati s E. Funkcija E može se algebarski zapisati: E(Ai, Bi, Ei-1)=Ei-1 AND (Ai XOR Bi) Jednom kad smo dizajnirali unutrašnjost jednog stupnja, vrlo lagano možemo projektirati k-bitni komparator. Za slučaj k=4 imamo:

&

1=

&

A(3) B(3)

Jednaki(3)

&

1=

&

A(2) B(2)

Jednaki(2)

&

1=

&

A(1) B(1)

Jednaki(1)

&

1=

&

A(0) B(0)

Jednaki(0)

1

Jednaki

4-bi

tni k

ompa

rato

r

Cijela funkcija tada se može zapisati kao:

( )( )( ) ( )( )( ) ( )( ) ( )

( )( ) ( )( ) ( )( ) ( )( )( ) ( )( ) ( )( ) ( )33221100

332211001

3322110

33221

332

1 BXORAANDBXORAANDBXORAANDBXORAAND

BXORAANDBXORAANDBXORAANDBXORAANDE

BXORAANDBXORAANDBXORAANDE

BXORAANDBXORAANDE

BXORAANDEE

=====

Komentirajmo dobiveno rješenje. Neovisno o k, sklopovsko rješenje uvijek koristi dvoulazne I sklopove, i dvoulazne EX-ILI sklopove. Za k-bitni komparator, trebat ćemo

Page 99: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

96 Zbirka riješenih zadataka

k EX-ILI sklopova i k I sklopova. U usporedbi s realizacijom iste funkcije u dvorazinskoj logici, sve navedeno čini se kao prednost. Štoviše, čak niti broj utrošenih sklopova ne raste eksponencijalno, već linearno s faktorom 1. Možemo li tada reći da je ovo najbolje rješenje? Odgovor je, dakako, ne. Naime, ovaj dizajn je izgubio jedno vrlo korisno svojstvo koje je realizacija dvorazinskom logikom garantirala: konstantno (i malo!) vrijeme izračuna rezultata. Kod iterativnog dizajna, vrijeme do pojave točnog rezultata funkcije ovisno je o broju stupnjeva (iteracija), a u našem primjeru trebamo jedan stupanj za svaki bit. Dakle, za 32-bitni komparator, vrijeme potrebno za pojavu točnog rezultata iznosit će 32 puta vrijeme potrebno za izračun rezultata jednog stupnja. Općenito, što je veći k, to ćemo duže čekati na odgovor sklopa! U današnje doba izrade brzih sklopova velika vremena reakcije sklopa neće se tolerirati, pa se za velike k sklopovi neće realizirati niti direktnom primjenom iterativnog dizajna. Jedno od rješenja koje se danas koristi jest hibridni pristup – problem se razbije na iterativni postupak, ali ne do kraja. Umjesto da završimo na stupnju koji računa rezultat nad jednim bitom, zaustavit ćemo se na stupnju koji direktno dvorazinskom logikom računa rezultat za npr. 4-bita. Postoje još neke modifikacije pristupa, o kojima će više riječi biti u poglavlju o Digitalnoj aritmetici.

Page 100: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Booleova algebra. 97

ZADACI ZA VJEŽBU

1. Prikazati tablicom kombinacija i logičkim izrazom funkciju sklopa čiji je ulaz 4-bitni binarni broj, a izlaz je u logičkoj jedinici ako je broj nula u broju a) paran, b) veći od broja jedinica, c) jednak broju jedinica.

2. Prikazati tablicom kombinacija i logičkim izrazom funkciju sklopa čiji je ulaz 4-bitni binarni broj, a izlaz je u logičkoj nuli ako u broju: a) postoje točno dvije uzastopne nule, b) postoje barem dvije uzastopne jedinice, c) ne postoje uzastopne nule niti jedinice.

3. Prikazati tablicom kombinacija i logičkim izrazom funkciju sklopa čiji je ulaz 3-bitni binarni broj, a izlaz je u logičkoj 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 logičkoj jedinici ako je broj A veći od broja B. Prikazati tablicom kombinacija i logičkim izrazom funkciju ovog sklopa.

5. Ulaz sklopa su dva dvobitna broja A i B. Izlaz sklopa je u logičkoj jedinici ako je rezultat zbrajanja ovih brojeva u intervalu [2,5]. Prikazati tablicom kombinacija i logičkim izrazom funkciju ovog sklopa.

6. Prikažite sklop koji samo uporabom NI sklopova realizira funkciju ( )DCCABADCBAf ⋅+⋅⋅+=),,,( .

7. Prikažite sklop koji samo uporabom NI sklopova realizira funkciju DCADBACBADCBAf ⋅⋅+⋅⋅+⋅⋅=),,,( .

8. Prikažite sklop koji samo uporabom NILI sklopova realizira funkciju DCADBACBADCBAf ⋅⋅+⋅⋅+⋅⋅=),,,( .

9. Prikažite sklop koji samo uporabom NI sklopova realizira funkciju ( ) ( ) ( )DCADBACBADCBAf ++⋅++⋅++=),,,( .

10. Prikažite sklop koji samo uporabom NILI sklopova realizira funkciju ( ) ( ) ( )DCADBACBADCBAf ++⋅++⋅++=),,,( .

11. Tablicom kombinacija provjeriti da su funkcije f i g jednake. Funkcije su zadane sljedećim izrazima:

DCBCADCADCBAf ⋅⋅+⋅+⋅⋅=),,,( , ( ) ( ) ( )DCBDCACADCBAg ++⋅++⋅+=),,,( .

12. Zadana je funkcija CBACBACBACBACBAf ⋅⋅+⋅⋅+⋅⋅+⋅⋅=),,( . Algebarskom

metodom pokažite da se ta funkcija može zapisati kao BACACBAf ⋅+⋅=),,( .

13. Algebarskom metodom pokažite da je )()()( BACBCA +⋅+⋅+ jednako )()( CBCA +⋅+ . Navedite aksiome koji su pri tome korišteni.

14. Zadana je funkcija BACACBAf ⋅+⋅=),,( . Algebarskom metodom pokažite da je to

ista funkcija kao i ( ) ( )CABACBAg +⋅+=),,( .

Page 101: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

98 Zbirka riješenih zadataka

15. Uporabom dualne funkcije direktno zapišite komplement od BACACBAf ⋅+⋅=),,( .

16. Projektirati kombinacijski sklop koji ispituje da li je na ulaz dovedena ispravna BCD znamenka. Nacrtati shemu sklopa. Napisati ponašajni opis sklopa u VHDL-u.

17. Za Booleovu algebru definiranu na kraju dodatka 2 uporabom tablica istinitosti dokažite da su operatori ILI (Def1) i KOMPLEMENT (Def2) ispravno definirani.

18. Koristeći aksiome Booleove algebre definirane na kraju dodatka 2, pokažite da vrijedi:

a) svi aksiomi "naše" definicije Booleove algebre koji nisu aksiomi ove "nove" Booleove algebre (npr. XX =+ 0 , 1=+ XX , XYYX +=+ ).

b) Idempotentnost ILI operatora: XXX =+ c) Asocijativnost ILI operatora: )()( ZYXZYX ++=++

d) Veza između 1 i 0: 01 = , te 10 = e) 00 =⋅X , 11 =+X f) Distributivnost: )()()( ZXYXZYX ⋅+⋅=+⋅ , )()()( ZXYXZYX +⋅+=⋅+

g) Veza varijable i komplementa: 0=⋅ XX , 1=+ XX

h) XX = i) Drugi zapis ILI operatora: YXYXYX ⋅+⋅=⊕ , )()( YXYXYX +⋅+=⊕

j) DeMorganov zakon: YXYX +=⋅ , YXYX ⋅=+ k) Zakon simplifikacije: XYXX =+⋅ )( , XYXX =⋅+

l) YXYXX ⋅=+⋅ )( , YXYXX +=⋅+ .

19. Pokazati da se samo uporabom sklopova sa slike (te logičke 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 način rješavanja mora biti primjenjiv i na višebitne brojeve (k>4).

21. Projektirajte sklop koji obavlja funkciju e usporedbe dva 4-bitna binarna broja A i B: e=(A≤B). Odabran način rješavanja mora biti primjenjiv i na višebitne brojeve (k>4).

22. Pismeni ispit 07. 02. 2005.

Zadana je Booleova funkcija ( ) ( )( ) ( ) ( )( )χαβαχβαχβα →→→→→→=,,f . Pronađite njezin minimalni oblik.

Page 102: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 99

5. Minimizacija logičkih funkcija.

5.1. Zadatak Prikažite funkciju ( )∑= 2,0f pomoću K-tablice, i zatim odredite minimalni oblik funkcije.

Usporedite s analitičkom minimizacijom.

A 0 1

B 0 1 1

1

A

B

BA

BA

B

BBAABABAf =+=+= )(

5.2. Zadatak Prikažite funkciju ( )∏= 3,1f pomoću K-tablice, i zatim odredite minimalni oblik funkcije.

Usporedite s analitičkom minimizacijom.

A 0 1

B 0

1 0 0

A

B

BA + BA +

B

Direktno: upisati maksterme, minimizirati i pročitati kao komplement od minimizacije koja bi se radila da su upisane jedinice.

BBAABABAf =+=++= )())(( Indirektno: upisati maksterme i "praviti se" da su mintermi (dakle, jedinice), odnosno raditi sa komplementarnom funkcijom. Obaviti minimizaciju, pa kao rezultat vratiti komplement dobivenoga!

Page 103: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

100 Zbirka riješenih zadataka

A 0 1

B 0

1 1 1

A

B

BA AB

B

Bf =

Bff ==

5.3. Zadatak Minimizirajte funkciju ( )∑= 15,13,11,9,4,0f pomoću K-tablice.

AB 00 01 11 10

CD 00 1 1

01 1 1 11 1 1

10

AB

C

D

DCA

AD

ADDCAf +=

Page 104: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 101

5.4. Zadatak

Minimizirajte funkciju ( )∑= 10,8,6,4,2,0f pomoću K-tablice.

AB 00 01 11 10

CD 00 1 1 1

01 11

10 1 1 1

AB

C

D

DA

DB

DBDAf +=

5.5. Zadatak Minimizirajte funkciju ( ) ( )∑∑ += 11,10,8,7,515,6,4,1,0 dmf pomoću K-tablice.

AB 00 01 11 10

CD 00 1 1 x

01 1 x 11 x 1 x

10 1 x

AB

C

D

CA

BCD

BA

BCDBACAf ++=

Page 105: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

102 Zbirka riješenih zadataka

5.6. Zadatak

Minimizirajte funkciju ( )∏= 7,3,2,0f pomoću K-tablice.

AB 00 01 11 10

C 0 0 0

1 0 0

CA

BC

AB

C

BCCAf +=

))(( CBCAff ++==

5.7. Zadatak Minimizirajte funkciju ( )∏= 15,13,12,8,7,5,0f pomoću K-tablice.

AB 00 01 11 10

CD 00 0 0 0

01 0 0 11 0 0

10

AB

C

D

DCA

BD

DCB

DCBDCABDf ++=

))()(( DCBDCADBff +++++==

Page 106: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 103

5.8. Zadatak

Zadana je funkcija CBACBACABACCBAf ++++= . Funkciju je potrebno minimizirati: a) algebarskom metodom b) uporabom komplementa funkcije c) uporabom dualne funkcije d) K-tablicom e) metodom Quine-McCluskey

a) algebarska metoda

( ) ( )

( )

( ) ( )BA

BAAA

ABA

CCABA

ACCABA

ACBBCACCBA

CBACBACABACCBAf

+=+⋅+=

+=++=++=

++++=++++=

b) uporaba komplementa: ff =

( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( ) ( )( ) ( ) ( )( ) ( ) ( )( ) ( )( )

BA

ABAA

ABA

CCABA

CACABA

CABBCACCBA

CABCABCACBACBA

CBACBACBACACBA

CBACBACABACCBA

CBACBACABACCBAf

⋅=⋅+⋅=

⋅+=+⋅+=

+⋅+⋅+=+⋅++⋅++=

+⋅++⋅++⋅++⋅++=++⋅++⋅++⋅+⋅++=

⋅⋅⋅⋅=

++++=

BA

BA

ff

+=⋅=

=

c) uporabom dualne funkcije [ ]DDff =

Page 107: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

104 Zbirka riješenih zadataka

( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( ) ( )( ) ( ) ( )( ) ( ) ( )( ) ( )( )

BA

BAAA

ABA

CCABA

CACABA

CABBCACCBA

CABCABCACBACBA

CBACBACBACACBAfD

=+=

⋅+=+⋅+=

+⋅+⋅+=+⋅++⋅++=

+⋅++⋅++⋅++⋅++=++⋅++⋅++⋅+⋅++=

[ ]

BA

BAf D

+==

d) Ukoliko je funkcija zadana kao suma minterma, funkcija se može direktno upisati u K-tablicu. Ako to nije ispunjeno, funkciju možemo svesti na sumu minterma:

( )( )∑

∑=

=+++++=

+++++=++++=

7,6,5,4,1,0

4,1,6,5,7,0

)(

CBACBACABCBAABCCBA

CBACBACABCBBACBA

CBACBACABACCBAf

Drugi način ako je funkcija zapisana kao suma produkata koji nisu nužno mintermi jer analiza član po član. Jedini član zadane funkcije koji nije minterm jest AC. Zaključujemo da je funkcija jednaka 1 kada su A i C jednaki 1, neovisno o ostalim varijablama (u ovom slučaju 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 možemo upisati direktno. Dobijemo sljedeću K-tablicu:

AB 00 01 11 10

C 0 1 1 1

1 1 1 1

AB

C

U K-tablici potrebno je pronaći što veća pravokutna područja prekrivena jedinicama. Važno je napomenuti da dimenzije stranica pravokutnika mogu biti isključivo potencije broja dva. Pogledajmo u K-tablici polje ABC=110 (tu se nalazi upisana jedinica). Susjedno polje na istoku (ili desno) također ima jedinicu. Zaokružimo li ova dva polja, dobili smo pravokutnik dimenzija 1×2. Ta dva polja odgovaraju mintermima

CBACAB + . Ovaj izraz može se minimizirati: CABBCACBACAB =+=+ )( ! To

Page 108: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 105

također vidimo i u K-tablici. Naime, to zaokruženje cijelo se nalazi na području varijable A, i na području od C , dok se dio nalazi na području od B a dio na području od B . Dakle, možemo zaključiti da B nema utjecaja i ostaje nam područje određeno presjekom A i C , odnosno CA . No da li je to najbolje što smo mogli minimizirati? Očito je da smo mogli cijelu desnu stranu tablice obuhvatiti pravokutnikom dimenzija 2×2, tj. polja ABC = 110, 111, 100 i 101, kao što to prikazuje sljedeća tablica:

AB 00 01 11 10

C 0 1 1 1

1 1 1 1

AB

C

A Ovo zaokruženje nalazi se isključivo na području varijable A, dok o B i C ne ovisi jer se proteže i kroz njihove komplemente. Dakle, ovo zaokruženje odgovara funkciji f1=A. Još nismo gotovi jer je ostalo još nezaokruženih jedinica. Npr. polje ABC = 000. Polje južno također sadrži jedinicu pa ih možemo prekriti pravokutnikom dimenzija 2×1. Međutim, treba uočiti da ovo područje ima susjede na istoku prekrivene jedinicama. To su polja ABC=100 i 101, pa sve zajedno možemo obuhvatiti pravokutnikom dimenzija 2×2, kao na sljedećoj slici:

AB 00 01 11 10

C 0 1 1 1

1 1 1 1

AB

C

AB

To zaokruženje u potpunosti se nalazi na području od B , a ne ovisi o A i C, pa je:

Bf =2 . Time smo, preko f1 i f2, pokrili sve jedinice u tablici, pa konačna minimizirana funkcija glasi:

BAfff +=+= 21 e) Quine-McCluskey metoda U d) dijelu zadatka raspisali smo funkciju f kao sumu minterma:

Page 109: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

106 Zbirka riješenih zadataka

( )∑=++++=

7,6,5,4,1,0

CBACBACABACCBAf

Grupirajmo ove minterme prema broju jedinica (odgovara broju varijabli bez komplementa u mintermu) i zapišimo to tablično: Minterm 000 (0) 001 100

(1) (4)

101 110

(5) (6)

111 (7)

Minimizacija se provodi tako da se promatraju mintermi iz dviju susjednih grupa, te kombiniraju, ako je to moguće. Tijekom cijelog postupka smiju se kombinirati samo oni mintermi koji se razlikuju u jednom bitu. Kombiniranjem nastaje prikaz koji na mjestu na kojem se pojavila razlika u bitu ima x (često se umjesto x još piše '-'). Npr. Usporedimo prvi član prve grupe sa prvim članom druge grupe: 000 i 001. Razlikuju se u jednom bitu, pa dobivamo 00x. Radimo novu tablicu u koju upisujemo dobivene kombinacije kao i oznake minterma koje smo kombinirali. Budući da smo uspjeli kombinirati minterme 000 i 001, to označavamo zvjezdicom: Minterm 000 * (0) 00x (0,1) 001 100

* (1) (4)

101 110

(5) (6)

111 (7) Prvi minterm prve grupe možemo još kombinirati i s drugim mintermom druge grupe (000 i 100 daju x00), pa i to zabilježimo i označimo 100. Zatim ponovimo postupak uspoređujući svaki minterm iz druge grupe sa svakim mintermom iz treće grupe, itd. Dobije se: Minterm 000 * (0) 00x

x00 (0,1)

(0,4) 001 100

* *

(1) (4)

x01 10x 1x0

(1,5)(4,5)(4,6)

101 110

* *

(5) (6)

1x1 11x

(5,7)(6,7)

111 * (7)

Sada ponavljamo postupak koristeći novoizgrađenu tablicu. Međutim, od sada na dalje je potrebno upamtiti slijedeće: kombiniranje je moguće samo ako postoji razlika u jednom bitu (pri čemu x-evi, ako postoje, moraju biti prisutni kod oba podatka koje kombiniramo na istim mjestima, i tu ne može biti razlike). Dodatno pravilo kaže da ako x koji smo umetnuli nije najljeviji u odnosu na već postojeće oznake x, tu kombinaciju nećemo zapisivati u novoj tablici (ali u staroj označavamo da smo napravili tu

Page 110: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 107

kombinaciju). Razlog za ovo pravilo je izbjegavanje duplikata. Naime, pokazuje se da će se ista pokrata dobiti i na zahtijevani način. Npr. 00x i x01 ne možemo kombinirati jer postojeći x-evi nisu na istim mjestima. 00x i 10x možemo kombinirati, i dobijemo x0x, što bilježimo u novoj tablici, a u staroj uz 00x i 10x stavljamo zvjezdice. x00 i x01 također možemo kombinirati, pri čemu dobijemo x0x. Međutim, treba uočiti da smo novi x stavili iza već postojećeg, pa tu kombinaciju ne upisujemo u novu tablicu (već smo je dobili u prethodnom koraku), a u staroj tablici stavljamo zvjezdice uz x00 i x01. Nastavimo li kombinirati do kraja, dobiti ćemo: Minterm 000 * (0) 00x

x00 * *

(0,1)(0,4)

x0x (0,1,4,5)

001 100

* *

(1) (4)

x01 10x 1x0

* * *

(1,5)(4,5)(4,6)

1xx (4,5,6,7)

101 110

* *

(5) (6)

1x1 11x

* *

(5,7)(6,7)

111 * (7)

Pokušamo li ponovno kombinirati dobivene članove, vidimo da to više ne možemo, i tu zaustavljamo postupak. Sada je potrebno pronaći one članove koje nismo koristili u nekom od koraka (dakle, koji nemaju zvjezdicu). To su samo x0x i 1xx, odnosno B i A. Iz ovih članova kreiramo novu tablicu: stupci odgovaraju mintermima kojima je zadana funkcija, a retci dobivenim članovima iz prethodnog koraka. U tablici se ujedno označi koje minterme sadrži (odnosno pokriva) koji član. 0 1 4 5 6 7

B (0,1,4,5) A (4,5,6,7)

Slijedeći korak je pronalaženje onih članova koji jedini pokrivaju neki minterm. Npr. vidimo da B jedini pokriva minterm 0. To znači da je on primarni član, i moramo ga uzeti. No, ako smo uzeli njega, onda smo automatski pokrili i minterme 1, 4 i 5. Označimo to: 0 1 4 5 6 7

B (0,1,4,5) A (4,5,6,7)

Desno smo označili da smo uzeli B , a na dnu tablice smo označili koje smo sve minterme pokrili. Ostali su nepokriveni mintermi 6 i 7, a njih sadrži član A. Kako je on jedini koji ih sadrži, on je također primaran član. Uzmimo i njega, pa označimo što je sve pokrio: 0 1 4 5 6 7

B (0,1,4,5)

A (4,5,6,7)

Page 111: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

108 Zbirka riješenih zadataka

Kako su svi mintermi pokriveni, zaustavljamo postupak, i očitavamo minimizirani oblik funkcije:

BAf +=

5.9. Zadatak Minimizirajte funkciju ( )∑= 15,13,12,7,6,4,3,2,1,0f pomoću Quine-McCluskey metode.

Prvi dio postupka obuhvaća iterativnu primjenu zakona simplifikacije ϕϕϕ =+ AA .

Minterm 0000 * (0) 000x

00x0 0x00

* * *

(0,1)(0,2)(0,4)

00xx 0xx0

(0,1,2,3)(0,2,4,6)

0001 0010 0100

* * *

(1)(2)(4)

00x1 001x 0x10 01x0 x100

* * * *

(1,3)(2,3)(2,6)(4,6)

(4,12)

0x1x (2,3,6,7)

0011 0110 1100

* * *

(3)(6)(12)

0x11 011x 110x

* *

(3,7)(6,7)

(12,13)

0111 1101

* *

(7)(13)

x111 11x1

(7,15)(13,15)

1111 * (15)

Drugi dio postupka pronalazi primarne članove (one koji jedini prekrivaju neki od minterma), te zatim od preostalih članova pronalazi najmanji broj onih koji pokrivaju sve ostale minterme. Tablica preostalih članova: 0 1 2 3 4 6 7 12 13 15

DCB (4,12) P0

CAB (12,13) P1

BCD (7,15) P2 ABD (13,15) P3

BA (0,1,2,3) P4

DA (0,2,4,6) P5

CA (2,3,6,7) P6 Nepokriveni su mintermi: 4, 6, 7, 12, 13 i 15.

Page 112: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 109

Kako imamo nepokrivenih minterma, potrebno je odlučiti koje još produkte treba uključiti kako bismo dobili potpuno pokrivanje. Naravno, pri tome treba paziti da se odabere upravo minimalno potreban broj. Postoji više načina za donošenje ove odluke, a jedan od njih bit će opisan u nastavku, i poznat je pod nazivom Pyne-McCluskey pristup. Kao što ćemo vidjeti, moguće je da u minimalnom obliku funkcija ima više mogućih prikaza, koji su svi jednakovrijedni. . Pyne-McCluskey pristup Svim članovima dajemo imena Pi, i=0, ..., 6. Definiramo funkciju pokrivenosti minterma p, koja se izvodi iz zahtjeva da svi mintermi koji nisu pokriveni primarnim članovima budu pokriveni.

ostalo

p

++=++=

=

521630

213526510

323110626550

PPPPPP

)PP)(PPP)(PPP+(P

)P+)(PP+)(PP+)(PP+)(PP+)(PP+(P

(ostalo su članovi s četiri ili više varijabli) Dakle, dvije su mogućnosti. Možemo uključiti još članove P0, P3 i P6, ili članove P1, P2 i P5. Ovisno o tome, dobiju se slijedeće funkcije:

CAABDDCBBAf +++= ili

DABCDCABBAf +++= Napomena: kod funkcije p tražimo produkt koji sadrži minimalni broj članova. To je opet minimizacijski problem jer će produkt sa minimalnim brojem članova sigurno biti dio minimalnog zapisa funkcije. Zbog toga prethodno opisani pristup gdje se sve izmnoži ne mora uvijek odgovarati minimalnom skupu, već se ovaj podproblem može ponovno napasti nekim od minimizacijskih postupaka (čak i Quinne-McCluskey metodom). Za vježbu. Minimizirati ovu funkciju K-tablicom. Ako se rezultat ne slaže, gdje je pogreška?

Page 113: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

110 Zbirka riješenih zadataka

5.10. Zadatak

Metodom Quine-McCluskey minimizirati funkciju ( )∑= 510,11,12,14,5,7,8,9,f .

Minterm 0100 1000

* *

(4) (8)

010x x100 100x 10x0 1x00

* *

(4,5)(4,12)(8,9)(8,10)(8,12)

10xx (8,9,10,11)

0101 1001 1010 1100

* * * *

(5) (9) (10) (12)

01x1 10x1 101x

* *

(5,7)(9,11)(10,11)

0111 1011

* *

(7) (11)

x111 1x11

(7,15)(11,15)

1111 * (15)

Ostali su sljedeći nekombinirani članovi: 010x, x100, 1x00, 01x1, x111, 1x11 i 10xx, što odgovara redom: CBA , DCB , DCA , BDA , BCD , ACD i BA . Napravimo tablicu pokrivenosti minterma:

4 5 7 8 9 10 11 12 15 CBA (4,5)

DCB (4,12)

DCA (8,12)

BDA (5,7) BCD (7,15) ACD (11,15)

BA (8,9,10,11) Minterm 9 pokriven je samo s jednim članom ( BA ), pa je taj član primarni. Označimo što je sve pokriveno tim članom: 4 5 7 8 9 10 11 12 15

CBA (4,5) P0

DCB (4,12) P1

DCA (8,12) P2

BDA (5,7) P3 BCD (7,15) P4 ACD (11,15) P5

BA (8,9,10,11) P6 Svi ostali nepokriveni mintermi pokriveni su s više od jednog preostalog člana, pa se postavlja pitanje koje još članove odabrati, tako da se pokriju svi mintermi, a zadrži minimalnost funkcije? Rješenje nudi Pyne-McCluskeyev pristup: iskaz "potrebno je pokriti preostale članove" treba zapisati kao Booleovu funkciju, i pronaći onaj produktni

Page 114: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 111

član te funkcije koji sadrži minimalni broj varijabli. U prethodnoj tablici svi su članovi imenovani (P0 = CBA , 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 možemo zapisati u obliku funkcije (obratiti pažnju na podebljane 'i' i 'ili' u prethodnoj rečenici):

( )( )( )( )( )

54321543153214321

53143154210421053210

4321054320543105420420

54104105320432053104310

5421433010

PPPPP+PPPP+PPPP+PPPP+

PPP+PPP+PPPPP+PPPP+PPPPP+

PPPPP+PPPPP+PPPPP+PPPP+PPP+

PPPP+PPP+PPPP+PPPP+PPPP+PPPP

PPPPPPPPPP

=+++++=p

Minimalni broj varijabli u produktima iznosi 3, i to u dva slučaja. Dakle, možemo uzeti još sljedeće članove:

• P0, P1 i P4, tj. CBA , DCB i BCD • P0, P2 i P4, tj. CBA , DCA i BCD • P1, P3 i P4, tj. DCB , BDA i BCD • P1, P3 i P5, tj. DCB , BDA i ACD

Tada su minimalni oblici funkcije redom: f = BA + CBA + DCB + BCD f = BA + CBA + DCA + BCD f = BA + DCB + BDA + BCD f = BA + DCB + BDA + ACD Svi ovi oblici su minimalni.

5.11. Zadatak Metodom K-tablica minimizirati funkciju: ( ) ( )∑∑ += 23,24,25,16,19,20,1,5,7,8,11121,26,27,30,4,10,17, dmf .

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 neće niti dogoditi), što je označeno sumom d-članova. Budući 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 način, s time da zaokruženja smijemo širiti i na područja prekrivena x-evima (smatrajući da tamo piše 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 nećemo niti trebati pokrivati.

Page 115: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

112 Zbirka riješenih zadataka

ABC 000 001 011 010 100 101 111 110

DE 00 1 1 X X X X

01 X X 1 1 X 11 X X X X 1 1

10 1 1

DB

DCB

ADE

BC

BC

D

E

D

E

Koristili smo tablicu za 5 varijabli koja se temelji na 3D prikazu, a ne direktno na Grayevom kodu (vidi dodatak K-tablice). Npr. x-eve na 10000 i 10100 promatrali smo kao jedinice, kako bismo dobili što veće zaokruženje kod jedinica 10001 i 10101, dok smo x-eve na 01000 i 00111 zanemarili.

5.12. Zadatak Metodom K-tablica minimizirati funkciju: ( )∏= 8,10,110,2,3,6,7,f .

AB 00 01 11 10

CD 00 0 0

01 11 0 0 0

10 0 0 0

AB

C

D

CA

CB

DB

Prilikom minimizacije nule gledamo kao jedinice, i obavimo klasičnu minimizaciju, čime zapravo dobijemo minimizirani komplement funkcije:

Page 116: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 113

CBDBCAf ++= pa je:

))()(( CBDBCAff +++== Komentar: Zašto su polja 0000, 1000, 0010 i 1010 susjedna? Sigurno znamo da su polja 0000 i njegovo zapadno polje 1000 susjedni. Međutim, ta dva polja imaju na sjeveru polja 0010 i 1010 sa kojima su susjedna, pa se ta četiri polja mogu obuhvatiti pravokutnikom dimenzija 2×2.

5.13. Zadatak Metodom K-tablica minimizirati funkciju: ( ) ( )∑∑ += 32,7,8,10,15,9,12,15 dmf .

AB 00 01 11 10

CD 00 1 X

01 1 X 1 11 X 1

10 X X

AB

C

D

CABD

BDCAf +=

5.14. Zadatak Metodom K-tablica minimizirati funkciju ( )∑= 15,13,11,10,9,8,7,4,2,0),,,( mDCBAf :

a) kao minimalnu sumu parcijalnih produkata, b) kao minimalne produkte parcijalnih suma.

a) Pronalaženje minimalne sume parcijalnih produkata:

Page 117: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

114 Zbirka riješenih zadataka

AB 00 01 11 10

CD 00 1 1 1

01 1 1 11 1 1 1

10 1 1

AD

BCD

DCA

DB

DCAADBCDDBf +++= b) Pronalaženje minimalog produkta parcijalnih suma:

AB 00 01 11 10

CD 00 0

01 0 0 11 0

10 0 0

DAB

DBC

DBA

DCA

DBCDCADBADABf +++=

( )( )( )( )DCBDCADBADBAf ++++++++=

5.15. Zadatak K-tablicama minimizirati funkciju ( )∑= 15,14,13,12,3,1),,,( mDCBAf ako je poznato da za

ulazne varijable uvijek vrijedi 1=+ DB .

Page 118: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 115

Iz činjenice da će za ulazne varijable uvijek vrijediti izraz 1=+ DB , zaključujemo da se nikada neće dogoditi da na sklop koji realizira zadanu funkciju dođe ulaz za koji tvrdnja ne vrijedi, tj:

1011 =⋅⇒≠⋅⇒≠+⇒=+ DBDBDBDB Ovaj je umnožak jednak 1 kada su oba njegova elementa istovremeno jednaka 1, dakle

11 =∧= DB , odnosno 00 =∧= DB (neovisno o A i C), što daje minterme oblika ABCD = ×0×0, dakle minterme m0, m2, m8, m10. Kako se ti mintermi nikada neće pojaviti, u svrhu minimizacije možemo ih tretirati kao don't care. Tada je postupak minimizacije prikazan u nastavku.

AB 00 01 11 10

CD 00 X 1 X

01 1 1 11 1 1

10 X 1 X

ABBA

BAABf +=

5.16. Zadatak Zadana je funkcija

( ) ( )∑∑ += 23,24,25,16,19,20,1,5,7,8,11121,26,27,30,4,10,17,),,,,( dmEDCBAf

Minimizirati funkciju uporabom Quine-McCluskey metode.

Postupak rješavanja sličan je standardnom postupku, uz neke modifikacije:

1. Uz svaki se produkt vodi status produkta (u postupku će biti označen D: zastavicom gdje će vrijednost bita 1 označavati da je cijeli produkt zanemariv, tj. dontcare, a vrijednost 0 da je produkt nezanemariv, odnosno sadrži barem jednu jedinicu koja je bitna za funkciju).

2. Prilikom kombiniranja produkata u svrhu minimizacije, D: polje rezultata je

logička I operacija D: polja kombiniranih produkata (što je intuitivno jasno - minimizirani produkt je i dalje zanemariv samo ako su oba produkta koja su se minimizirala bili zanemarivi).

Page 119: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

116 Zbirka riješenih zadataka

Postupak započinje tako da se generira početna tablica koja sadrži sve navedene minterme (bitne i zanemarive) – naravno, označene D: zastavicom. Nakon što se provede prvi korak do kraja, u drugom se koraku generira klasična tablica koja u stupcima sadrži samo one minterme koji nisu bili zanemarivi, a u retcima samo one produkte koji nisu bili označeni, i dodatno, koji nemaju zastavicu D: postavljenu na 1. Evo rješenja: 00000 * D:0 (0)

00X00 * D:0 (0, 4) 0000X * D:0 (0, 1) 0X000 * D:0 (0, 8) X0000 * D:0 (0, 16)

X0X00 * D:0 (0, 4, 16, 20) 00X0X * D:0 (0, 1, 4, 5) X000X * D:0 (0, 1, 16, 17) XX000 D:0 (0, 8, 16, 24)

X0X0X D:0 (0,1,4,5,16,17,20, 21)

00100 * D:0 (4) 00001 * D:1 (1) 01000 * D:1 (8) 10000 * D:1 (16)

0010X * D:0 (4, 5) X0100 * D:0 (4, 20) X0001 * D:0 (1, 17) 00X01 * D:1 (1, 5) 010X0 * D:0 (8, 10) X1000 * D:1 (8, 24) 1000X * D:0 (16, 17) 10X00 * D:1 (16, 20) 1X000 * D:1 (16, 24)

X010X * D:0 (4, 5, 20, 21) X0X01 * D:0 (1, 5, 17, 21) X10X0 D:0 (8, 10, 24, 26) 10X0X * D:0 (16, 17, 20, 21) 1X00X D:0 (16, 17, 24, 25)

01010 * D:0 (10) 10001 * D:0 (17) 00101 * D:1 (5) 10100 * D:1 (20) 11000 * D:1 (24)

X1010 * D:0 (10, 26) 0101X * D:0 (10, 11) 10X01 * D:0 (17, 21) 100X1 * D:0 (17, 19) 1X001 * D:0 (17, 25) X0101 * D:0 (5, 21) 001X1 * D:1 (5, 7) 1010X * D:0 (20, 21) 110X0 * D:0 (24, 26) 1100X * D:1 (24, 25)

X101X D:0 (10, 11, 26, 27) 10XX1 D:0 (17, 19, 21, 23) 1X0X1 D:0 (17, 19, 25, 27) X01X1 D:0 (5, 7, 21, 23) 110XX D:0 (24, 25, 26, 27)

10101 * D:0 (21) 11010 * D:0 (26) 00111 * D:1 (7) 01011 * D:1 (11) 10011 * D:1 (19) 11001 * D:1 (25)

101X1 * D:0 (21, 23) 1101X * D:0 (26, 27) X0111 * D:1 (7, 23) X1011 * D:0 (11, 27) 1X011 * D:0 (19, 27) 10X11 * D:1 (19, 23) 110X1 * D:0 (25, 27)

1XX11 D:0 (19, 23, 27, 31)

11011 * D:0 (27) 10111 * D:1 (23)

11X11 * D:0 (27, 31) 1X111 * D:0 (23, 31)

11111 * D:0 (31)

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 uključen implikant 0 koji je bitan za funkciju pa je i cijeli produkt bitan za funkciju, odnosno nije dontcare. Međutim, kada smo kombinirali minterme 1 i 5, dobili smo produkt 00X01 koji ima D: 1, tj. cijeli produkt je zanemariv. Razlog leži u činjenici da smo kombinirali minterme 1 i 5 koji su oba zanemarivi, pa je i nastali produkt zanemariv. No zašto su nam uopće potpuno zanemarivi produkti bitni? Postoji mogućnost da će se u budućnosti neki takav nebitni produkt ipak spojiti s nekim bitnim što će pomoći u minimizaciji funkcije. Da je to istina, pogledajmo upravo na nebitnom produktu (1,5). U trećem stupcu taj smo produkt

Page 120: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 117

kombinirali s nezanemarivim produktom (0,4), i dobili produkt (0,1,4,5) koji je također nezanemariv. Pogledajmo sada i drugi korak. 0 4 10 17 21 26 27 31 c'd'e' (0, 8, 16, 24) P0 bc'e' (8, 10, 24, 26) P1 ac'd' (16, 17, 24, 25) P2 bc'd (10, 11, 26, 27) P3 ab'e (17, 19, 21, 23) P4 ac'e (17, 19, 25, 27) P5 b'ce (5, 7, 21, 23) P6 abc' (24, 25, 26, 27) P7 ade (19, 23, 27, 31) P8 b'd' (0, 1, 4, 5, 16, 17, 20, 21) P9 Uočavamo da postoje neoznačeni mintermi. Zbog toga primjenjujemo Pyne-McCluskey pristup za pronalaženje minimalnog broja produkata koji ih pokriva. Zahtjev:

( )( )73131 PPPPPp +++= Rješenje jednadžbe:

73371311 PPPPPPPPp ⋅++⋅+⋅+= Rješenja s minimalnim brojem članova su: P1 P3 Postoje dakle dva minimalna oblika funkcije f:

1. f = bc'e' + ade + b'd' 2. f = bc'd + ade + b'd'

5.17. Zadatak Zadane su funkcije

( )∑= 15,11,5,4,2,1,01f , ( )∑= 15,13,4,2,02f , ( )∑= 15,13,7,5,4,3,1,03f .

Pronaći minimalni oblik ovih funkcija takav da je ukupni broj produkata u svim funkcijama minimalan.

Ovaj problem može se riješiti uporabom Quine-McCluskey postupka opisanog u nastavku. Postupak je sličan standardnom postupku, uz neke modifikacije:

Page 121: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

118 Zbirka riješenih zadataka

• Uz svaki se produkt vodi popis pripadnosti tog produkta pojedinim funkcijama (u postupku će biti označen F: poljem gdje će i-ti bit označavati pripadnost (1) ili odsustvo (0) i-toj funkciji.

• Prilikom kombiniranja produkata u svrhu minimizacije, F: polje rezultata je logička I operacija F: polja kombiniranih produkata (što je intuitivno jasno - minimizirani produkt pripada i-toj funkciji samo ako oba produkta koja su se minimizirala pripadaju i-toj funkciji). Ukoliko je F: polje rezultata jednako 0, tada se taj minimizirani produkt odbacuje.

• Prilikom kombiniranja produkata u svrhu minimizacije označavaju se samo oni produkti čije je F: polje jednako F: polju kombiniranog produkta! Inače se produkt ne označava (iako je iskorišten za kombiniranje).

Uz ove napomene postupak je sljedeći. U prvoj fazi pronalaze se primarni implikanti (produkti). Zatim se konstruira tablica pokrivanja primarnih implikanata i minterma za sve funkcije. Traže se bitni primarni implikanti. Ukoliko sve funkcije nakon pronalaženja bitnih primarnih implikanata nisu pokrivene, provodi se Pyne-McCluskey kako bi se dobilo potpuno pokrivanje s minimalnim brojem preostalih implikanata. Konačno se u zadnjem koraku traži minimalno pokrivanje za svaku funkciju posebno, a ukoliko to nije odmah vidljivo, može se ponoviti Pyne-McCluskey samo za određenu funkciju. 0000 * F:111 (0) 000X * F:101 (0, 1)

00X0 F:110 (0, 2) 0X00 F:111 (0, 4)

0X0X F:101 (0, 1, 4, 5)

0001 * F:101 (1) 0010 * F:110 (2) 0100 * F:111 (4)

0X01 * F:101 (1, 5) 00X1 * F:001 (1, 3) 010X * F:101 (4, 5)

0XX1 F:001 (1, 3, 5, 7)

0101 * F:101 (5) 0011 * F:001 (3)

X101 * F:001 (5, 13) 01X1 * F:001 (5, 7) 0X11 * F:001 (3, 7)

X1X1 F:001 (5, 7, 13, 15)

1011 * F:100 (11) 1101 * F:011 (13) 0111 * F:001 (7)

1X11 F:100 (11, 15) 11X1 F:011 (13, 15) X111 * F:001 (7, 15)

1111 F:111 (15)

f1 f2 f3 0 1 2 4 5 11 15 0 2 4 13 15 0 1 3 4 5 7 13 15

abcd P0

a'b'd' P1

a'c'd' P2

acd P3

abd P4

a'c' P5

a'd P6

bd P7

Page 122: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 119

Pronađeni 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). Sada treba samo uporabom dozvoljenih produkata (P1-P6) pokriti svaku funkciju, ali na minimalan način. Provedemo li postupak odabira bitnih primarnih implikanata u prethodnoj tablici samo za f1, dobiti ćemo potpuno pokrivanje, i minimalni oblik: f1 = a'b'd' + acd + a'c' Provjera za f2 također daje jednoznačan rezultat: f2 = a'b'd' + a'c'd' + abd Međutim, kod f3 nemamo potpuno pokrivanje. Ostanu nam mintermi 0, 4, 13 i 15 koje treba pokriti. Primjenom Pyne-McCluskey metode dobijemo:

5252)52)(52( PPPPPPPPp ⋅++=++= Rješenja s minimalnim brojem članova su P2 i P5, što vodi na dvije moguće minimalne implementacije funkcije f3: f3 = a'c'd' + abd + a'd f3 = abd + a'c' + a'd

5.18. Zadatak

Minimizirati funkciju ( )∑= 15,14,13,9,7,5,4,3mf .

Na ovom primjeru pokazat ćemo jednu od čestih pogrešaka koje se događaju prilikom minimizacije. Krenimo u minimizaciju tako da pronađemo najveće moguće zaokruženje – minterme 5, 7, 13 i 15, kao što je prikazano na slici.

AB 00 01 11 10

CD 00 1

01 1 1 1 11 1 1 1

10 1

AB

C

D

BD

Page 123: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

120 Zbirka riješenih zadataka

Minimizirajmo i preostale članove:

AB 00 01 11 10

CD 00 1

01 1 1 1 11 1 1 1

10 1

AB

C

D

DCABD

ABCCDA

CBA

Na prvi pogled izgleda da je rezultat minimizacije funkcija:

DCACBACDAABCBDf ++++= No analizirajmo sada malo bolje prvo zaokruženje koje smo napravili. Osnovna ideja minimizacije jest pokriti sve minterme, ali tako da se u svakom zaokruženju nalazi barem jedan minterm kojeg ne pokriva niti jedno drugo zaokruženje – to je uvjet minimalnosti. No kao što vidimo, minterm 5 spojen je i s mintermom 4, minterm 7 i s mintermom 3, minterm 13 i s mintermom 9 a minterm 15 i s mintermom 14. Dakle, svaki od ta četiri minterma dodatno je pokriven nekim drugim zaokruženjem, te je stoga redundantan. To veliko zaokruženje treba izbaciti iz dobivenog izraza, kako bismo dobili minimalni oblik. Konačni rezultat minimizacije prikazan je slikom:

AB 00 01 11 10

CD 00 1

01 1 1 1 11 1 1 1

10 1

AB

C

D

DCA

ABCCDA

CBA

Minimalni oblik zadane funkcije tada je:

Page 124: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 121

DCACBACDAABCf +++= Pokušajmo sada razmišljati na drugi način. Izbacili smo najveće zaokruženje, a ostavili manja (dakle, koja ovise o više varijabli). Možemo li nekako ipak to najveće zaokruženje ostaviti, a manja proglasiti redundantima? Npr. pokušajmo sa zaokruženjem koje obuhvaća minterme 3 i 7. Kada bi veliko zaokruženje ostalo, ono bi pokrivalo minterm 7. No minterm 3 nitko drugi ne pokriva! A budući da prilikom minimizacije uvijek tražimo najveća moguća zaokruženja, minterm 3 nužno ćemo pokriti zaokruženjem koje se proteže preko minterma 7. Dakle, zaokruženje 3 i 7 nužno ostaje. Sličnu analizu možemo provesti i za ostala dvočlana zaokruženja. Svako od njih pokriva jedan minterm koji nitko drugi ne pokriva. Konačan rezultat analize slaže se, dakle, s prethodnim rješenjem – potrebno je odbaciti veliko zaokruženje. Ovakve pogreške vrlo su česte u rješavanju zadatka minimizacije. Zbog toga je nakon postupka minimizacije uvijek potrebno provjeriti uvjet minimalnosti: Uvjet minimalnosti – svako zaokruženje koje ulazi u minimalni oblik funkcije mora imati barem jedan minterm (ili maksterm) koji je pokriven isključivo njime. Iz ovog pravila slijedi i uvjet redundantnosti: Uvjet redundantnosti – zaokruženje čiji je svaki minterm (ili maksterm) pokriven još nekim zaokruženjem jest redundantno.

5.19. Zadatak Minimizirati funkciju ( )∑= 15,13,11,10,9,8,2,0mf .

Pokažimo opet "točan" način rješavanja:

AB 00 01 11 10

CD 00 1 1

01 1 1 11 1 1

10 1 1

DBAD

BA

Page 125: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

122 Zbirka riješenih zadataka

Dakle, imamo veliko zaokruženje skroz desno ( BA ), veliko zaokruženje u sredini ( AD ), i veliko zaokruženje minterma u kutevima tablice ( DB ). Rješenje je, dakako, krivo! Pažljivom analizom može se uočiti da je prvo zaokruženje ( BA ) redundantno (možete li objasniti zašto?). Ispravno rješenje tada je:

AB 00 01 11 10

CD 00 1 1

01 1 1 11 1 1

10 1 1

DBAD

Minimalni oblik funkcije glasi:

DADBf ⋅+⋅=

5.20. Zadatak Zadana je funkcije f koja za ulazni trobitni binarno kodirano broj određuje da li je broj djeljiv sa 4. a) pronaći minimalni oblik funkcije f, b) pronaći minimalni oblik funkcije f, ako je poznato da će sklop koji obavlja ovu funkciju ulaz dobivati sa sklopa koji obavlja kvadriranje.

a) prikažimo funkciju tablično:

n b2 b1 b0 f 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 0 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 0

Page 126: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 123

b1b0 00 01 11 10

b2 0 1

1 1

01 bb ⋅

b1b0

b2

01 bbf ⋅=

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 pomoću tri bita. No to znači da nam je rezultat funkcije f bitan samo u ta tri slučaja, a ostalo nas nije briga. Zbog toga tablični prikaz funkcije korigiramo kao što je prikazano u nastavku.

n b2 b1 b0 f 0 0 0 0 1 1 0 0 1 0 2 0 1 0 × 3 0 1 1 × 4 1 0 0 1 5 1 0 1 × 6 1 1 0 × 7 1 1 1 ×

b1b0 00 01 11 10

b2 0 1 × × 1 1 × × ×

0b

b1b0

b2

0bf =

Page 127: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

124 Zbirka riješenih zadataka

5.21. Pismeni ispit, 25. 02. 2004, 1. zadatak Zadana je dvoizlazna funkcija f=[f1, f2] pri čemu su izlazi definirani sljedećim izrazima:

( ) ( )∑= 10,8,6,2,1,0,,,1 mDCBAf i ( ) ( )∏= 15,14,13,12,11,9,5,4,3,2,1,0,,,2 MDCBAf .

Pronaći njezin minimalni oblik koristeći Quine-McCluskey metodu minimizacije za višeizlazne funkcije.

Funkcija f2 nije zadana u prikladnom obliku za Quinne-McCluskey metodu – trebamo njezin zapis u obliku sume minterma. Slijedi:

∑= )10,8,7,6(2 mf .

Dalje je postupak standardan. 0000 * F:10 (0) 000X F:10 (0, 1)

00X0 * F:10 (0, 2) X000 * F:10 (0, 8)

X0X0 F:10 (0, 2, 8, 10)

0001 * F:10 (1) 0010 * F:10 (2) 1000 * F:11 (8)

0X10 F:10 (2, 6) X010 * F:10 (2, 10) 10X0 F:11 (8, 10)

0110 F:11 (6) 1010 * F:11 (10)

011X F:01 (6, 7)

0111 * F:01 (7)

f1 f2 0 1 2 6 8 10 6 7 8 10

a'bcd' P0

a'b'c' P1

a'cd' P2

ab'd' P3

a'bc P4

b'd' P5

Iz tablice se vidi da postoje neki neoznačeni mintermi. Potrebno je primijeniti Pyne-McCluskey pristup za pronalaženje minimalnog broja produkata koji ih pokriva, a još nisu označeni (P0, P2, P5).

( ) ( ) 52502022052 PPPPPPPPPPPp ⋅+⋅+⋅+=+⋅+= Minimalno pokrivanje postiže se dodavanjem produkta P2. Produkte P0 i P5 tada se ne smije koristiti, pa ćemo ih izbaciti iz tablice:

f1 f2 0 1 2 6 8 10 6 7 8 10

a'b'c' P1

a'cd' P2

ab'd' P3

a'bc P4

Page 128: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 125

Sada treba na temelju dobivene tablice minimizirati svaku funkciju posebno. Imamo:

f1 0 1 2 6 8 10

a'b'c' P1

a'cd' P2

ab'd' P3

a'bc P4

DBADCACBAf ++=1

f2 6 7 8 10

a'b'c' P1

a'cd' P2

ab'd' P3

a'bc P4

BCADBAf +=2

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 izračunati

minimalni oblik funkcije gfz ⊕= , ako je poznato da će uvijek vrijediti:

( ) ( ) 0=⋅+⋅+ DABADB .

U slučaju da imamo tablični prikaz funkcija, zadatak možemo rješavati na dva načina. Prvi način podrazumijeva očitavanje 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 tablični oblik kako bismo mogli obaviti minimizaciju. Drugi način (koji ćemo i koristiti u nastavku) prestavlja direktan rad s tabličnim oblikom funkcija (čime se izbjegava pretvorba u algebarski oblik i vraćanje natrag). Naime, vrijedi sljedeće. Ako tablični zapis funkcije promatramo kao matricu, tada će (uz zadan izraz za z) vrijediti:

),(),(),( jigjifjiz ⊕= Dakle, definiranu operaciju treba jednostavno primijeniti za svaki par elemenata tablice. Dobije se sljedeći prikaz funkcije z:

f AB 1 0 0 00 1 1 01 0 0 1

CD

0 1 1 0

g AB 0 1 0 10 1 0 00 0 1 0

CD

0 1 1 1

Page 129: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

126 Zbirka riješenih zadataka

z: AB

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

CD

1 1 1 0 Prije no što krenemo na minimizaciju, moramo još iskoristiti sve što bi moglo dodatno pridonijeti minimizaciji. Budući da znamo da će uvijek vrijediti izraz:

0)()( =⋅+⋅+ DABADB slijedi:

00)(0)()( =⋅⇒=+⋅⇒=⋅+⋅⋅+ DABBDADABDAB Odavde možemo očitati koje se kombinacije ulaznih varijabli nikada neće pojaviti kod funkcije, te ih možemo proglasiti don't care vrijednostima. Ako to još nije očito, možemo si pomoći i dalje. Naime, ako će prethodni izraz uvijek vrijediti, tada njegov komplement nikada neće vrijediti:

0100 =+⇒≠+⇒≠⋅⇒=⋅ DADADADA Dakle, nikad neće biti A+D jednako 0, što znači 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. Označimo te minterme u tablici, i krenimo na minimizaciju. Minimizacijom tada slijedi:

z: AB 00 01 11 10

CD 00 × × 1

01 1 1 1 11 1

10 × × 1

AB

C

D

DB

DCB

BA

DCBDBBAz ++=

Page 130: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 127

5.23. Zadatak

Zadana je funkcija ( )∑= 7,6,5,1),,( CBAf . Funkciju je potrebno realizirati uporabom I, ILI i

NE logičkih sklopova. Pri tome pretpostaviti da izlaz svakog od osnovnih logičkih 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 može ukloniti hazard u sklopu?

a) Raspišimo funkciju algebarski:

CABABCCBACBACBAf +++=),,( Direktna realizacija ove funkcije prikazana je na slici.

1

1

1

&

1≥

&

&

&

A

B

Cf

i1

i2

i3

i4 Za analizu rada poslužit ćemo se Xilinx WebISE alatom. Svaki od osnovnih sklopova opisan je kao komponenta u VHDL-u kod koje izlaz kasni za ulazom 10 ns, a opis cijelog sklopa prikazan je u nastavku. library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity sklop1 is Port ( a : in std_logic; b : in std_logic; c : in std_logic; f : out std_logic); end sklop1; architecture Behavioral of sklop1 is component sklopNOT is Port ( a : in std_logic; z : out std_logic); end component; component sklopOR4 is

Page 131: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

128 Zbirka riješenih zadataka

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: sklopNOT PORT MAP (a,ac); bc1: sklopNOT PORT MAP (b,bc); cc1: sklopNOT PORT MAP (c,cc); i11: sklopAND3 PORT MAP (ac,bc,c,i1); i21: sklopAND3 PORT MAP (a,bc,c,i2); i31: sklopAND3 PORT MAP (a,b,c,i3); i41: sklopAND3 PORT MAP (a,b,cc,i4); o11: sklopOR4 PORT MAP (i1, i2, i3, i4, f); end Behavioral;

Kako se sklop ponaša, najbolje se vidi iz simulacije. Pri tome nisu simulirani svi mogući ulazi, već samo neki. Rezultat je prikazan na slici.

Da li je izlaz u skladu s očekivanjima? Očito nije jer se na mjestima gdje bi funkcija trebala biti stalno u '1' pojavljuju kratkotrajni impulsi '0'. Pogledamo li još malo bolje valne oblike, vidimo čak da ne vrijedi jedan od temeljnih zakona Booleove algebre, tj. ne vrijedi 1=+ AA (npr. prvi signal je A, drugi je njegov komplement; u određenim trenucima oba signala imaju iste vrijednosti)! Analizirajmo sada detaljnije jedan konkretan slučaj. U trenutku t = 300 ns signali A, B i C imaju vrijednost '1'. U trenutku t = 400 ns signal C pada na vrijednost '0'. Nedugo nakon toga izlaz funkcije je pogrešan. Krenimo analizirati sklop od samog izlaza. Izlaz cijelog sklopa je ILI sklop koji će na svome izlazu dati '1' kada mu je barem jedan od ulaza u '1'. No kako izlaz padne u '0' to očito u jednom trenutku nije bilo zadovoljeno. U trenutku t = 400 ns izlaz je bio u '1' jer je sklop i3 na svom izlazu držao '1'. Promjenom signala C na '0' u tom trenutku započinje propagacija novog izlaza i3, koji u ovom slučaju iznosi '0'. Ta nula na izlaz sklopa i3 stigne u trenutku t = 410 ns (jer izlaz sklopa kasni za ulazom 10 ns). Pogledamo li sada izlaze sklopova i1, i2, i3 i i4, svi su u '0'! Zbog toga će se 10 ns kasnije, dakle u trenutku t = 420 ns pojaviti izlaz '0'. Međutim, ovo dakako nije stabilno stanje. Pogledamo li što se događa s izlazom i4, vidimo da on u trenutku t = 420 ns prijeđe u '1'. Time je ponovno na ulazu ILI sklopa prisutna jedinica, te izlaz ILI sklopa 10 ns kasnije prelazi u '1', gdje i ostaje. Iz ove analize vidimo da je vrijeme trajanja pogrešnog izlaza jednako 10 ns, a pogreška se je pojavila zbog toga što je jedinica na izlazu i3 nestala prije no što se je pojavila jedinica na izlazu i4, pa je konačni rezultat pojava hazarda. Hazard ovog tipa, gdje je

Page 132: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 129

izlaz stalno u '1' (osim kada kratkotrajno prijeđe u '0') naziva se statički '1' hazard. No zašto je izlaz i4 kasnio? Analizirajmo što se događa s njegovim ulazima. Prva dva ulaza spojena su na signale A i B. U trenutku t = 400 ns oni se ne mijenjaju. Na treći 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. Očito je glavni krivac za cijeli događaj 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 dođu odmah (u t = 400 ns), a ispravan signal C stigne tek u t = 410 ns. Razlog pojave hazarda dakle je u različitom vremenu potrebnom da svi signali prođu kroz sklop do izlaza (signali A, B i C to učine nakon dva sklopa, a njihovi komplementi tek nakon tri sklopa). Opisani hazard nastupio je pri prijelazu ABC="111" u ABC="110". Da li se događa hazard na suprotnom prijelazu, tj. ako se iz ABC="110" vratimo natrag u ABC="111"? Ova se promjena može pogledati u trenutku t = 500 ns. Hazard se nije dogodio! Zašto? Pogledajmo kako su se sada mijenjali izlazi sklopova i3 i i4. Sklop i3 prešao 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'. Očito je na ulazima ILI sklopa cijelo vrijeme bila prisutna jedinica i nije došlo do pojave hazarda (iako se može uočiti da je sklop i4 opet kasnio čak 20 ns s promjenom; no, sada to kašnjenje nije rezultiralo pogrešnim radom sklopa). Koji se zaključak može 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 potvrđuju i rezultati simulacije. Neki od prijelaza kod kojih se javlja hazard prikazani su u tablici, kao i strelicama u K-tablici.

f: BC 00 01 11 10

A 0 1

1 1 1 1

Prijelaz Razlog hazarda Vidljivo gdje? "101"→"001" A pada u '0' t = 200 ns "111"→"110" C pada u '0' t = 400 ns "111"→"101" B pada u '0' t = 600 ns "111"→"001" A i B padaju u '0' t = 800 ns "110"→"001" A i B padaju u '0' t = 1200 ns

b) Minimizirajmo funkciju. Dobije se:

ABCBf +=

Page 133: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

130 Zbirka riješenih zadataka

VHDL model sklopa koji realizira ovu funkciju prikazan je u nastavku. library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity sklop2 is Port ( a, b, c : in std_logic; f : out std_logic); end sklop2; architecture Behavioral of sklop2 is component sklopNOT is Port ( a : in std_logic; z : out std_logic); end component; component sklopOR2 is Port ( a, b : in std_logic; z : out std_logic); end component; component sklopAND2 is Port ( a, b : in std_logic; z : out std_logic); end component; signal bc, i1, i2: std_logic; begin bc1: sklopNOT PORT MAP (b,bc); i11: sklopAND2 PORT MAP (bc,c,i1); i21: sklopAND2 PORT MAP (a,b,i2); o11: sklopOR2 PORT MAP (i1, i2, f); end Behavioral;

Simulacijom ponašanja sklopa na istu pobudu kao u prvom slučaju dobivamo sljedeći rezultat:

Broj hazardnih impulsa manji je nego u prvom slučaju! Hazardi koji su ostali prikazani su u tablici:

Prijelaz Razlog hazarda Vidljivo gdje? "111"→"101" B pada u '0' t = 600 ns "111"→"001" A i B padaju u '0' t = 800 ns "110"→"001" A i B padaju u '0' t = 1200 ns

Nestali su hazardi pri prijelazu "101"→"001" kao i pri prijelazu "111"→"110". Pogledamo li kako izgleda ova funkcija prikazana u K-tablici, razlog njihovog nestanka odmah će biti jasan.

Page 134: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 131

f: BC 00 01 11 10

A 0 1

1 1 1 1

Sivim strelicama označeni su uklonjeni hazardi. Gdje se je to dogodilo? Odgovor je unutar svakog produkta! Pogledajmo npr. produkt CB . Izvorno je hazard nastajao kada je A prelazio iz '1' u '0', uz B='0' i C='1'. Kako sada ova oba minterma pokriva jedan produkt CB (koji uopće ne ovisi o A), ne dolazi do hazarda. Međutim, hazardi između pojedinih produkata ostali su i dalje. c) Što se još može učiniti kako bismo dodatno uklonili pojavu hazarda? Često se na promjene ulaza funkcije može postaviti sljedeći uvjet (i): dozvoljena je istovremena promjena samo jedne ulazne varijable. To u K-tablici znači da će se ulazi mijenjati samo u susjedna polja. Na taj način nestaju još dva hazarda: "111"→"001" i "110"→"001":

f: BC 00 01 11 10

A 0 1

1 1 1 1

Na ovaj su način 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 uvođenjem redundancije; naime, trebamo uvesti novi produkt koji će sadržavati susjedne minterme između kojih nastaje hazard. U zadatku to konkretno znači da treba uvesti redundantni produkt AC :

f: BC 00 01 11 10

A 0 1

1 1 1 1

Time funkcija poprima oblik ACABCBf ++= i više očito nije minimalna. No, ako vrijedi prethodno uveden uvjet, tada ovako realizirana funkcija više nema statičkog '1' hazarda. VHDL model sklopa koji realizira funkciju prikazan je u nastavku:

Page 135: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

132 Zbirka riješenih zadataka

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: sklopNOT PORT MAP (b,bc); i11: sklopAND2 PORT MAP (bc,c,i1); i21: sklopAND2 PORT MAP (a,b,i2); i31: sklopAND2 PORT MAP (a,c,i3); o11: sklopOR3 PORT MAP (i1, i2, i3, f); end Behavioral;

Rezultat simulacije uz istu pobudu kao i u prethodnom primjeru prikazan je u nastavku.

Kao što se vidi iz simulacije, jedini preostali hazardi javljaju se pri promjenama ulaza kod kojih se mijenja više 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 različita slučaja:

• ulazne varijable mijenjaju se iz polja gdje funkcija poprima '0' u polje gdje funkcija poprima '0',

• ulazne varijable mijenjaju se iz polja gdje funkcija poprima '0' u polje gdje funkcija poprima '1',

• ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje funkcija poprima '0' te

Page 136: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 133

• ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje funkcija poprima '1'.

Prilikom analize promatrali smo samo zadnji slučaj. Za vježbu. Funkcija f iz zadatka može se također prikazati i realizirati kao produkt suma

( )∏= 4,3,2,0f . Sklopovska realizacija funkcije tada će na izlazu imati I sklop.

Analizirajte pri kojim se prijelazima u ovom slučaju javlja hazard (za sva četiri tipa prijelaza), i to za slučaj kada se svaki maksterm realizira zasebnim sklopom, te za slučaj kada se obavi minimizacija. Uklonite sve preostale hazarde, uz pretpostavku da će za promjene ulaznih varijabli vrijediti uvjet (i).

5.24. Zadatak Kada vršimo minimizaciju funkcije K-tablicom, tražimo minimalni zapis funkcije prema kojim kriterijima? Da li je dobiven prikaz funkcije najminimalniji?

Definirajmo ρ(f,z) mjeru složenosti implementacije funkcije f kao sumu broja potrošenih logičkih sklopova i broja ulaza na svakom od tih sklopova, uz neki zapis z funkcije f. K-tablicama se dobiva onaj zapis z' funkcije f za koji je ρ(f) minimalno uz dodatni uvjet da se funkcija implementira kroz maksimalno dvorazinsku logiku (ne računajući invertore). Pogledajmo to na primjeru funkcije CDBACABABCDABCDCBAf +++=),,,( . Za realizaciju ove funkcije (uz zadani zapis z) potrošili bismo 4 I logička sklopa (2 troulazna i 2 četveroulazna) te jedan četveroulazni ILI sklop. Tada je očito mjera složenosti funkcije jednaka ρ(f,z)=4+1+2⋅3+2⋅4=19. Nakon minimizacije K-tablicom funkcija f poprima zapis z':

ACDABDCBAf +=),,,( . Mjera složenosti funkcije sada je jednaka ρ(f,z')=2+1+2⋅2+1⋅3=10. Ovime je pronađen minimalni zapis funkcije u obliku sume parcijalnih produkata. No može li se pronaći zapis funkcije z'' za koji je mjera složenosti još manja? Generalno govoreći, potrebno je izbaciti dodatni uvjet koji postoji kod minimizacije K-tablicom: funkcija više ne mora biti izvedena kroz najviše dvije razine logike. Ako to uvažimo, funkciju f možemo dalje zapisati kao z'': ( )CDBADCBAf +⋅=),,,( . Mjera složenosti

funkcije sada je jednaka ρ(f,z'')=2+1+2⋅2+1⋅2=9. Dakle, pronašli smo zapis funkcije kod kojega je mjera složenosti ρ još manja. Međutim, treba napomenuti da dobiveno rješenje ima jednu manu u odnosu na rješenje K-tablica: povećan je broj razina logike, što u čisto logičkom smislu nema nikakvog utjecaja, no prilikom realizacije funkcije veći broj razina logike automatski znači i duže vrijeme prolaska signala kroz logičke sklopove i time kasnija reakcija samog sklopa.

Page 137: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

134 Zbirka riješenih zadataka

5.25. Zadatak Objasnite sljedeće pojmove: implikant, primarni implikant, bitni primarni implikant na

primjeru funkcije ( )∑= 7,6,3,1),,( mCBAf .

Prikažimo funkciju pomoću K-tablice.

BC 00 01 11 10

A 0 1 1

1 1 1

CABC

BC

A

AB

CBABCA

ABC CAB Implikant je svaki produkt koji povlači da je vrijednost funkcije 1 (u tablici to su sva moguća zaokruženja). Npr. ova funkcija ima četiri implikanta (u tablici zasivljeno) koji ujedno odgovaraju i mintermima: CBA ⋅⋅ , CBA ⋅⋅ , CBA ⋅⋅ i CBA ⋅⋅ . Naime, čim je npr. A=0, B=0 i C=1 (što odgovara mintermu CBA ⋅⋅ ) funkcija je u 1 (dakle, taj produkt implicira vrijednost funkcije). Osim navedenih, ova funkcija ima još i sljedeće implikante: CA ⋅ , BA ⋅ i CB ⋅ . Od navedenih 7 implikanata, samo su tri primarna implikanta: CA ⋅ , BA ⋅ i CB ⋅ . Naime, primarni implikanti su oni implikanti koji nisu u cijelosti sadržani niti u jednom drugom implikantu. Tako npr. implikant CBA ⋅⋅ nije primarni jer je sadržan u implikantu CA ⋅ . Od navedena tri primarna implikanta zadana funkcija ima samo dva bitna primarna implikanta: CA ⋅ i BA ⋅ . Naime, bitni primarni implikant je primarni implikant koji sadrži barem jedan minterm koji nije sadržan niti u jednom drugom primarnom implikantu. Tako npr. bitni primarni implikant CA ⋅ sadrži minterm CBA ⋅⋅ koji nije sadržan niti u jednom drugom primarnom implikantu. Sada je jasno i zašto CB ⋅ jest primarni implikant, ali nije bitni primarni implikant: on sadrži minterme CBA ⋅⋅ i CBA ⋅⋅ , od kojih je prvi pokriven primarnim implikantom CA ⋅ a drugi primarnim implikantom BA ⋅ . Važno je uočiti da funkcija može biti zadana tako da nema niti jedan bitni primarni implikant! Vidi neriješene zadatke za primjer. ZADACI ZA VJEŽBU

1. Pronaći sve implikante, primarne implikante te bitne primarne implikante funkcije ( )∑= 14,13,10,5,4,1,0),,,( mDCBAf .

Page 138: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Minimizacija logičkih funkcija. 135

2. Pronaći sve implikante, primarne implikante te bitne primarne implikante funkcije ( )∑= 15,13,12,7,4,3,1,0),,,( mDCBAf . (Naputak: ne postoje bitni primarni implikanti!

Zašto?)

3. Ako kao mjeru složenosti sklopa definiramo sumu broja logičkih sklopova i broja ulaza koje ti sklopovi moraju imati potrebnih za realizaciju funkcije sklopa u zapisu z, u kakvom su odnosu mjere složenosti:

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. Zadana je funkcija ( )∑= 13,12,11,10,9,8,7,6,5,4),,,( mDCBAf . K-tablicom pronaći

minimalni oblik funkcije. Naputak: budući da nije zadano treba li minimizirati nule ili jedinice, potrebno je pronaći onaj oblik funkcije koji troši minimalni broj logičkih sklopova.

5. Može li se Quinne-McCluskey metoda (ili bolje rečeno ideja) primijeniti na pronalaženje minimalnog oblika funkcije u obliku produkta parcijalnih suma? Objasnite to na primjeru pokušaja minimizacije funkcije ( ) ( )∏= 15,11,10,8,5,4,1,0,,, MDCBAf .

Što biste trebali dobiti možete provjeriti tako da istu funkciju minimizirate K-tablicom.

6. Zadana je funkcija ( )∑= 31,26,24,23,21,18,17,16,10,8,5,4,2,1,0),,,,( mEDCBAf .

Uporabom K-tablica pronaći minimalni zapis funkcije:

a) u obliku sume parcijalnih produkata b) u obliku produkta parcijalnih suma

7. Algebarski minimizirajte funkciju

( )∑= 31,26,24,23,21,18,17,16,10,8,5,4,2,1,0),,,,( mEDCBAf .

8. Zadana je funkcija f. Dvorazinskom logikom ostvariti sklop koji realizira ovu funkciju. Na raspolaganju su varijable, komplementi varijabli te osnovni logički sklopovi (I, ILI). Zadatak riješiti tako da se ne koristi više od 3 osnovna logička sklopa. Invertori nisu na raspolaganju, a f glasi:

( )∑= 31,29,27,26,25,24,21,20,17,16,15,13,11,10,9,8,5,4,1,0),,,,( EDCBAf

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 pronaći minimalni zapis funkcija cout i r0 u obliku sume parcijalnih produkata. Svaku funkciju minimizirati zasebno.

10. Pismeni ispit 13.09.2004.

Funkcija DBADCADCBADCBAf ++=),,,( direktno je realizirana nekim sklopom S. Provjeriti ima li funkcija statički hazard, a ako ima, pronaći sve prijelaze gdje se on javlja, te nacrtati sklop S' koji nema statički hazard. Pretpostaviti da će se prilikom promjene ulaza uvijek mijenjati samo jedna varijabla.

Page 139: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 137

6. Standardni kombinacijski moduli.

6.1. Zadatak Prikazati logički simbol, tablicu istinitosti, logičku funkciju, shemu sklopa te VHDL ponašajni model multipleksora 2/1.

Logički simbol multipleksora:

y

d0 d1s

Tablica istinitosti:

S D1 D0 Y 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1

Logička funkcija:

( )∑ ⋅+⋅== 107,6,3,1)1,0,(21 DSDSmDDSmux

Shema sklopa:

&

&

1

1≥ y

d0

d1

s

VHDL ponašajni model: - Uporabom CASE naredbe ENTITY mux21 IS PORT ( D0, D1: IN std_logic; S: IN std_logic; Y: OUT std_logic); END ENTITY;

Page 140: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

138 Zbirka riješenih zadataka

ARCHITECTURE ponasajna OF mux21 IS BEGIN PROCESS (D0, D1, S) BEGIN CASE S IS BEGIN WHEN '0' => Y <= D0; WHEN '1' => Y <= D1; WHEN OTHERS => Y <= D0; -- zbog kompletnosti CASE naredbe END CASE; END PROCESS; END ponasajna; - direktno logičkom funkcijom ENTITY mux21 IS PORT ( D0, D1: IN std_logic; S: IN std_logic; Y: OUT std_logic); END ENTITY; ARCHITECTURE ponasajna2 OF mux21 IS BEGIN Y <= (NOT S AND D0) OR (S AND D1); END ponasajna2; - konkurentnim WHEN izrazom ENTITY mux21 IS PORT ( D0, D1: IN std_logic; S: IN std_logic; Y: OUT std_logic); END ENTITY; ARCHITECTURE ponasajna2 OF mux21 IS BEGIN Y <= D0 WHEN S='0' ELSE D1; END ponasajna2;

6.2. Zadatak Prikazati logički simbol, tablicu istinitosti, logičku funkciju, shemu sklopa te VHDL ponašajni model dekodera 2/4.

Logički simbol dekodera:

Page 141: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 139

a0

a1

y0

y1

y2

y3DEKODER2/4

Tablica istinitosti:

A1 A0 Y3 Y2 Y1 Y0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0

Logička funkcija:

( ) ( )01010 0, AAmAAY ⋅== ∑

( ) ( )01011 1, AAmAAY ⋅== ∑

( ) ( )01012 2, AAmAAY ⋅== ∑

( ) ( )01013 3, AAmAAY ⋅== ∑

Shema sklopa:

&

&

&

&

1 1

a0a1

y0

y1

y2

y3

VHDL ponašajni model: ENTITY dek24 IS PORT ( A0, A1: IN std_logic; Y0, Y1, Y2, Y3: OUT std_logic); END ENTITY; ARCHITECTURE ponasajna OF dek24 IS BEGIN Y0 <= NOT A1 AND NOT A0; Y1 <= NOT A1 AND A0; Y2 <= A1 AND NOT A0; Y3 <= A1 AND A0; END ponasajna;

Page 142: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

140 Zbirka riješenih zadataka

VHDL ponašajni model uporabom WHEN izraza: ENTITY dek24 IS PORT ( A: IN std_logic_vector(1 DOWNTO 0); Y: OUT std_logic_vector(3 DOWNTO 0)); END ENTITY; ARCHITECTURE ponasajna OF dek24 IS BEGIN Y <= "0001" WHEN A="00" ELSE "0010" WHEN A="01" ELSE "0100" WHEN A="10" ELSE "1000"; END ponasajna;

6.3. Zadatak Prikazati logički simbol, tablicu istinitosti, logičku funkciju, shemu sklopa te VHDL ponašajni model dekodera 1/2 s ulazom za omogućavanje.

Logički simbol dekodera:

y0

y1aDEKODER

1/2

E

Tablica istinitosti:

E A Y1 Y0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0

Logička funkcija:

( ) ( ) AEmAEY ⋅== ∑ 3,1

( ) ( ) AEmAEY ⋅== ∑ 2,0

Shema sklopa:

&

&

1

aE

y0

y1

Page 143: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 141

VHDL ponašajni model: ENTITY dek12E IS PORT ( A, E: IN std_logic; Y0, Y1: OUT std_logic); END ENTITY; ARCHITECTURE ponasajna OF dek12E IS BEGIN Y0 = NOT A AND E; Y1 = A AND E; END ponasajna;

6.4. Zadatak Prikazati logički simbol, tablicu istinitosti te logičku 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 logička jedinica (tada je dodatni izlaz Z = '1'). Za slučaj da su svi ulazi u nuli, izlaz Z postavlja se u '0'. Kako se može dogoditi da je na više ulaza istovremeno prisutna jedinica, tipično se izvodi prioritetni koder kod kojega izlaz odgovara najvišem ulazu na kojem se nalazi logička jedinica. Logički simbol kodera:

Y0

Y1

I0

I1

I2

I3 KODER4/2

Z

Tablica istinitosti:

I3 I2 I1 I0 Y1 Y0 Z 0 0 0 1 0 0 1 0 0 1 × 0 1 1 0 1 × × 1 0 1 1 × × × 1 1 1 0 0 0 0 × × 0

U tablici vrijednost '×' označava proizvoljnu vrijednost. Logička funkcija kodera:

( ) ( )32301231 15,14,13,12,11,10,9,8,7,6,5,4,,, IIImIIIIY +⋅== ∑

Page 144: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

142 Zbirka riješenih zadataka

( ) ( )312301230 15,14,13,12,11,10,9,8,3,2,,, IIIImIIIIY +⋅⋅== ∑

( ) ( )01230123 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,,, IIIImIIIIZ +++== ∑

6.5. Zadatak Uporabom multipleksora 4/1 i potrebnih osnovnih logičkih sklopova ostvarite logičku funkciju ( )∑= 7,6,4,2,1f .

Prikažimo funkciju tablično.

A B C f 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1

Multipleksor 4/1 ima četiri podatkovna ulaza, odnosno dva selekcijska ulaza. Ako na selekcijske ulaze dovedemo varijable A i B, podatkovni ulaz D0 biti će proslijeđen na izlaz ako je A=0 i B=0; podatkovni ulaz D1 biti će proslijeđen na izlaz ako je A=0 i B=1; podatkovni ulaz D2 biti će proslijeđen na izlaz ako je A=1 i B=0; podatkovni ulaz D3 biti će proslijeđen na izlaz ako je A=1 i B=1. Možemo 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. Međutim, usporedimo vrijednost funkcije s vrijednostima koje poprimaju varijable koje nisu dovedene na selekcijske ulaze (u našem slučaju, varijablom C). U prva dva retka, vrijednost funkcije f upravo je jednaka vrijednosti varijable C! Zaključujemo da na prvi ulaz (D0) treba dovesti upravo varijablu C. Na sličan način možemo analizirati što trebamo dovesti na ulaz D1, koji je selektiran kod kombinacije A=0 i B=1. Ovime su opet selektirana dva retka (treći 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. Zaključujemo na na ulaz D1 moramo dovesti C . Sličnu analizu možemo ponoviti i za preostale dvije kombinacije varijabli A i B, pa ćemo dobiti: CD =2 i D3=1. Ovaj postupak obično se provodi direktno očitavanjem iz tablice kombinacija. U tablici se crtkanom linijom odvoje one varijable koje se dovode na selekcijske ulaze multipleksora (u našem slučaju varijable A i B), te se naznače grupe redaka u kojima se A i B ne mijenjaju. Zatim se proanalizira za svaku grupu posebno kakav je odnos

Page 145: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 143

između preostalih varijabli, i vrijednosti funkcije, i utvrde se logički izrazi koji opisuju taj odnos. Postupak je prikazan na slijedećoj slici.

A B C f 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1

A B C f D0

0 0 0 0 0 0 1 1 CfD

Cf

===

0

A B C f D1

0 1 0 1 0 1 1 0

CfD

Cf

===

1

A B C f D2

1 0 0 1 1 0 1 0

CfD

Cf

===

2

A B C f D3

1 1 0 1 1 1 1 1 1

1

3 ===

fD

f

Konačan izgled sklopa je:

D0

D1

D2

D3

f

S0S1

C

C

1

C

A B

MUX 4/1

Page 146: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

144 Zbirka riješenih zadataka

6.6. Zadatak

Uporabom multipleksora 8/1 ostvariti logičku funkciju:

( )∑= 31,30,29,28,27,26,25,20,19,18,17,14,13,12,8,7,6,5,3f

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 označimo ovisnosti izlaza po grupama o preostalim varijablama (D i E).

A B C D E f Ulazi mux-a 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1

EDD ⋅=0

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

EDD +=1

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

EDD +=2

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

EDD ⋅=3

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

EDD +=4

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

EDD +=5

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

EDD +=6

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

17 =D

Page 147: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 145

D0

D1

D2

D3 f

S0S1

1

A B

MUX 8/1

S2

D4

D5

D6

D7

C

&

1≥

1

1

D

E

6.7. Zadatak Na raspolaganju je proizvoljan broj multipleksora 2/1. Samo njihovom uporabom potrebno je realizirati funkciju ( )∑= 15,14,12,9,7,4,1,0),,,( mDCBAf . 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 može direktno realizirati tražena funkcija. Prikažimo stoga funkciju tablično:

Page 148: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

146 Zbirka riješenih zadataka

A B C D f Di 0 0 0 0 1 0 0 0 1 1

10 =D

0 0 1 0 0 0 0 1 1 0

01 =D

0 1 0 0 1 0 1 0 1 0

DD =2

0 1 1 0 0 0 1 1 1 1

DD =3

1 0 0 0 0 1 0 0 1 1

DD =4

1 0 1 0 0 1 0 1 1 0

05 =D

1 1 0 0 1 1 1 0 1 0

DD =6

1 1 1 0 1 1 1 1 1 1

17 =D

Shema spoja tada je:

d0

d1

a0

z

d0

d1

a0

z

d0

d1

a0

z

d0

d1

a0

z

d0

d1

a0

z

d0

d1

a0

z

d0

d1

a0

z

C B A

D

D

0

1

D

0

D1

f

Page 149: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 147

Zadatak se je mogao riješiti i izgradnjom još većeg multipleksora: multipleksora 16/1. Tada bi svaki od adresnih ulaza došla jedna od varijabli, a na svaki od podatkovnih ulaza vrijednost funkcije (dakle, 0 ili 1). No budući da na raspolaganju imamo sve varijable i njihove komplemente, ekonomičnije je izgraditi minimalno velik multipleksor.

6.8. Zadatak Uporabom dekodera 3/8 ostvariti logičke funkcije:

( )∑= 7,6,4,3,01f

( )∑= 5,2,1,02f

Kako izlazi iz dekodera direktno odgovaraju pojedinim mintermima, potrebno je samo odgovarajuće minterme "pokupiti" ILI sklopovima.

A1 A0

B C

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

A2

A

1≥

1≥

1f

2f

6.9. Zadatak Uporabom dekodera 3/8 čiji su izlazi komplementirani ostvariti logičke funkcije:

( )∑= 7,6,4,3,01f

( )∑= 5,2,1,02f

Ovakav dekoder na izlazu ima aktivnu nulu, tj. kada je onemogućen, svi su izlazi u jedinici, a kada je omogućen, onaj izlaz koji je adresiran nalazi se u nuli dok su svi ostali izlazi u jedinici. Ako uočimo da su funkcije identične onima iz prethodnog zadatka, potrebno je samo smisliti kako pomoću ovakvog dekodera realizirati isto ponašanje.

Page 150: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

148 Zbirka riješenih zadataka

U prethodnom smo zadatku na izlazima multipleksora direktno imali minterme pa smo ih samo pokupili ILI sklopom. U ovom slučaju na izlazima imamo komplemente od minterma; kako sada trebamo pokupiti izlaze? Prisjetimo se DeMorgana:

( )YXNIYXYX ,=⋅=+ Dakle, komplementirane izlaze treba "pokupiti" NI sklopovima, pa ćemo opet imati izvornu sumu minterma! Sklop je prikazan u nastavku:

A1 A0

B C

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

A2

A

1f

2f

&

&

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

a) uporaba dvostrukog dekodera 2/4

b2 b1 b0 pp pn 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0

Dvostruki dekoder 2/4 prikazan je na slijedećoj slici. To su dva dekodera sa zasebnim ulazima za omogućavanje, pri čemu su im adresne linije zajedničke.

Page 151: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 149

Dekoder 2/4 ima dva adresna bita (A1 i A0). Da bismo ostvarili funkciju od 3 varijable dvostrukim dekoderom, varijablom b2 (varijabla najveće težine u tablici) upravljat ćemo ulazom za omogućavanje pojedinog dekodera, tako da kada b2 bude 0, prvi dekoder će biti aktivan, a kada b2 bude 1, drugi dekoder će biti aktivan. Na adresne linije dovest ćemo preostale varijable b1 i b0. Ako dvostruki dekoder spojimo na upravo opisani način, izlazi dekodera zapravo će predstavljati minterme triju varijabli: b2, b1 i b0. Tada iz tablice možemo očitati da prva funkcija sadrži minterme 1, 2, 4 i 7 a druga minterme 0, 3, 5 i 6, što je i prikazano na shemi sklopa.

A1 A0

012 bbb

E

E

012 bbb

012 bbb

012 bbb

012 bbb

012 bbb

012 bbb

012 bbb

2b 1b 0b

1

1≥

1≥

pp

np

Realizacija funkcija uporabom dvostrukog dekodera 2/4

A1 A0

01 AA

01 AA

01 AA

01 AA

01 AA

01 AA

01 AA

01 AA

E

E

Dvostruki dekoder 2/4

Page 152: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

150 Zbirka riješenih zadataka

b) Uporaba dvostrukog multipleksora 4/1

Dvostruki multipleksor 4/1 prikazan je na slici. Sastoji se od dva multipleksora 4/1 koji imaju dijeljene selekcijske bitove. Varijable b2 i b1 najveće težine dovodit ćemo na selekcijske ulaze, a na podatkovne ulaze dovodit ćemo rezidualne funkcije od varijable b0. Prvi multipleksor koristit ćemo za realizaciju funkcije pp, a drugi za realizaciju funkcije pn. Analizom tablice kombinacija lako se može ustanoviti da na ulaze D0, ..., D3 prvog multipleksora treba dovesti redom 0b ,

0b , 0b te 0b , a na ulaze D0, ..., D3 drugog

multipleksora treba dovesti redom 0b , 0b , 0b te 0b .

0D

1D

2D

3D

0D

1D

2D

3D

1Sel 0Sel

z

z

2b 1b

0b

1

pp

np

Realizacija funkcija uporabom dvostrukog demultipleksora 4/1

0D

1D

2D

3D

0D

1D

2D

3D

1Sel 0Sel

z

z

Dvostruki multipleksor 4/1

Page 153: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 151

6.11. Zadatak Realizirati sklop koji ostvaruje funkciju r3r2r1r0=fibb(b2b1b0) koja vraća 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 riječi (tj. uporabom dekodera 3/8 i diskretnog koderskog polja).

Fibbonacijevi brojevi definirani su slijedećim izrazom:

1)1(,0)0(

)1()2()(

==−+−=

fibbfibb

nfibbnfibbnfibb

Prikažimo tablicu kombinacija:

n fibb(n) b2 b1 b0 r3 r2 r1 r0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 2 1 0 1 0 0 0 0 1 3 2 0 1 1 0 0 1 0 4 3 1 0 0 0 0 1 1 5 5 1 0 1 0 1 0 1 6 8 1 1 0 1 0 0 0 7 13 1 1 1 1 1 0 1

a) Uporabom dekodera Da bismo ovu funkciju ostvarili uporabom samo navedenih elemenata, potrebno je izgraditi dekoder 3/8 budući da imamo funkciju od 3 varijable. Ovo se može obaviti kaskadiranjem dekodera u stablo. Zatim se funkcija može realizirati direktno, "prikupljanjem" odgovarajućih izlaza ILI sklopom. Prilikom kaskadiranja dekodera u prvu razinu dolaze najviše značajne varijable, a u zadnju najmanje značajne (zapravo ovo vrijedi univerzalno: najviše značajne varijable dolaze uvijek na vrh stabla; kod dekoderskog stabla to je u prvoj razini, a kod multipleksorskog stabla u zadnjoj).

Page 154: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

152 Zbirka riješenih zadataka

E

A0

D0

D1

D2

D3

A1

E

A0

D0

D1

D2

D3

A1

E

A0

D0

D1

A2

A1

A0

D0

D1

D2

D3

D4

D5

D6

D7E

Dekoder / Demultipleksor 3/8

1≥

1≥

1≥

1≥

r3

r2

r1

r0

2b

1b

0b

1

b) Ispisna memorija (permanentna memorija)

A1 A0

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

012 AAA

A2

1≥ 1≥ 1≥ 1≥

r3 r2 r1 r0

2b 1b 0b

Kodersko poljeDekodersko polje

Page 155: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 153

Sastoji se od dva karakteristična polja:

• ulazno dekodersko polje; obavlja potpuno dekodiranje adrese. Određuje broj riječi memorije. Sastoji se od I sklopova.

• izlazno kodersko polje; obavlja generiranje bitova adresirane riječi. Određuje broj bitova u riječi. Sastoji se od ILI sklopova.

U ovom zadatku trebamo 8 memorijskih riječi – potreban je dekoder s 8 izlaza, odnosno 3 adresne linije. Svaka riječ ima po 4 bita – kodersko polje će imati 4 ILI sklopa. Na ovaj način definirali smo fiksno dekodersko polje i fiksno kodersko polje. Vrlo popularno poopćenje ovog koncepta je uporaba programirljivog dekodera koji generira samo one produkte koji su nam potrebni (uočiti, npr. da minterm 0 nismo koristili; programirljivo I polje), kao i programirljivi koder (programirljivo ILI polje). Ukoliko su oba polja programirljiva, radi se o PLA – Programirljivo logičko polje (Programmable Logic Array), a ako je programirljivo samo I polje, tj. dekoder, radi se o PAL – poluprogramirljivo logičko polje (Programmable Logic Array). Simbol za permanentnu memoriju iz zadatka:

2a

1a

0a

E

2d1d0d

3d

ROM8x4

6.12. Zadatak Uporabom programirljive ispisne memorije 8×8 i dvostrukog multipleksora 4/1 realizirati višeizlaznu funkciju:

( )∑= 30,27,22,17,16,13,12,11,7,6,11f

( )∑= 29,24,21,15,12,10,8,6,5,4,2,12f

Funkcije f1 i f2 su funkcije od 5 varijabli. Dakle, njihova tablica kombinacija ima 32 retka. Međutim, ispisna memorija može generirati samo 8 redaka! S druge strane, ispisna memorija u jednom retku generira 8 bitova, a ako u nju pohranjujemo vrijednosti funkcija f1 i f2, trebamo po retku samo dva bita jer imamo dvije funkcije. Zbog ovoga ćemo u ispisnu memoriju u jednom retku pohranjivati po četiri uzastopne

Page 156: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

154 Zbirka riješenih zadataka

vrijednosti funkcije f1 i četiri uzastopne vrijednosti funkcije f2, a koju točno vrijednost treba dati na izlazu iz sklopa odrediti ćemo multipleksorom! Na adresne linije memorije dovoditi ćemo varijable A, B i C (varijable najveće težine) a na selekcijske bitove multipleksora varijable D i E (varijable najmanje težine).

A B C D E f2 f1 0 0 0 0 0 0 D4 0 D0 0 0 0 0 1 1 D5 1 D1 0 0 0 1 0 1 D6 0 D2 0 0 0 1 1 0 D7 0 D3 0 0 1 0 0 1 D4 0 D0 0 0 1 0 1 1 D5 0 D1 0 0 1 1 0 1 D6 1 D2 0 0 1 1 1 0 D7 1 D3 0 1 0 0 0 1 D4 0 D0 0 1 0 0 1 0 D5 0 D1 0 1 0 1 0 1 D6 0 D2 0 1 0 1 1 0 D7 1 D3 0 1 1 0 0 1 D4 1 D0 0 1 1 0 1 0 D5 1 D1 0 1 1 1 0 0 D6 0 D2 0 1 1 1 1 1 D7 0 D3 1 0 0 0 0 0 D4 1 D0 1 0 0 0 1 0 D5 1 D1 1 0 0 1 0 0 D6 0 D2 1 0 0 1 1 0 D7 0 D3 1 0 1 0 0 0 D4 0 D0 1 0 1 0 1 1 D5 0 D1 1 0 1 1 0 0 D6 1 D2 1 0 1 1 1 0 D7 0 D3 1 1 0 0 0 1 D4 0 D0 1 1 0 0 1 0 D5 0 D1 1 1 0 1 0 0 D6 0 D2 1 1 0 1 1 0 D7 1 D3 1 1 1 0 0 0 D4 0 D0 1 1 1 0 1 1 D5 0 D1 1 1 1 1 0 0 D6 1 D2 1 1 1 1 1 0 D7 0 D3

Shema sklopa prikazana je u nastavku.

Page 157: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 155

D7D6 D5 D4 D3 D2 D1 D0

A2

A1

A0

PROM 8x8

I0I1I2I3I0I1I2I3

MUX 4/1a)

MUX 4/1b)

f1f2

Sel1Sel0

A

B

C

D

E

Funkciju f2 realiziramo prvom polovicom multipleksora. Kada je D=E=0, na izlazu je bit D4 permanentne memorije. Za D=0, E=1 na izlazu je D5 itd. Sada samo iz tablice kombinacija treba očitati vrijednosti bitova pojedinih riječi pohranjenih u memoriji, što je prikazano sljedećom tablicom.

A2=A A1=B A0=C D7 D6 D5 D4 D3 D2 D1 D0 D 0 0 0 0 1 1 0 0 0 1 0 62 0 0 1 0 1 1 1 1 1 0 0 7C 0 1 0 0 1 0 1 1 0 0 0 58 0 1 1 1 0 0 1 0 0 1 1 93 1 0 0 0 0 0 0 0 0 1 1 03 1 0 1 0 0 1 0 0 1 0 0 24 1 1 0 0 0 0 1 1 0 0 0 18 1 1 1 0 0 1 0 0 1 0 0 24

Page 158: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

156 Zbirka riješenih zadataka

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+UDD+UDD +UDD

dekoder

riječ 0

riječ 1

riječ 2

riječ 3

A0A1

d4 d3 d2 d1 d0a1 a0 Memorija ima četiri memorijske riječi, svaka po pet bitova. Dakle, radi se o memoriji 4×5. Vrijednost pohranjenu na pojedinim memorijskim lokacijama očitati ćemo na slijedeći način. Neka adresna riječ a1a0 adresira i-tu memorijsku riječ (tj. i=2⋅a1+a0). Tada je vodoravna linija koja odgovara toj riječi 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 dotični bit postavlja u logičku nulu. Ako je veza prekinuta, tranzistor ne vodi, i okomita linija je spojena na +UDD, čime je dotični bit postavljen na logičku jedinicu. Dakle, u memoriji je zapisan sadržaj:

a1 a0 d4 d3 d2 d1 d0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1

Page 159: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 157

6.14. Zadatak

Realizirati permanentnu memoriju uporabom dekodera 2/4 i koderskog polja izvedenog MOSFET-om. Pohraniti na memorijske lokacije redom sljedeće oktalne brojeve: 1, 3, 5, 2.

Prikažimo u tablici koji se podatak nalazi na kojom memorijskoj lokaciji, i to po bitovima:

a1 a0 d2 d1 d0 n(3) 0 0 0 0 1 1 0 1 0 1 1 3 1 0 1 0 1 5 1 1 0 1 0 2

Tada traženi sklop izgleda:

+UDD +UDD+UDD

dekoder

riječ 0

riječ 1

riječ 2

riječ 3

A0A1

d2 d1 d0a1 a0

Page 160: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

158 Zbirka riješenih zadataka

6.15. Zadatak

Definirana je sljedeća 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 omogućavanje). Nacrtati shemu sklopa i označiti nazive korištenih signala i primjeraka komponente.

Funkcija multipleksora 2/1 određena je izrazom:

10 dseldselz ⋅+⋅=

Ovaj izraz definira sljedeći sklop:

Shema sklopa:

&

&

1

1≥

d0

d1

sel

z

Shema sklopa s NAND sklopovima:

d0

d1

sel

z

&

&

&

&c0

c1

c2

c3

s0

s1

s2

Strukturni VHDL model tada je: library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY pmux21 IS PORT ( d0 : IN std_logic; d1 : IN std_logic; sel : IN std_logic; z: OUT std_logic); END pmux21; ARCHITECTURE Structural OF pmux21 IS COMPONENT pNAND IS PORT ( a : IN std_logic; b : IN std_logic; z : OUT std_logic); END COMPONENT; SIGNAL s0, s1, s2: std_logic;

Page 161: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 159

BEGIN c0: pNAND PORT MAP(sel, sel, s0); c1: pNAND PORT MAP(d0, s0, s1); c2: pNAND PORT MAP(d1, sel, s2); c3: pNAND PORT MAP(s1, s2, z); END Structural; ZADACI ZA VJEŽBU

3. Napisati strukturni model multipleksora 2/1. Pretpostaviti da su modeli osnovnih logičkih sklopova već napisani.

4. Napisati ponašajni model multipleksora 2/1 s ulazom za omogućavanje E. Kad je E='0' izlaz treba biti postavljen u '0'. Kad je E='1' multipleksor obavlja svoju funkciju.

5. Izvesti funkciju multipleksora 4/1 pomoću minimalnog broja osnovnih logičkih sklopova.

6. Multipleksorima 2/1 nacrtati multipleksorsko stablo koje obavlja funkciju multipleksora 16/1.

7. Napisati strukturni VHDL model multipleksora 8/1 s ulazom za omogućavanje izvedenog multipleksorima 2/1 s ulazom za omogućavanje.

8. Napisati strukturni model dekodera 2/4. Pretpostaviti da su modeli osnovnih logičkih sklopova već napisani.

9. Nacrtati shemu dekodera 4/16 s ulazom za omogućavanje realiziranog kao dekodersko stablo dekodera 2/4 s ulazima za omogućavanje.

10. Tablicom istinitosti prikazati funkciju dekadskog dekodera (tj. dekoder 4/10). Napisati logičke izraze koji opisuju funkciju dekodera.

11. Uporabom osnovnih logičkih sklopova nacrtati dekadski dekoder.

12. Uporabom dva dekadska dekodera s ulazom za omogućavanje i minimalnim brojem osnovnih logičkih sklopova nacrtati shemu dekodera 4/16.

13. Uporabom dekodera 3/8 i potrebnog broja ILI logičkih sklopova realizirati funkciju

∑= )7,5,2,1(),,( mCBAf i ∑= )4,3,2,1(),,( mCBAg .

14. Uporabom dekodera 3/8 i jednog ILI logičkog sklopa realizirati multipleksor 2/1 bez ulaza za omogućavanje.

15. Uporabom dekodera 4/16 i jednog ILI logičkog sklopa realizirati multipleksor 2/1 s ulazom za omogućavanje.

16. Na raspolaganju su dva dekadska dekodera s ulazima za omogućavanje te jedan ILI sklop. Napisati strukturni VHDL model multipleksora 4/1 bez ulaza za omogućavanje. Pretpostaviti da su potrebne komponente već opisane.

17. Uporabom dvostrukog dekodera 2/4 s ulazima za omogućavanje realizirati funkciju ( )ZYXZYXf +⋅=),,( .

Page 162: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

160 Zbirka riješenih zadataka

18. Uporabom samo 4 multipleksora 2/1 ostvariti sklop koji na ulaz dobiva 4-bitni binarni broj i upravljački signal S, a na izlaz propušta 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 upravljačke signale S1S0. Operacija koju sklop obavlja određena je tablicom u nastavku.

S1 S0 Operacija 0 0 Posmak u desno, punjenje s 0 0 1 Rotacija u desno 1 0 Posmak u lijevo, punjenje s 1 1 1 Rotacija u lijevo

20. Nacrtati shemu multipleksora 4/1 izvedenog pomoću dekodera 2/4 i minimalnog broja osnovnih logičkih sklopova.

21. U VHDL-u napisati ponašajni model prioritetnog kodera 4/2.

22. Samo multipleksorom 2/1 realizirati funkciju AAf =)( . Na raspolaganju su još logička '0' i logička '1'.

23. Samo multipleksorom 2/1 realizirati funkciju BABAf +=),( . Na raspolaganju su još logička '0' i logička '1'.

24. Samo multipleksorom 2/1 realizirati funkciju BABAf ⋅=),( . Na raspolaganju su još logička '0' i logička '1'.

25. Pomoću dva multipleksora 2/1 realizirati funkciju BABAf ⊕=),( . Na raspolaganju su još logička '0' i logička '1'.

26. Pomoću dva multipleksora 2/1 realizirati funkciju BABAf ⋅=),( . Na raspolaganju su još logička '0' i logička '1'.

27. Pomoću dva multipleksora 2/1 realizirati funkciju BABAf +=),( . Na raspolaganju su još logička '0' i logička '1'.

28. Pomoću dva multipleksora 2/1 realizirati funkciju BABAf ⊕=),( . Na raspolaganju su još logička '0' i logička '1'.

29. Multipleksorom 4/1 realizirati funkciju ( ) ( )∑= 7,6,4,3,, mCBAf . Na raspolaganju je

još jedan invertor, te logička '0' i logička '1'.

30. Multipleksorom 4/1 realizirati funkciju ( ) ( )∑= 7,5,4,3,2,1,, mCBAf . Pri tome se ne

smije koristiti niti jedan logički sklop, niti logička '0' ili logička '1'.

31. Multipleksorom 4/1 realizirati funkciju ( ) ACBACBAf +=,, . Na raspolaganju su još samo logička '0' i logička '1'.

32. Komparator dvobitnih binarnih brojeva je sklop koji ima četiri ulaza (a1, a0, b1, b0) te jedan izlaz (y). Izlaz y postavljen je u logičku jedinicu samo kada su binarni brojevi A=a1a0(2) i B=b1b0(2) jednaki.

a. Napišite algebarski izraz kojim je određena funkcija ovog sklopa.

Page 163: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni kombinacijski moduli. 161

b. Napišite ponašajni VHDL model ovog sklopa.

c. Pokažite da se samo uporabom potrebnog broja ovih sklopova (na raspolaganju su još i logička jedinica i logička nula) mogu ostvariti sve Booleove funkcije.

d. Uporabom ovih sklopova realizirajte multipleksor 2/1 i napišite njegov strukturni model u VHDL-u.

33. Projektirajte sklop koji obavlja funkciju e usporedbe dva 4-bitna binarna broja A i B ovisno o upravljačkom signalu sel: ako je sel=00, sklop računa e=(A≤B). Za sel=01 sklop računa e=(A<B). Za sel=10 sklop računa e=(A!=B) a za sel=11 sklop računa e=(A==0). Odabran način rješavanja mora biti primjenjiv i na višebitne brojeve (k>4).

34. (Pismeni ispit 30. 09. 2004.)

Algebarski odrediti minimalni oblik funkcije f(A,B,C) koju obavlja sklop sa slike.

B

DEK

y0

y1

y2

y3

a0a1

I0

I1a

f f

I0 I1aA

C

Page 164: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni programirljivi moduli. 163

7. Standardni programirljivi moduli.

7.1. Zadatak Uporabom PLA ostvariti funkciju ostatka dijeljenja trobitnog broja sa 3. Broj je kodiran Grayevim kodom. Ostatak treba biti prikazan prirodnim binarnim kodom.

Prikažimo tablično funkcije koje treba ostvariti.

Broj kodiran Grayevim kodom Ostatak dijeljenja s 3 Vrijednost broja b2 b1 b0 r1 r0

0 0 0 0 0 0 1 0 0 1 0 1 2 0 1 1 1 0 3 0 1 0 0 0 4 1 1 0 0 1 5 1 1 1 1 0 6 1 0 1 0 0 7 1 0 0 0 1

Iz tablice možemo očitati r1 i r0:

0120121 bbbbbbr +=

0120120120 bbbbbbbbbr ++=

Ukoliko imamo dovoljno veliki PLA (odnosno dovoljno malu funkciju) sve produkte možemo direktno realizirati bez potrebe za prethodnom minimizacijom. Budući da ovdje nije bilo postavljenih uvjeta na karakteristike PLA, pretpostaviti ćemo da je minimizacija nepotrebna. Rješenje je prikazano na prvoj slici u nastavku. Radi jednostavnijeg prikaza PLA (a i PAL kasnije) koristit ćemo pojednostavljeni način crtanja ovih struktura prikazan na drugoj slici. Snopovi ulaza u pojedine logičke 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 između npr. b2', b1 i b0).

Page 165: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

164 Zbirka riješenih zadataka

1

1

1

& & & & &

1≥

1≥

r1

r0

b1

b0

b2

I polje

ILI polje

1

1

1

& & & & &

1≥

1≥

b1

b0

b2

r1

r0

jedna "žica"

snop "žica"

jedna "žica"

snop "žica"

Page 166: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni programirljivi moduli. 165

7.2. Zadatak

Zadane su funkcije ABCBABAf ++=1 i CBACACAf ++=2 . Prikazati (F)PLA temeljen na NILI sklopovima koji implementira ove funkcije.

1

1

1

B

C

A

f1

f2

1≥

1≥

1

1

1≥ 1≥ 1≥ 1≥ 1≥ 1≥

Objašnjenje: s prvom razinom NILI sklopova potrebno je realizirati produkte, a s drugim slojem NILI sklopova te produkte sumirati. Produkte pomoću NILI sklopova možemo ostvariti tako da na ulaze dovedemo komplementirane vrijednosti. Naime, prema DeMorganu:

( )EDCBANILIEDCBAEDCBA ,,,,=++++=⋅⋅⋅⋅ Dakle, ako je u produktu varijabla u nekomplementiranom obliku, u NILI treba dovesti komplement, i obratno. Prvi produkt u 1f je BA . Zbog toga na prvi NILI sklop dovodimo A i B . Drugi

produkt BA , pa na drugi NILI dovodimo A i B , itd. Kada ostvarimo sve produkte prvom razinom NILI sklopova, drugom razinom ih treba sumirati. To međutim nije moguće direktno, jer na izlazu NILI sklopa imamo komplementiranu sumu. Zbog toga je na izlazu NILI sklopova još potrebno staviti jedan invertor (što se može ostvariti bez dodatnih elemenata jer su PLA-ovi obično "opskrbljeni" programirljivim invertorom na izlazu).

Page 167: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

166 Zbirka riješenih zadataka

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 logičkim sklopovima.

1

+UDD

+UDD

+UDD

+UDD

+UDD

x1

1

x2

1

x3

+UDD +UDD

f1f2

Ova struktura temelji se na paralelnom radu tranzistora i ostvarena je pomoću NILI sklopova. Sastoji se od dvije NILI ravnine. Izlazi NILI sklopova prve razine označeni su sa O1 do O5 (u prvoj ravnini imamo 5 NILI sklopova; prisjetimo se kako izgleda NILI sklop: otpornik na +UDD, a s druge strane paralelno spojeni tranzistori i izlaz sklopa). Ti izlazi vode se na NILI sklopove druge razine koji generiraju konačne rezultate.

Page 168: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni programirljivi moduli. 167

1

+UDD

+UDD

+UDD

+UDD

+UDD

x1

1

x2

1

x3

+UDD +UDD

f1f2

NILIravnina

NILIravnina

O1

O2

O3

O4

O5

( ) 21211 , xxxxNILIO +==

( ) 31312 , xxxxNILIO +==

( ) 3213213 ,, xxxxxxNILIO ++==

( ) 21214 , xxxxNILIO +==

( ) 32325 , xxxxNILIO +==

( )( )( )( )3213121

3213213211 ,,

xxxxxxx

OOOOOOOOONILIf

++++=⋅⋅=++==

( )( )( )( )322131

5425425422 ,,

xxxxxx

OOOOOOOOONILIf

+++=⋅⋅=++==

PLA sklop prikazan pomoću logičkih NILI sklopova:

Page 169: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

168 Zbirka riješenih zadataka

1

1

1

x2

x3

x1

f1

f2

1≥

1≥

1≥ 1≥ 1≥ 1≥ 1≥

7.4. Zadatak Realizirati funkcije:

( )∑= 15,11,5,3,1,01f i ( )∑= 14,12,8,4,2,02f

a) PLA-om tipa ILI-od-I, b) PLA-om tipa NILI-od-NILI s mogućnošću komplementiranja izlaza.

a) ILI-od-I tip

1

1

1

C

D

B

f1

f2

1

A

1≥

1≥

& & & & & & & & & & &

Objašnjenje: svaki od I sklopova u prvom sloju realizira jedan od minterma prisutnog u funkcijama. Drugi sloj sumira potrebne minterme i time ostvaruje zadane funkcije. b) NILI-od-NILI tip

Page 170: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni programirljivi moduli. 169

Pogledati 2. zadatak za detaljno objašnjenje kako se funkcije realiziraju ovim tipom. Na prvu razinu sklopova NILI umjesto varijabli koje sudjeluju u nekom produktu dovodi se njihovi komplementi kako bi NILI sklop izračunao taj produkt (DeMorgan).

1

1

1

C

D

B

f1

f2

1≥

1≥

1≥ 1≥ 1≥ 1≥ 1≥

1

A

1≥ 1≥ 1≥ 1≥ 1≥ 1≥

1

1

7.5. Zadatak Na raspolaganju je PAL sljedećih 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:

ABBCACABf +++=

Shema ovakvog PALa prikazana je u nastavku, zajedno s rješenjem. Objašnjenje: Zadanu funkciju možemo minimizirati:

CBAABBCACABf ++=+++= Međutim, kako imamo na raspolaganju samo dvoulazne ILI sklopove u PALu, direktno ne možemo realizirati ovu funkciju. Zapišimo zato funkciju malo drugačije:

21 ffABBCACABf +=+++=

ACABf +=1

ABBCf +=2 Sada funkcije f1 i f2 možemo realizirati pomoću dvoulaznih ILI sklopova, a kako te rezultate ponovno dobivamo u I polju, možemo ih koristiti za generiranje konačnog rezultata, kao što je i napravljeno.

Page 171: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

170 Zbirka riješenih zadataka

1

1

C

B

f1

f2

1

A

1≥

1≥

& & & & & &

f1≥

1

1

1

7.6. Zadatak Na raspolaganju je programirljivo logičko polje dimenzija (3,5,2) izvedeno NILI sklopovima. Izlazi su izvedeni upravljanim EX-ILI sklopovima. Nacrtati ovu strukturu i pomoću nje ostvariti funkcije CACABAf ++=1 i BACBBAf ++=2 .

Umnožak dviju (ili više) varijabli može se NILI sklopom ostvariti tako da se na njega dovedu komplementi, tj:

))(),(( BNEANENILIBAAB =+= Zbroj dviju (ili više) varijabli može se ostvariti tako da se dovedu na NILI sklop iza kojeg se rezultat komplementira:

)),(( BANILINEBABA =+=+ Invertor na izlazu ostvarit ćemo EX-ILI sklopom tako da na slobodan ulaz dovedemo 1.

Page 172: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni programirljivi moduli. 171

1

1

1

B

C

A

f1

f2

1≥

1≥

=1

=1

1≥ 1≥ 1≥ 1≥ 1≥

1

Napomena: upravljani EX-ILI sklop često se naziva i upravljivi invertor, jer ovisno o vrijednosti na jednom ulazu na izlaz propušta drugi ulaz ili njegov komplement.

7.7. Zadatak Na raspolaganju je logički blok s 2 ulaza realiziran multipleksorima 2/1 i LUT-om. Nacrtajte blok i programirajte ga da obavlja logičku funkciju XOR.

Multipleksor 2/1 u nastavku će se označavati simbolom:

pri čemu će značenje pojedinih priključaka biti:

d0

d1

a0

y

Izgradnjom multipleksorskog stabla dobije se sljedeći logički blok:

Page 173: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

172 Zbirka riješenih zadataka

Još je samo potrebno odrediti što treba pohraniti u LUT, kako bi element obavljao zadanu logičku funkciju. Možemo pisati:

( )∑=+=⊕= 2,1212121 XXXXXXf

Dakle, funkcija se može 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 logički blok prikazan je na slici:

0

1

1

0

X1

X2

f

7.8. Zadatak Na raspolaganju je logički blok s 3 ulaza realiziran multipleksorima 2/1 i LUT-om. Nacrtajte blok i programirajte ga da obavlja logičku funkciju:

BCABf += .

( )∑=++=+++=+= 7,6,3)()( BCACABABCBCAACCABBCABf

Logički blok koji obavlja ovu funkciju prikazan je u nastavku.

0

0

0

1

0

0

1

1

A

B

C

f

Page 174: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni programirljivi moduli. 173

7.9. Zadatak Na raspolaganju je FPGA s dvoulaznim logičkim blokovima temeljenim na LUTovima. Prikazati strukturu sklopa. Programirati sklop tako da ostvaruje logičku funkciju f.

32 fff ⋅=

BAf ⊕=1

BAf +=2

Cff += 13

a1

a0

0110

f1a1

a0

1101

f3

a1

a0

1101

f2a1

a0

0001

f

C

A

B

f

Objašnjenje: podebljani X označava ostvareni spoj dok tanki X označava mogućnost spoja koja nije iskorištena. Varijabla A dovodi se na prvu okomitu liniju i zatim na ulaz a1 prvog logičkog bloka. Varijabla B dovodi se na drugu okomitu liniju i zatim na ulaz a0 prvog logičkog bloka. Ovaj logički blok treba ostvariti funkciju f1, pa LUT treba programirati na sljedeći način:

( )∑=+=⊕== 2,1),(1 BABABABAff

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).

Page 175: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

174 Zbirka riješenih zadataka

Istovremeno se s prve okomite linije varijabla A dovodi i na a1 ulaz logičkog bloka dolje-lijevo, a varijabla B sa druge okomite linije na ulaz a0. Kako ovaj logički blok treba ostvariti funkciju f2:

( )∑=++=+++=+== 3,1,0)()(),(2 ABBABABAABBABABAff

u LUT treba upisati uzorak 1101. Izlaz f1 se preko zadnje okomite linije srednjeg snopa dovodi na ulaz a1 logičkog bloka gore-desno. Istovremeno se na a0 ulaz tog bloka dovodi varijabla C (trećom vodoravnom linijom gornjeg vodoravnog snopa, pa zatim trećom okomitom linijom srednjeg okomitog snopa). Taj sklop obavlja funkciju f3 (koja ovisi o f1 i C):

( )∑=++=+++=+== 3,1,0)()(),( 111111113 CfCfCfCffCCfCfCfff

pa LUT popunjavamo uzorkom 1101. Konačno se na ulaz a1 logičkog 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 konačno prvom okomitom linijom srednjeg okomitog snopa). Taj sklop ostvaruje logičku I funkciju:

( )∑=⋅== 3),( 3232 ffffff

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.10. Zadatak Uporabom logičkih blokova s 2 ulaza realiziranih multipleksorima 2/1 i LUT-om realizirati funkciju ∑= )15,14,13,12,10,9,6,5,2,1(),,,( mDCBAf . Nije potrebno crtati shemu samog

logičkog bloka.

Zadana je funkcije od četiri varijable, a na raspolaganju imamo dvoulazne LUT-ove. Direktno, dakle, funkciju ne možemo realizirati. Pronađimo zato algebarski oblik zadane funkcije. Upišemo li funkciju u K-tablicu, nakon minimizacije dobivamo:

DCDCABDCBAf ++=),,,( Ovaj izraz moramo raspisati na takav način koji će u sebi sadržavati samo funkcije od dvije varijable. Npr. uvedimo sljedeće supstitucije:

∑=== )3(),(),,,( 11 mBAfABDCBAf

Page 176: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni programirljivi moduli. 175

∑==+= )2,1(),(),,,( 22 mDCfDCDCDCBAf

Za funkciju f tada vrijedi:

∑=++==+= )3,2,1(),(),,,( 2121212121 mfffffffffffDCBAf

Sada možemo iskoristiti jedan logički blok za realizaciju funkcije f1, jedan logički blok za realizaciju funkcije f2 te jedan logički blok za realizaciju funkcije f koji računa logičku ILI operaciju. Rješenje je prikazano na slici:

7.11. Zadatak Potpuno zbrajalo ostvariti: a) dvostrukim multipleksorom 4/1 b) dekoderom 3/8

Napravimo najprije tablicu kombinacija.

A B Cin R Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

Page 177: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

176 Zbirka riješenih zadataka

a) dvostrukim multipleksorom 4/1

0D

1D

2D

3D

0D

1D

2D

3D

1Sel 0Sel

z

z

inC

inC

inC

inC

inC

inC

0

1

R

Cout

A B

b) dekoderom 3/8

A1 A0

B inC

A2

A

1≥

1≥

D0

D1

D2

D3

D4

D5

D6

D7

R

Cout

Page 178: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Standardni programirljivi moduli. 177

7.12. Pismeni ispit, 09. 02. 2004, 4. zadatak Na raspolaganju je programirljivo logičko polje PLA tipa NI-NI veličine 3×3×2. Njegovom uporabom ostvariti četverobitni prioritetni koder (sklop s n ulaza, te izlazima koji poprimaju binarno kodiran najveći redni broj ulaza koji je u stanju 1; npr. uz ulaze I0I1I2I3=0101 izlaz je 3(2); pretpostaviti da će uvijek barem jedan ulaz biti u 1).

Napišimo tablični prikaz funkcije koju obavlja sklop:

I3 I2 I1 I0 O1 O0 0 0 0 0 × × 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1

Mimimizacijom dalje slijedi:

O1: I3I2 00 01 11 10

I1I0 00 × 1 1 1

01 1 1 1 11 1 1 1

10 1 1 1

I3I2

I1

I0

3I

2I

Page 179: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

178 Zbirka riješenih zadataka

O0: I3I2 00 01 11 10

I1I0 00 × 1 1

01 1 1 11 1 1 1

10 1 1 1

I3I2

I1

I0

3I

12 II

321 IIO +=

3120 IIIO +=

PLA struktura koja obavlja ovu funkciju tada je prikazana na slici:

1

1

1

I2

I1

I3

O1

O0

& & &

&

&

ZADACI ZA VJEŽBU

1. Na raspolaganju je PLA tipa NI-NI dimenzija 4×5×2 s upravljivim invertorima na izlazima (slično zadatku 7.6). Nacrtati ovu strukturu i pomoću nje ostvariti funkcije:

( ) ( ) CADCBADCBAf +⋅+⋅=,,,1

( ) ( ) ADACBDCBAf +⋅+=,,,2

Page 180: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Bistabil. 179

8. Bistabil.

8.1. Zadatak Prikažite tablice stanja, simbole i dijagrame stanja za: a) SR bistabil (prikazati i izvedbu NI sklopovima te objasniti rad), b) JK bistabil, c) T bistabil, d) D bistabil.

Bistabil je osnovni memorijski element. a) SR bistabil Najjednostavniji bistabil je SR bistabil (bez ulaza Cp). Može se izvesti pomoću npr. dva NI sklopa kako je prikazano u nastavku:

&

&

S

R

Q

Q

Ako ovakav sklop realiziramo uporabom diskretnih komponenti, u trenutku uključenja napajanja stanje bistabila biti će nepoznato. Pod pojmom stanje bistabila podrazumijeva se vrijednost Q. Kažemo da je bistabil postavljen ako je Q=1, a resetiran ako je Q=0. Npr. neka je Q =0 i Q =1. Ulazi S i R neka su 1. Provjerom utvrđujemo da je stanje

stabilno. Ako sada S pređe s 1 u 0, stanje bistabila se mijenja u Q =1 i Q =0, i također

je stabilno. povratkom S natrag u 1 stanje ostaje stabilno. Ako sada R pređe s 1 u 0, stanje bistabila se mijenja u Q =0 i Q =1, i također je stabilno. povratkom R natrag u 1

stanje ostaje stabilno. Ako S i R istovremeno pređu iz 1 u 0, Q i Q su oba 1, što je nekonzistentno stanje prema Booleovoj algebri. Ta pobuda zato je zabranjena kod SR bistabila. Iz ovog razmatranja vidimo da ulaz S ostvaruje funkciju postavljanja bistabila (engl. Set), a ulaz R ostvaruje funkciju resetiranja bistabila (engl. Reset). Tablica stanja, simbol i dijagram stanja prikazani su u nastavku.

Page 181: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

180 Zbirka riješenih zadataka

S R 1+nQ

0 0 nQ

0 1 0

1 0 1

1 1 ?

Tablica stanja

S

R Q

Q

CP

Simbol bistabila

0 10001

1110

01

0010

11??

S,R

Dijagram stanja

Ukoliko bistabil ima Cp ulaz, tada ulazi za pobudu imaju utjecaja samo kada je Cp=1, dok za slučaj Cp=0 bistabil ne reagira na pobudu. b) JK bistabil

J K 1+nQ

0 0 nQ

0 1 0

1 0 1

1 1 nQ

Tablica stanja

J

K Q

Q

CP

Simbol bistabila

0 10001

10,11

01,11

0010

J,K

Dijagram stanja

c) T bistabil

Page 182: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Bistabil. 181

T 1+nQ

0 nQ

1 nQ

Tablica stanja

T

Q

Q

CP

Simbol bistabila

0 10

1

1

0

T

Dijagram stanja

d) D bistabil

D 1+nQ

0 0

1 1

Tablica stanja

D

Q

Q

CP

Simbol bistabila

0 10

1

0

1

D

Dijagram stanja

Page 183: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

182 Zbirka riješenih zadataka

8.2. Zadatak Ostvarite sljedeće bistabile uporabom zadanog bistabila i minimalnog broja dodatnih logičkih sklopova: a) uporabom T bistabila ostvariti JK bistabil b) uporabom JK bistabila ostvariti T bistabil

Postupak rješavanja uvijek se provodi u četiri koraka:

1. Napisati tablicu stanja (tablica 1) traženog bistabila (bistabila kojeg treba realizirati).

2. Napisati tablicu stanja (tablica 2) zadanog bistabila (ili nacrtati dijagram stanja), tj. bistabila koji nam stoji na raspolaganju.

3. Proširiti tablicu 1 ulazima zadanog bistabila, i postaviti im vrijednost koja osigurava promjenu stanja Qn→Qn+1 kako je navedeno u tablici.

4. Ulaze zadanog bistabila u tablici 1 promatrati kao funkcije od stanja bistabila i ulaza traženog bistabila te ih izračunati (po mogućnosti u minimalnom obliku).

a) JK bistabil pomoću T bistabila

Tablica 1.

nQ J K 1+nQ T 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1

Ovisnost novog stanja traženog bistabila o trenutnom stanju i ulazima u bistabil.

Proširenje ulazima bistabila koji imamo, i vrijednosti koje je potrebno dovesti na ulaze kako bi se osigurala promjena stanja navedena u tablici.

Page 184: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Bistabil. 183

Tablica 2. Tablica stanja T bistabila.

nQ T 1+nQ

0 0 0

0 1 1

1 0 1

1 1 0

Objašnjenje 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 0=nQ u 01 =+nQ (odnosno ostao u istom stanju), na ulaz T mora biti

dovedena 0 (vidimo iz tablice stanja T bistabila; tablica 2). Pogledajmo sada treći 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 0=nQ u 11 =+nQ , na ulaz T mora biti dovedena 1 (vidimo

iz tablice stanja T bistabila; tablica 2). Sada još treba pronaći logički izraz koji opisuje T kao funkciju od nQ , J i K. Iz tablice 1

to možemo direktno očitati:

( )∑= 7,5,3,2),,( KJQT n

Izraz možemo minimizirati pa dobijemo:

T JK 00 01 11 10 Qn 0 1 1 1 1 1

nn QKQJT ⋅+⋅=

Page 185: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

184 Zbirka riješenih zadataka

T

Q

Q

CP

1≥&

&

J

K

JK bistabil

CPQ

Q

b) T bistabil pomoću JK bistabila

Tablica 1.

nQ T 1+nQ J K 0 0 0 0 × 0 1 1 1 × 1 0 1 × 0 1 1 0 × 1

Dijagram 2. Dijagram stanja JK bistabila

0 10001

10,11

01,11

0010

J,K

Objašnjenje 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 0=nQ u 01 =+nQ

(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 kraće zapisujemo s 0×. Ovo se je također moglo očitati i iz tablice stanja JK bistabila, međutim lakše je očitavati direktno iz dijagrama stanja. Ostale retke popunjavamo slično. Sada još moramo očitati J i K kao funkcije od nQ i T. Iz tablice 1 to možemo direktno

očitati:

( ) ( )∑∑ += 3,21),( dmTQJ n

( ) ( )∑∑ += 1,03),( dmTQK n

Page 186: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Bistabil. 185

J T 0 1 Qn 0 1 1 × ×

TJ =

K T 0 1 Qn 0 × × 1 1

TK =

J

K Q

Q

CP

T

CP

Q

Q

T bistabil

8.3. Zadatak Napisati strukturni opis SR bistabila izvedenog NI sklopovima, te ponašajni opis D bistabila sa sinkronim ulazom za reset, koji reagira na padajući brid signala takta. Neka kašnjenje korištenih logičkih sklopova (SR bistabil) odnosno samog bistabila (D bistabil) iznosi 5 ns.

SR bistabil library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY SRbistabil IS PORT ( S, R: IN std_logic; Q, Qn: OUT std_logic ); END SRbistabil; ARCHITECTURE Structural OF SRbistabil IS SIGNAL Qint, Qnint: std_logic; BEGIN -- Izračun internih izlaza Qint <= S NAND Qnint AFTER 5 ns; Qnint <= R NAND Qint AFTER 5 ns; -- Preslikavanje na izlaze bistabila Q <= Qint; Qn <= Qnint; END Structural;

Page 187: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

186 Zbirka riješenih zadataka

D bistabil library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY Dbistabil IS PORT ( D, Reset: IN std_logic; Q, Qn: OUT std_logic; Clock: IN std_logic ); END Dbistabil; ARCHITECTURE Behavioral OF Dbistabil IS BEGIN PROCESS(Clock) VARIABLE Qint: std_logic; BEGIN IF falling_edge(Clock) THEN IF Reset = '1' THEN Qint := '0'; ELSE Qint := D; END IF; END IF; Q <= Qint AFTER 5 ns; Qn <= NOT Qint AFTER 5 ns; END PROCESS; END BEHAVIORAL;

8.4. Zadatak

Na izlaz logičkog 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 logičkog bloka označiti s A2A1A0, gdje je A2 ulaz najveće težine. Neka A2 odgovara ulazu J, a ulaz A1 ulazu K.

Napišimo tablicu promjene stanja bistabila JK, i ulaz bistabila koji doista imamo:

J K Qn Qn+1 D 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0

Programirani logički blok je tada:

Page 188: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Bistabil. 187

0

1

0

0

1

1

1

0

A2

A1

A0

f

D

Q

Q

CP

J

K

Q

8.5. Zadatak Uporabom potrebnom broja multipleksora 2/1 prikazati principijelnu shemu: a) sinkronog D bistabila okidanog razinom signala vremenskog vođenja, b) sinkronog D bistabila okidanog bridom signala vremenskog vođenja (master slave D registar). Objasniti funkciju D bistabila.

a) Sinkroni D bistabil okidan razinom signala vremenskog vođenja: Simbol:

D

Q

Q

CP

Funkcija: D bistabil pamti podatak s ulaza D kroz vrijeme dok je CP neaktivan.

Implementacija:

d0

d1a

yD

CP

Q

Page 189: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

188 Zbirka riješenih zadataka

Kada je CP = 1, adresiran je ulaz d1, pa se podatak D prenosi na izlaz Q, ali i povratnom vezom vraća na ulaz d0. Sve promjene podatka D za vrijeme trajanja CP=1 prenose se i na izlaz. Kada CP prijeđe 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 prešao u 0 ostaje zarobljen u sklopu. Ovo je također stabilno stanje. b) sinkroni D bistabil okidan bridom signala vremenskog vođenja (master slave D registar). Simbol:

D

Q

Q

CP

Izvedba bistabilima:

D

Q

Q

CP

D

Q

Q

CP

D

CP

Implementacija multipleksorima:

d0

d1

a

yD

CP

d0

d1a

y Q

Sklop je napravljen analogno dvostrukom JK bistabilu objašnjenom na predavanjima. Glavni nedostatak je podvostručenje dijelova čime se povećava površina koju sklop zauzima na pločici silicija, međutim, 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 rastući brid) prvi bistabil (multipleksor) se otpaja od ulaza D, a trenutni njegov izlaz se prosljeđuje kroz drugi bistabil (multipleksor). Stanje ostaje stabilno, i eventualne promjene ulaza D više nemaju utjecaja na izlaz.

Page 190: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Bistabil. 189

8.6. Zadatak

U realnim sklopovima postoji kašnjenje. Objasniti utjecaj kašnjenja na izvedbu bridom okidanog bistabila prema principijelnoj shemi iz prethodnog zadatka.

U prethodnom zadatku prikazana je principijelna shema bridom okidanog bistabila uporabom dva multipleksora. Međutim, pokuša li se prema toj shemi izvesti konkretan bistabil, sklop vrlo vjerojatno neće raditi, jer njegov rad ovisi o istovremenom preklapanju prvog i drugog bistabila. Nacrtajmo tu shemu još jednom, na nešto modificirani način:

d0

d1a

yD

d0

d1a

y

CP CP

2Q1Q

Prikazan je padajućim bridom okidan dvostruki D bistabil, gdje je Q2 izlaz. Uz pretpostavku da uvijek vrijedi

1=+ CPCP , analiza rada odgovara analizi iz prethodnog zadatka. Međutim, prilikom implementacije ovog sklopa koristit će se realne komponente te će na temelju signala CP trebati generirati njegov komplement (ili obrnuto) – zbog čega više neće vrijediti:

1=+ CPCP . Naime, jedan od ta dva signala kasnit će za onim drugim. Zbog toga treba provesti analizu utjecaja vremena kašnjenja na rad sklopa. Radi jednostavnosti pretpostavimo da su multipleksori komponente koje rade trenutno (dakle, ne kasne). Jedino mjesto gdje

postoji kašnjenje jest između signala CP i CP . Zbog toga ćemo signale označene s CP

i CP promatrati kao dva nezavisna signala. Pretpostavimo najprije da signal CP kasni

za signalom CP određeno vrijeme (što je i razumna pretpostavka ako se signal CP generira propuštanjem signala CP kroz invertor). Tada je ponašanje sklopa prikazano sljedećim vremenskim dijagramom (dijagram 1). U početnom trenutku Q1 i Q2 nalaze se u nekom nepoznatom (ali konkretnom stanju;

možemo pretpostaviti da je to npr. '1'). Ta dva stanja su ista, jer je CP =1, što znači da drugi multipleksor na svoj izlaz direktno propušta Q1. Na prvi rastući brid CP-a, prvi multipleksor na svoj izlaz propušta ulaz D, a kako se drugi multipleksor još nije

prebacio na ulaz d0 (jer je CP još uvijek 1), stanje s ulaza D preslikava se na izlaz

Page 191: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

190 Zbirka riješenih zadataka

bistabila! Sklop je, dakle, reagirao i na rastući brid CP-a, što svakako nije željeno ponašanje (sklop bi trebao reagirati samo na padajući brid!). Malo detaljnijom analizom može se uočiti da ovaj sklop zapravo reagira na svaki brid (i rastući i padajući)!

D

CP

CP

2Q

1Q

t

t

t

t

t

Dijagram 1. Ponašanje sklopa za slučaj da komplement kasni.

Analizirajmo sada drugi slučaj: neka signal CP rani pred signalom CP (o konkretnoj implementaciji bit će riječi u nastavku). Ponašanje sklopa tada je opisano vremenskim dijagramom 2.

D

CP

CP

2Q

1Q

t

t

t

t

t

Dijagram 2. Ponašanje sklopa za slučaj da komplement rani. U ovom slučaju sklop radi ispravno. Naime, promjena izlaza događa se na rastući brid

signala CP što okvirno odgovara padajućem bridu signala CP . Kako sklop radi? Oko padajućeg brida signala CP najprije se izlazni multipleksor prebacuje tako da na izlaz preslikava Q1 (koji je do tog trenutka pratio ulaz D), a zatim se ulazni multipleksor

Page 192: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Bistabil. 191

zatvara u petlju u kojoj je zaključan Q1 (i time se otpaja od ulaza D). Oko rastućeg brida CP -a događa se upravo suprotno: najprije se izlazni multipleksor zatvara u petlju u kojoj čuva Q2, a tek se potom ulazni multipleksor prebacuje tako da na svoj izlaz preslikava trenutni ulaz (što u tom trenutku više nema utjecaja na izlazni multipleksor).

Prethodni slučaj kada je CP kasnio za CP -om nije radio upravo zbog pogrešnog redoslijeda promjena na multipleksorima; naime, u tom slučaju prilikom rastućeg brida CP -a najprije je ulazni multipleksor na svoj izlaz (Q1) propusti trenutni ulaz D (koji je odmah bio proslijeđen i na izlaz Q2 uništavajući time trenutni Q2), a tek je zatim izlazni multipleksor zaključao na svom izlazu trenutni Q2 (koji je tada zapravo odgovarao podatku s ulaza D). Ostaje još samo problem realizacije: kako napraviti sklop koji će predviđati komplement signala CP prije no što se sam CP promijeni? Rješenje je prikazano u nastavku:

d0

d1a

yD

d0

d1a

y

CLKCP = CLKCP =

2Q1Q

11

CLK

Sklop zapravo reagira na padajući brid signala CLK. Signali CP i CP generiraju se na

temelju signala CLK, te je očito da će na ovaj način signal CP uvijek raniti pred signalom CP .

Sličan način realizacije bistabila (i generiranja signala CP i CP ) danas se koristi kod vrlo popularne porodice integriranih logičkih sklopova – CMOSa! ZADACI ZA VJEŽBU

1. Uporabom dva NILI sklopa ostvariti osnovni SR bistabil. Ako je kašnjenje svakog NILI sklopa 10 ns, nacrtati vremenske dijagrame izlaza Q i Q za pobudu zadanu slikom. Da li se u odzivu sklopa pojavljuju oscilacije? Zašto? Da li bi SR bistabil izveden realnim komponentama oscilirao? Zašto? Prilikom rješavanja zadatka pretpostavite da je u početnom trenutku izlaz Q u logičkoj nuli, a izlaz Q u logičkoj jedinici.

Page 193: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

192 Zbirka riješenih zadataka

Pobuda bistabila

2. Napišite strukturni VHDL model JK bistabila uporabom komponente SRbistabil opisane u zadatku 8.3 i osnovnih logičkih sklopova (koristiti VHDL operatore AND, OR, NOT i sl.).

3. (Pismeni ispit 12. 11. 2004.) Ponašajnim VHDL-om opisati JK bistabil (ulazi J, K, CP, izlazi Q i Q'). Koristeći taj sklop kao komponentu, strukturnim VHDL-om opisati sklop temeljen na dva JK bistabila s dijeljenim ulazima J i CP, zasebnim ulazima K1 i K2 te izlazima Q1 i Q2. Povijesna crtica Svi do sada obrađeni bistabili ime su dobili prema funkciji. SR od Set/Reset, D od Delay, T od Toggle a JK od ? Priča ide ovako. U srpnju 1958. godine, kada je većina zaposlenika Texas Instruments-a otišla na tradicionalni dvotjedni odmor, Jack Kilby, kao novi zaposlenik bez prava na odmor ostao je na poslu, i rješavao problem poznat pod nazivom "tiranija brojeva". Bilo je to vrijeme elektronskih cijevi koje su bile relativno velike i nepouzdane. 1947. godine izmišljen je tranzistor (Bell Telephone Laboratories) čime su riješeni neki od problema elektronici. Međutim, za izgradnju kompliciranijih sklopova ipak je trebalo ručno povezivati veliki broj diskretnih elektroničkih komponenti. Kilby je razmišljao o načinu kako riješiti ovaj problem. Zaključio je da je jedina stvar koju proizvođač poluvodiča može jeftino i efikasno proizvoditi upravo poluvodiči. "Daljnja razmišljanja dovela su me zaključka da je poluvodič zapravo i sve što mi je potrebno" – napisao je Kilby 1976. u članku "Invention of the IC." U srpnju 1958. godine Kilby je započeo sa zapisivanjem svojih ideja i izradom skica. 12. rujna 1958. pred čelnicima Texas Instrumentsa Kilby je napravio demonstraciju. Pokazao je komadić srebra na germaniju, a u trenutku kada je pritisnuo sklopku, na osciloskopu se je pojavila beskonačno ponavljajuća sinusoida. Njegov izum je radio - riješio je problem. Prema inicijalima Jacka Kilbyja, izumitelja integriranih sklopova, JK bistabil je dobio ime…

Page 194: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Digitalna aritmetika. 193

9. Digitalna aritmetika.

9.1. Zadatak Za brojeve 10010(2), 10111(2), 00000(2), 12012(3) te 22001(3) izračunati (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 jedinični komplement (B-1=2-1=1), a B-ti komplement naziva se dvojni komplement. Tada je (B-1)-vi komplement broja X broj X' koji ima isti broj znamenaka kao i X, a i-ta znamenka od X' dobije se tako da se od (B-1) oduzme i-ta znamenka od broja X. Konkretno, slijedi da je (B-1)-vi komplement od broja 10010(2):

1 0 0 1 0

(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

0 1 1 0 1

Dakle, (B-1)-vi komplement od broja 10010(2) je 01101(2). Uočiti koje svojstvo ima (B-1)-vi komplement: zbrajanjem broja i njegovog (B-1)-vog komplementa dobiva se broj čije su sve znamenke upravo B-1! Naime:

1 0 0 1 0 + 0 1 1 0 1 1 1 1 1 1

B-ti komplement od broja X dobiva se pribrajanjem jedinice (B-1)-vom komplementu broja (uz ogradu da broj znamenaka ostaje nepromijenjen – u slučaju generiranja vodećeg preljeva, preljev se zanemaruje). Dakle, B-ti komplement od broja 10010(2) iznosi:

)2()2()2( 011101011011)1( =+=+−= KK BB

Zbrajanjem broja X i njegovog B-tog komplementa dobit će se broj kod kojeg su na mjestima znamenaka pribrojnika nule, i generira se vodeća jedinica kao preljev:

1 0 0 1 0 + 0 1 1 1 0 1 0 0 0 0 0

Page 195: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

194 Zbirka riješenih zadataka

Istim načinom izračuna slijedi da je (B-1)-vi komplement od 10111(2) jednak 01000(2), a B-ti komplement 01001(2). (B-1)-vi komplement od broja 00000(2) je 11111(2), a B-ti komplement iznosi 00000(2). Sljedeći broj zapisan je u ternarnom brojevnom sustavu. Slijedi da je baza brojevnog sustava B=3. (B-1)-vi komplement broja 12012(3) tada je:

1 2 0 1 2

(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

1 0 2 1 0

Dakle, (B-1)-vi komplement od broja 12012(3) je 10210(3). Njihovim zbrajanjem dobije se (očekivano): 22222(3); dakle, broj čije su sve znamenke upravo (B-1). B-ti komplement broja 12012(3) tada je:

)3()3()3( 102111102101)1( =+=+−= KK BB

Zbrajanjem broja 12012(3) i njegovog B-tog komplementa (10211(3)) dobiva se upravo 00000(3) (uz odbacivanje preljeva). Istim načinom izračuna slijedi da je (B-1)-vi komplement od 22001(3) jednak 00221(3), a B-ti komplement iznosi 00222(3).

9.2. Zadatak Izvesti poluzbrajalo - napisati logičke izraze, prikazati simbol.

Ai Bi Si Ci 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

iiiiiii BABABAS ⊕=+=

iii BAC ⋅=

Si

CiBi

Ai

H

Simbol poluzbrajala

Page 196: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Digitalna aritmetika. 195

9.3. Zadatak

Izvesti potpuno zbrajalo poluzbrajalima - napisati logičke izraze, prikazati simbol.

Ai Bi Ci-1 Si Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

( ) ( )( ) ( )

1

11

11

1111

−−

−−

−−−−

⊕⊕=⊕+⊕=

+++=

+++=

iii

iiiiii

iiiiiiiiii

iiiiiiiiiiiii

CBA

CBACBA

CBABACBABA

CBACBACBACBAS

( )( ) iiiii

iiiiiii

iiiiiiiiiiiii

BACBA

BACBABA

CBACBACBACBAC

+⊕=++=

+++=

−−−−

1

1

1111

Si

CiCi-1

Ai

FBi

Simbol potpunog zbrajala

Si

CiBi

Ai

HSi

CiBi

Ai

H

Si

CiBi

Ai

Ci-1

1≥

Izvedba uporabom poluzbrajala

9.4. Zadatak Realizirati četiri-bitno zbrajalo uporabom potpunih zbrajala i bez dodatnih sklopova.

Potpuna zbrajala povezati ćemo tako da paralelno obavljaju zbrajanje odgovarajućih bitova, a prijenos koji nastaje širiti će se serijski. Sklop je prikazan na sljedećoj slici.

Si

Ci-1Ci

Ai

FBi

Si

Ci-1Ci

Ai

FBi

Si

Ci-1Ci

Ai

FBi

a0b0a1b1a2b2a3b3

s3 s2 s1 s0

cSi

Ci-1Ci

Ai

FBi

0

Zbrajaju se brojevi a=a3a2a1a0 b=b3b2b1b0. Rezultat je s=s3s2s1s0, a preljev se čuva u c.

Page 197: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

196 Zbirka riješenih zadataka

9.5. Zadatak Realizirati sklop za četiri-bitno zbrajanje/oduzimanje uporabom sklopa za četiri-bitno zbrajanje iz prethodnog zadatka. Ulaz op neka određuje 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).

Budući da moramo koristiti sklop za zbrajanje kao osnovu, oduzimanje je potrebno izraziti kao zbrajanje. To je moguće jer se oduzimanje može prikazati kao zbrajanje broja s dvojnim komplementom, što je pak jednako jediničnom komplementu uvećanom za 1. Rješenje je prikazano na slici.

Si

Ci-1Ci

Ai

FBi

Si

Ci-1Ci

Ai

FBi

Si

Ci-1Ci

Ai

FBi

a0b0a1b1a2b2a3b3

s/d3 s/d2 s/d1 s/d0

c/pSi

Ci-1Ci

Ai

FBi

1= 1= 1= 1=

op

A se dovodi direktno na zbrajalo, dok se u ovisnosti o op na zbrajalo dovodi B (kada je op=0 jer bb =⊕ 0 ), odnosno B (kada je op=1 jer bb =⊕1 ). U slučaju zbrajanja na ulaz za preljev dovodi se 0 i sklop obavlja operaciju zbrajanja. U slučaju oduzimanja na sklop se dovodi jedinični komplement od B, ali se na ulaz za podljev također dovodi jedinica, pa sklop zapravo sumira A s jediničnim komplementom od B i sa 1, što zapravo odgovara sumiranju A i dvojnog komplementa od B.

9.6. Zadatak Izvesti sklop za izdvojeno generiranje prijenosa i njegovom uporabom realizirati četiri-bitno zbrajalo.

Kao što je poznato, bit preljeva kod potpunog zbrajala iznosi (vidi zadatak 9.3):

( ) iiiiii BACBAC +⊕= −1

Ako uvedemo supstitucije iii BAP ⊕= i iii BAG = , jednadžba prelazi u:

iiii GCPC += −1

Prisjetimo se, Pi je propagirajući član, a Gi generirajući član. Kako je ovo iterativna formula, pogledajmo za slučaj četiri-bitnog zbrajala:

1000 −+= CPGC

Page 198: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Digitalna aritmetika. 197

1011011011 GGPCPPGCPC ++=+= −

21201210122122 GGPGPPCPPPGCPC +++=+= −

3231230123101233233 GGPGPPGPPPCPPPPGCPC ++++=+= −

Zastavicu C-1 tumačimo kao prijenos iz prethodnog stupnja četiri-bitnog zbrajala (kada bismo npr. realizirali 8-bitno zbrajalo pomoću dva 4-bitna); za slučaj da se radi o jedinom sklopu (ili o prvom u nizu), C-1 postavlja se za operaciju zbrajanja na vrijednost 0. Sklop za izdvojeno generiranje prijenosa (engl. carry look-ahead) upravo realizira funkciju generiranja svih Ci. Simbol ovog sklopa je:

G0P3G3 G2 G1P2 P1 P0

C-1C3

C2C1C0

CLA

Shema spajanja CLA i 4 potpuna zbrajala:

G0P3G3 G2 G1P2 P1 P0

C-1C3

C2C1C0

Ai Bi

Ci-1

SiGi

Ci

Pi

Ai Bi

Ci-1

SiGi

Ci

Pi

Ai Bi

Ci-1

SiGi

Ci

Pi

Ai Bi

Ci-1

SiGi

Ci

Pi

CLA

A0A3 A2 A1 B0B3 B2 B1

Cin

Cout

S0S1S2S3

9.7. Zadatak Realizirati sklop za množenje 4-bitnih brojeva.

Pogledajmo kako izgleda postupak množenja 4-bitnih brojeva ručno:

Page 199: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

198 Zbirka riješenih zadataka

a3a2a1a0 ⋅b3b2b1b0 a3b0 a2b0 a1b0 a0b0 a3b1 a2b1 a1b1 a0b1 a3b2 a2b2 a1b2 a0b2 a3b3 a2b3 a1b3 a0b3

= r7 r6 r5 r4 r3 r2 r1 r0 Množimo li 4-bitne brojeve, dobijemo četiri retka međusobno pomaknuta za 1 bit koje treba zbrojiti. Ovo se može riješiti 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 trećeg retka dobije se y, a zbrajanjem y i četvrtog retka dobije se z. Bitno je za uočiti da isključivo prvi redak određuje zadnji bit rezultata, tj. r0=a0b0. To je u tablici naznačeno okomitom strelicom. Bit r1 određen je bitom x0, tj. zadnjim bitom rezultata prvog zbrajanja. Slično vrijedi i dalje. a3a2a1a0 ⋅b3b2b1b0 0 a3b0 a2b0 a1b0 a0b0 + a3b1 a2b1 a1b1 a0b1 = x4 x3 x2 x1 x0 + a3b2 a2b2 a1b2 a0b2 = y4 y3 y2 y1 y0 + a3b3 a2b3 a1b3 a0b3 = z4 z3 z2 z1 z0

= r7 r6 r5 r4 r3 r2 r1 r0 Elementi koje zbrajamo nisu bitovi, već su umnošci. Međutim, umnožak dvaju bitova (a to jedino imamo) može se ostvariti upravo logičkom operacijom I. Sklop za množenje prikazan je u nastavku.

Page 200: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Digitalna aritmetika. 199

&

&

&

&

&

&

&

&

A3

A2

A1

A0

B3

B2

B1

B0

Cout

S3

S2

S1

S0

∑&

&

&

&

A3

A2

A1

A0

B3

B2

B1

B0

Cout

S3

S2

S1

S0

∑&

&

&

&

A3

A2

A1

A0

B3

B2

B1

B0

Cout

S3

S2

S1

S0

a3a2a1a0b3b2b1b0

r0

r1

r2

r3

r4

r5

r6

r70

9.8. Zadatak Povezati dva 4-bitna CLA sklopa tako da se ostvari CLA za 8-bitno zbrajalo.

Kako nam je broj CLA sklopova ograničen na 2, jedini način na koji možemo povezati ove sklopove jest u seriju, čime se dobiva efekt ripple-carry-ja, ali ne između pojedinih potpunih zbrajala, već između CLA sklopova, što, obzirom da njih ima puno manje u odnosu na broj potpunih zbrajala i ne predstavlja veliki vremenski gubitak (barem za relativno kraće brojeve). Rješenje je prikazano na slici.

G0P3G3 G2 G1P2 P1 P0

C-1C3

C2C1C0

CLA

P'3G'3

G0P3G3 G2 G1P2 P1 P0

C-1C3

C2C1C0

CLA

P'3G'3

Cin

G0P3G3 G2 G1P2 P1 P0G4P7G7 G6 G5P6 P5 P4

Cout

Page 201: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

200 Zbirka riješenih zadataka

9.9. Zadatak Povezati 4-bitne CLA sklopove tako da se ostvari CLA za 16-bitno zbrajalo. Na raspolaganju je 5 4-bitnih CLA sklopova.

Kada bismo CLA sklopove povezali u seriju (kao u prethodnom zadatku) vrijeme propagacije ispravnog prijenosa kroz CLA sklopove već bi bilo zamjetno. Budući da imamo 5 CLA sklopova, možemo ih povezati hijerarhijski, čime se može dobiti na brzini. Ideja je da peti CLA sklop "predviđa" bitove prijenosa za četiri CLA sklopa niže razine, baš kao što svaki od tih CLA sklopova "predviđa" bitove prijenosa za potpuna zbrajala koja su na najnižoj razini. Standardni CLA sklop osim izlaza C0, C1, C2 i C3 ima još i izlaze P4 i G4, koji nam služe 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 ( ) iiiiii BACBAC +⊕= −1 ,

pri čemu uz iii BAP ⊕= i iii BAG = dobivamo izraz iiii GCPC += −1 , pa slijedi:

1000 −+= CPGC

1011011011 GGPCPPGCPC ++=+= −

21201210122122 GGPGPPCPPPGCPC +++=+= −

3231230123101233233 GGPGPPGPPPCPPPPGCPC ++++=+= −

Ostavimo prve tri jednadžbe, a četvrtu zapišimo kao:

3133 '' GCPC += −

gdje su (apostrof u ovom slučaju ne označava komplement):

01233' PPPPP = , 32312301233' GGPGPPGPPPG +++= .

Ako to napišemo na ovaj način, vidimo da je C3 identičnog oblika kao i bilo koji drugi preljev! CLA sklop tada je oblika:

G0P3G3 G2 G1P2 P1 P0

C-1C3

C2C1C0

CLA

P'3G'3

Uporabom ovih jedinica vrlo se jednostavno dobije hijerarhijsko generiranje prijenosa.

Page 202: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Digitalna aritmetika. 201

Način povezivanja ovih sklopova prikazan je u nastavku.

G0

P3

G3

G2

G1

P2

P1

P0

C-1

C3

C2

C1

C0

CLA

P' 3

G' 3

G0

P3

G3

G2

G1

P2

P1

P0

C-1

C3

C2

C1

C0

CL

A

P' 3

G' 3

G0

P3

G3

G2

G1

P2

P1

P0

C-1

C3

C2

C1

C0

CL

A

P' 3

G' 3

G0

P3

G3

G2

G1

P2

P1

P0

C-1

C3

C2

C1

C0

CL

A

P' 3

G' 3

G0

P3

G3

G2

G1

P2

P1

P0

C-1

C3

C2

C1

C0

CLA

P' 3

G' 3

Cin

G0

P3

G3

G2

G1

P2

P1

P0

G4

P7

G7

G6

G5

P6

P5

P4

G8

P11

G11

G10

G9

P10

P9

P8

G12

P15

G15

G14

G13

P14

P13

P12

Cou

t

Page 203: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

202 Zbirka riješenih zadataka

9.10. Zadatak

Uporabom 3 potpuna zbrajala, 3 poluzbrajala te potrebnog broja osnovnih logičkih sklopova ostvariti sklop za množenje trobitnih binarnih brojeva.

Prikažimo tablično kako bismo pomnožili dva trobitna broja.

x2x1x0 ⋅y2y1y0 0 x2y0 x1y0 x0y0 + x2y1 x1y1 x0y1 = p3 p2 p1 p0 + x2y2 x1y2 x0y2 = r5 r4 r3 r2 r1 r0

Si

CiBi

Ai

H

Si

Ci

Ci-1

Ai FBi

Si

Ci

Ci-1

Ai FBi

Si

CiBi

Ai

HSi

Ci

Ci-1

Ai FBi

Si

CiBi

Ai

H

01 yx

10 yx

02 yx

11 yx

12 yx

20 yx

21yx

22 yx

00 yx 0r

1r

2r

3r

4r

5r Svaki od produkata bitova može se ostvariti jednim I sklopom, pa je izostavljeno sa prikazane sheme.

Page 204: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Digitalna aritmetika. 203

9.11. Zadatak Prikazati izvedbu potpunog zbrajala pogodnog za uporabu CLA sklopova. Proračunati vrijeme stabilizacije izlaza uz pretpostavku da svaki logički sklop kasni jednako.

Potpuno zbrajalo u ovom slučaju mora imati sljedeće 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). Međutim, pažljivijom analizom može se uočiti da te funkcije imaju dosta zajedničkoga, te se u praksi ovaj sklop izvodi pomoću dva poluzbrajala (vidi zadatak 9.2). Kako su pri tome pojedini izlazi definirani izrazima:

1−⊕⊕= iiii CBAS

( ) iiiiii BACBAC +⊕= −1

iii BAP ⊕=

iii BAG =

direktnom realizacijom poluzbrajalima slijedi:

1≥

Realiziramo li poluzbrajala osnovnim logičkim sklopovima, slijedi:

1≥

1=

&

1=

&

Page 205: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

204 Zbirka riješenih zadataka

Označimo kašnjenje jednog logičkog sklopa s dlst . Tada će se nakon istovremene

promjene ulaza Ai, Bi i Ci-1 ispravni izlazi Pi i Gi dobiti nakon dlst , ispravan izlaz Si

nakon dlst⋅2 a ispravan izlaz Ci nakon dlst⋅3 .

9.12. Zadatak Izračunati i objasniti koliko iznosi vrijeme stabilizacije rezultata kod sljedećih sklopova: a) poluzbrajalo b) potpuno zbrajalo izvedeno pomoću 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)

Pretpostavimo da sklopove realiziramo uporabom potrebnih osnovnih logičkih sklopova, u koje ćemo ubrojiti i sklop isključivo-ili (te da sve potrebne komplemente imamo trenutno). Pretpostavimo također da je kašnjenje svakog od osnovnih logičkih sklopova isto te iznosi dlst .

a) Poluzbrajalo ima sljedeće izlaze: iS i iC . Izlazi iS i iC kasnit će dlst .

b) Potpuno zbrajalo ima sljedeće izlaze: iS i iC . Ako bi se oba izlaza realizirala kroz

dvije razine osnovnih logičkih sklopova, tada bi oba kasnili dlst⋅2 Međutim, kako je

zadano potpuno zbrajalo realizirano uporabom poluzbrajala, tada treba otkriti koji je najduži put kojim signal mora proći prije no što se pojavi ispravan rezultat na svim izlazima. Ako se Ai, Bi i Ci-1 pojave u trenutku t=0 ns, ispravan Si prvog poluzbrajala pojavit će se u trenutku dlsdls ttt ⋅=⋅+= 110 , nakon čega drugo poluzbrajalo generira

svoj Si još dlst⋅1 kasnije, odnosno u trenutku dlsdlsdls tttt ⋅=⋅+⋅= 211 . U trenutku

dlstt ⋅= 1 započinje izračunavanje i Ci-a drugog poluzbrajala koje završava u trenutku

dlsdlsdls tttt ⋅=⋅+⋅= 211 (jer se Ci računa jednom razinom logičkih sklopova). Ispravan

Ci cijelog sklopa pojavit će se kada izračunati Ci drugog poluzbrajala prođe još kroz izlazni ILI sklop, pa će se Ci cijelog sklopa dobiti u trenutku dlsdlsdls tttt ⋅=⋅+⋅= 312 .

Dakle, kod ove izvedbe rezultat kasni dlst⋅2 , a prijenos dlst⋅3 .

c) Sklop za paralelno zbrajanje dva 32-bitna binarna broja u ovom se slučaju izvodi uporabom 32 potpuna zbrajala kod kojih se prijenos spaja serijski (vidi npr. zadatak 9.3). Koji je najgori slučaj koji može nastupiti? Pretpostavimo da u trenutku t=0 ns na sve ulaze dovodimo paralelno bitove pribrojnika i ulazni bit prijenosa. Ukoliko niti jedan sklop ne generira bit prijenosa, tada će se kompletan zbroj pojaviti na izlazu nakon dlst⋅2 (jer toliko kasni svako potpuno zbrajalo, a zbrajanje se izvodi paralelno), a

prijenos nakon dlst⋅3 . No promotrimo slučaj u kojem zbrajamo npr. brojeve

Page 206: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Digitalna aritmetika. 205

A=000…000(2), B=111…111(2) i Cin=1. Sklop koji obavlja zbrajanje bitova najmanje težine (0-ti bit) nakon dlst⋅2 generirat će rezultat 0, a nakon dlst⋅3 prijenos 1. Zbog tog

prijenosa sklop koji računa sumu prvog bita morat će ponovno preračunati rezultat i prijenos (jer se je promijenio njegov Cin). Za rezultat će trebati dlst⋅2 a za prijenos

dlst⋅3 . Rezultat će opet biti 0 i generiranje prijenosa zbog čega će sklop koji računa

sumu drugog bita nanovo morati preračunati rezultat, itd. Na ovaj će se način ispravan rezultat kod n-bitnog zbrajala pojaviti tek u trenutku ( ) dlsdls ttnt ⋅+⋅⋅−= 231 , gdje je

( ) dlstn ⋅⋅− 31 vrijeme potrebno da ispravni prijenos stigne na ulaz zbrajala najviše težine,

a dlst⋅2 vrijeme potrebno da se s tim prijenosom izračuna ispravan rezultat. Ispravan

prijenos pojavit će se na izlazu zbrajala najviše težine nakon dlstnt ⋅⋅= 3 . U našem

konkretnom slučaju to znači da će se ispravan rezultat pojaviti nakon dlst⋅95 a ispravan

prijenos nakon dlst⋅96 .

d) Prilikom korištenja CLA sklopova umjesto klasičnih potpunih zbrajala koristimo potpuna zbrajala koja osim izlaza R i prijenosa generiraju i izlaze P (engl. propagate) i G (engl. generate) (vidi prethodni zadatak). Pri tome su izlazi P i G dostupni uz vrijeme kašnjenja od dlst⋅1 .

Kako imamo na raspolaganju 4-bitne CLA sklopove, potpuna zbrajala treba grupirati u grupe od 4 zbrajala koja svoje P i G izlaze dovode na ulaze jednog CLA sklopa. Time imamo 8 grupa od po 4 potpuna zbrajala. CLA sklopovi bit će povezani u seriju. Neka se na ulaze A i B u trenutku t=0 ns dovedu svi bitovi pribrojnika, te na ulaz Cin valjani početni prijenos. Nakon dlst⋅1 , tj. u trenutku dlsdls ttt ⋅=⋅+= 110 na izlazima svih

potpunih zbrajala nalaze se izračunati P i G. Na temelju tih ulaza svi CLA-ovi izračunaju bitove prijenosa nakon još dlst⋅2 (ovo se računa dvorazinskom logikom), tj.

u trenutku dlsdlsdls tttt ⋅=⋅+⋅= 321 . Međutim, nakon što je CLA koji računa prijenos

kod sumiranja najniža četiri bita izračunao ispravan rezultat, bit prijenosa između prvog i drugog CLA sklopa može se promijeniti, pa drugi CLA sklop mora nanovo izračunati svoje izlaze (čime može pokrenuti ponovno računanje izlaza sljedećeg CLA sklopa, itd). Budući da imamo u seriju povezane CLA sklopove, vrijeme potrebno za stabilizaciju njihovih izlaza gledano od trenutka pojave svih Pi i Gi ulaza tada je dlstk ⋅⋅2 (gdje je k

broj CLA sklopova u seriji), što znači da dolazimo do trenutka dlsdls tktt ⋅⋅+⋅= 21 . U

našem konkretnom slučaju 8 CLA sklopa spojena su u seriju, te smo došli do trenutka

dlstt ⋅= 17 . Konačno, nakon što su svi prijenosi u sklopu ispravni, nanovo se mora

izračunati rezultat samog zbrajanja, a to potpuna zbrajala obave paralelno, uz kašnjenje od dlst⋅2 , tj. u trenutku dlsdlsdls tttt ⋅=⋅+⋅= 19217 . Ispravan prijenos najvišeg bita pri

tome se ne uzima sa zbrajala, već s zadnjeg CLA sklopa, gdje je dostupan već u trenutku dlstt ⋅= 17 . U odnosu na prethodni slučaj, vidimo da je došlo do bitnog

ubrzavanja rada sklopa. e) Prilikom realizacije ovakvog sklopa i potpuna zbrajala i CLA sklopovi generiraju izlaze P i G (vidi npr. zadatak 9.8). Bitno je uočiti da se G kod CLA sklopa računa dvorazinskom logikom, te je dostupan tek nakon dlst⋅2 . Na ovaj se način po četiri

potpuna zbrajala grupiraju uz jedan CLA sklop, a prijenos između četiri CLA sklopa rješava se još jednom razinom CLA sklopova (u kojoj se u ovom slučaju nalaze dva

Page 207: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

206 Zbirka riješenih zadataka

CLA sklopa; time ukupno trebamo 6 4-bitnih CLA sklopova). Budući da se na dnu nalaze samo dva CLA sklopa, prijenos između njih riješit ćemo direktnim povezivanjem (a ne novom razinom CLA sklopova). Postupak izračunavanja tada je sljedeći. U trenutku t = 0 ns na sklop se dovode svi ulazi. Nakon dlst⋅1 , tj. u trenutku

dlsdls ttt ⋅=⋅+= 110 izračunati su svi P i G izlazi potpunih zbrajala. Nakon još dlst⋅2 , tj.

u trenutku dlsdlsdls tttt ⋅=⋅+⋅= 321 sve CLA jedinice u prvoj razini izračunavaju svoje P

i G izlaze (zapravo, P se dobije dlsdlsdls tttt ⋅=⋅+⋅= 211 ). Na temelju tih izlaza CLA

sklop najviše razine nakon još dlst⋅2 , tj. u trenutku dlsdlsdls tttt ⋅=⋅+⋅= 523 izračunava

ispravne bitove prijenosa. Prijenos se vodi do CLA sklopa koji računa prijenose za gornjih 16 bitova rezultata, što se izračuna nakon još dlst⋅2 , tj. u trenutku

dlsdlsdls tttt ⋅=⋅+⋅= 725 . Ovi prijenosi vode se na ulaze CLA sklopova prve razine.

Nakon još dlst⋅2 , tj. u trenutku dlsdlsdls tttt ⋅=⋅+⋅= 927 CLA sklopovi prve razine imaju

izračunate ispravne prijenose za sva potpuna zbrajala, te se ispravni rezultat pojavljuje još dlst⋅2 kasnije, tj. u trenutku dlsdlsdls tttt ⋅=⋅+⋅= 1129 . Ispravan prijenos najvišeg bita

pri tome se uzima s hijerarhijski najnižeg CLA sklopa, gdje je bio dostupan već u trenutku dlstt ⋅= 7 . Hijerarhijskim povezivanjem CLA sklopova dobili smo, dakle, još

brži rad sklopova. ZADACI ZA VJEŽBU

1. Prikazati sklop koji se temelji na 9-bitnom binarnom zbrajalu, a koji može, 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 sljedeći 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 očekivane rezultate (izračun provesti "ručno").

2. Napišite u VHDL-u ponašajni model 5-bitnog CLA sklopa koji dodatno generira svoje P i G članove (čemu oni služe?)

3. Sljedeće 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 uopće zapisati u 8 bita?). Dodatno, utvrditi o kojim se brojevima radi, ako je njihov binarni prikaz dvojnim komplementom jednak: (a) 11001101, (b) 00101111, (c) 00000000, (d) 11111111, (e) 01011010. Obaviti zbrajanje 3 i -3, 114 i -17, -28 i -43, -100 i -113; koji je rezultat?

4. Izračunati (B-1)-vi komplement i B-ti komplement sljedećih brojeva: 11111(2), 01110(2), 22211(3), 11221(3), 57251(8), 10772(8), 19357(10), 99832(10), A7EFF(16), 2EE739(16).

5. Neka se za kodiranje dekadskih brojeva koristi Excess-3 kod. Projektirati sklop koji računa sumu dva jednoznamenkasta broja. Uporabom tog sklopa projektirati sklop koji računa sumu dva troznamenkasta broja.

Page 208: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Digitalna aritmetika. 207

6. Neka se za kodiranje dekadskih brojeva koristi Excess-3 kod. Projektirati sklop koji računa (B-1)-vi komplement jednoznamenkastog broja. Projektirati sklop koji računa B-ti komplement troznamenkastog broja.

7. Neka se za kodiranje dekadskih brojeva koristi BCD kod. Projektirati sklop koji računa sumu dva jednoznamenkasta broja. Uporabom tog sklopa projektirati sklop koji računa sumu dva troznamenkasta broja.

8. Neka se za kodiranje dekadskih brojeva koristi BCD kod. Projektirati sklop koji računa (B-1)-vi komplement jednoznamenkastog broja. Projektirati sklop koji računa B-ti komplement troznamenkastog broja.

MINI-PROJEKTI ZA VJEŽBU

1. Četveroznamenkasti dekadski broj pamti se u sljedećem formatu: jedan bit predstavlja predznak (0 – pozitivan, 1 – negativan), slijede četiri grupe po četiri bita, pri čemu svaka grupa predstavlja jednu znamenku broja kodiranu BCD kodom. Projektirati kombinacijski sklop koji na ulaz dobiva dva takva broja A i B, te upravljački ulaz OP. Kada je OP=0, sklop treba izračunati R=A+B, a za OP=1 sklop računa R=A-B. Sklop ima dva izlaza: R je rezultat operacije definirane preko zastavice OP (zapisan u istom formatu kao i ulazni brojevi), te zastavicu ERR. ERR treba postaviti na 1 u slučaju da se rezultat ne može zapisati u četiri znamenke (kolika je širina izlaza; tada R nije bitan), a inače treba biti 0. Nacrtati strukturu ovog sklopa, te njegov VHDL opis. Provjeriti ispravnost rada sklopa u simulatoru.

2. Četveroznamenkasti dekadski broj pamti se u sljedećem formatu: jedan bit predstavlja predznak (0 – pozitivan, 1 – negativan), slijede četiri grupe po četiri bita, pri čemu svaka grupa predstavlja jednu znamenku broja kodiranu Excess-3 kodom. Projektirati kombinacijski sklop koji na ulaz dobiva dva takva broja A i B, te upravljački ulaz OP. Kada je OP=0, sklop treba izračunati R=A+B, a za OP=1 sklop računa R=A-B. Sklop ima dva izlaza: R je rezultat operacije definirane preko zastavice OP (zapisan u istom formatu kao i ulazni brojevi), te zastavicu ERR. ERR treba postaviti na 1 u slučaju da se rezultat ne može zapisati u četiri znamenke (kolika je širina izlaza; tada R nije bitan), a inače treba biti 0. Nacrtati strukturu ovog sklopa, te njegov VHDL opis. Provjeriti ispravnost rada sklopa u simulatoru.

Page 209: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Registri. 209

10. Registri.

10.1. Zadatak Uporabom D bistabila nacrtati shemu 4-bitnog registra s paralelnim ulazima i paralelnim izlazima.

D

Q

Q

CP

D

Q

Q

CP

D

Q

Q

CP

D

Q

Q

CP

Q3 Q2 Q1 Q0

D3 D2 D1 D0

CP

10.2. Zadatak Uporabom D bistabila nacrtati shemu 4-bitnog posmačnog registra sa serijskim ulazom i paralelnim izlazima.

D

Q

Q

CP

D

Q

Q

CP

D

Q

Q

CP

D

Q

Q

CP

D

Q3 Q2 Q1 Q0

CP

10.3. Zadatak Projektirati trobitni posmačni registar uporabom bridom okidanih D bistabila i potrebnog broja multipleksora 4/1. Mogućnosti sklopa su sljedeće:

Page 210: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

210 Zbirka riješenih zadataka

S1 S0 Funkcija 0 0 Posmak udesno; punjenje bitom Sin 0 1 Posmak ulijevo; punjenje bitom Sin 1 0 Paralelni upis 1 1 Kružni posmak udesno

D

Q

Q

CP

D

Q

Q

CP

D

Q

Q

CP

Sin Pin0 Pin1 Pin2S0S1 CP

Pout0 Pout1 Pout2

d0

d1

d2

d3a0a1

y

d0

d1

d2

d3a0a1

y

d0

d1

d2

d3a0a1

y

10.4. Zadatak

Projektirati sklop koji će prolaziti kroz sljedeća stanja: 0 → 8 → 4 → 10 → 5 → 2 → 9 → 12 → 14 → 7 → 3 → 1 → 0 → ... Sklop je potrebno ostvariti uporabom strukture prikazane na slici (posmačni registar + multipleksor). Nespecificirana stanja treba tako riješiti da sklop u minimalnom broju koraka dođe u stanje 0.

Napišimo tablicu promjene stanja:

A DCB

CPS

in→

d0

d1

d7

d6

d5

d4

d3

d2

1

a0

a1

a2

y

mux 8/1

CP

Page 211: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Registri. 211

A B C D A' B' C' D' Sin=A' 0 0 0 0 → 1 0 0 0 0 0 0 1 → 0 0 0 0 D

0 0 1 0 → 1 0 0 1 0 0 1 1 → 0 0 0 1 D

0 1 0 0 → 1 0 1 0 0 1 0 1 → 0 0 1 0 D

0 1 1 0 → 0 0 1 1 0 1 1 1 → 0 0 1 1

0

1 0 0 0 → 0 1 0 0 1 0 0 1 → 1 1 0 0

D

1 0 1 0 → 0 1 0 1 1 0 1 1 → 1 1 0 1

D

1 1 0 0 → 1 1 1 0 1 1 0 1 → 0 1 1 0 D

1 1 1 0 → 0 1 1 1 1 1 1 1 → 0 1 1 1

0

Objašnjenje: U svakom retku ABCD predstavlja početno stanje a A'B'C'D' predstavlja novo stanje. Zbog načina na koji je sklop izveden (uporabom posmačnog registra) vrijedi: B'=A, C'=B, D'=C. A' je određen tako da pređemo u ispravno stanje. Međutim, kako odrediti u koja stanja treba prijeći iz stanja koja nisu zadana (6, 11, 13, 15)? Zadan je kriterij da se u tom slučaju kroz minimalni broj stanja treba prijeći u stanje 0. Pogledajmo redom kako smo primjenjivali taj kriterij. Stanje 15 Iz stanja 15 = 1111 možemo prijeći u stanje Sin 111 (vidi sliku). Za Sin=0 to je 7, a za Sin=1 to je 15. Ako smo došli u stanje 7, to stanje je definirano i do nule nam treba još 3 koraka (označeno u zagradi). Uz čvor 7 podvučeno se nalazi i ukupni broj koraka do nule – 3 plus 1 za prijelaz 15 u 7. Ako smo došli u stanje 15, vrtimo se ciklički u krug što nije put prema stanju 0 u minimalnom broju koraka.

15

7 (3) 15

4

Stanje 13 Na isti način kao u prethodnom razmatranju (vidi sliku ispod) možemo utvrditi da iz stanja 13 treba prijeći u stanje 6 (neovisno o tome što to stanje također nije definirano, a alternativno stanje 14 jest). Stanje 11

Page 212: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

212 Zbirka riješenih zadataka

Iz stanja 11 potrebno je prijeći u stanje 13 (vidi sliku ispod). Prilikom crtanja stabla odluke možemo se zaustaviti na čvoru 13 bez da ga raščlanjujemo jer smo to napravili u prethodnom koraku, i već smo utvrdili da je najkraći put iz stanja 13 do stanja 0 dugačak 4. Stanje 6 Iz stanja 6 potrebno je prijeći u stanje 3 (vidi sliku ispod).

13

14 (4)

5

6

3 (2)

4

11

5 (8)

11

13

11

5 (8)

9

13 (4)

5

6

3 (2)

3

11 (5)

6

Shema traženog sklopa je dakle:

A DCB

CPSin

d0

d1

d7

d6

d5

d4

d3

d2

1a0a1a2

y

mux 8/1

CP

0

0

Page 213: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Registri. 213

10.5. Zadatak

Uporabom potpunog zbrajala i potrebnog broja sinkronih bridom okidanih D registara realizirati sklop koji obavlja serijsko zbrajanje dvaju binarnih brojeva. Objasniti rad sklopa. Prikazati na vremenskom dijagramu proces zbrajanja 4-bitnih brojeva 5 i 9.

Sklop je prikazan na slici.

Si

CiCi-1

Ai

FBi

D

Q

Q

CP

D

Q

Q

CP

Ain

Bin

Reset

CP

Rout

Cout

Bitovi brojeva dovode se serijski na ulaze Ain i Bin pri čemu se najprije dovodi najmanje

značajni 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 sljedećih značajnijih bitova. Rout čuva rezultat zbrajanja trenutnih bitova a Cout je preljev nastao zbrajanjem bitova koji su u trenutku rastućeg brida CP-a bili na ulazu potpunog zbrajala. Vremenski dijagram prikazan je u nastavku.

Uočiti da signal Reset djeluje asinkrono.

Page 214: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

214 Zbirka riješenih zadataka

t

Ain

Bin

Reset

CP

Rout

Cout

10

1 10 0

1 0

5 = 0101(2)

9 = 1001(2)

0

0 0 01

1 1 1

14 = 1110(2)

t

t

t

t

t

10.6. Zadatak

Uporabom potrebnog broja D bistabila i multipleksora 2/1 ostvariti 3-bitni registar s mogućnošću paralelnog upisa podataka. Rad registra definiran je signalom L na način:

Signal L Akcija 0 Ostaviti prethodno stanje registra 1 Upisati stanje s paralelnih ulaza

Di su paralelni ulazi, a Qi su izlazi registra.

Page 215: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Registri. 215

D

Q

Q

CP

0

1a0

y D

Q

Q

CP

0

1a0

y D

Q

Q

CP

0

1a0

y

D0 D1Q0 D2Q1 Q2

CP

L

10.7. Zadatak Uporabom dva 4-bitna posmačna registra čija je funkcionalnost prikazana tablicom ostvariti 8-bitni posmačni registar iste funkcionalnosti. Dozvoljeno je još koristiti multipleksor te potreban broj osnovnih logičkih sklopova.

S1 S0 Funkcija 0 0 Posmak udesno; punjenje bitom SRin 0 1 Posmak ulijevo; punjenje bitom SLin 1 0 Paralelni upis 1 1 Resetiranje registra

Za ovaj jednostavan slučaj zadanih operacija sklopovi se mogu spojiti direktno, kao što je prikazano na shemi.

A DCB

CPSLin

→SRin

SLout

SRout

A DCB

CPSLin

→SRin

SLout

SRout

A DCB E HGF

SLin

SRoutSRin

SLout

CP

S0S1S0S1

S0S1

10.8. Zadatak Uporabom dva 4-bitna posmačna registra čija je funkcionalnost prikazana tablicom ostvariti 8-bitni posmačni registar iste funkcionalnosti. Dozvoljeno je još koristiti multipleksor 2/1 te dekoder 2/4.

Page 216: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

216 Zbirka riješenih zadataka

S1 S0 Funkcija 0 0 Posmak udesno; punjenje bitom SRin 0 1 Posmak ulijevo; punjenje bitom SLin 1 0 Paralelni upis 1 1 Kružni posmak udesno

Kao osnova za rješavanje ovog zadatka može nam poslužiti prethodni zadatak. Međutim, potrebno je uočiti bitnu razliku: funkcioniranje sklopa za vrijednost 11 upravljačkih signala. Tada registar interno obavlja kružni pomak u desno, pri čemu se ne koriste izlaz SRout i ulaz SRin. Ako bismo na predloženi način spojili registre, za kombinaciju 11 ne bismo dobili kružni pomak u desno 8-bitnog podatka, već podatak u kojem su prva četiri bita i druga četiri bita kružno pomaknuta u desno. Problem možemo riješiti tako da kružni pomak u desno 8-bitnog podatka obavimo "običnim" pomakom u desno, a izvana zadnji bit podatka vratimo na ulaz prvog registra. Dakle, upravljačke signale ne smijemo direktno dovoditi na ulaze Si. Uvedimo pomoćne signale S0x i S1x (koje ćemo stvarmo dovoditi na upravljačke ulaze) i pomoćni signal K (koji će označavati da se radi o kružnom pomaku). S1 S0 S1x S0x K 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1

Iz tablice možemo očitati tražene funkcije (odnosno minterme):

2011 mSSS x == , 1010 mSSS x == , 301 mSSK == .

Konačni sklop tada je prikazan na sljedećoj slici:

A DCB

CPSLin

→SRin

SLout

SRout

A DCB

CPSLin

→SRin

SLout

SRout

A DCB E HGF

SLin

SRout

SRin

SLout

CP

S0S1S0S1

d0

d1a

y

a0a1

d0d1d2d3

dek 2/4

S0S1

Page 217: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Registri. 217

10.9. Zadatak

Napisati strukturni model 4-bitnog posmačnog registra sa serijskim ulazom i paralelnim izlazima, te ulazom za reset. Kao osnovu za opis registra koristiti komponentu Dbistabil opisanu u zadatku 8.3.

library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY Reg4bit IS PORT ( Sin, Reset: IN std_logic; Q: OUT std_logic_vector( 3 DOWNTO 0); Clock: IN std_logic ); END Reg4bit; ARCHITECTURE Structural OF Reg4bit IS COMPONENT Dbistabil IS PORT ( D, Reset: IN std_logic; Q, Qn: OUT std_logic; Clock: IN std_logic ); END COmponent; SIGNAL Qint: std_logic_vector( 3 DOWNTO 0); BEGIN -- povezivanje pojedinih D bistabila u 4-bitni registar D3: Dbistabil PORT map (Sin, Reset, Qint(3), open, Clock); D2: Dbistabil PORT map (Qint(3), Reset, Qint(2), open, Clock); D1: Dbistabil PORT map (Qint(2), Reset, Qint(1), open, Clock); D0: Dbistabil PORT map (Qint(1), Reset, Qint(0), open, Clock); -- preslikavanje izlaza bistabila na izlaz 4-bitnog registra Q <= Qint; END BEHAVIORAL;

10.10. Zadatak

Ponašajnim VHDL-om modelirati registar prikazan slikom. Registar nailaskom impulsa CP pohranjuje vrijednost narinutu na njegovom ulazu. Upravljački ulazi S i C (postavljanje i brisanje) moraju biti sinkroni. Svi signali moraju biti isključivo ulazni odnosno izlazni.

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

DS

C

CP

Q2 2

Page 218: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

218 Zbirka riješenih zadataka

ENTITY d_reg IS PORT ( clk, s, c: IN std_logic; d: IN std_logic_vector (1 downto 0); q: OUT std_logic_vector (1 downto 0) ); END d_reg; ARCHITECTURE Behavioral OF d_reg IS BEGIN PROCESS (clk, s, c, d) BEGIN IF (falling_edge(clk)) THEN IF (s = '0') THEN q <= "11"; ELSIF (c = '0') THEN q <= "00"; ELSE q <= d; END IF; END IF; END PROCESS; END Behavioral;

10.11. Zadatak Korištenjem registra iz prethodnog zadatka nacrtati shemu 5-bitnog posmačnog registra prikazanog na slici i napisati odgovarajuću specifikaciju u VHDL-u. Operacije koje obavlja registar određene su ulazom ctrl: 00 – ne događa se ništa, 01 – posmak u desno, 10 – paralelni upis te 11 – nedefinirano. Napomena: sklop iz prethodnog zadatka upotrebljavati kao crnu kutiju!

Nacrtajmo najprije kako bismo spojili sve potrebne sklopove. Nepotpuna shema prikazana je u nastavku:

CP

reset

Sin

Pin

Pout

ctrl

5

52

Page 219: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Registri. 219

Za realizaciju sklopa koristimo tri sklopa iz prethodnog zadatka čime dobivamo mogućnost izrade čak 6-bitnog registra (pa nećemo iskoristiti sve – lijeva strana sklopa r2 ostat će neiskorištena). Uočimo sada ulaze i izlaze sklopa. Ulazi su pin (5-bitni vektor), sin, ctrl (2-bitni vektor), reset i clk, dok je izlaz pout (5-bitni vektor). Vektori su prikazani u točkastom pravokutniku. Također koristimo dva interna signala: pint (6-bitni vektor) i pouti (6-bitni vektor). Uvidom u shemu sklopa očito je da se interni signal pouti direktno spaja na izlaz sklopa pout. No trebamo utvrditi što treba spojiti na signal pint. Analizirajmo funkciju sklopa. Kada je na ctrl vrijednost 00, sklop treba zadržati postojeće stanje. To znači da mora vrijediti pint(i)=pouti(i); što je bilo na izlazu, to treba doći na ulaz kako bi se u sljedećem koraku opet pojavilo na izlazu. Ovaj slučaj, dakle, možemo opisati izrazom: pint(i) <= not crtl(1) and not ctrl(0) and pouti(i). Za slučaj da je na ctrl vrijednost 10, sklop treba obaviti paralelni upis, tj.: pint(i) <= crtl(1) and not ctrl(0) and pin(i). Konačno, za slučaj da je na ctrl vrijednost 01, sklop treba obaviti posmak udesno i punjenje lijeve pozicije s ulaza sin, tj. gledajući sliku treba vrijediti: pint(4) <= not crtl(1) and ctrl(0) and sin, pint(i) <= not crtl(1) and ctrl(0) and pouti(i+1), za 0<=i<4. Kako je ponašanje za kombinaciju 11 nedefinirano, izrazi se mogu pojednostavniti, tako da se promatraju slučajevi kada su oba bita ctrl u 0, nulti u 1 ili pak prvi u jedan. Kako su analizirani slučajevi potpuno disjunktni, navedeni izrazi za sve slučajeve mogu se spojiti logičkom operacijom ILI, iz čega slijedi navedeno rješenje. Nekorišteni ulaz pint(5) spaja se ne logičku jedinicu. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY shift is PORT ( pout: OUT std_logic_vector (4 DOWNTO 0); sin, reset, clk: IN std_logic; ctrl: IN std_logic_vector (1 DOWNTO 0); pin: IN std_logic_vector (4 DOWNTO 0) ); END shift; ARCHITECTURE Structural OF shift IS COMPONENT d_reg PORT ( clk, s, c: IN std_logic;

Page 220: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

220 Zbirka riješenih zadataka

d: IN std_logic_vector (1 DOWNTO 0); q: OUT std_logic_vector (1 DOWNTO 0) ); END COMPONENT; SIGNAL pint: std_logic_vector(5 DOWNTO 0); SIGNAL pouti: std_logic_vector(5 DOWNTO 0); BEGIN pint (0) <= (ctrl(1) AND pin(0)) OR (ctrl(0) AND pouti(1)) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(0)); pint (1) <= (ctrl(1) AND pin(1)) OR (ctrl(0) AND pouti(2)) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(1)); pint (2) <= (ctrl(1) AND pin(2)) OR (ctrl(0) AND pouti(3)) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(2)); pint (3) <= (ctrl(1) AND pin(3)) OR (ctrl(0) AND pouti(4)) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(3)); pint (4) <= (ctrl(1) AND pin(4)) OR (ctrl(0) AND sin) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(4)); pint (5) <= '0'; r0: d_reg PORT MAP (clk, '1', reset, pint (1 DOWNTO 0), pouti(1 DOWNTO 0)); r1: d_reg PORT MAP (clk, '1', reset, pint (3 DOWNTO 2), pouti(3 DOWNTO 2)); r2: d_reg PORT MAP (clk, '1', reset, pint (5 DOWNTO 4), pouti(5 DOWNTO 4)); pout <= pouti(4 DOWNTO 0); END Structural; Zašto je uopće 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 proglašen izlaznim (out), njegova se vrijednost ne može čitati! Da bismo riješili taj problem, možemo 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 rješenje je loše jer može rezultirati sintezom dodatnog sklopovlja (kako bi se osiguralo da se s tih pinova sklopa doista može i čitati i pisati). Drugo je rješenje, iz očitog razloga, bolje.

10.12. Zadatak Uporabom potrebnog broja sinkronih bridom okidanih JK bistabila ostvariti 4-bitni posmačni registar sa serijskim ulazom i paralelnim izlazom. Dozvoljeno je koristiti jedan invertor.

Page 221: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Registri. 221

J

Q

Q

CP

K

J

Q

Q

CP

K

J

Q

Q

CP

K

J

Q

Q

CP

K1

D0 D1 D2D3

CP

Sin

Objašnjenje: Prvi bistabil uporabom invertora pretvoren je u D bistabil koji je i inače osnova za izgradnju registara. Međutim, kako smo time potrošili raspoložive invertore, potrebno se je dosjetiti kako i ostale JK bistabile pretvoriti u D bistabile. To nije preteško jer je uvjet da bismo iz JK bistabila dobili D bistabil upravo dovođenje 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 sljedećeg JK bistabila, a komplementirani izlaz sa K ulazom.

10.13. Zadatak Prikazati funkciju sklopa 74LS194. Opisati sklop ponašajnim VHDL-om.

Sklop 74LS194 ima funkciju posmačnog registra, čije je sučelje prikazano na slici, a funkcija opisana tablicom:

• Posmak u lijevo ide od A prema D • Posmak u desno ide od D prema A • CLR je asinkron

S1 S0 Akcija QA* QB* QC* QD* 0 0 Zadrži QA QB QC QD 0 1 Posmak desno RIN QA QB QC 1 0 Posmak lijevo QB QC QD LIN 1 1 Učitaj A B C D

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);

Page 222: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

222 Zbirka riješenih zadataka

BEGIN PROCESS (CLK, CLR, IQ) BEGIN IF (CLR='1') THEN IQ <= "0000"; ELSIF (CLK'event AND CLK='1') THEN CASE S IS WHEN "00" => NULL; WHEN "01" => IQ <= RIN & IQ(3 DOWNTO 1); WHEN "10" => IQ <= IQ(2 DOWNTO 0) & LIN; WHEN "11" => IQ <= D; WHEN OTHERS => NULL; END CASE; END IF; Q <= IQ; END PROCESS; END SHREG_ARCH;

10.14. Zadatak Ponašajnim VHDL-om modelirati 8-bitni posmačni registar sa serijskim i paralelnim ulazima i paralelnim izlazom, čija je funkcija zadana tablično:

S2 S1 S0 Akcija 0 0 0 Zadrži 0 0 1 Učitaj 0 1 0 Posmak u desno, punjenje s LIN 0 1 1 Posmak u lijevo, punjenje s RIN 1 0 0 Ciklički posmak u desno 1 0 1 Ciklički posmak u lijevo 1 1 0 Aritmetički posmak u desno 1 1 1 Aritmetički posmak u lijevo

Signal za brisanje CLR mora biti izveden asinkrono.

library IEEE; use IEEE.std_logic_1164.all; ENTITY SHREG IS PORT ( CLK, CLR, RIN, LIN : IN STD_LOGIC; S : IN STD_LOGIC_VECTOR(2 DOWNTO 0); D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END SHREG; ARCHITECTURE SHREG_ARCH OF SHREG IS SIGNAL IQ : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS (CLK, CLR, IQ) BEGIN IF (CLR='1') THEN IQ <= (OTHERS=>'0');

Page 223: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Registri. 223

ELSIF (CLK'event AND CLK='1') THEN CASE S IS WHEN "000" => NULL; WHEN "001" => IQ <= D; WHEN "010" => IQ <= LIN & IQ(7 DOWNTO 1); WHEN "011" => IQ <= IQ(6 DOWNTO 0) & RIN; WHEN "100" => IQ <= IQ(0) & IQ(7 DOWNTO 1); WHEN "101" => IQ <= IQ(6 DOWNTO 0) & IQ(7); WHEN "110" => IQ <= IQ(7) & IQ(7 DOWNTO 1); WHEN "111" => IQ <= IQ(6 DOWNTO 0) & '0'; WHEN OTHERS => NULL; END CASE; END IF; Q <= IQ; END PROCESS; END SHREG_ARCH;

10.15. Pismeni ispit, 09. 02. 2004, 1. zadatak

Na raspolaganju su sljedeći elementi: trobitni posmačni registar (s upravljačkim ulazom RS / : 0 – rotacija, 1 – posmak; vidi sliku), D bistabil te multipleksor 2/1. Samo njihovom uporabom projektirati četverobitni posmačni registar istih mogućnosti.

Sin

Q2 Q1 Q0

CPRS /

→D Q

CP

1

0

1

Q3 Q2 Q1 Q0

Sin

RS /

CP

Sin

Q2 Q1 Q0

CPRS /

Page 224: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

224 Zbirka riješenih zadataka

ZADACI ZA VJEŽBU

1. Na raspolaganju su tri 4-bitna registra čija je funkcija opisana tablicom, a sučelje prikazano slikom. Uporabom samo tih registara i tri multipleksora 4/1 (gdje/ako treba) nacrtati shemu 12-bitnog registra koji:

a) ima istu funkcionalnost kao i 4-bitni registar b) ima istu funkcionalnost kao i 4-bitni registar, samo što umjesto posmaka obavlja

rotaciju. Za b) dio zadatka K-tablicama pronaći minimalni oblik funkcija Sin svakog registra. Ctrl1 Ctrl0 Funkcija

0 0 Čuva se trenutno pohranjen podatak. 0 1 Posmak u desno, punjenje sa Sin. 1 0 Posmak u lijevo, punjenje sa Sin. 1 1 Paralelni upis.

2. Nacrtati potpuni dijagram prijelaza stanja 4-bitnog posmačnog registra udesno. Registar

ima serijski ulaz, paralelne izlaze te na svaki padajući brid CP-a obavlja posmak udesno. Napisati ponašajni model ovog sklopa u VHDL-u.

Page 225: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 225

11. 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.

Asinkrono brojilo ostvareno JK bistabilima prikazano je na slici. Uočiti da se JK bistabili zapravo koriste kao T bistabili (J=K=1).

J

K Q

Q

CP

J

K Q

Q

CP

J

K Q

Q

CP

1

CP

B0 B1 B2

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 znači da možemo detektirati jedno od 8 stanja. Naime, ako npr. generiramo jedinicu kada se na izlazu brojila pojavi 6, do sljedećeg pojavljivanja broja 6 opet će proći 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 B1 B0 B2 B1 B0 Broj bitova koji se mijenja 1 0 1 → 1 1 0 2 U trenutku kada dođe 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 012 BBB :

( )( )012012012 ,, BBBNINIBBBBBB ==

(napomena: 0B ne treba ostvarivati NI sklopom jer iz svakog bistabila imamo izlaz i

njegov komplement) trebamo sklop:

& &2B

1B

0B

Page 226: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

226 Zbirka riješenih zadataka

Ovaj sklop će za dekodiranje stanja 6 trebati još 2 tdls (jedan za NI sklop koji množi

2B , 1B i 0B , i jedan za završni invertor; tdls je vrijeme potrebno da rezultat prođe na

izlaz logičkog sklopa), pa će ukupno vrijeme potrebno za dekodiranje ovog stanja biti:

dlsdbdek ttt ⋅+⋅= 226

Pitanje je da li se to može obaviti i brže. Pogledajmo sva moguća stanja koja možemo dekodirati i koliko je to brzo moguće:

B2 B1 B0 B2 B1 B0 Broj bitova koji se

mijenja Vrijeme dekodiranja

stanja 1 1 1 → 0 0 0 3 dlsdbdek ttt ⋅+⋅= 230

0 0 0 → 0 0 1 1 dlsdbdek ttt ⋅+⋅= 211

0 0 1 → 0 1 0 2 dlsdbdek ttt ⋅+⋅= 222

0 1 0 → 0 1 1 1 dlsdbdek ttt ⋅+⋅= 213

0 1 1 → 1 0 0 3 dlsdbdek ttt ⋅+⋅= 234

1 0 0 → 1 0 1 1 dlsdbdek ttt ⋅+⋅= 215

1 0 1 → 1 1 0 2 dlsdbdek ttt ⋅+⋅= 226

1 1 0 → 1 1 1 1 dlsdbdek ttt ⋅+⋅= 217

Vidimo da su najbolji kandidati za dekodiranje stanja 1, 3, 5 i 7. Odlučimo li se za dekodiranje stanja 7, konačni sklop će izgledati:

J

K Q

Q

CP

J

K Q

Q

CP

J

K Q

Q

CP

1

CP

B0 B1 B2

& & m7

Page 227: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 227

11.2. Zadatak

Realizirati asinkrono brojilo sa 12 stanja uporabom dvostrukih JK bistabila. Pri tome se koristiti: a) Asinkronim ulazom za postavljanje, b) Asinkronim ulazom za brisanje. Odrediti potreban broj bistabila. Na raspolaganju su još i NI sklopovi. Ako je poznato da je tdls = 10 ns, tdb = 20 ns a točitanja = 20 ns, odrediti za svaki slučaj maksimalnu frekvenciju rada sklopa.

Ako brojilo mora proći kroz N stanja, mora vrijediti nN 2≤ , gdje je n broj bistabila. Ova jednadžba ima beskonačno mnogo rješenja, ali mi ćemo naravno uzeti najmanji mogući n koji je zadovoljava, pa je time rješenje jednoznačno. Za N=12 traženi n je 4, jer je upravo 16212 4 =≤ . 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 sljedećeg impulsa CP. No kako je stanje 15 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo kroz koja još stanja brojilo mora prolaziti:

15→0→1→2→3→4→5→6→7→8→9→10→11→12→13→14→15

12 stanja

postaviti u 15

Na prethodnom dijagramu vidimo kada treba djelovati na ulaze za postavljanje: kada brojilo dođe do broja 11 (što je zapravo N-1), brojilo je potrebno prebaciti u stanje 15. Stanje 11 ( 0123 BBBB ) može se potpuno dekodirati uporabom 4 ulazni NI sklopa. Sklop

je sljedeći:

Page 228: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

228 Zbirka riješenih zadataka

J

K Q

Q

CP

dS

dC

B0

J

K Q

Q

CP

dS

dC

B1

J

K Q

Q

CP

dS

dC

B2

J

K Q

Q

CP

dS

dC

B3

&

D0 D1 D2 D3

CP

1

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 početak ciklusa. Maksimalna frekvencija rada određena je većim od ta dva vremena.

B2 B2 B1 B0 B2 B2 B1 B0 Broj bitova koji se

mijenja 1 1 1 1 → 0 0 0 0 4 0 0 0 0 → 0 0 0 1 1 0 0 0 1 → 0 0 1 0 2 0 0 1 0 → 0 0 1 1 1 0 0 1 1 → 0 1 0 0 3 0 1 0 0 → 0 1 0 1 1 0 1 0 1 → 0 1 1 0 2 0 1 1 0 → 0 1 1 1 1 0 1 1 1 → 1 0 0 0 4 1 0 0 0 → 1 0 0 1 1 1 0 0 1 → 1 0 1 0 2 1 0 1 0 → 1 0 1 1 1 Najveći broj promjena bitova je 4, pa je najveće vrijeme potrebno za slijednu promjenu stanja u ciklusu brojanja (bez očitavanja) jednako 802044 =⋅=⋅ dbt ns. Ovaj dio

mogao se je riješiti i bez izrade tablice, obzirom da su kod ovog tipa brojila stanja "sve nula" i "sve jedan" sastavni i susjedni dijelovi ciklusa brojanja, tako da će maksimalno vrijeme ovdje biti određeno kao kašnjenje jednog bistabila puta broj bistabila u brojilu. Za izračun vremena potrebnog za povratak na početak ciklusa promotrimo zadnje stanje u ciklusu:

Page 229: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 229

B2 B2 B1 B0 B2 B2 B1 B0 Broj bitova koji se

mijenja 1 0 1 0 → 1 0 1 1 1

Na signal takta brojilo iz 1010 prelazi u 1011 za što je potrebno dbt⋅1 . Zatim nakon

vremena dlst⋅1 reagira sklop za detekciju stanja 11 i generira signal za postavljanje na

ulaze svih bistabila. Bistabili reagiraju paralelno i nakon još dbt⋅1 svi su u stanju 1 čime

je završena promjena. Ukupno vrijeme potrebno za ovu operaciju tada je 5010120212111 =⋅+⋅=⋅+⋅=⋅+⋅+⋅ dlsdbdbdlsdb ttttt ns. Ovaj račun donekle je

neprecizan jer novi impuls ne bi smio stići tako dugo dok je signal za postavljanje aktivan (pa bismo trebali sačekati još dlst⋅1 nakon što se svi bistabili postave tako da

logički NI sklop ukloni taj signal). Međutim, ovo vrijeme maskira se vremenom očitanja koje je puno duže, pa u ovom slučaju ne igra nikakvu ulogu. Veće od ova dva vremena je prvo, pa je maksimalna frekvencija rada sklopa određena recipročnom vrijednošću sume prvog vremena i vremena potrebnog za očitavanje stanja:

MHznsnsns

f 10100

1

2080

1max ==

+=

b) Uporaba asinkronog ulaza za brisanje. Kada se aktivira asinkroni ulaz za brisanje, brojilo prelazi u stanje "sve nule", tj. četiri-bitno brojilo prelazi u stanje 0000(2) = 0, što traje do sljedećeg impulsa CP. No kako je stanje 0 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo kroz koja još stanja brojilo mora prolaziti:

0→1→2→3→4→5→6→7→8→9→10→11→12→13→14→15→0

12 stanja

postaviti u 0

Na prethodnom dijagramu vidimo kada treba djelovati na ulaze za brisanje: kada brojilo dođe do broja 12 (što je zapravo N), brojilo je potrebno prebaciti u stanje 0. Stanje 12 može se potpuno dekodirati (4 ulazni I sklop). Međutim, u ovom slučaju (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 sljedeći:

Page 230: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

230 Zbirka riješenih zadataka

J

K Q

Q

CP

dS

dC

B0

J

K Q

Q

CP

dS

dC

B1

J

K Q

Q

CP

dS

dC

B2

J

K Q

Q

CP

dS

dC

B3

&

CP

1

D0 D1 D2 D3

Analiziramo li malo bolje ovaj sklop, uočiti ćemo da bi sklop mogao imati problema u radu. Naime, u trenutku kada sklop dođe u stanje 12, aktivira se ulaz za brisanje. No kako bistabili općenito nisu identični, moguće je da npr. bistabil B3 ode u nulu puno prije bistabila B2. No čim B3 ode u nulu, stanje više nije 12 (1100(2)), već 4 (0100(2)). Zbog toga sklop za detekciju stanja 12 prestaje biti aktivan te je moguće da bistabil B2 ostane i dalje postavljen, jer je signal za reset trajao prekratko. Kako bi se ovo izbjeglo, može 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:

J

K Q

Q

CP

dS

dC

B0

J

K Q

Q

CP

dS

dC

B1

J

K Q

Q

CP

dS

dC

B2

J

K Q

Q

CP

dS

dC

B3

&

CP

1

D0 D1 D2 D3

&

&&Q

QR

S

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).

Page 231: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 231

Vremenska analiza (bez pomoćnog bistabila) Ukoliko je zadovoljen zahtjev o minimalnom broju bistabila, tada će i u ovom slučaju postojati prijelaz u kojem svi bistabili mijenjaju stanje. To znači da je najveće vrijeme potrebno za slijednu promjenu stanja u ciklusu brojanja (bez očitavanja) jednako

802044 =⋅=⋅ dbt ns (jer imamo 4 bistabila).

Za izračun vremena potrebnog za povratak na početak ciklusa promotrimo zadnje stanje u ciklusu:

B2 B2 B1 B0 B2 B2 B1 B0 Broj bitova koji se

mijenja 1 0 1 1 → 1 1 0 0 3 Na signal takta brojilo iz 1011 prelazi u 1100 za što je potrebno dbt⋅3 . Zatim nakon

vremena dlst⋅1 reagira sklop za detekciju stanja 12 i generira signal za postavljanje na

ulaze svih bistabila. Bistabili reagiraju paralelno i nakon još dbt⋅1 svi su u stanju 0 čime

je završena promjena. Ukupno vrijeme potrebno za ovu operaciju tada je 9010120414113 =⋅+⋅=⋅+⋅=⋅+⋅+⋅ dlsdbdbdlsdb ttttt ns.

Veće od ova dva vremena je drugo, pa je maksimalna frekvencija rada sklopa određena recipročnom vrijednošću sume drugog vremena i vremena potrebnog za očitavanje stanja:

MHznsnsns

f 09,9110

1

2090

1max ==

+=

Analiza vremena uz pomoćni bistabil Ova analiza nešto je složenija od prethodnog slučaja. Prvo vrijeme je isto ( 802044 =⋅=⋅ dbt ns). Dodajmo tome odmah i vrijeme očitavanja pa za prvi slučaj

imamo 1002080 =+ ns. Izračun vremena potrebnog za povratak na početak ciklusa je nešto kompliciranije. Promotrimo situaciju kada je brojilo u stanju 11. Na padajući brid CPa (od tog trenutka mjerimo vrijeme) brojilo nakon dbt⋅3 prelazi u stanje 12. Nakon

dlst⋅1 reagira sklop za detekciju stanja 12 i generira signal za reset pomoćnog bistabila.

Za reset pomoćnog bistabila potrebno je dlst⋅2 . Sada je izlaz pomoćnog bistabila 0 pa

se paralelno resetiraju svi bistabili brojila. Za što je potrebno još dbt⋅1 . Označimo ovaj

trenutak oznakon tx. Za vrijeme tx temeljem prethodnog razmatranja vrijedi:

dlsdbdbdlsdlsdbx ttttttt ⋅+⋅=⋅+⋅+⋅+⋅= 341213 . Tek sada CP smije otići u 1, čime će se

na izlazu invertora nakon dlst⋅1 pojaviti 0 koja će još nakon dlst⋅1 postaviti pomoćni

bistabil u 1 (ovime će se prestati djelovati na asinkrone ulaze za brisanje i brojilo će biti spremno za novi impuls CPa). Uočimo da je tx zapravo vrijeme od padajućeg brida CPa pa do pojave rastućeg brida CPa. Ako je signal CP simetričan, tada će minimalno trajanje periode CPa biti xt⋅2 , ako je vrijeme očitavanja (koje također smije započeti

tek nakon tx) manje od tx. U suprotnom (točitanja > tx) će perioda CPa biti TCP=tx+točitanja. U našem konkretnom slučaju 11010320434 =⋅+⋅=⋅+⋅= dlsdbx ttt ns, što je puno

Page 232: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

232 Zbirka riješenih zadataka

veće od točitanja. Zbog toga uzimamo 22011022 =⋅=⋅= xCP tT ns, što je definitivno

najveće dobiveno vrijeme koje zbog toga određuje maksimalnu frekvenciju sklopa:

MHznsT

fCP

55,4220

11max ===

Treba međutim primjetiti da ovo ipak nije najveća moguća frekvencija rada sklopa. Naime, da bi CP postavio pomoćni bistabil u 1, njemu treba dlst⋅1 (za prolaz kroz

invertor) i dlst⋅1 za postavljanje izlaza pomoćnog bistabila u 1, što je ukupno dlst⋅2 . No

tada bi (teoretski) CP mogao preći u 1 čak i u trenutku dlsx tt ⋅− 2 (jer će se bistabili

brojila u trenutku tx resetirati, pa se pomoćni bistabil smije postaviti u 1 već u trenutku tx). Ovime bi se možda mogla povećati maksimalna frekvencija rada, međutim, ovakav proračun vrijedi uz pretpostavku da će se svi bistabili resetirati upravo nakon dbt⋅1 . No

pomoćni bistabil smo i uveli jer nismo mogli garantirati da će ovo biti uvijek ispunjeno, pa na ovaj način nećemo raditi. Dodatak zadatku: smijemo li prilikom uporabe brojila koji broji unaprijed dekodirati samo jedinice u svrhu resetiranja brojila? Pogledajmo slučaj koji smo imali u b) dijelu zadatka, i minimizirajmo sklop za dekodiranje stanja 12. Brojilo u ovom slučaju broji: 0→1→...→9→10→11→(12→)0. Ovo znači da se stanja 13, 14 i 15 nikada neće pojaviti, pa ih možemo označiti kao dont-care minterme. Postupak minimizacije daje:

D3D2 00 01 11 10

D1D0 00 0 0 1 0

01 0 0 × 0 11 0 0 × 0

10 0 0 × 0

23DD

čime su upravo izbačeni oni članovi koji su bili nula. No to vrijedi upravo zato što dekodiramo najveći dozvoljeni broj. Ako bismo željeli dekodirati stanja u svrhu postavljanja brojila u stanje "sve jedan", ovakvo razmišljanje ne bi vrijedilo (npr. a) dio zadatka; dekodiramo 11, ali brojilo prelazi u 15 pa nije istina da su sva stanja veća od 11 dont-care stanja). Za vježbu: Nacrtati vremenske dijagrame za a) i b) dijelove zadatka.

Page 233: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 233

11.3. Zadatak Realizirati sinkrono trobitno binarno brojilo uporabom dvostrukih JK bistabila.

J

K Q

Q

CP

B0 J

K Q

Q

CP

B1 J

K Q

Q

CP

B2

CP1

D0 D1 D2

&

11.4. Zadatak

Realizirati sinkrono trobitno binarno brojilo koje broji u Grayevom kodu uporabom dvostrukih JK bistabila, i potrebnog broja osnovnih logičkih sklopova.

Napišimo tablicu promjene stanja u upišimo potrebne pobude bistabila:

n n+1 Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 0 0 1 0 × 0 × 1 × 0 0 1 0 1 1 0 × 1 × × 0 0 1 1 0 1 0 0 × × 0 × 1 0 1 0 1 1 0 1 × × 0 0 × 1 1 0 1 1 1 × 0 × 0 1 × 1 1 1 1 0 1 × 0 × 1 × 0 1 0 1 1 0 0 × 0 0 × × 1 1 0 0 0 0 0 × 1 0 × 0 ×

Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju:

J2 Q1Q0 00 01 11 10

Q2 0 1 1 × × × ×

K2 Q1Q0 00 01 11 10

Q2 0 × × × × 1 1

Page 234: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

234 Zbirka riješenih zadataka

J1 Q1Q0 00 01 11 10

Q2 0 1 × × 1 × ×

K1 Q1Q0 00 01 11 10

Q2 0 × × 1 × × 1

J0 Q1Q0 00 01 11 10

Q2 0 1 × × 1 × × 1

K0 Q1Q0 00 01 11 10

Q2 0 × 1 × 1 × 1 ×

12120

12120

021

021

012

012

QQQQK

QQQQJ

QQK

QQJ

QQK

QQJ

+=+=

==

==

J

K Q

Q

CP

J

K Q

Q

CP

& J

K Q

Q

CP

&

CP

D0 D1 D2

B0B1 B2

&&

1≥

1≥

&

&

&

&

11.5. Zadatak Realizirati sinkrono trobitno brojilo uporabom dvostrukih JK bistabila, i potrebnog broja osnovnih logičkih sklopova, koje prolazi kroz stanja: 0→4→1→5→7→0. Osigurati siguran start brojila (tako da se nespecificirana stanja prebace u 0).

Napišimo tablicu prijelaza zajedno sa odgovarajućom pobudom bistabila:

Page 235: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 235

n n+1 Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 1 0 0 1 × 0 × 0 × 0 0 1 1 0 1 1 × 0 × × 0 0 1 0 0 0 0 0 × × 1 0 × 0 1 1 0 0 0 0 × × 1 × 1 1 0 0 0 0 1 × 1 0 × 1 × 1 0 1 1 1 1 × 0 1 × × 0 1 1 0 0 0 0 × 1 × 1 0 × 1 1 1 0 0 0 × 1 × 1 × 1

Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju:

J2 Q1Q0 00 01 11 10

Q2 0 1 1 1 × × × ×

K2 Q1Q0 00 01 11 10

Q2 0 × × × × 1 1 1 1

J1 Q1Q0 00 01 11 10

Q2 0 × × 1 1 × ×

K1 Q1Q0 00 01 11 10

Q2 0 × × 1 1 1 × × 1 1

J0 Q1Q0 00 01 11 10

Q2 0 × × 1 1 × ×

K0 Q1Q0 00 01 11 10

Q2 0 × 1 × 1 × 1 ×

10

120

1

021

012

12

1

QK

QQJ

K

QQJ

QQK

QJ

====

+=

=

Shema sklopa:

Page 236: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

236 Zbirka riješenih zadataka

J

K Q

Q

CP

J

K Q

Q

CP

J

K Q

Q

CP

CP

D0 D1 D2

1≥

&

1

&B0

B1 B2

11.6. Zadatak Realizirati sinkrono trobitno brojilo uporabom dvostrukih JK bistabila, i potrebnog broja osnovnih logičkih sklopova, koje prolazi kroz stanja: 0→4→1→5→7→0. Nije potrebno osigurati siguran start brojila. Provjeriti da li će tako realizirano brojilo raditi ispravno.

Napišimo tablicu prijelaza zajedno sa odgovarajućom pobudom bistabila:

n n+1 Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 1 0 0 1 × 0 × 0 × 0 0 1 1 0 1 1 × 0 × × 0 0 1 0 × × × × × × × × × 0 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

Napomena: prijelazi za stanja 2, 3 i 6 nisu zadani pa su u tablici označeni kao dont-care. Zbog toga je i odgovarajuća pobuda označena s dont-care. Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju:

J2 Q1Q0 00 01 11 10

Q2 0 1 1 × × 1 × × × ×

K2 Q1Q0 00 01 11 10

Q2 0 × × × × 1 1 1 ×

Page 237: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 237

J1 Q1Q0 00 01 11 10

Q2 0 × × 1 1 × ×

K1 Q1Q0 00 01 11 10

Q2 0 × × × × 1 × × 1 ×

J0 Q1Q0 00 01 11 10

Q2 0 × × × 1 1 × × ×

K0 Q1Q0 00 01 11 10

Q2 0 × × × 1 × 1 ×

Shema sklopa:

J

K Q

Q

CP

J

K Q

Q

CP

J

K Q

Q

CP

CP

D0 D1 D2

1≥

&

1

1

Provjera rada za nespecificirana stanja: Ako je sklop u stanju 2: 010012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=0 i K0=1, zbog čega

će nakon djelovanja impulsa takta brojilo promijeniti stanje u 100012 =QQQ , što je

stanje 4. Ako je sklop u stanju 3: 011012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=0 i K0=1, zbog čega

će nakon djelovanja impulsa takta brojilo promijeniti stanje u 100012 =QQQ , što je

stanje 4. Ako je sklop u stanju 6: 110012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=1 i K0=1, zbog čega

će nakon djelovanja impulsa takta brojilo promijeniti stanje u 001012 =QQQ , što je

stanje 1. Dakle, i ovako realiziran sklop će nakon prvog koraka sigurno ući u ciklus brojenja. Moguće loša stvar je činjenica da je ulazak u ciklus brojenja iz nespecificiranih stanja na različita mjesta.

Page 238: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

238 Zbirka riješenih zadataka

11.7. Zadatak Projektirati trobitno asinkrono brojilo koje broji u ciklusu sa 7 stanja. Analizirati da li sklop radi ispravno i predložiti rješenje uočenog 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:

T

Q

Q

CPB0

T

Q

Q

CPB1

T

Q

Q

CPB2

11 1

D0 D1D2

ulaz

dS dS dS

&

Analizirajmo sada rad sklopa (sljedeća slika). Pretpostavimo da su u jednom trenutku svi bistabili postavljeni u 0, pa se brojilo nalazi u stanju 0. Nailaskom padajućeg brida ulaznog impulsa pokreće se promjena stanja bistabila B0. Međutim, ta se promjena događa tek nakon vremena kašnjenja bistabila (tdb), tako da je sve do isteka vremena kašnjenja bistabila brojilo još uvijek u stanju 0. Nakon vremena kašnjenja bistabila bistabil mijenja stanje i brojilo prelazi u stanje 1. Kako se je na izlazu B0 (ulazu B1) dogodio rastući brid, bistabil B1 ne reagira i došli smo u stabilno stanje. Nailaskom sljedećeg padajućeg brida na ulazu brojila opet se pokreće promjena stanja bistabila B0, koja se i dogodi nakon tdb, pa brojilo iz stanja 1 ulazi u stanje 0. No kako se je sada uslijed pada izlaza B0 sa 1 na 0 dogodio padajući brid, pokreće se promjena stanja bistabila B1, koja se dogodi nakon još jednog tdb. Time brojilo iz kratkotrajnog prijelaznog stanja 0 prelazi u stanje 2. Kako se je u tom trenutku na izlazu B1 dogodio rastući brid, nema nikakvog utjecaja na bistabil B2 pa je ovo stabilno stanje. Na sličan se način mogu analizirati i ostala stanja. Pogledajmo sada još kakav je odziv logičkog sklopa za detekciju stanja 6. Neka se brojilo nalazi u stanju 5. Nailaskom padajućeg brida na ulazu brojila pokreće se promjena stanja B0, koja se dogodi nakon tdb. Time brojilo dolazi u stanje 4. No budući da se je bistabil B0 prešao iz stanja 1 u stanje 0 (tj. dogodio se je padajući brid), reagira i bistabil B1 koji nakon još jednog tdb mijenja stanje u 1, čime brojilo iz prijelaznog stanja

Page 239: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 239

4 prelazi u stanje 6. No sada će na stanje 6 reagirati sklop za detekciju stanja 6, i nakon vremena kašnjenja logičkog sklopa (tdls) na izlazu će se pojaviti logička 0 koja se dovodi na ulaze za postavljanje bistabila. Bistabili će svi reagirati nakon vremena kašnjenja bistabila, i ući u stanje 7. Ovo će rezultirati nestankom stanja 6 koje detektira logički sklop pa će se nakon vremena kašnjenja logičkog sklopa na njegovom izlazu ponovno pojaviti neaktivno stanje. Time je završen nasilan prekid ciklusa brojanja. Prema dosadašnjoj analizi čini se da će ovo brojilo raditi bez problema, kao što je to prikazano na vremenskom dijagramu.

01 2 3 54 6 7 0 1 2 3

CP

Q0

Q1

Q2

R

6 4

0 02 4 0

Međutim, nastavimo analizu dalje. Brojilo je u stanju 7. Na sljedeći padajući brid signala na ulazu sklopa nakon 1 tdb prvi bistabil mijenja stanje, i dolazi u prijelazno stanje 110(2)≡6. No baš to stanje očitava i NI sklop, koji zatim generira impuls za postavljanje bistabila u stanje 7! Brojilo nikada više neće izaći iz stanja 7. Zapravo, kako zabranjeno stanje 6 traje točno tdb, a vrijeme potrebno za postavljanje bistabila također smo modelirali sa tdb, moguća je još gora situacija – bistabili se ponekad mogu postaviti, a ponekad mogu i ne reagirati na signal, pa dobijemo stohastičko ponašanje. Postoji više načina kako riješiti ovaj problem. U nastavku će biti opisana dva. Prvi način rješavanja problema je dovođenje dodatnog signala X na NI sklop, pri čemu je signal X definiran na sljedeći način: X je 0 od trenutka padajućeg brida (označimo to vrijeme sa tp) ulaznog signala minus vrijeme kašnjenja logičkog sklopa, dakle od tp-tdls, pa do trenutka dok ne završe sve prijelazne pojave unutar brojila plus vrijeme kašnjenja logičkog sklopa: tp+3*tdb+tdls, dok je u svim ostalim trenucima 1. Evo kako ovo rješava problem. U trenutku kada započnu prijelazne pojave signal X postaje 0. Zbog toga u trenutku kada brojilo iz stanja 7 uđe u prijelazno stanje 6 sklop za

CP

X

t

t

Maskiranje prijelaznih pojava

Page 240: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

240 Zbirka riješenih zadataka

detekciju stanja 6 neće reagirati jer ga signal X inhibira. Tek kada završe sve prijelazne pojave, X će postati 1 i tada će sklop NI moći reagirati. Međutim, kako smo sada u stabilnom stanju 0, sklop neće reagirati, i problem je riješen. Negativna posljedica ovakvog rješenja 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 značajno duljim ostankom u nedozvoljenom stanju 6. Alternativa prethodnom rješenju 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 ponašajnim VHDL-om.

Sklop 74LS163 jest asinkrono 4-bitno brojilo, čije je sučelje prikazano na slici.

• LD (load) i CLR (clear) djeluju sinkrono • Aktivan LD tijekom rastućeg brida signala takta učitava stanje

brojila s ulaza ABCD. • Aktivan CLR tijekom rastućeg brida signala takta briše brojilo (tj.

upisuje sve nule) • CLR nadjačava LD • LD nadjačava ENP i ENT • Ako je ENT=1 i ENP=1 brojilo se inkrementira • RCO = QD⋅QC⋅QB⋅QA⋅ENT, koristi se za kaskadiranje čipova

library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; ENTITY C74LS163 IS PORT ( CLK, CLR, LD : IN STD_LOGIC; ENP, ENT : IN STD_LOGIC; D : IN UNSIGNED (3 DOWNTO 0); Q : OUT UNSIGNED (3 DOWNTO 0); RCO : OUT STD_LOGIC ); END C74LS163; ARCHITECTURE C74LS163_ARCH OF C74LS163 IS SIGNAL IQ : UNSIGNED (3 DOWNTO 0); BEGIN PROCESS (CLK, ENT, IQ) BEGIN IF (CLK'event AND CLK='1') THEN IF CLR='0' THEN IQ <= "0000"; ELSIF LD='0' THEN IQ <= D; ELSIF (ENT='1' AND ENP='1') THEN

Page 241: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 241

IQ <= IQ +1; END IF; END IF ; IF (IQ=15) AND (ENT='1') THEN RCO <='1'; ELSE RCO <= '0'; END IF; Q <= IQ; END PROCESS; END C74LS163_ARCH;

11.9. Zadatak

Uporabom SR bistabila projektirati 4-bitno prstenasto brojilo. Nacrtati potpuni dijagram prijelaza stanja. Da li je to brojilo sa sigurnim startom?

Četiribitno prstenasto brojilo je brojilo koje broji u sljedećem ciklusu: … → 1000 → 0100 → 0010 → 0001 → 1000 → … Karakteristika brojila je ciklus brojanja kroz n stanja, pri čemu je za realizaciju potrošeno n bistabila.

Trenutno stanje Sljedeće stanje Potrebna pobuda Q0 Q1 Q2 Q3 Q0 Q1 Q2 Q3 S0 R0 S1 R1 S2 R2 S3 R3 0 0 0 0 × × × × × × × × × × × × 0 0 0 1 1 0 0 0 1 0 0 × 0 × 0 1 0 0 1 0 0 0 0 1 0 × 0 × 0 1 1 0 0 0 1 1 × × × × × × × × × × × × 0 1 0 0 0 0 1 0 0 × 0 1 1 0 0 × 0 1 0 1 × × × × × × × × × × × × 0 1 1 0 × × × × × × × × × × × × 0 1 1 1 × × × × × × × × × × × × 1 0 0 0 0 1 0 0 0 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 × × × × × × × × × × × ×

Minimizacijom slijedi:

23 QS = , 23 QR =

12 QS = , 12 QR =

01 QS = , 01 QR =

30 QS = , 30 QR =

Page 242: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

242 Zbirka riješenih zadataka

Sklop koji je definiran ovim izrazima prikazan je na sljedećoj slici.

Q

Q

Q

Q

Q

Q

Q

Q

Analizom projektiranog sklopa dolazi se do sljedećeg potpunog dijagrama prijelaza stanja:

Prilikom dekodiranja stanja Q3 je promatran kao bit najveće, a Q0 kao bit najmanje težine. Iz dijagrama je vidljivo da ovo nije sklop sa sigurnim startom.

11.10. Zadatak Uporabom SR bistabila projektirati 4-bitno Johnsonovo brojilo. Nacrtati potpuni dijagram prijelaza stanja. Da li je to brojilo sa sigurnim startom?

Četiribitno Johnsonovo brojilo je brojilo koje broji u sljedećem ciklusu: … → 0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000 → … Karakteristika brojila je ciklus brojanja kroz 2⋅n stanja, pri čemu je za realizaciju potrošeno n bistabila.

Page 243: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Brojila. 243

Trenutno stanje Sljedeće stanje Potrebna pobuda

Q0 Q1 Q2 Q3 Q0 Q1 Q2 Q3 S0 R0 S1 R1 S2 R2 S3 R3 0 0 0 0 1 0 0 0 1 0 0 × 0 × 0 × 0 0 0 1 0 0 0 0 0 × 0 × 0 × 0 1 0 0 1 0 × × × × × × × × × × × × 0 0 1 1 0 0 0 1 0 × 0 × 0 1 × 0 0 1 0 0 × × × × × × × × × × × × 0 1 0 1 × × × × × × × × × × × × 0 1 1 0 × × × × × × × × × × × × 0 1 1 1 0 0 1 1 0 × 0 1 × 0 × 0 1 0 0 0 1 1 0 0 × 0 1 0 0 × 0 × 1 0 0 1 × × × × × × × × × × × × 1 0 1 0 × × × × × × × × × × × × 1 0 1 1 × × × × × × × × × × × × 1 1 0 0 1 1 1 0 × 0 × 0 1 0 0 × 1 1 0 1 × × × × × × × × × × × × 1 1 1 0 1 1 1 1 × 0 × 0 × 0 1 0 1 1 1 1 0 1 1 1 0 1 × 0 × 0 × 0

Minimizacijom slijedi:

23 QS = , 23 QR =

12 QS = , 12 QR =

01 QS = , 01 QR =

30 QS = , 30 QR =

Sklop koji je definiran ovim izrazima prikazan je na sljedećoj slici.

Q

Q

Q

Q

Q

Q

Q

Q

Zbog specifične realizacije, sklop je poznat i pod nazivom brojilo s ukrštenim prstenom. Analizom projektiranog sklopa dolazi se do sljedećeg potpunog dijagrama prijelaza stanja:

Page 244: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

244 Zbirka riješenih zadataka

Prilikom dekodiranja stanja Q3 je promatran kao bit najveće, a Q0 kao bit najmanje težine. Iz dijagrama je vidljivo da ovo nije sklop sa sigurnim startom. ZADACI ZA VJEŽBU

1. Nacrtati 4 bitno asinkrono binarno brojilo unatrag izvedeno JK bistabilima. Ako je period signala koji se broji 100 ns, a kašnjenje bistabila 20 ns, nacrtati vremenski dijagram svih signala prilikom promjene stanja brojila iz 4 u 3.

2. Na raspolaganju su 2 D i 1 JK bistabil. Projektirati njihovom uporabom (i minimalnim brojem osnovnih logičkih sklopova) sinkrono brojilo koje broji u ciklusu 0 → 5 → 2 → 7 → 4 → 0. Da li je dobiveni sklop sklop sa sigurnim startom? Nacrtati potpuni dijagram prijelaza stanja. Prilikom rješavanja koristiti JK bistabil za pamćenje bita najmanje težine.

3. Na raspolaganju je 3 T bistabila i minimalni potreban broj osnovnih logičkih sklopova. Projektirati sinkroni sklop čiji je izlaz 2-bitni broj koji se mijenja u ciklusu: 0→1→2→3→2→1.

4. Brojilo je prikazano slikom. Nacrtati potpuni dijagram prijelaza stanja brojila. Da li je to brojilo sa sigurnim startom? Ako je poznato: tdb = 20 ns, tsetup = 20 ns, tdls = 10 ns, kolika je maksimalna frekvencija signala CP? Da li ovaj sklop pripada sinkronim ili asinkronim sklopovima?

Q

Q

Q

Q

Q

Q1≥

Page 245: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 245

12. Strojevi s konačnim brojem stanja.

12.1. Zadatak Uporabom potrebnog broja D bistabila i osnovnih logičkih sklopova projektirati Mooreov automat koji određuje da li je suma pristiglih binarnih znamenki djeljiva s 3.

Kod Mooreovog automata prijelaz u novo stanje funkcija je trenutnog stanja i pristiglog znaka, a izlaz samo funkcija trenutnog stanja. Grafički je automat prikazan na slici. Dijagram treba čitati na sljedeći način: 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. Najprije treba odrediti koliko nam bistabila treba za realizaciju ovog automata. Budući da imamo 3 stanja, trebamo ( n23 ≤ ) 2 bistabila. Zatim treba odrediti na koji ćemo način kodirati stanja. Ovo se može obaviti na više načina. Jedan mogući odabir je:

Kodirano stanje Stanje Q1 Q0

S0 1 1 S1 0 1 S2 1 0

Zatim napišemo tablicu prijelaza stanja. Sa I ćemo označiti znak koji je pristigao na ulaz automata.

Korak n Korak n+1 Izlaz Pobuda Q1 Q0 I0 Q1 Q0 Y D1 D0 0 0 0 × × × × × 0 0 1 × × × × × 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1

Očitavamo i minimiziramo Y kao funkciju od Q1 i Q0 u koraku n, a D1 i D0 kao funkciju od Q1, Q0 i I u koraku n.

S0[1]

S1[0]

S2[0]

0 0 0

11

1

Page 246: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

246 Zbirka riješenih zadataka

Y Q0I 00 01 11 10

Q1 0 × × 1 1 1

D1 Q0I 00 01 11 10

Q1 0 × × 1 1 1 1 1

D0 Q0I 00 01 11 10

Q1 0 × × 1 1 1 1 1

Nakon minimizacije dobije se:

01QQY =

IQIQQD ⋅+⋅+= 1101

IQIQD ⋅+⋅= 010

Napomena: Y se može očitati i kao funkciju od Q1, Q0 i I u koraku n; međutim, nakon minimizacije član I ne smije se pojaviti u izrazu za Y (ako se doista radi o Mooreovom automatu). Sklop tada izgleda:

&

&1≥ D

Q

Q

CP

B1D

Q

Q

CP

B0

&

&1≥

1

&

CP

I

Y

Page 247: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 247

12.2. Zadatak

Na slici je prikazan sklop koji očitava pritisak na jednostavnu tipkovnicu sastavljenu od triju tipaka. U ovisnosti o pritisnutoj tipki, izlaz sklopa određen je tablicom i traje tako dugo dok je tipka pritisnuta. Pretpostaviti da se ne može dogoditi situacija da više tipaka bude pritisnuto istovremeno, te da nakon svakog pritiska tipke slijedi period u kojem niti jedna tipka nije pritisnuta. Izlazi sklopa mijenjaju se u skladu sa signalom takta.

I1 I0 Značenje 0 0 Pritisnuta je tipka A 0 1 Pritisnuta je tipka B 1 0 Pritisnuta je tipka C 1 1 Nije pritisnuta niti jedna tipka

Uporabom potrebnog broja JK bistabila konstruirati Mealyjev automat koji će u trajanju od jednog impulsa takta na izlazu generirati dva signala kod svakog pritiska tipke: kod tipke (O) i signal da je pritisnuta nova tipka (KA). Primjer željenog ponašanja prikazan je na slici.

Principijelna shema sklopa prikazana je na slici:

Čitačtipkovnice

Kombinacijski dio

Sekvencijski dio

Izlazniregistar

I1

I0

O1

O0

KA

CP

Mealyjev automat na temelju trenutnih ulaza i trenutnog stanja određuje novo stanje u koje će prijeći i izlaz koji će se generirati. Budući 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 obično prikazuje dijagramom prijelaza stanja. Automat koji ostvaruje prethodno zadanu funkciju prikazan je na sljedećoj slici. Početno stanje označeno je sa S0 (koje označava da niti jedna tipka još nije pritisnuta). Automat može mijenjati stanje

Čitačtipkovnice

I1

I0

CP

O1O0

I1I0

t

t

t

t

KA

11 1101

01

10

10

Page 248: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

248 Zbirka riješenih zadataka

na svaki otkucaj signala takta. Ako u stanju S0 dođe sa ulaza kombinacija 11, automat ostaje u stanju S0, na izlaze O1O0 postavlja 00, a na KA također 0. Ako sa ulaza dođe kod 00, znači da je upravo pritisnuta tipka A, pa se sa sljedećim otkucajem signala takta prelazi u stanje S1 a na izlaze O1O0 postavlja 00 (kôd pritisnute tipke). Na izlaz KA postavlja se 1, što znači da je pritisnuta tipka. Ukoliko se tipka odmah otpusti, nailaskom sljedećeg impulsa takta automat se vraća u stanje S0 i poništava izlaze, dok u slučaju da tipka ostane pritisnuta duže vrijeme prelazi u stanje S2 pri čemu se također poništavaju izlazi i u tom stanju se čeka otpuštanje tipke.

S0 S1

S2

00/00,1

01/01,1

10/10,1

11/00,0

11/00,0

11/00,000,01,10/00,0

00,01,10/00,0 I1I0/O1O0,KA

Jednom kada smo opisali automat možemo krenuti u postupak realiziranja istoga. Koraci su sljedeći.

1. Odrediti potreban broj i vrstu bistabila. 2. Kodirati stanja. Kompleksnost kombinacijskog dijela ovisiti će o načinu na koji

kodiramo stanja. 3. Napisati tablicu u kojoj se prikaže kako novo stanje i izlazi automata ovise o

trenutnom stanju i trenutnim ulazima. 4. Proširiti 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.

Budući da imamo tri stanja, dovoljna su nam dva bistabila. Koristiti ćemo JK bistabile, a stanja ćemo kodirati na sljedeći način: S0≡00, S1≡01, S2≡10. Prisjetimo se još i dijagrama promjene stanja JK bistabila:

Page 249: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 249

0 10x

10,11

01,11

x0

J,K

Tablica promjene stanja automata i potrebni JK ulazi su:

Trenutno stanje i pobuda

Sljedeće stanje

Sljedeći izlazi Potrebna pobuda

bistabila Q1 Q0 I1 I0 Q1 Q0 O1 O0 KA J1 K1 J0 K0 0 0 0 0 0 1 0 0 1 0 x 1 x 0 0 0 1 0 1 0 1 1 0 x 1 x 0 0 1 0 0 1 1 0 1 0 x 1 x 0 0 1 1 0 0 0 0 0 0 x 0 x 0 1 0 0 1 0 0 0 0 1 x x 1 0 1 0 1 1 0 0 0 0 1 x x 1 0 1 1 0 1 0 0 0 0 1 x x 1 0 1 1 1 0 0 0 0 0 0 x x 1 1 0 0 0 1 0 0 0 0 x 0 0 x 1 0 0 1 1 0 0 0 0 x 0 0 x 1 0 1 0 1 0 0 0 0 x 0 0 x 1 0 1 1 0 0 0 0 0 x 1 0 x 1 1 0 0 x x x x x x x x x 1 1 0 1 x x x x x x x x x 1 1 1 0 x x x x x x x x x 1 1 1 1 x x x x x x x x x

Uočimo još jednom da su izlazi i potrebne pobude bistabila funkcije od četiri varijable: trenutnih stanja i ulaza. Nakon minimizacije funkcija i faktorizacije dobiva se:

01011 IIQQO =

01010 IIQQO =

( )0101 IIQQKA +=

( )0101 IIQJ +=

011 IIK =

( )0110 IIQJ +=

10 =K

Sklop koji ostvaruje zadani automat:

Page 250: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

250 Zbirka riješenih zadataka

J

K Q

Q

CP

J

K Q

Q

CP

Čitačtipkovnice

I1

I0

1

1

1≥

&

&

&

1

B0B1

D0 0Q

CP

D1

D2

1Q

2Q

&

&

&

O1

O0

KA

CP

12.3. Zadatak Na slici je prikazan sklop koji očitava pritisak na jednostavnu tipkovnicu sastavljenu od triju tipaka. U ovisnosti o pritisnutoj tipki, izlaz sklopa određen je tablicom i traje tako dugo dok je tipka pritisnuta. Pretpostaviti da se ne može dogoditi situacija da više tipaka bude pritisnuto istovremeno, te da nakon svakog pritiska tipke slijedi period u kojem niti jedna tipka nije pritisnuta. Izlazi sklopa mijenjaju se u skladu sa signalom takta.

I1 I0 Značenje 0 0 Pritisnuta je tipka A 0 1 Pritisnuta je tipka B 1 0 Pritisnuta je tipka C 1 1 Nije pritisnuta niti jedna tipka

Uporabom potrebnog broja JK bistabila konstruirati Mooreov automat koji će u trajanju od jednog impulsa takta na izlazu generirati dva signala kod svakog pritiska tipke: kod tipke (O) i signal da je pritisnuta nova tipka (KA). Komentirati razliku u odnosu na istovjetan Mealyjev automat iz prethodnog zadatka.

Principijelna shema sklopa prikazana je na sljedećoj slici. Kod Mooreovog automata novo stanje određuje se na temelju trenutnog stanja i pobude, dok su izlazi određeni isključivo trenutnim stanjem (a ne i trenutnim ulazima, kao kod Mealyjevog automata). Kao što ćemo vidjeti, ovo će rezultirati automatom s većim brojem stanja u odnosu na Mealyjev automat iste funkcije. Međutim, budući da je izlaz isključivo funkcija trenutnog stanja, ne treba nam izlazni registar za pamćenje izlaza, budući da asinkrona promjena ulaza nema utjecaja na izlaze.

Čitačtipkovnice

I1

I0

Page 251: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 251

Čitačtipkovnice

Kombinacijski dio

Sekvencijski dio

I1

I0

O1O0KA

CP

Kombinacijskidio

Mooreov automat koji obavlja zadanu funkciju prikazan je na slici:

S0[00,0]

S2[01,1]

S1[00,1]

S3[10,1]

S4[00,0]

11

11

11

11

110001 10

00,01,10

I1I0

[O1O0,KA]

00,01,1000,01,10

00, 01,

10

Početno stanje je S0. U tom stanju čeka se na pritisak bilo koje tipke. Ukoliko se pritisne tipka A (kôd 00) ide se u stanje S1 i postavlja odgovarajući izlaz, ukoliko se pritisne tipka B (kôd 01) ide se u stanje S2 i postavlja odgovarajući izlaz a ako se pritisne tipka C (kôd 10) ide se u stanje S3 i postavlja odgovarajući izlaz. Na sljedeći impuls takta odmah se prelazi ili u stanje S0 ili u stanje S4 gdje se čeka na otpuštanje tipke. Usporedimo li ovaj Mooreov automat sa prethodnim Mealyjevim, vidimo da je osnovna razlika u opisivanju ponašanja 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 odgovarajući izlaz. Mooreov automat izlaz veže isključivo uz stanje, pa za svaku tipku mora generirati novo stanje sa odgovarajućim izlazom. Postupak realizacije sklopa isti je kao i kod Mealyjevog automata. Najprije određujemo potreban broj bistabila. Kako imamo 5 stanja, trebamo minimalno 3 bistabila. Zatim kodiramo stanja. Npr.:

Page 252: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

252 Zbirka riješenih zadataka

S0≡000, S1≡001, S2≡010, S3≡011, S4≡100. Konačno generiramo tablicu prijelaza stanja uz odgovarajuću pobudu bistabila:

Trenutno stanje i pobuda Sljedeće stanje Izlazi za

trenutno stanju Potrebna pobuda bistabila

Q2 Q1 Q0 I1 I0 Q2 Q1 Q0 O1 O0 KA J2 K2 J1 K1 J0 K0 0 0 0 0 0 0 0 1 0 0 0 0 x 0 x 1 x 0 0 0 0 1 0 1 0 0 0 0 0 x 1 x 0 x 0 0 0 1 0 0 1 1 0 0 0 0 x 1 x 1 x 0 0 0 1 1 0 0 0 0 0 0 0 x 0 x 0 x 0 0 1 0 0 1 0 0 0 0 1 1 x 0 x x 1 0 0 1 0 1 1 0 0 0 0 1 1 x 0 x x 1 0 0 1 1 0 1 0 0 0 0 1 1 x 0 x x 1 0 0 1 1 1 0 0 0 0 0 1 0 x 0 x x 1 0 1 0 0 0 1 0 0 0 1 1 1 x x 1 0 x 0 1 0 0 1 1 0 0 0 1 1 1 x x 1 0 x 0 1 0 1 0 1 0 0 0 1 1 1 x x 1 0 x 0 1 0 1 1 0 0 0 0 1 1 0 x x 1 0 x 0 1 1 0 0 1 0 0 1 0 1 1 x x 1 x 1 0 1 1 0 1 1 0 0 1 0 1 1 x x 1 x 1 0 1 1 1 0 1 0 0 1 0 1 1 x x 1 x 1 0 1 1 1 1 0 0 0 1 0 1 0 x x 1 x 1 1 0 0 0 0 1 0 0 0 0 0 x 0 0 x 0 x 1 0 0 0 1 1 0 0 0 0 0 x 0 0 x 0 x 1 0 0 1 0 1 0 0 0 0 0 x 0 0 x 0 x 1 0 0 1 1 0 0 0 0 0 0 x 1 0 x 0 x 1 0 1 0 0 x x x x x x x x x x x x 1 0 1 0 1 x x x x x x x x x x x x 1 0 1 1 0 x x x x x x x x x x x x 1 0 1 1 1 x x x x x x x x x x x x 1 1 0 0 0 x x x x x x x x x x x x 1 1 0 0 1 x x x x x x x x x x x x 1 1 0 1 0 x x x x x x x x x x x x 1 1 0 1 1 x x x x x x x x x x x x 1 1 1 0 0 x x x x x x x x x x x x 1 1 1 0 1 x x x x x x x x x x x x 1 1 1 1 0 x x x x x x x x x x x x 1 1 1 1 1 x x x x x x x x x x x x Potrebna pobuda bistabila je funkcija od trenutnih stanja i ulaza. Izlazi su funkcija samo od trenutnog stanja. Za potrebe minimizacije mogu se i izlazi promatrati kao funkcija od trenutnih stanja i ulaza, međutim, nakon minimizacije trenutni ulazi ne smiju se pojavljivati u jednadžbama koje opisuju izlaze! Ukoliko se pojave, to znači da nije riječ o Mooreovom automatu (odnosno, budući da smo tablicu generirali iz Mooreovog automata, znači da je nastala pogreška ili kod popunjavanja tablice, ili kod minimizacije). Nakon minimizacije funkcija i faktorizacije dobiva se:

011 QQO =

010 QQO =

Page 253: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 253

01 QQKA +=

( )( )01012 IIQQJ ++=

012 IIK =

( )01021 IIQQJ ⊕=

11 =K

0120 IQQJ =

10 =K

Sklop koji ostvaruje zadani automat:

J

K Q

Q

CP

J

K Q

Q

CP

Čitačtipkovnice

I1

I0

1

1

B2 B1 J

K Q

Q

CP

B01≥&

1≥

&

1=&

1

&

1

CP

&

&

1≥

O1

O0

KA

12.4. Zadatak Na ulaz sekvencijskog sklopa sinkrono sa svakim signalom takta dolazi jedna binarna znamenka (šalje se binarni broj počevši od bita najveće težine). a) Konstruirati Mealyjev automat koji računa rezultat dijeljenja tog broja sa pet. Implementirati automat uporabom D bistabila. b) Konstruirati Mooreov automat koji računa rezultat dijeljenja tog broja sa pet.

Prisjetimo se načina na koji dijelimo binarne (odnosno u bilo kojoj bazi) brojeve sa nekim brojem X. Tražimo od početka onoliki broj znamenki koji će dati broj veći od broja X. Određujemo koliko puta je taj broj veći od broja X (i to dajemo kao prvu znamenku rezultata) a pamtimo ostatak dijeljenja Z. Zatim od broja X opet uzimamo (spuštamo) toliko znamenki (i dopisujemo ih broju Z) koliko je potrebno da Z opet postane veći od X kako bismo ga mogli podijeliti. Ako radimo sa binarnim brojevima, postupak je vrlo jednostavan jer rezultat parcijalnog dijeljenja može biti ili 0 ili 1. a) Mealyjev automat. Rješenje je prikazano na slici:

Page 254: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

254 Zbirka riješenih zadataka

S0

S1 S2

S4

S3

1/0

0/0

0/0

0/0

1/0

1/1

1/11/1

0/1

0/1

Neka stanje Si odgovara ostatku i. Ako je npr. trenutni ostatak dijeljenja broja s 5 jednak 4, i spuštamo 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 spuštamo 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 način mogu se analizirati i svi ostali prijelazi. Za pohranjivanje 5 stanja trebamo 3 bistabila. Stanja ćemo kodirati na sljedeći način: S0≡111, S1≡001, S2≡010, S3≡011, S4≡100. Tablica prijelaza s pobudom bistabila:

Trenutno stanje i pobuda

Sljedeće stanje Izlaz u sljedećem

stanju Potrebna pobuda bistabila

Q2 Q1 Q0 I Q2 Q1 Q0 O D2 D1 D0 0 0 0 0 x x x x x x x 0 0 0 1 x x x x x x x 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 x x x x x x x 1 0 1 1 x x x x x x x 1 1 0 0 x x x x x x x 1 1 0 1 x x x x x x x 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 Nakon minimizacije funkcija i faktorizacije dobiva se:

( )IQQQQQO ++= 20012

( )IQQIQQD ++= 20022

)( 2011 IQQQD ⊕+=

( ) ( ) 12201010 QQQQQIQQID +++⊕=

Page 255: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 255

Kako se radi o Mealyjevom automatu, da bi se izbjegao utjecaj asinkrone promjene ulaza na izlaz može se dodati izlazni registar (vidi zadatak 1). Međutim, budući da je u tekstu zadatka eksplicitno rečeno da su ulazi sinkronizirani, ne može doći do asinkrone promjene ulaza pa nije potrebno niti dodavati izlazni registar. Shema sklopa:

D

Q

Q

CP

B0 D

Q

Q

CP

B1 D

Q

Q

CP

B21≥&

&1≥

1≥&

1=1≥

&

&

&

1=

1≥&

1I

CP

1≥&

&

1≥

O

b) Mooreov automat. Mooreov automat koji rješava zadani problem u ovom će slučaju 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 također u stanje S3 ali sada na izlazu dajemo 1. No budući da kod Mooreovog automata izlaz ovisi isključivo o trenutnom stanju, tada u S3 moramo dati ili 0 ili 1 što neće biti u skladu s potrebnim ponašanjem automata. Zbog toga stanje S3 cijepamo (u najgorem slučaju) u onoliko stanja koliko ima različitih izlaza koje treba dati. Slično razmatranje možemo provesti za sva ostala stanja. Automat koji ćemo tako dobiti jest:

S1[0]

S2[0]

S1'[1]

S2'[1]

S4[0]

S4'[1]

S3[0]

S3'[1]

S0[0]

S0'[1]

1

1

1

1

1

1

1

1

1

1

0

0

0

00

0

0

0

0

0

Page 256: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

256 Zbirka riješenih zadataka

Ovaj automat ima 10 stanja što je dvostruko više od istovjetnog Mealyjevog automata. Za vježbu. Implementirati ovaj automat uporabom JK bistabila.

12.5. Zadatak Projektirati sklop koji će iz ulaznog jednobitnog niza sinkroniziranog sa taktom ukloniti šum. Pod pojmom šum smatra se svaka promjena razine koja traje samo jedan otkucaj takta (vidi sliku).

Projektirati ćemo Mooreov automat koji obavlja ovo čišćenje. Zamislimo da je od pamtivijeka ulaz bio u konstantnoj nuli. Izlaz će tada biti 0. Označimo ovo stanjem S0. Ako sada ulaz skoči u jedinicu, budući da ne znamo da li time nastupa period jedinice ili je to samo kratkotrajni šum, prelazimo u novo stanje S1 u kojemu je izlaz također 0. Ako u ovom stanju ulaz padne na 0, vraćamo se u stanje S0 (i time smo izbacili smetnju). Međutim, ako je ulaz opet 1, to znači 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 vraćamo u S2 ako se ulaz odmah digne u 1. Međutim, 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: S0≡00, S1≡01, S2≡11, S3≡10. Iskoristiti ćemo T bistabile. Tablica prijelaza stanja zajedno sa pobudom bistabila:

Trenutno stanje i ulaz Sljedeće stanje Izlaz Pobuda bistabila Q1 Q0 ULAZ Q1 Q0 IZLAZ T1 T0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 0 0

ULAZ

IZLAZ

t

t

S0[0]

S1[0]

S2[1]

S3[1]

0

0

01

1

1

1

0

Page 257: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 257

Nakon minimizacije dobije se: UQQUQQT 01011 +=

0000 QUQUQUT ⊕=+=

1QIZLAZ = Shema sklopa:

T

Q

Q

CP

B1 T

Q

Q

CP

B01≥&

&

1

1=

IZLAZULAZ

CP

Uočiti da će na ovaj način konstruirani automat davati izlaz koji će za ulazom kasniti za jedan otkucaj signala takta.

12.6. Zadatak Objasniti odnos između strojeva s konačnim brojem stanja i registara.

Registri su poseban slučaj strojeva s konačnim brojem stanja. Naime, može se reći da su registri Mooreovi automati kod kojih je izlazna funkcija identitet. Drugim riječima, izlaz bistabila direktno je i izlaz sklopa - registra. Zbog toga se registri mogu projektirati istim metodama kojima se projektiraju i strojevi s konačnim brojem stanja.

STROJEVI S KONAČNIM BROJEM STANJA

REGISTRI

12.7. Zadatak Objasniti odnos između strojeva s konačnim brojem stanja i brojila.

Brojila su poseban slučaj strojeva s konačnim brojem stanja. Naime, može se reći da su brojila Mooreovi automati kod kojih je izlazna funkcija identitet. Drugim riječima, izlaz bistabila direktno je i izlaz sklopa - brojila. Zbog toga se brojila mogu projektirati istim metodama kojima se projektiraju i strojevi s konačnim brojem stanja.

Page 258: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

258 Zbirka riješenih zadataka

STROJEVI S KONAČNIM BROJEM STANJA

BROJILA

12.8. Zadatak Uporabom T bistabila projektirati četiribitno binarno brojilo metodom projektiranja stroja s konačnim brojem stanja. Pokazati da rezultat odgovara poznatom načinu spajanja bistabila sa paralelnim prijenosom. Pokazati način izvođenja brojila sa serijskim prijenosom.

Prikažimo tablicu promjene stanja:

Trenutno stanje Sljedeće stanje Potrebna pobuda B3 B2 B1 B0 B3 B2 B1 B0 T3 T2 T1 T0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1

Minimizacijom slijedi:

10 =T

01 BT =

012 BBT ⋅=

0123 BBBT ⋅⋅=

Ovo su već poznati izrazi za paralelni prijenos kod binarnog brojila. Pokažimo sada da se odavde direktno dobiju i izrazi za serijski prijenos. Uvedimo sljedeće supstitucije:

100 == TS

Page 259: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 259

011 BTS ==

110122 SBBBTS ⋅=⋅==

2201233 SBBBBTS ⋅=⋅⋅==

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 slučaj Mooreovih automata (kod kojih je izlaz jednak stanju) pa ih možemo projektirati na isti način. Prikažimo najprije dijagram promjene stanja.

S0[000]

S1[001]

S2[010]

S3[011]

S4[100]

S5[101]

S6[110]

S7[111]

00 0 0

0000

1

1

1

1

1

11

1

Trenutno stanje i pobuda

Sljedeće stanje Potrebna pobuda bistabila

Q2 Q1 Q0 M Q2 Q1 Q0 T2 T1 T0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0

Funkcije nakon minimizacije:

Page 260: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

260 Zbirka riješenih zadataka

MQQMQQQMQQQT 010120122 ++=

MQQQQQQQT 00120121 ++=

MQQQQQQQQQQQQT ++++= 0120120120120

Za vježbu. 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.

Budući da koristimo sinkrone ulaze za reset, djelovanjem na te ulaze prelazimo u stanje 0000, pa je stanje 0 sigurno dio ciklusa brojanja. Cijeli ciklus tada se sastoji od stanja:

0

1 2 3 4

5

6789

Potrebno je dakle detektirati stanje 1001(2)=9, i tada djelovati na sinkrone ulaze za reset. Uočiti da se ulaskom u stanje 9 sklop neće odmah resetirati jer sinkroni ulazi za reset djeluju tek kada im to signal takta dopusti (što znači nailaskom sljedećeg impulsa takta sklop neće otići 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 možemo napisati kao:

( ) ( ) ( ) 030123 15,14,13,12,11,109,,, QQdmQQQQR =+= ∑∑

Napišimo tablicu prijelaza stanja i pobude bistabila:

Page 261: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 261

Trenutno stanje Sljedeće stanje Reset Pobuda bistabila

Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 R T3 T2 T1 T0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 1 0 x x x x x x x x x 1 0 1 1 x x x x x x x x x 1 1 0 0 x x x x x x x x x 1 1 0 1 x x x x x x x x x 1 1 1 0 x x x x x x x x x 1 1 1 1 x x x x x x x x x

Nakon minimizacije dobije se:

10 =T

01 QT =

012 QQT =

0123 QQQT =

03QQR =

Shema sklopa:

T

Q

Q

CP

B0 T

Q

Q

CP

B1 T

Q

Q

CP

B2 T

Q

Q

CP

B3&&1

CP

D3D2D1D0

&dC dC dC dC

Ima li ovo brojilo siguran start? Nacrtajmo sada potpun dijagram prijelaza stanja.

Page 262: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

262 Zbirka riješenih zadataka

0

1 2 3 4

5

6789

10 11

12 13

14 15

Ukoliko se brojilo nađe u stanju 10 = 1010(2), sklop za reset neće djelovati i brojilo će se resetirati tek kod sljedećeg stanja.

12.11. Zadatak Projektirati sinkrono trobitno brojilo koje broji u Grayevom kodu uporabom D bistabila. Na raspolaganju su još samo osnovni logički sklopovi. Ako je tdb=20 ns, tsetup=20 ns, tdls=10 ns, odrediti maksimalnu frekvenciju rada sklopa. Pretpostaviti da svi osnovni logički sklopovi kasne jednako.

Prikažimo tablicu promjene stanja i potrebnih pobuda bistabila:

Trenutno stanje brojila Novo stanje brojila Potrebna pobuda Q2 Q1 Q0 Q2 Q1 Q0 D2 D1 D0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0

Slijedi:

D2 Q1Q0 00 01 11 10

Q2 0 1 1 1 1 1

D1 Q1Q0 00 01 11 10

Q2 0 1 1 1 1 1

Page 263: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 263

D0 Q1Q0 00 01 11 10

Q2 0 1 1 1 1 1

01022 QQQQD += 01021 QQQQD += 12120 QQQQD +=

D

Q

Q

CP

B11≥&

&D

Q

Q

CP

B21≥&

&D

Q

Q

CP

B01≥&

&

CP

Na svim ulazima nalazi se dvorazinska logika, pa je najduže vrijeme potrebno na prolaz, stabilizaciju i mirovanje signala jednako:

nstttT setupdlsdb 6020102202 =+⋅+=++=

MHznT

f 66.1660

11max ===

12.12. Zadatak

Stroj s konačnim brojem stanja zadan je slikom. O kojoj se vrsti automata radi? Projektirati sklop i nacrtati logičku shemu ako je bistabil B1 tipa D, a bistabil B0 tipa JK. Koristiti minimalni broj osnovnih logičkih sklopova (I, ILI, NE). Stanje Si kodirati binarnim zapisom dekadskog broja i.

Prikažimo stanja automata, prijelaze i pobude bistabila tablično.

S0 S1

S2

1/0

1/0

0/00/1

1/1

0/1

Page 264: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

264 Zbirka riješenih zadataka

Q1 Q0 I0 Q1 Q0 O D J K 0 0 0 1 0 1 1 0 × S0 0 0 1 0 1 0 0 1 × 0 1 0 0 1 1 0 × 0

S1 0 1 1 0 0 0 0 × 1 1 0 0 0 0 0 0 0 × S2 1 0 1 0 1 1 0 1 × 1 1 0 × × × × × × × 1 1 1 × × × × × ×

Minimizacijom se dobije:

J0 Q1Q0 00 01 11 10

Q2 0 × × 1 1 × ×

J Q0I 00 01 11 10

Q1 0 1 × × 1 1 × ×

K2 Q1Q0 00 01 11 10

Q2 0 × × × × 1 1 1 1

J0 Q1Q0 00 01 11 10

Q2 0 × × 1 1 × ×

Slijedi:

IQQD 01= IJ = IK = IQIQO 11 +=

D

Q

Q

CP

B1J

Q

Q

CP

B0

K

&

1

1≥&

&O

I

O kojoj se vrsti automata radi? Iako oznake na prijelazima upućuju na Mealyjev automat, odgovor se ne smije donijeti dok se ne proanalizira minimalni izraz za izlaz automata. U ovom zadatku izlaz zadanog sklopa doista ovisi o ulazu, pa je riječ o Mealyjevom automatu.

Page 265: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 265

12.13. Pismeni ispit, 25. 02. 2004, 5. zadatak Uporabom minimalnog broja T bistabila i minimalnog potrebnog broja osnovnih logičkih sklopova projektirati sinkroni sekvencijski sklop koji na izlazu generira sljedeći niz brojeva:

Pogledamo li zadani ciklus, na prvi pogled se čini kako je ponašanje sekvencijskog sklopa nedeterminističko; naime, nakon "stanja" 1 može doći "stanje" 2 ili pak "stanje" 3. Kada bismo o sekvencijskom sklopu razmišljali kao o brojilu, prethodna bi tvrdnja imala smisla. Naime, kod brojila stanje sklopa jednako je izlazu sklopa, pa bi to brojilo bilo doista nemoguće napraviti. Zbog toga to nećemo niti pokušati! Umjesto toga, projektiranju zadanog sklopa pristupit ćemo kao da projektiramo konačni automat! I to je razlog zašto su na početku stanja bila pod znacima navodnika – to zapravo nisu stanja! Ciklus kroz koji prolazi zadani sekvencijski sklop duljine je 8, što znači da će naš sklop imati 8 stanja – a svako će stanje na izlazu davati ciklusom određenu vrijednost. Rješenje je prikazano u nastavku.

Trenutno stanje Sljedeće stanje Pobuda potrebna za prijelaz

u sljedeće stanje Izlazi u trenutnom

stanju Q2 Q1 Q0 Q2 Q1 Q0 T2 T1 T0 O1 O0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0

Minimizacijom slijedi:

T2: Q2Q1 00 01 11 10

Q0 0

1 1 1

Q2Q1

Q0

01QQ

Page 266: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

266 Zbirka riješenih zadataka

T1: Q2Q1 00 01 11 10

Q0 0

1 1 1 1 1

Q2Q1

Q0

0Q

T0: Q2Q1 00 01 11 10

Q0 0 1 1 1 1

1 1 1 1 1

1

Q2Q1

Q0

O1: Q2Q1 00 01 11 10

Q0 0 1 1

1 1 1

1Q

Q2Q1

Q0

O0: Q2Q1 00 01 11 10

Q0 0 1

1 1 1 1

012 QQQ

Q2Q1

Q0

02QQ01QQ

11 QO = , 01201020 QQQQQQQO ++=

012 QQT = , 01 QT = , 10 =T

Page 267: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 267

T

Q

Q

CP

T

Q

Q

CP

T

Q

Q

CP

1

&

Q0

Q1

Q2

&

&

&

1≥

O1

O0

CP

12.14. Pismeni ispit, 25. 02. 2004, 6. zadatak Logički blok FPGA sastoji se od dvoulaznog LUT-a na čiji je izlaz spojen ulaz D bistabila te od multipleksora koji određuje da li se na izlaz logički blok propušta izlaz LUTa ili izlaz bistabila. Nacrtati logički blok. Uporabom minimalnog broja logičkih blokova projektirati i prikazati sekvencijski sklop koji ciklički na izlazu generira niz 0, 5, 4, 6. Veze između logičkih blokova mogu se crtati direktno (nije potrebno crtati programirljive sklopke).

Jedan logički blok prikazan je na slici.

?

?

?

?

A

B

fD

Q

Q

CPS

0

1

CP

Projektiranje zadanog sklopa ovakvim elementima ne razlikuje se bitno od projektiranja sklopa uporabom bistabila. Dakle, prvi korak jest izrada tablice prijelaza stanja. Uvidom u zadatak zaključujemo da je duljina ciklusa jednaka 4, tj, trebamo 2 "bistabila". Trenutno stanje Sljedeće stanje Izlazi u trenutnom stanju Potrebna pobuda

Q1 Q0 Q1 Q0 O2 O1 O0 D1 D0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0

Page 268: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

268 Zbirka riješenih zadataka

Umjesto da sada vršimo minimizaciju, uočimo kako su sve funkcije ovise o samo dvije varijable: Q1 i Q0. LUT-ovi koje imamo na raspolaganju upravo omogućavaju direktnu realizaciju bilo svake funkcije od dvije varijable, pa vrijednosti u stupcima ispod pojedine funkcije možemo direktno upisati u LUT onog logičkog bloka koji će realizirati dotičnu funkciju. Kako ne bismo svaki puta crtali internu strukturu logičkog bloka, uvest ćemo pojednostavljen prikaz istog, gdje ćemo naznačiti samo programabilne dijelove. Isto tako, uočimo da se logički blok može ponašati kao kombinacijski element (ukoliko je s=0) gdje se izlaz iz LUT-a direktno propušta na izlaz logičkog bloka, ili pak kao sekvencijski element, odnosno bistabil (ukoliko je s=1), gdje se izlaz bistabila propušta na izlaz logičkog bloka, a LUT se koristi za definiranje funkcije koja određuje pobudu bistabila. U svrhu pojednostavljenja također nećemo crtati način prospajanja linija, već ćemo veze crtati direktno. Kako bismo rješili zadatak, trebamo dakle dva "bistabila" (logičke blokove sa s=1) i tri kombinacijska sklopa (logičke blokove sa s=0) koji definiraju izlaze. Rješenje je prikazano na slici.

0

1

1

0 1s=

A

B

1

0

1

0 1s=

A

B

0

1

1

1 0s=

A

B

0

0

0

1 0s=

A

B

0

1

0

0 0s=

A

B

Q1

Q0 O1

O2

O0

Što bi uradili u slučaju da na raspolaganju imamo logičke blokove s dvoulaznim LUT-ovima a trebamo ostvariti funkcije od više varijabli? Tada bi za svaku funkciju trebalo koristiti više logičkih blokova!

Page 269: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 269

12.15. Pismeni ispit, 01. 10. 2003, 1. zadatak Uporabom minimalnog potrebnog broja D bistabila projektirati sekvencijski sklop koji na izlazu ciklički generira sljedeći niz brojeva:

0 11 2 3 5

Analizom ciklusa vidimo da je duljina ciklusa jednaka 6. Trebat ćemo, dakle, barem tri bistabila (pa će dva stanja ostati neiskorištena). Kako se u ciklusu postoji "stanje" koje se javlja više od jedanput, očito ne možemo projektirati brojilo, već radimo stroj s konačnim brojem stanja. Tablica prijelaza stanja prikazana je u nstavku:

Trenutno stanje Sljedeće stanje Izlaz u trenutnom

stanju Pobuda potrebna za

promjenu stanja Q2 Q1 Q0 Q2 Q1 Q0 O2 O1 O0 D2 D1 D0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 × × × × × × × × × 1 1 1 × × × × × × × × ×

Prikazani sklop prolazit će kroz stanja 0, 1, 2, 3, 4, 5 pa opet 0, itd. Očitajmo sada i potrebne funkcije:

D2: Q2Q1 00 01 11 10

Q0 0 × 1

1 1 ×

02QQ

Q2Q1

Q0

01QQ

Page 270: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

270 Zbirka riješenih zadataka

D1: Q2Q1 00 01 11 10

Q0 0 1 ×

1 1 ×

01QQ

Q2Q1

Q0

012 QQQ

D0: Q2Q1 00 01 11 10

Q0 0 1 1 × 1

1 ×

0Q

Q2Q1

Q0

O2: Q2Q1 00 01 11 10

Q0 0 ×

1 × 1

Q2Q1

Q0

02QQ

O1: Q2Q1 00 01 11 10

Q0 0 × 1

1 1 ×

02QQ

Q2Q1

Q0

01QQ

Page 271: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 271

O0: Q2Q1 00 01 11 10

Q0 0 1 × 1

1 1 × 1

01QQ

Q2Q1

Q0

01QQ

2Q

Slijedi:

02012 QQQQD +=

012011 BBBBBD +=

00 BD =

022 QQO =

01021 QQQQO +=

201010 QQQQQO ++=

Da bismo bili sigurni da sklop radi ispravno, potrebno je provjeriti što će se dogoditi ako se po uključenju sklop zatekne u nekom od nekorištenih stanja (naime, ukoliko ta stanja sama opet tvore neki zatvoren ciklus, sklop nikada neće proraditi ispravno). Za slučaj B2B1B0=110 prethodni izrazi daju: D2=1, D1=1, D0=1. Dakle, iz ovog stanja sklop će otići u stanje 111, koje također ne pripada zadanom ciklusu. Za slučaj B2B1B0=111 prethodni izrazi daju: D2=1, D1=0, D0=0. Dakle, iz ovog stanja sklop će otići u stanje 100, a to stanje pripada zadanom ciklusu. Kako smo ovime provjerili sva nespecificirana stanja, sklop će očito raditi ispravno (uz najviše dva neispravna stanja na početku rada).

12.16. Pismeni ispit, 10. 10. 2003, 1. zadatak Uporabom D bistabila realizirati sinkrono trobitno brojilo koje broji ovisno o signalu d: ako je d=1, tada n←n+1 inače n←n-2. Sklop treba imati i sinkroni ulaz za brisanje c (koji bistabili nemaju). Koristiti minimalni broj osnovnih logičkih sklopova.

Prikažimo rad sklopa tablično.

Page 272: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

272 Zbirka riješenih zadataka

Upravljački signali

Trenutno stanje Sljedeće stanje Potrebna pobuda

c d Q2 Q1 Q0 Q2 Q1 Q0 D2 D1 D0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 × × × × 0 0 0 0 0 0

Pronađimo minimalne izraze za potrebnu pobudu:

D2: cdQ2 c=0 c=1000 001 011 010 100 101 111 110

Q1Q0 00 1 1

01 1 111 1 110 1 1

012 QQQc

12QdQc

012 QQQdc12QQdcd

Q2d

Q2

Q1

Q0

Q1

Q0

12QQdc

Page 273: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 273

D1: cdQ2 c=0 c=1 000 001 011 010 100 101 111 110

Q1Q0 00 1 1

01 1 1 1 1 11

10 1 1

1Qdc

01QdQc

01QQc

dQ2dQ2

Q1

Q0

Q1

Q0

D0: cdQ2 c=0 c=1 000 001 011 010 100 101 111 110

Q1Q0 00 1 1

01 1 1 11 1 1

10 1 1

0Qdc

0QdcdQ2

dQ2

Q1

Q0

Q1

Q0

Dakle, slijedi:

0120121212122 QQQdcQQQcQQdcQdQcQQdcD ++++=

011011 QdQcQdcQQcD ++=

000 QdcQdcD +=

12.17. Pismeni ispit, 09. 02. 2004, 7. zadatak

Na raspolaganju su trobitni posmačni registar (vidi sliku), D bistabil te potreban broj osnovnih logičkih sklopova. Njihovom uporabom ostvariti sklop koji na izlazu Q2 posmačnog registra ciklički generira sljedeći niz: 0→0→0→0→1→1→1→1.

Posmačni registar ima tri izlaza, dok zadani bistabil ima jedan. Sve skupa nam na raspolaganju stoji 4 izlaza, odnosno možemo ostvariti sklop s maksimalno 16 stanja.

Sin

Q2 Q1 Q0

CP

Page 274: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

274 Zbirka riješenih zadataka

Neka izlaz posmačnog registra Q2 bude u oznaci stanja bit najveće težine, a izlaz bistabila QB bit najmanje težine. Potrebno je dakle trobitni posmačni registar i dani bistabil povezati u četiribitni posmačni registar. Tada želimo da sklop prolazi kroz sljedeća stanja: Q2 Q1 Q0 QB Sin za prijelaz u sljedeće stanje pokrivena stanja 0 × × × 0 4, 5, 6, 7 0 0 × × 0 2, 3 0 0 0 × 0 1 0 0 0 0 1 0 1 0 0 0 1 8 1 1 0 0 1 12 1 1 1 0 1 14 1 1 1 1 0 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 način mijenjamo stanja, tada ćemo na izlazu Q2 dobiti traženi niz. No otkud baš ovakvi zahtjevi? Najjednostavnije govoreći, želimo na Q2 četiri puta zaredom dobiti 0, pa četiri puta zaredom dobiti 1. Znači 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 uočiti da su maske nekih stanja općenitije 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 najspecifičnijeg stanja prema općenitijim. Jedino što u ovom sklopu treba odrediti jest što dovoditi na ulaz Sin kako bi sklop prolazio kroz željena stanja. No to je već određeno prethodnom tablicom: imamo Sin u ovisnosti o pokrivenim stanjima:

∑= )14,12,8,0(),,,( 012 mQQQQS Bin

Minimizacijom sljedi:

BBin QQQQQQS 0112 +=

Sin

Q2 Q1 Q0

CPRS /

→D Q

CP

1CP

Q1≥&

&1

1

Page 275: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 275

Malo pažljivijom analizom možemo uočiti da sklop nikada ne prolazi kroz stanja 9, 10, 11 ili 13. Zbog toga ta stanja možemo proglasiti don't care stanjima za funkciju Sin, čime se može dobiti još minimalniji izraz:

BBin QQQQQS 012 +=

12.18. Pismeni ispit, 25. 02. 2004, 4. zadatak U VHDL-u napisati ponašajni model sekvencijskog sklopa prikazanog na slici. Sklop na svaki padajući impuls takta obavlja funkciju dekodiranja podatka iz 11-bitne Hammingove kodne riječi koju dobiva na ulazu. Prilikom kodiranja podatka korišten je neparni paritet. Ukoliko na ulaz dođe kodna riječ s pogreškom, pretpostaviti da se radi o pogreški u jednom bitu, tako da se na izlazu mora pojaviti ispravljen podatak. Prikazati korišteni raspored zaštitnih bitova u kodnoj riječi.

Prilikom rješavanja zadatka pretpostavit će se sljedeći raspored podatkovnih i zaštitnih bitova: D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7) D(8) D(9) D(10)

C C P C P P P C P P P C su zaštitni, 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); -- očitani sindrom VARIABLE sindrom2 : BIT_VECTOR(0 to 3); -- izračunati sindrom VARIABLE sindrom : BIT_VECTOR(0 to 3); -- mjesto pogreške VARIABLE izlaz : BIT_VECTOR(0 to 10); -- ispravljeni izlaz VARIABLE ispravka: BIT_VECTOR(0 to 11); -- riječ pogreške BEGIN

Kodnariječ

PodatakHammingov

dekoder

CP

Page 276: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

276 Zbirka riješenih zadataka

IF cp'event AND cp='0' 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 := ispravka SRL 1; END IF; IF( sindrom(1) = '1' ) THEN ispravka := ispravka SRL 2; END IF; IF( sindrom(2) = '1' ) THEN ispravka := ispravka SRL 4; END IF; IF( sindrom(3) = '1' ) THEN ispravka := ispravka SRL 8; END IF; -- Ispravljanje pogresnog bita izlaz := D XOR ispravka(1 to 11); -- Stavljanje ispravljene podatkovne rijeci na izlaz sklopa O <= izlaz(2) & izlaz(4 to 6) & izlaz(8 to 10); END IF; END PROCESS; END hamming_ARCH;

Na svaki rastući brid signala vremenskog vođenja događa se sljedeće:

• Očitava se sindrom iz primljene riječi. • Računa se sindrom za podatke iz primljene riječi. • Računa se mjesto na kojem je došlo do pogreške. • Generira se riječ pogreške: to je riječ koja ima jedinicu na onom mjestu na

kojem je djelovala pogreška. Dobije se tako da se '1' posmakne udesno za onoliko mjesta koliko je to zapisano u binarnom obliku u varijabli sindrom.

• Računa se ispravljena kodna riječ (preko XOR logičke operacije s riječi pogreške).

• Na izlas se preslikavaju samo podatkovni bitovi ispravljene kodne riječi. Da bi se što jasnije ilustrirala ideja rješenja, podatkovni ulaz i izlaz modelirani su BIT_VECTOR tipom podatka, jer su nad tim tipom definirane i operacije logičkog

Page 277: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 277

posmaka (sll, srl), aritmetičkog posmaka (sla, sra) itd. No kako uobičajeno koristimo STD_LOGIC_VECTOR tip, u nastavku je prikazano odgovarajuće rješenje, pri čemu su korišteni 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;

Page 278: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

278 Zbirka riješenih zadataka

12.19. Zadatak

Prikazati osnovnu strukturu VHDL modela kojim se opisuje Mooreov stroj s konačnim brojem stanja.

U VHDL-u ne postoji jedinstven način opisivanja strojeva s konačnim brojem stanja. Međutim, pogledamo li opću strukturu Mooreovog stroja s konačnim brojem stanja (slika ispod), dolazi se do jednog mogućeg rješenja koje će se koristiti u nastavku ove zbirke.

izlazi

Kombinacijski dio

Sekvencijski dio

CP

Kombinacijskidio

ula

zi

Na slici raspoznajemo tri osnovna dijela Mooreovog stroja s konačnim 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 računa u koje će sljedeće stanje sekvencijski dio prijeći.

3. Kombinacijski dio (2) – na temelju trenutnog stanja računa izlaze sklopa. Ova struktura prirodno se preslikava u VHDL model čija se arhitektura sastoji od tri bloka PROCESS, s odgovarajućim listama osjetljivosti. Pogledajmo npr. kako bi izgledao model stroja s konačnim 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 označena 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;

Page 279: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 279

ARCHITECTURE Behavioral OF automatMoore IS SIGNAL state_present, state_next: std_logic_vector(K DOWNTO 0); CONSTANT S0: std_logic_vector(K DOWNTO 0) := "0...000"; CONSTANT S1: std_logic_vector(K DOWNTO 0) := "0...001"; -- ... BEGIN -- Blok koji modelira Kombinacijski dio (1); na temelju ulaza -- i trenutnog stanja računa sljedeće stanje. PROCESS(ulazi, state_present) BEGIN -- na temelju signala iz liste osjetljivosti odrediti -- u koje bi sljedeće stanje sklop trebao prijeći. -- Npr. za bezuvjetan prijelaz u stanje S0: state_next <= S0; END PROCESS; -- Blok koji modelira Kombinacijski dio (2); na temelju -- trenutnog stanja računa izlaz sklopa. PROCESS(state_present) BEGIN -- na temelju trenutnog stanja odrediti izlaz sklopa: CASE state_present IS WHEN S0 => izlazi <= ...; WHEN S1 => izlazi <= ...; -- ... WHEN OTHERS => izlaz <= ...; END CASE; END PROCESS; -- Blok koji modelira Sekvencijski dio; na temelju signala -- clock i asinkronih ulaza mijenja stanje PROCESS( clock, reset ) BEGIN -- Provjera asinkronih ulaza IF reset = '1' THEN state_present <= S0; -- Inače slijedi sinkrono djelovanje ELSIF falling_edge(clock) THEN state_present <= state_next; END IF; END PROCESS; END BEHAVIORAL; Prilikom pisanja ovog modela pojedina stanja definirana su kao konstante kako bi kod bio čitljiviji. Naime, uvođenjem konstanti omogućeno je u kodu pisati nazive stanja umjesto njihovih binarnih kodova, čime se ujedno i smanjuje vjerojatnost pogreške prilikom pisanja modela. Osim ovog načina (gdje sami određujemo s koliko će bitova biti kodirana stanja, i definiramo kod za svako stanje) VHDL nam omogućuje alternativnu sintaksu. Npr. ukoliko imamo stroj s četiri stanja, možemo 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";

Page 280: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

280 Zbirka riješenih zadataka

CONSTANT S3: std_logic_vector(1 DOWNTO 0) := "11";

ili pak: TYPE stateType IS (S0, S1, S2, S3); SIGNAL state_present, state_next: stateType;

Ovaj posljednji način definira novi tip podatka pod nazivom stateType kao enumeraciju od četiri elementa, i zatim kaže da su signali state_present i state_next upravo tog novodefiniranog tipa. Ako stroj s konačnim brojem stanja opišemo na ovaj način, tada ni u kojem trenutku zapravo nismo naveli koliko će bitova biti korišteno za kodiranje stanja, i na koji će način pojedino stanje biti kodirano, pa sintetizatoru sklopovlja ostavljamo na volju da stanja kodira tako da utroši minimalni broj sklopovlja i provede dodatne optimizacije. Dakako, VHDL nam omogućava i eksplicitno definiranje kako će pojedino stanje biti kodirano, no budući da to zahtjeva uvođenje dodatnih elemenata VHDL-a (a pristup se zapravo svodi na prethodno opisani definiranjem konstanti), ovdje to nećemo obrađivati. Obratite također pažnju na liste osjetljivosti pojedinih blokova PROCESS. Prvi blok na temelju ulaza i trenutnog stanja računa sljedeće stanje. Zbog toga je njegova lista osjetljivosti (ulazi, state_present). Sljedeći blok PROCESS na temelju trenutnog stanja određuje izlaz sklopa. Time je definirana njegova lista osjetljivosti kao (state_present). Konačno, posljednji blok PROCESS zadužen 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 konačnim brojem stanja.

Kao što za modeliranje Mooreovog stroja s konačnim brojem stanja u VHDL-u nema jedinstvenog načina, isto vrijedi i za modeliranje Mealyjevog stroja s konačnim brojem stanja. Osnovna struktura ovog stroja prikazana je na sljedećoj slici.

Page 281: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 281

izlaziKombinacijski dio

Sekvencijski dio

CP

Kombinacijskidio

ula

zi

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 ponašanje. Zbog toga se prilikom modeliranja Mealyjevog stroja s konačnim brojem stanja uobičajeno promatra sljedeća struktura sklopa:

Kombinacijski dio

Sekvencijski dio

CP

Kombinacijskidio

ula

zi

izlaziRegistar

Modifikacija sklopa sastoji se u dodavanju registra na izlaz kombinacijskog dijela koji određuje izlaze sklopa. Na ovaj način istovremeno kada sklop mijenja stanje, izlaz koji je određen tim prijelazom pohranjuje se u izlazni registar. Eventualne asinkrone promjene ulaza sada više nemaju utjecaja na izlaze sklopa budući da te promjene dolaze samo do ulaza registra, ali ne i dalje. Prilikom opisivanja ovog sklopa registar i sekvencijski dio uobičajeno se stapaju zajedno (u jedan blok PROCESS), baš kao i kombinacijski dijelovi (u jedan blok PROCESS). Rezultat je arhitektura sklopa koja se sastoji od dva bloka PROCESS:

Page 282: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

282 Zbirka riješenih zadataka

1. kombinacijski dijelovi – utvrđuju sljedeće stanje i sljedeće izlaze stroja na temelju trenutnog stanja i trenutnih ulaza, te

2. sekvencijski dio + registar – pamte trenutno stanje i izlaze te ih mijenjaju tek kad im to signal takta dozvoli.

Struktura VHDL modela Mealyjevog stroja s konačnim brojem stanja prikazana je u nastavku. library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY automatMealy 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 automatMealy; ARCHITECTURE Behavioral OF automatMealy IS SIGNAL state_present, state_next: std_logic_vector(K DOWNTO 0); CONSTANT S0: std_logic_vector(K DOWNTO 0) := "0...000"; CONSTANT S1: std_logic_vector(K DOWNTO 0) := "0...001"; SIGNAL izlazi_next: std_logic_vector(M DOWNTO 0); BEGIN -- Blok koji modelira ujedinjene kombinacijske dijelove. -- Na temelju ulaza i trenutnog stanja računa sljedeće stanje -- i sljedeće izlaze. PROCESS( ulazi, state_present ) BEGIN -- utvrdi koje će stanje biti sljedeće i koji izlaz. -- odluka se donosi na temelju trenutnog stanja i ulaza. -- npr. za bezuvjetni prijelaz u stanje S0 i sve '0' -- na izlazima: state_next <= S0; izlazi_next <= "000..000"; -- niz od (K+1) nule. END PROCESS; -- Blok koji modelira Sekvencijski dio i registar; na temelju -- signala clock i asinkronih ulaza mijenja stanje i izlaz PROCESS( clock, reset ) BEGIN -- Provjera asinkronih ulaza IF reset = '1' THEN state_present <= S0; -- postavi stanje na S0 izlaz <= "000...00"; -- postavi izlaze na npr. '0' -- Inače slijedi sinkrono djelovanje ELSIF falling_edge(clock) THEN state_present <= state_next; izlazi <= izlazi_next; END IF; END PROCESS; END Behavioral;

Page 283: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 283

12.21. Zadatak Stroj s konačnim brojem stanja (vidi zadatak 12.1) opisati VHDL-om.

library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY automat1 IS PORT ( input0: IN std_logic; y: OUT std_logic; clock: IN std_logic); END automat1; ARCHITECTURE Behavioral OF automat1 IS SIGNAL state_present, state_next: std_logic_vector(1 DOWNTO 0); CONSTANT S0: std_logic_vector(1 DOWNTO 0) := "11"; CONSTANT S1: std_logic_vector(1 DOWNTO 0) := "01"; CONSTANT S2: std_logic_vector(1 DOWNTO 0) := "10"; BEGIN PROCESS(input0, state_present) BEGIN CASE state_present IS WHEN S0 => IF input0 = '0' THEN state_next <= S0; ELSE state_next <= S1; END IF; WHEN S1 => IF input0 = '0' THEN state_next <= S1; ELSE state_next <= S2; END IF; WHEN S2 => IF input0 = '0' THEN state_next <= S2; ELSE state_next <= S0; END IF; WHEN OTHERS => state_next <= S0; END CASE; END PROCESS; PROCESS( clock ) BEGIN IF falling_edge(clock) THEN state_present <= state_next; END IF; END PROCESS; PROCESS(state_present) BEGIN CASE state_present IS WHEN S0 => y <= '1'; WHEN S1 => y <= '0'; WHEN S2 => y <= '0'; WHEN OTHERS => y <= '0'; END CASE; END PROCESS; END BEHAVIORAL;

Page 284: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

284 Zbirka riješenih zadataka

12.22. Zadatak

Stroj s konačnim 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';

Page 285: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 285

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 OTHERS => state_next <= S0; o1_next <= '0';

o0_next <= '0'; ka_next <= '0'; END CASE; END PROCESS; PROCESS( clock ) BEGIN IF falling_edge(clock) THEN state_present <= state_next; o1 <= o1_next; o0 <= o0_next; ka <= ka_next; END IF; END PROCESS; END Behavioral;

12.23. Zadatak Stroj s konačnim 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 state_next <= S1;

ELSE state_next <= S0; END IF; WHEN S1 => IF ulaz = '1' THEN state_next <= S2;

ELSE state_next <= S0; END IF; WHEN S2 => IF ulaz = '1' THEN state_next <= S2;

ELSE state_next <= S3; END IF; WHEN S3 => IF ulaz = '1' THEN state_next <= S2;

ELSE state_next <= S0; END IF; WHEN OTHERS => state_next <= S0; END CASE; END PROCESS;

Page 286: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

286 Zbirka riješenih zadataka

PROCESS( clock, reset ) BEGIN IF reset = '1' THEN state_present <= S0; ELSIF falling_edge(clock) THEN state_present <= state_next; END IF; END PROCESS; PROCESS( state_present ) BEGIN CASE state_present IS WHEN S0 => izlaz <= '0'; WHEN S1 => izlaz <= '0'; WHEN S2 => izlaz <= '1'; WHEN S3 => izlaz <= '1'; WHEN OTHERS => izlaz <= '0'; END CASE; END PROCESS; END Behavioral; ZADACI ZA VJEŽBU

1. Uporabom logičkih blokova iz zadatka 12.14 realizirati sklop s dva izlaza (f1 i f2), pri čemu je:

( ) ( ) CADCBADCBAf +⋅+⋅=,,,1

( ) ( ) ADACBDCBAf +⋅+=,,,2

2. VHDL-om je opisan neki automat. Na temelju tog opisa nacrtati grafički prikaz automata. O kojoj se vrsti automata radi i zašto? library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY automat IS PORT ( cp, x1, x2 : IN std_logic;

a, b, c : OUT std_logic); END automat; ARCHITECTURE Behavioral OF automat IS SIGNAL p_st, n_st: std_logic_vector( 1 DOWNTO 0 ); CONSTANT s0: std_logic_vector( 1 DOWNTO 0 ) := "10"; CONSTANT s1: std_logic_vector( 1 DOWNTO 0 ) := "01"; CONSTANT s2: std_logic_vector( 1 DOWNTO 0 ) := "11"; SIGNAL n_a, n_c: std_logic; BEGIN PROCESS (p_st, x1, x2) BEGIN CASE p_st IS WHEN S0 => n_a <= '0'; n_c <= '1'; IF x1 = '1' THEN b <= '1'; n_st <= S1; ELSIF x2 = '0' THEN b <= '0'; n_st <= S2; ELSIF x1 = '0' THEN b <= '1'; n_st <= S1; ELSE b <= '0'; n_st <= S0;

Page 287: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Strojevi s konačnim brojem stanja. 287

END IF; WHEN S1 => n_a <= '1'; n_c <= '1'; IF x1 = '0' THEN b <= '0'; n_st <= S0; ELSIF x2 = '1' THEN b <= '0'; n_st <= S2; ELSIF x1 = '1' THEN b <= '1'; n_st <= S1; ELSE b <= '1'; n_st <= S2; END IF; WHEN S2 => n_a <= '0'; n_c <= '0'; b <= '1'; IF x1 = '1' THEN n_st <= S0; ELSIF x1 = '0' THEN n_st <= S1; ELSIF x2 = '0' THEN n_st <= S2; ELSE n_st <= S0; END IF; WHEN OTHERS => n_a <= '0'; n_c <= '0'; b <= '0'; n_st <= S0; END CASE; END PROCESS; PROCESS( cp ) BEGIN IF falling_edge(cp) THEN p_st <= n_st; a <= n_a; c <= n_c; END IF; END PROCESS; END Behavioral;

3. U zadatku 12.1 projektiran je konačni automat. Ako

su na raspolaganju D-bistabili čije je sučelje prikazano u nastavku, napisati strukturni model navedenog automata. Osnovne logičke operacije (I, ILI, …) nije potrebno strukturno modelirati novim komponentama, već se mogu koristiti odgovarajući operatori VHDL-a.

4. Proučiti građu FPGA logičkog bloka iz zadatka 12.14. Realizirati: a) pomoću jednog takvog bloka T bistabil. b) pomoću najviše 3 takvih blokova JK bistabil. c) pomoću 4 takva bloka 4-bitni posmačni registar udesno; registar ima serijski

ulaz i paralelne izlaze. d) pomoću 4 takva bloka 4-bitni posmačni registar ulijevo; registar ima serijski

ulaz i paralelne izlaze. e) pomoću jednog troulaznog logičkog bloka JK bistabil (tada LUT ima 8

memorijskih lokacija). f) pomoću potrebnog broja troulaznih logičkih blokova multipleksor 8/1 (naputak

– realizirati multipleksorsko stablo).

5. Upotrebom troulaznog logičkog bloka FPGA (slično zadatku 12.14) realizirati T bistabil sa sinkronim ulazom za poništavanje stanja. Potom, upotrebom odgovarajućeg broja tih blokova načiniti brojilo sa paralelnim prijenosom koje broji u ciklusu 0, 1, …, 7, 0, …. Da li bi isto brojilo izvedeno sa serijskim prijenosom moglo raditi na višoj frekvenciji?

6. Pismeni ispit 12. 11. 2004.

ENTITY DBistabil IS PORT (CP, D: IN std_logic; Q, Qn: OUT std_logic); END DBistabil; Sučelje D bistabila

Page 288: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

288 Zbirka riješenih zadataka

Uporabom minimalnog broja D-bistabila i osnovnih logičkih sklopova projektirati sinkroni sekvencijski sklop koji na izlazu ciklički generira slijed od 7 Fibbonaccijevih brojeva (F0=0, F1=1, Fn=Fn-1+Fn-2 za n>2). Provjeriti (i objasniti) da li je to sklop sa sigurnim startom.

7. Pismeni ispit 12. 11. 2004. Zadan je stroj s konačnim brojem stanja prema slici. Projektirati sklop. Na raspolaganju su 2 D bistabila i minimalno potreban broj osnovnih logičkih sklopova.

S0[0,0]

S1[1,0]

S3[1,1]

S2[1,1]

0

1 0

1

0

1

0

1

8. Pismeni ispit 12. 11. 2004. Napisati ponašajni VHDL model stroja s konačnim brojem stanja zadanog (gornjom) slikom.

Page 289: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Memorije. 289

13. Memorije.

13.1. Zadatak Prikazati osnovnu memorijsku ćeliju kod permanentne memorije izvedene diodnim poljem. Prikazati memoriju tipa 4×8 izvedenu ovom tehnologijom, u koju je upisan sljedeći sadržaj: ED, 2D, DA, AD.

Pohranjena logička nula Pohranjena logička jedinica

WL

BL

WL

BL

Pri tome WL označava liniju riječi (engl. Word Line) koja u aktivnom stanju ima logičku jedinicu, a BL označava 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]

Sadržaj pohranjen u memoriju (raspisano po bitovima) definiran je tablicom prikazanom u nastavku.

Page 290: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

290 Zbirka riješenih zadataka

LSB Sadržaj po bitovima MSB Lokacija Sadržaj

b0 b1 b2 b3 b4 b5 b6 b7 0 ED 1 0 1 1 0 1 1 1 1 2D 1 0 1 1 0 1 0 0 2 DA 0 1 0 1 1 0 1 1 3 AD 1 0 1 1 0 1 0 1

13.2. Zadatak

Prikazati osnovnu memorijsku ćeliju kod permanentne memorije izvedene MOSFET-om. Prikazati memoriju tipa 4×8 izvedenu ovom tehnologijom, u koju je upisan sljedeći sadržaj: ED, 2D, DA, AD.

Pohranjena logička nula Pohranjena logička jedinica

WL

BL

WL

BL

Pri tome WL označava liniju riječi (engl. Word Line) koja u aktivnom stanju ima logičku jedinicu, a BL označava liniju bita (engl. Bit Line) koja je preko "otpora" pritegnuta na napajanje ("otpor" je također 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]

Page 291: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Memorije. 291

13.3. Zadatak

Prikazati jednotranzistorsku MOSFET DRAM ćeliju. Objasniti način čuvanja, zapisivanja i čitanja informacije. Pretpostaviti da CS iznosi 50 fF, kapacitet linije bita CB = 25⋅CS a logičkoj jedinici odgovara napon od 5V. Izračunati napon na liniji BL prilikom čitanja pohranjene logičke jedinice.

Jednotranzistorska MOSFET DRAM ćelija prikazana je na slici.

WL

BL

CSUS , QS

Podaci se čuvaju na kondenzatoru preko naboja (na slici označeno s QS). Za odnos napona i naboja na kapacitetu vrijedi sljedeća relacija:

SSS UCQ ⋅=

Ako je US=0, tada je QS=0 te je pohranjena logička nula. Ako je US velik, tada je QS>0 te je pohranjena logička jedinica. Ćelija može raditi na tri načina: čuvanje, čitanje i pisanje. Kada ćelija čuva sadržaj, tranzistor je isključen (WL=0) čime se čuva naboj na kondenzatoru. Zapisivanje sadržaja obavlja se postavljanjem vrijednosti na liniju bita (logičko 0 ili logičko 1) te otvaranjem tranzistora (WL=1). Npr. ako zapisujemo logičko 1, na liniju bita dovodimo UDD i zatim otvaramo tranzistor. Kapacitet CS nakon nekog će se vremena nabiti na UDD, i tada možemo zatvoriti tranzistor i ukloniti podatak s linije bita. Čitanje podatka obavlja se dovođenjem jedinice na WL, te očitavanjem napona na liniji bita. Pretpostavimo da je u ćeliji zapisana logička jedinica. Tada će se naboj QS pohranjen na kapacitetu CS nakon otvaranja 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 sljedeće:

• Prije otvaranja tranzistora:

UB=0 V US>0 V, SSS UCQ ⋅=

WL=1

BLCS

CB FB UU →

FS UU →

Page 292: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

292 Zbirka riješenih zadataka

• Nakon otvaranja tranzistora: Napon paralele je UF. Prema zakonu o očuvanju naboja:

FBFSS UCUCQ ⋅+⋅=

Zamjenom QS slijedi:

FBFSSS UCUCUC ⋅+⋅=⋅

pa je konačni napon na paraleli tada jednak:

BS

SSF CC

CUU

+=

Uz zadane vrijednosti za UF se dobiva:

mVCC

CU

CC

CUU

SS

SS

BS

SSF 192

251

15

25=

+⋅=

⋅+=

+=

Da je u ćeliji bila zapisana logička nula, konačni 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 očitavanje tog napona potrebno osjetljivo pojačalo za čitanje. Razlog ovako malog napona jest omjer kapaciteta CS i CB, tj. CB>>CS. Osim toga, nakon čitanja sadržaja ćelije zapisani je podatak izgubljen (napon na CS je prilikom čitanja logičke jedinice pao na svega 192 mV) te je potrebno ponovno zapisati pročitani sadržaj (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 isključen, kapacitet CS se ipak izbija određenom strujom curenja IL, te će napon US polako padati.

WL=0

BL

CSUS(t), QS(t)

IL

US(t)

t

Umax

U1,min

th

Page 293: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Memorije. 293

Neka logičkoj razini 1 odgovara napon Umax. Da bi se sadržaj ćelije ispravno očitao, napon na CS smije pasti najniže do napona U1,min, čime je određena razlika napona

min,1max UUU S −=∆ . Za struju IL vrijedi:

dt

dUC

dt

dQI S

SS

L −=−=

Pretpostavimo li da su naponi Umax i U1,min relativno blizu, početak eksponencijale možemo linearizirati, te možemo promatrati da je IL u tom području konstantno. Tada slijedi:

hS

hS

SSL t

UUC

t

UUC

t

UCI

min,1maxmin,1max

0

−=

−−

−=∆

∆−=

odnosno

( )min,1max UUI

Ct

L

Sh −⋅=

Uz podatke iz zadatka slijedi:

5011

50=⋅=∆⋅= V

nA

fFU

I

Ct S

L

Sh µs.

13.5. Zadatak

Prikazati CMOS SRAM ćeliju i objasniti načine rada.

Idejno rješenje ćelije prikazano je na slici.

b b

WL

TA TB

Q Q

Dva invertora povezana su u bistabilni element. Ćelija može raditi na tri načina rada:

• Čuvanje podatka – TA i TB su isključeni (WL=0), te se podatak čuva u bistabilu. • Zapisivanje podatka – TA i TB su uključeni (WL=1); novi podatak dovodi se na

linije b i b čime se mijenja stanje u bistabilu. Isključivanjem TA i TB ćelija čuva novoupisani podatak.

• Čitanje podatka – TA i TB su uključeni (WL=1); linije b i b očitavaju se na pojačalu za čitanje.

Page 294: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

294 Zbirka riješenih zadataka

Pojačalo za čitanje spojeno je na linije b i b i generira izlaz 0 ako je b < b , odnosno 1 ako je b > b . Svaki od invertora može se izvesti s 2 tranzistora (tj. tranzistorskim parom PMOS+NMOS), što daje osnovnu 6T ćeliju prikazanu na slici.

b b

WL+UDD

T1

T2

T3

T4

T5 T6

Postoji i izvedba 4T ćelije, pri čemu su PMOS tranzistori zamijenjeni velikim otpornicima spojenim na UDD.

13.6. Zadatak Prikazati barem dva načina organizacije memorije čiji je kapacitet 256 bitova, a duljina logičke riječi 8 bitova. Procijeniti duljine linije bita i linije riječi.

Pogledajmo prvo "prirodni" način organizacije memorije: memorijske ćelije koje čuvaju bitove iste logičke riječi smještene su jedna do druge, a pojedine riječi smještene su jedna ispod druge.

WL[0]Mem. riječ 0

Mem. riječ 1

Mem. riječ 2

Mem. riječ N-2

Mem. riječ N-1

WL[1]

WL[2]

WL[3]

WL[N-2]

WL[N-1]

Memorijska ćelija(1 bit)

M bitova

Dek

oder

A[0]

A[1]

A[K-1]

Podaci

Page 295: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Memorije. 295

Kako je u ovom slučaju kapacitet memorije (C=256 bitova) određen umnoškom broja logičkih riječi (N) i broja bitova u jednoj logičkoj riječi (M), broj logičkih riječi jednak je:

328

256===

M

CN

Za adresiranje nam tada treba K adresnih bitova, pri čemu je K određen izrazom:

NK =2 pa slijedi:

532loglog 22 === NK Procijenimo još i duljine linije riječi i bita. Kao što je poznato, linija riječi (WL) se proteže do svih memorijskih ćelija koje čuvaju bitove iste memorijske riječi. 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 proteže do svih ćelija koje čuvaju isti bit u svakoj memorijskoj riječi. Tako kod ovakve organizacije memorije vrijedi da je duljina linije riječi ≈ 8, a duljina linije bita ≈ 32. Već iz ove niskokapacitetne memorije vidljiv je osnovni problem ovakve ogranizacije: duljina linije bita >> duljina linije riječi (a time je i parazitni kapacitet linije bita vrlo velik). Napomena: U knjizi [Peruško] ovakav način organizacije memorije poznat je kao 2D organizacija. Ukoliko se želi dobiti više informacija o ovom tipu (npr. Google), tada treba obratiti pažnju da je na većini stranih sveučilišta ovaj tip poznat kao 1D organizacija (jer su memorijske riječi organizirane uzduž jedne dimenzije; odozgo prema dolje). Drugi primjer organizacije memorije temelji se ne popravljanju odnosa duljina linija riječi i bita, i prikazan je na sljedećoj slici. Kod ovog pristupa jedna fizička memorijska riječ sadrži P logičkih riječi (svaka logička riječ je duljine M bitova). Cijela memorija pri tome sadrži KN 2= logičkih riječi. Dekoder retka na temelju viših bitova adrese odabire adresiranu fizičku riječ, čime na ulaze dekodera stupca dolazi P⋅M pohranjenih bitova, tj. sadržaj P logičkih riječi. Dekoder stupca na temelju nižih bitova adrese odabire adresiranu logičku riječ. Dekoder stupca logički se može promatrati kao M multipleksora tipa P/1 gdje se na 0. multipleksor dovode 0. bitovi od P logičkih riječi, na 1. multipleksor dovode 1. bitovi od P logičkih riječi, itd. Proračunajmo sada sve potrebne veličine.

Page 296: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

296 Zbirka riješenih zadataka

Logička riječ 0 Logička riječ 1 Logička riječ P-1

Logička riječ P Logička riječ P+1 Logička riječ 2P-1

Logička riječ 2P Logička riječ 2P+1 Logička riječ 3P-1

Logička riječ 3P Logička riječ 3P+1

M bitova M bitova M bitova

Fizička riječ 0

Fizička riječ 1

Fizička riječ 2

Memorijska ćelija(1 bit)

Logička riječ 0 Logička riječ 1 Logička riječ P-1

Logička riječ (Q-1)P Logička riječ (Q-1)P+1 Logička riječ QP-1

Fizička riječ Q-2

Fizička riječ Q-1

Dekoder stupca

Dek

oder

ret

ka

A[L]

A[L+1]

A[K-1]

LMPM 2⋅=⋅

A[0]

A[L-1]

LKQ −= 2

Podaci (M bitova)

Memorija iz zadatka imat će N logičkih riječi, pri čemu je N određen s:

328

256===

M

CN

Za adresiranje N=32 logičke riječi trebamo ukupno:

NK =2 adresnih bitova, pa slijedi:

532loglog 22 === NK Kako je kod ove organizacije ukupni broj logičkih riječi definiran umnoškom

QPN ⋅= gdje su N, P i Q cijeli brojevi, jedno rješenje koje zadovoljava prethodni izraz jest P=2, Q=16. Za adresiranje logičke riječi unutar fizičke riječi koristi se L bitova. Slijedi:

12loglog2 22 ===⇒= PLPL 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 slučaju ima Q = 24 = 16 fizičkih riječi, gdje svaka fizička riječ sadrži dvije logičke riječi. Proračunajmo još i duljine linija riječi i bita. Jedna fizička riječ sadrži P⋅M=2⋅8=16 bitova, pa je duljina linije riječi ≈ 16. Memorija ima Q=16 fizičkih riječi pa je duljina linije bita ≈ 16.

Page 297: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Memorije. 297

Napomena: U knjizi [Peruško] ovakav način organizacije memorije poznat je kao 2 ½ D organizacija. Ukoliko se želi dobiti više informacija o ovom tipu (npr. Google), tada treba obratiti pažnju da je na većini stranih sveučilišta ovaj tip poznat kao 2D organizacija (jer su logičke riječi organizirane u 2D matricu, a ne linearno). Za vježbu. Nacrtajte strukture memorija uz proračunate parametre. Drugi dio zadatka ima više mogućih rješenja (tj. jednadžba N=P⋅Q ima više rješenja u skupu cijelih brojeva). Pronađite sva rješenja. Proračunajte duljine linija riječi i bita za te slučajeve.

13.7. Pismeni ispit, 09. 02. 2004, 9. zadatak Zadana je uređena n-torka P=(8,1,5,2,3,3,12,14,7,2,0,1,6,6,2,4). Funkcija F(i) vraća i-ti element od P (npr. F(0)=8). Projektirati sklop koji ostvaruje ovu funkciju. Na raspolaganju su ispisna memorija 8×8 te 4 multipleksora 2×1. Prikazati sadržaj memorije po lokacijama, u heksadekadskom obliku.

Memorija koju imamo na raspolaganju pohranjuje riječi širine 8 bita, a za pohranu svakog broja koji trebamo vratiti nužna su samo 4 bita. Zbog toga ćemo na svaku memorijsku lokaciju pohranjivati po dva broja. Sadržaj memorije prikazan je u nastavku:

lokacija: Sadržaj memorije (hex) 0 1 8 1 2 5 2 3 3 3 E C 4 2 7 5 1 0 6 6 6 7 4 2

Sklop je prikazan na slici:

Page 298: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

298 Zbirka riješenih zadataka

RAM8 x 8

D7 D6 D5 D4 D3 D2 D1 D0

0101 0101

A2

A1

A0

I3

I2

I1

I0

O3 O2 O1 O0

13.8. Zadatak

Na raspolaganju je potreban broj memorijskih modula prikazanih na slici. Njihovom uporabom projektirati memoriju 512×3.

Kako memorijski modul ima 8 adresnih linija, očito je da može adresirati 256 memorijskih lokacija, svaka širine jednog bita. Budući da trebamo 512 memorijskih lokacija, morat ćemo iskoristiti 512/256=2 memorijska modula, kako bismo dobili memoriju koja može adresirati 512 memorijskih lokacija. Budući da memorijske riječi moraju biti široke 3 bita, trebat ćemo još 3/1=3 memorijska modula u paraleli. Ideja rješenja prikazana je na slici desno.

Svako polje predstavlja jedan memorijski modul. Analizom slike može se uočiti kako je razlika između gornjih i donjih modula u najvišem bitu: A8. I upravo ćemo taj bit koristiti za selekciju onog rezultata koji će se pojaviti na izlazu sklopa. Shema spajanja prikazana je na slici:

WR /

000

0FF

100

1FF

1. bit

000

0FF

100

1FF

2. bit

000

0FF

100

1FF

3. bit

Page 299: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Memorije. 299

WR /

WR /

WR /

WR /

WR /

WR /WR /

Podatkovni izlazi gornjih i donjih memorijskih modula spojeni su preko ILI sklopa:

goreoutdoljeoutgoreoutdoljeout DDDD ,,,, +=⋅

Naime, ti su izlazi izvedeni s otvorenim kolektorom, a njihovim kratkim spajanjem i pritezanjem na napajanje ostvarili smo I logičku funkciju komplemenata izlaza. Kada to na kraju invertiramo, dobivamo ILI logičku operaciju. Kada je A8 jednak 0, donji moduli su onemogućeni (CE=0), a gornji su omogućeni. Zbog toga na izlaz prolaze podaci pohranjeni u gornjim modulima. Kada je A8 jednak 1, gornji moduli su onemogućeni (CE=0), a donji su omogućeni. Zbog toga na izlaz prolaze podaci pohranjeni u donjim modulima. ZADACI ZA VJEŽBU

1. Objasnite organizacije memorijskih čipova kod statičkih i dinamičkih poluvodičkih memorija. Navedite i objasnite tipične predstavnike istih.

Page 300: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 301

14. A/D i D/A konverzija.

14.1. Zadatak Na slici je prikazan D/A konvertor. Ako je ulaz konvertora 4-bitni binarni broj a3a2a1a0, UREF=+5V i R0=80 kΩ, odrediti preostale otpore tako da napon koji odgovara najmanjem bitu bude |0.4| V. Kako se zove prikazani D/A konvertor? Koji je najveći napon na izlazu konvertora?

+UREF

a3 R3 I3

a2 R2 I2

a1 R1 I1

a0 R0 I0

+

-−∞=A

Uizl

Rf

IN

UN

Pogledajmo najprije završni dio D/A konvertora. Napon UN je napon između (-) stezaljke operacijskog pojačala i mase. Kako je napon između (-) i (+) stezaljke operacijskog pojačala 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 pojačala je beskonačno veliki otpor između (-) i (+) stezaljki pa tim putem ne teče struja. Zbog toga sva struja koja dolazi iz otporne mreže ide dalje kroz otpor Rf. Možemo pisati:

fNfNNfNizl RIRIURIU ⋅−=+⋅−=+⋅−= 0 (1) Isto tako vrijedi:

00112233 IaIaIaIaI N +++= (2) Gdje je ai 1 (sklopka je uključena i struja teče) ili 0 (sklopka je isključena i struja ne teče). Uvrštavanjem (2) u (1) slijedi:

( ) fizl RIaIaIaIaU ⋅+++−= 00112233 (3)

Page 301: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

302 Zbirka riješenih zadataka

Kako struje Ii odgovaraju vrijednostima pojedinih binarnih znamenaka a da bi izlazni napon odgovarao vrijednosti binarnog broja na ulazu, tada odnos među strujama mora odgovarati težinskom odnosu među znamenkama. Npr. znamenka a1 ima dvostruku težinu od znamenke a0, pa struja I1 mora biti dvostruko veća od struje I0, odnosno općenito:

02 II ii ⋅= (4)

Iz čega uvrštavanjem u (3) slijedi:

∑=

⋅⋅⋅−=3

00 2

i

iifizl aIRU (5)

Iz sheme proizlazi:

i

REF

i

REF

i

NREFi R

U

R

U

R

UUI =−=−= 0

(6)

Uvrštavanjem (4) u (6) slijedi:

iii

REFREFi

i

REFi RR

R

U

R

U

R

UI

222 0

00 =⇒=⋅⇒=⋅ (7)

Što daje:

Ω===Ω===Ω=== kkR

RkkR

RkkR

R 108

80

8 ,20

4

80

4 ,40

2

80

20

30

20

1

Uvrštavanjem (6) u (5) slijedi:

∑=

⋅⋅⋅−=3

00

2i

ii

REFfizl a

R

URU (8)

Poznato je da napon najmanje značajnog bita iznosi |0.4| V, pa uvrštavanjem broja a3a2a1a0=0001 u (8) slijedi:

( ) 12120202024.00

0123

0

3

00

⋅⋅=⋅+⋅+⋅+⋅⋅⋅=⋅⋅⋅= ∑= R

UR

R

URa

R

UR REF

fREF

fi

ii

REFf

pa slijedi:

Ω=⋅=⋅= kkU

RRREF

f 4.65

4.080

4.00

Page 302: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 303

Maksimalni napon na izlazu odgovara najvećem binarnom broju koji se može dovesti na ulaz: 1111(2)≡15. Tada je prema (8):

Vk

kUizl 61580

54.6)15( =⋅⋅−=

Konvertor se zove težinski D/A konvertor, ili konvertor sa težinski raspoređenim otporima u otpornoj mreži.

14.2. Zadatak Kako se zove na slici prikazani 4-bitni D/A konvertor? Odrediti napon Uizl, ako je poznato da je UREF=+5V, R=1kΩ a napon najmanjeg bita |0.4| V.

a0

2R

R

a1

2R

R

a3

2R

R2R

UREF

UX

+

-−∞=A

Uizl

Rf

IN2R

a2

2R

UN

1 2 3 4

Prikazan je ljestvičasti D/A konvertor. Potrebno je uočiti kako su u mreži složeni otpori. Promatrajmo otpor točke 1 (lijevo i dolje): imamo 2R || 2R = R. Otpor koji se vidi iz točke 2 tada je (R plus točka 1) || 2R = (R+R) || 2R je opet R! Zbog prividnog kratkog spoja (UN=0) ista analiza vrijedi i ako promatramo otpore s desne strane. Izračunajmo sada koliko iznosi napon UX. Kako imamo otpornu mrežu, možemo primijeniti princip superpozicije, koji kaže da je za takav slučaj dozvoljeno izračunati napon UX tako da se promatra utjecaj svakog pojedinog izvora (odnosno svakog bita) na taj napon. Imamo 4 slučaja: 1. slučaj: a3=1, a2=0, a1=0, a0=0 Lijevo od točke 4 mreža djeluje otporom 2R, desno je također otpor 2R prema masi pa imamo (nadomjesna shema):

Page 303: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

304 Zbirka riješenih zadataka

2R

2R2R 4

UREF

2R

R4

UREF

UX

Pa je:

33243,REF

REFREF

aX

U

R

RUR

RR

UUU ==⋅

+==

2. slučaj: a3=0, a2=1, a1=0, a0=0 Izračunajmo napon u točki 3. Iz točke 3 na lijevo i desno vidimo otpore 2R, pa je nadomjesna shema ista kao u prethodnom slučaju:

2R

2R2R 3

UREF

Slijedi:

3323REF

REFREF U

R

RUR

RR

UU ==⋅

+=

Sada je još potrebno izračunati doprinos U3 naponu UX. Nacrtajmo nadomjesnu shemu desno od točke 3. Imamo R do točke 4, i zatim otpor koji se vidi iz točke 4 (dolje, desno) što je još R (2R || 2R = R).

R3

RU3

4

UX

Slijedi:

Page 304: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 305

22323,3

342,aXREF

aX

UUU

RR

RUUU =

⋅==

+==

Odmah vidimo i bitno svojstvo mreže: napon generiran jednim izvorom iz jedne točke se u drugu prenosi sa pola amplitude! 3. slučaj: a3=0, a2=0, a1=1, a0=0 Prema prethodnim razmatranjima već znamo da je nadomjesna shema ista kao i prije, i da vrijedi:

32REFU

U =

Napon u točki 3 biti će pola tog napona, a napon u točki 4 pola od napona u točki 3, pa slijedi:

44322

23,

23

41,aXREF

aX

UUU

UUU =

⋅====

4. slučaj: a3=0, a2=0, a1=0, a0=1 Vrijedi:

31REFU

U =

Napon u točki 2 biti će pola tog napona, a napon u točki 3 pola od napona u točki 2, a napon u točki 4 pola od napona u točki 3, pa slijedi:

88322

2

22

23,

12

340,

aXREFaX

UU

UU

UUU =

⋅=====

Sumiramo li utjecaj svih izvora na napon točke X (pomnožen sa ai, jer ako je ai=0, tada taj napon ne doprinosi naponu UX), slijedi:

( )

∑=

⋅⋅

=

+++⋅

=

+++=

⋅+⋅+⋅+⋅=

⋅+⋅+⋅+⋅=

3

0

0123

0123

3,0

3,1

3,23,3

0,01,12,23,3

283

24883

8423

842

i

ii

REF

REF

REF

aXaXaXaX

aXaXaXaXX

aU

aaaaU

aaaa

U

Ua

Ua

UaUa

UaUaUaUaU

Sada kada znamo koliko iznosi UX, možemo izračunati izlazni napon:

Page 305: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

306 Zbirka riješenih zadataka

UX+

-−∞=A

Uizl

Rf

IN2R

UN

4

R

U

R

U

R

UUI XXNX

N 22

0

2=−=−=

R

RURIRIURIU f

XfNfNNfNizl 20 ⋅−=⋅−=+⋅−=+⋅−=

Što daje:

∑=

⋅⋅

⋅−=3

0

2832 i

ii

REFfizl a

U

R

RU

Slijedi:

Ω=⇒⋅

⋅⋅

=⋅

⋅−= kRk

RU

R

Rf

fREFf 84.383

5

128324.0

Page 306: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 307

14.3. Zadatak

Konstruirati D/A konvertor koji će na ulazu primati dvoznamenkasti dekadski broj zapisan u BCD kodu, i koristiti mrežu s težinski raspoređenim otporima.

Neka dvoznamenkasti broj N ima znamenke A i B, pri čemu vrijedi: BAN += 10 . Ako su a3a2a1a0 i b3b2b1b0 reprezentacije tih znamenaka u BCD kodu, tada je traženi konvertor prikazan na slici:

R

2R

4R

8R

10R

20R

40R

80R

+

-−∞=A

Uizl

Rf

IN+UREF

a3

a2

a1

a0

b3

b2

b1

b0

Vrijedi:

⋅+⋅⋅=

⋅+⋅=

⋅+⋅+⋅+⋅+⋅+⋅+⋅+⋅=

∑∑

∑∑

==

==

3

0

3

0

3

0

3

0

01230123

221080

280

28

80402010842

i

ii

i

ii

REF

i

ii

REF

i

ii

REF

REFREFREFREFREFREFREFREFN

baR

U

bR

Ua

R

UR

Ub

R

Ub

R

Ub

R

Ub

R

Ua

R

Ua

R

Ua

R

UaI

Page 307: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

308 Zbirka riješenih zadataka

14.4. Zadatak

Na slici je prikazan D/A konvertor koji na ulaz prima troznamenkasti dekadski broj, pri čemu su znamenke prikazane BCD kodom (pri čemu se na odgovarajuća mjesta za vrijednost bita 1 spaja UREF=+5V, inače 0 V). Izračunati otpore R0, RS i Rf. Poznato je da je R=4.5kΩ, a broju 125 odgovara napon od 0.5V.

8R 4R 2R R 8R 4R 2R R 8R 4R 2R R +

-−∞=A

Uizl

Rf

INRS RS

R0

R0

a3a2a1a0b3b2

b1b0c3c2

c1c0

stoticedeseticejedinice

Dijelove mreže koji generiraju napon pojedine znamenke možemo zamijeniti nadomjesnim otporom RP i nadomjesnim naponskim izvorom U. Naime, svaku pasivnu mrežu možemo zamijeniti ekvivalentnim naponskim izvorom kojemu je u seriju spojen nadomjesni otpor (Theveninov teorem), ili par strujnim izvorom kojemu je u paralelu spojen nadomjesni otpor (Nortonov teorem). Primijenimo na ovaj slučaj Theveninov teorem. Nadomjesni otpor RP je:

RRRRRRP 15

8||2||4||8 ==

Napon UT možemo izračunati prema Millmannu:

∑∑∑===

=⋅

==

+++=

+++

+++=

3

0

3

0

3

0

3210

3210

215

28

15

8

28

2481

2

1

4

1

8

1248

i

ii

REF

i

ii

REF

i

ii

REFP

REFREFREFREFP

CCCC

T

cU

cR

URc

R

UR

R

Uc

R

Uc

R

Uc

R

UcR

RRRR

R

U

R

U

R

U

R

U

U

Ako umjesto UT pišemo samo U, nadomjesna shema početnog sklopa prikazana je na sljedećoj slici:

Page 308: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 309

RP +

-−∞=A

Uizl

Rf

INRS RS

R0

R0

deseticejedinice

RP RP

stotice

1 2 3

UX

UN

UUU

Prikazanu mrežu svodi se na klasičnu ljestvičastu obrađenu kod pretvorbe binarnih znamenki postavljanjem zahtjeva:

00|| RRRR PS =+

Uočimo najprije da je mreža s obje strane prema masi zaključena otporom R0 (virtualni kratko spoj kod ulaza operacijskog pojačala!). Dovedimo sada na ulaze mreže broj A00 (dakle samo znamenka A različita od 0). Koliki je napon u točki 3? Desno od točke 3 imamo otpor R0 prema masi. Lijevo od točke 3 isto imamo otpor R0 prema masi. Naime, cijela mreža na lijevoj strani djeluje kao jedan otpor od R0 zbog prethodno spomenutog zahtjeva na otpore R0, RP i RS. Tada slijedi nadomjesna shema:

RP

R0R0 3

U

RP

R0||R03

U

UX

00

003100, ||

||

RRR

RRUUU

PX +

==

Analizirajmo sada utjecaj na napon UX, kada na mrežu dovedemo samo znamenku B različitu od 0 (istu koja je prije bila na A). Tada imamo identični slučaj prethodnome, osim što je sada odmah vidljiv napon u točki 2:

00

002 ||

||

RRR

RRUU

P +=

No kakav je utjecaj ovog napona na UX? Imamo sljedeću nadomjesnu shemu:

Page 309: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

310 Zbirka riješenih zadataka

RS2

RPU2

UX

R03

Očito je da je tada:

PS

P

PPS

PX RRR

RR

RRR

RRU

RRR

RRUU

||

||

||

||

||

||

0

0

00

00

0

0210, +

⋅+

=+

=

Kako imamo dekadski D/A konvertor, utjecaj desetica na izlazni napon treba biti 10 puta manji od utjecaja stotica, odnosno vrijedi:

100,10,10 XX UU =⋅

Uvrštavanjem dobivenih izraza slijedi:

00

00

0

0

00

00

||

||

||

||

||

||10

RRR

RRU

RRR

RR

RRR

RRU

PPS

P

P +=

+⋅

+⋅

odakle slijedi zahtjev:

1||

||10

0

0 =+

⋅PS

P

RRR

RR

Uvrštavanjem zahtjeva 00|| RRRR PS =+ u prethodnu jednadžbu slijedi:

PP

P

PP

P RRR

RR

RR

RRRRR

RR9

101

||||

||10 0

0

0

0

000

0 =⇒=+

⇒=++−

Uvrstimo li dobiveni rezultat u zahtjev 00|| RRRR PS =+ , dobit ćemo:

PPSSP

PS RRRRR

RR

RR

RRRR

RRR 1.8

10

81

10

9

9

900

00

00

00

0 ===⇒=+

+⇒=+

+

Sada možemo izračunati tražene otpore:

Ω=== 24005.415

8

15

8kRRP

Ω== kRR P 6,2190

Page 310: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 311

Ω== kRR PS 44.191.8

Za izlazni napon vrijedi sljedeća nadomjesna shema:

UX+

-−∞=A

Uizl

Rf

INR0

UN

3

000

0

R

U

R

U

R

UUI XXNX

N =−=−=

0

0R

RURIRIURIU f

XfNfNNfNizl ⋅−=⋅−=+⋅−=+⋅−=

Ako na ulaz dovedemo broj 100, tada je:

1,10,100, XXXX UUUU ++=

Theveninov napon koji generira stotica 1 je: 115, ⋅= REF

stoticaT

UU . Taj se napon do točke 3

prenosi kao:

11

9

15||

||

15 00

003100,

REF

P

REFX

U

RRR

RRUUU =

+==

Theveninov napon koji generira desetica 2 je: 215, ⋅= REF

deseticaT

UU . Taj se napon do

točke 2 prenosi kao:

211

9

15||

||2

15 00

002 ⋅=

+⋅⋅= REF

P

REF U

RRR

RRUU

a napon U2 naponu UX doprinosi iznosom:

10

12

11

9

15||

||

0

0210, ⋅⋅=

+= REF

PS

PX

U

RRR

RRUU

Theveninov napon koji generira jedinica 5 je: 515, ⋅= REF

jedinicaT

UU . Taj se napon do

točke 1 prenosi kao:

Page 311: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

312 Zbirka riješenih zadataka

511

9

15||

||5

15 00

001 ⋅=

+⋅⋅= REF

P

REF U

RRR

RRUU

Napon U1 naponu U2 doprinosi iznosom:

10

15

11

9

15||

||

0

012 ⋅⋅=

+= REF

PS

P U

RRR

RRUU

a napon U2 naponu UX doprinosi iznosom:

10

1

10

15

11

9

15||

||

0

021, ⋅⋅⋅=

+= REF

PS

PX

U

RRR

RRUU

Napon UX jednak je sumi svih doprinosa:

( )

1100

75

125100

1

11

9

15512101100

100

1

11

9

15

100

15

11

9

1510

12

11

9

151

11

9

151,10,100,125,

REF

REFREF

REFREFREFXXXX

U

UU

UUUUUUU

=

⋅⋅=⋅+⋅+⋅⋅⋅=

⋅⋅+⋅⋅+⋅=++=

Dok je izlazni napon jednak:

00125,125, 1100

75

R

RU

R

RUU f

REFf

Xizl −=⋅−=

Odavde možemo pročitati Rf:

Ω=⋅=⋅= kkRU

UR

REF

izlf 68.316.21

75

1100

5

5.0

75

1100||0

125,

Iz prethodnog razmatranja možemo doći i do općenitog izraza za UX:

( )CBAU

UUUU REFXXXX ⋅+⋅+⋅⋅⋅=++= 110100

100

1

11

9

151,10,100,125,

kao i izlaznog napona:

( )00

125, 110100100

1119

15 R

RCBA

U

R

RUU fREFf

Xizl ⋅⋅+⋅+⋅⋅⋅−=⋅−=

Page 312: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 313

14.5. Zadatak Kako se zove 10 bitni A/D pretvornik čija je principijelna shema prikazana na slici? Ako je tdb 20 ns, tsetup 20 ns, tls 10 ns, tda 100 ns (vrijeme potrebno za d/a pretvorbu), te tk 50 ns (vrijeme reagiranja komparatora), koja se frekvencija očitavanja uzoraka može postići u najgorem slučaju? Koji je najmanji napon koji sklop može izmjeriti? Poznato je da se na ulaz sklopa mogu dovoditi naponi od 0 do 10 V. Brojilo je izvedeno kao sinkrono, sa serijskim prijenosom.

BS

R

Q

START

BROJILOCP

CP

+

-−∞=A

uul

ud D/A

CE

Prikazani pretvornik zove se brojeći A/D pretvornik. Dok je bistabil B u stanju 0, brojilo ne broji jer mu je na ulaz za omogućavanje takta (CE, Clock Enable) nula. U trenutku kada dođe impuls za start, brojilo počinje brojati impulse takta. Svaki puta kada se stanje brojila promijeni, D/A pretvornik generira napon ud koji odgovara pohranjenom broju. Taj se napon vodi na (+) stezaljku operacijskog pojačala koje radi kao komparator. Sve dok je ud manji od uul, postupak se nastavlja. Prvi puta kada se dogodi da je ud>uul, na izlazu komparatora pojavljuje se pozitivna naponska razina koja resetira bistabil, i time onemogućava daljnje povećavanja sadržaja brojila. Broj pohranjen u brojilu u tom trenutku odgovara (do na konstantu proporcionalnosti) ulaznom naponu. Ako je maksimalni napon koji sklop može izmjeriti 10 V, taj će napon biti prikazan najvećim brojem koji možemo upisati u brojilo: 210-1. Tada jednom bitu odgovara napon:

V 0.00977512

1010

≅−

=bu

Odredimo maksimalnu brzinu kojom mogu dolaziti impulsi CP. Promatrajmo pojave od trenutka u kojem naiđe padajući brid CPa. Nakon tdb brojilo je prešlo u novo stanje. U tom trenutku kreće rasprostiranje prijenosa, a kako je ono serijsko, trebat će proći još (n-2)tdls (gdje je n broj bitova brojila). Nakon toga potrebno je sačekati još vrijeme postavljanja tsetup, i tada može doći novi CP impuls. Dakle, maksimalna brzina rada 10 bitnog sinkronog brojila sa serijskim prijenosom uz zadana vremena iznosi:

Page 313: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

314 Zbirka riješenih zadataka

MHznnnnttnt

fsetupdlsdb

cnt 33.8120

1

2010820

1

)2(

1max, ==

+⋅+=

+−+=

Međutim, kada se nakon tdb pojavi novo stanje brojila, paralelno započinje i proces D/A pretvorbe koji je gotov nakon tda. Zatim je potrebno tk da reagira komparator, i zatim (budući da koristimo sinkroni bistabil) mora proći još tsetup vremena prije no što može naići novi CP impuls. Za obilazak ove staze treba nam dakle:

setupkdadbconv ttttt +++=1,

pa je maksimalna frekvencija kojom se ovo može događati:

MHznnnnntttt

fsetupkdadb

conv 26.5190

1

205010020

111, ==

+++=

+++=

Očito je da je najveća frekvencija određena najmanjom dozvoljenom (odnosno najdužom stazom), pa impulsi CPa smiju biti maksimalne frekvencije:

MHzfff convcntCP 26.5),min( 1,max,max, ==

Najdulje vrijeme pretvorbe dobiva se kada se pretvara maksimalni dopušteni napon, jer tada brojilo mora brojati do kraja. To znači da je za pretvorbu u tom slučaju potrebno potrošiti 2n-1 impulsa takta, pa je maksimalna frekvencija očitavanja u najgorem slučaju jednaka:

kHzMff

f CP

n

CPocitavanja 15.5

1023

26.5

1212 10

max,max,max, ==

−=

−=

14.6. Zadatak

Potrebno je vrlo često mjeriti ulazni napon koji se mijenja vrlo sporo. Predložiti pretvornik pogodan za ovakav problem. Izračunati maksimalnu frekvenciju CPa, i maksimalnu frekvenciju očitavanja uzoraka u najgorem slučaju.

Pogodan je kontinuirano brojeći A/D pretvornik, čija je principijelna shema prikazana na slici u nastavku. Brojilo na svaki impuls CPa ili povećava sadržaj za jedan, ili smanjuje sadržaj za jedan, a smjer je određen izlazom komparatora. Ako trenutno stanje brojila odgovara manjem naponu od ulaznog, tada će na izlazu D/A pretvornika napon ud biti manji od uul, i na izlazu komparatora će biti niska razina, koja odgovara brojanju unaprijed. Ovime će na sljedeći impuls CPa brojilo povećati svoj sadržaj za jedan i time prići bliže stvarnom ulaznom naponu. Ako bi broj zapisan u brojilu odgovarao većem naponu od CPa, tada bi brojilo na sljedeći CP smanjilo svoj sadržaj za 1.

Page 314: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 315

REVERZIBILNOBROJILO

DNUP

D/A KONVERTER

CP

+-

K

uul

ud

CP

naprijed // natrag

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:

MHznnnnttnt

fsetupdlsdb

cnt 33.8120

1

2010820

1

)2(

1max, ==

+⋅+=

+−+=

Kada se nakon tdb pojavi novo stanje brojila, paralelno započinje i proces D/A pretvorbe koji je gotov nakon tda. Zatim je potrebno tk da reagira komparator, i zatim (budući da koristimo sinkrono brojilo) mora proći još tsetup vremena prije no što može naići novi CP impuls (da se stabilizira signal za smjer brojanja). Za obilazak ove staze treba nam dakle:

setupkdadbconv ttttt +++=1,

pa je maksimalna frekvencija kojom se ovo može događati:

MHznnnnntttt

fsetupkdadb

conv 26.5190

1

205010020

111, ==

+++=

+++=

Najveća frekvencija CPa određena je najmanjom dozvoljenom frekvencijom (odnosno najdužom stazom), pa impulsi CPa smiju biti maksimalne frekvencije:

MHzfff convcntCP 26.5),min( 1,max,max, ==

Do razlike u odnosu na prethodni zadatak dolazi se kod određivanja maksimalne frekvencije očitavanja vrijednosti napona. Naime, kako je ulazni napon po definiciji vrlo sporo mijenjajući, jednom kada ga pretvornik stigne, stalno će moći pratiti ispravnu vrijednost, i rezultat će se moći očitavati na svaki CP! Dakle, upravo frekvencijom od 5.26 MHz. Ovaj pretvornik imati će problema samo u dva slučaja: (1) na početku ako ulazni napon nije nula, trebati će određeno vrijeme da se dostigne ulaz, i (2) ako se ulazni napon počne brzo mijenjati, jer ga tada pretvornik neće moći slijediti dovoljno brzo. Slučaj 1 ilustriran je na skici. Na slici se također vidi da

uulu

t

ud

Početakrada

Page 315: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

316 Zbirka riješenih zadataka

pretvornik uvijek oscilira oko prave vrijednosti (mijenja se napon koji odgovara vrijednosti jednog bita). Ako se napon naglo promijeni, dobiti će se efekt početka rada gdje brojilo postupno prilazi novoj vrijednosti, ali je za to potrebno određeno vrijeme, pa očitanja u tom trenutku više ne odgovaraju ulaznom naponu. Možemo 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:

V 0.00977512

1010

≅−

=bu

i brojilo "ažurira" svoje stanje 5.26M puta u sekundi. To znači da se i ulazni napon smije promijeniti za maksimalno ub svakih 1/5.26M sekundi, što daje promjenu napona od:

s

V

M

uul 5.51416

26.51

0.009775 ==∆

što zapravo i nije tako "spora" promjena napona!

14.7. Zadatak Objasniti princip rada brzog A/D pretvornika i prikazati jednu od mogućih izvedbi. Ako je na raspolaganju 4-bitni A/D pretvornik sa maksimalnim ulaznim naponom od 15 V, a na ulazu je napon od 10.2 V, prikazati tijek pretvorbe ovog napona i rezultat.

Brzi A/D pretvornik poznatiji pod nazivom A/D pretvornik sa sukcesivnom aproksimacijom modifikacija je klasičnih A/D pretvornika s brojilom. Razlika je u tome što brojilo ne broji po jedan, već se ispituje utjecaj svakog bita na rezultat, počev od bita najveće težine. Objasnimo to na primjeru. 4-bitni pretvornik kod kojega je maksimalni ulazni napon jednak 15 V ima napon najmanjeg bita jednak:

Vub 115

15

12

154

==−

=

Rezultat pretvorbe je 4-bitni broj koji je manji ili jednak mjerenome ulaznom naponu. Zapišimo taj broj binarno: b3b2b1b0. Kod brzog A/D pretvornika postupak pretvorbe napona je sljedeći:

Page 316: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 317

b=1000ud(b)>uul?

poništi zadnjipodignuti bit

b=1000

b=1100ud(b)>uul?

NE

8<10.2!

DA

12>10.2!

b=1010ud(b)>uul?

b=1011ud(b)>uul?

NE

10<10.2!

poništi zadnjipodignuti bit

b=1010

b=1010gotovo

Vidimo, zapravo, da se kod svakog bita (odnosno bistabila koji pohranjuje taj bit) obavljaju sljedeće tri operacije:

1) Postavi bistabil u 12) Ako je izlazni napon

preveliki, vrati bistabil u 0

3) Prijeđi na sljedećibistabil, ako postoji

Na ovaj način postupak pretvorbe završava nakon onoliko koraka koliko ima bistabila, dok je kod klasičnih pretvornika s brojilima postupak u najgorem slučaju završavao nakon čak 2n-1 koraka. Jedna moguća principijelna implementacija ovakvog pretvornika prikazana je na sljedećoj slici.

Page 317: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

318 Zbirka riješenih zadataka

S R

QQ

dC

S R

QQ

dC

S R

QQ

dC

S R

QQ

dC

D/A pretvornik

o0

o1

o2

o3

i

a0a1

a0a1

o0

o1

o2

o3

i

n1 n0CP

+-

K

uul

&

A

B

CCE

&

Clear

1≥

Start

CPCP

B3B2 B1 B0

Sklop se sastoji od sljedećih dijelova: D/A pretvornik, 4 SR bistabila s asinkronim ulazom za brisanje koji pohranjuju vrijednost broja koji odgovara ulaznom naponu, dvobitno brojilo koje određuje koji će se bit ispitivati, dva demultipleksora koji signale postavljanja i brisanja usmjeravaju na bistabil indeksiran dvobitnim brojilom, Jonhnsonovog brojila s izlazima A, B i C (koje je izvedeno tako da se osigura siguran start) i nešto dodatne logike koja zaustavlja konverziju. Sklop radi na sljedeći način. Neka je stanje brojila n1n0=11 (odnosno 3), čime je odabran zadnji bistabil (koji čuva bit najmanje težine), i neka je na B izlazu 1. Tada NI sklop na ulazu ima sve-jedan stanje, pa je izlaz NI sklopa 0. Ako je na Start ulazu također 0, na CE (Clock Enable) se dovodi 0 pa Johnsonovo brojilo ostaje u stanju 010 i sklop miruje. Ovo je stanje kada konverzija još nije započela. Sada se svi bistabili mogu poništiti djelovanjem na asinkroni ulaz Clear'. Neka sada Start ode kratkotrajno u 1. Nailaskom CPa Johnsonovo brojilo prelazi u stanje 001, čime se na izlazu C dobije visoka razina. Na taj rastući brid reagira dvobitno brojilo i prelazi u stanje 00, čime se odabire bistabil B3. Kako je sada više dvobitno brojilo nije u stanju 11(2), NI sklop na izlazu daje 1, i ulaz CE dovodi se 1 zbog NI sklopa pa Start može prestati djelovati. Na sljedeći CP Johnsonovo brojilo prelazi u stanje 100, čime se na izlazu A generira 1. Ta jedinica vodi se preko demultipleksora na ulaz S bistabila B3 i uzrokuje njegovo postavljanje. Time smo na ulaze D/A doveli broj 8, pa na izlazu ud imamo 8 V. Kako je 8<10.2, na izlazu komparatora imamo logičku 0. Na sljedeći CP Johnsonovo brojilo prelazi u stanje 010, čime se na B pojavljuje 1. Time nestaje 1 sa ulaza S bistabila B3, i dolazi izlaz komparatora na ulaz R. Kako je on 0, bistabil se ne resetira. Na sljedeći CP Johnsonovo brojilo prelazi u stanje 001 (1 na izlazu C). Rastući brid koji se time dobije okida dvobitno brojilo i ono prelazi u stanje 01, čime se selektira bistabil B2. Sljedeći CP Johnsonovo brojilo prebacuje u stanje 100, i uzrokuje postavljanje B2. No kako je sada na ulazu D/A broj 12 (1100), ud je veći od 10.2 V i na izlazu komparatora dobije se 1. Na sljedeći CP Johnsonovo brojilo prebacuje u stanje 010, i uzrokuje reset B2 (na ulaz R dovodi se jedinica iz komparatora koja resetira bistabil). Na sljedeći CP Johnsonovo brojilo prelazi u stanje 001 (1 na izlazu C). Rastući brid koji se time dobije okida dvobitno brojilo i ono prelazi u stanje

Page 318: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 319

10, čime se selektira bistabil B1. Sljedeći 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 sljedeći CP Johnsonovo brojilo prebacuje u stanje 010, no kako se na ulaz R od B1 dovodi 0, ništa se ne događa. Sljedeći CP Johnsonovo brojilo prebacuje u stanje 001 (1 na izlazu C). Rastući brid koji se time dobije okida dvobitno brojilo i ono prelazi u stanje 11, čime se selektira bistabil B0. Sljedeći CP Johnsonovo brojilo prebacuje u stanje 100, i uzrokuje postavljanje B0. Na izlazu D/A time se dobije napon 11.2 V koji je veći od 10.2 V pa je izlaz komparatora 1. Na sljedeći 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 završio). 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 uključenjem napona resetiraju, te da se napon na izlazu operacijskog pojačala može mijenjati beskonačno brzo.

Da bismo rješili ovaj zadatak, moramo najprije analizirati rad sekvencijskog dijela sklopa. Jedini sekvencijski dio čini posmačni registar s 3 izlaza, što znači da ćemo imati maksimalno 8 stanja sustava. Proglasimo izlaz A izlaz najviše težine. Potrebno je napraviti tablicu prijelaza stanja. Tablicu ćemo odmah proširiti svim potrebnim ulazima, kao i binarnim brojem koji se dovodi na ulaz D/A pretvornika. Tu je potrebno uočiti da se kao najviši bit broja za D/A pretvorbu (koji se dovodi na otpor R) dovodi bit najmanje težine iz posmačnog registra (uz prethodni dogovor da je izlaz A najviše težine). Tada je tablica prikazana u nastavku:

8R

4R

2R

R

+

-−∞=A

Uizl

Rf

A B

Sin

C

a0

a1i0 i1 i2 i3

yMUX

+UCCCP

Page 319: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

320 Zbirka riješenih zadataka

Trenutno stanje

Ulazi mux-a Izlaz Sljedeće stanje Broj za D/A Br.

A B C i1/i2 a1 a0 y A B C n3 n2 n1 n0 n 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 8 0 1 0 1 0 1 1 1 0 1 0 1 1 0 6 0 1 1 0 0 1 0 0 0 1 1 1 1 0 14 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 0 1 9 1 1 0 1 1 1 0 0 1 1 0 1 1 1 7 1 1 1 0 1 1 0 0 1 1 1 1 1 1 15

Prikažimo i dijagram promjene stanja:

0

4

6

3

7

1

2

5

Iz dijagrama je vidljivo da sklop nema siguran start, niti je otporan na pogreške u radu. Naime, ukoliko se po uključenju sklop nađe u stanju 2 ili u stanju 5, nikada neće izaći iz ciklusa (2,5). Isto tako, ukoliko tijekom rada pod utjecajem pogreške sklop pređe u stanje 2 ili 5, ostati će zaglavljen u ciklusu (2,5). Po pretpostavci zadatka, sklop se po uključenju nalazi u stanju 0, pa je dijagram izlaznog napona prikazan u nastavku. Izlazni napon kod zadanog D/A pretvornika računa se po formuli:

nnR

URU REF

fizl ⋅−=⋅⋅−= 35.08

Page 320: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

A/D i D/A konverzija. 321

2

4

6

8

10

12

14

16

2 31 4 5 6 7 8 9 10 11 12 13 14 15 160n

35.0izlU

2

4

6

8

10

12

14

16

2 31 4 5 6 7 8 9 10 11 12 13 14 15 160n

35.0izlU

ZADACI ZA VJEŽBU

1. Konstruirati D/A pretvornik po uzoru na zadatak 14.4 koji na ulaz dobiva troznamenkasti heksadekadski broj. Ako je najmanji otpor kod težinskog pretvornika (jedna znamenka) jednak 1 kΩ, a izlazni napon koji odgovara broju 1E7(16) na ulazu pretvornika iznosi -0,5946V, izračunati sve ostale otpore, kao i maksimalnu amplitudu izlaznog napona pretvornika. UREF iznosi +5V. Napomena: omjer najmanjeg i najvećeg otpora kod težinskog dijela pretvornika ne smije biti veći od 8.

2. Neki analogni signal potrebno je konvertirati u ekvivalentnu digitalnu vrijednost koristeći A/D konvertor sa sukcesivnom aproksimacijom. Očekivana vrijednost ulaznog napona je u granicama 0V do 10V. Ako razlika između očitanja i stvarne vrijednosti nikada ne smije prijeći 0.5% maksimalne analogne vrijednosti, koliko bitova treba upotrijebiti? Grafički prikazati vrijednost apsolutne i relativne pogreške navedenog A/D

Page 321: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

322 Zbirka riješenih zadataka

konvertora za digitalne izlaze u rasponu od 20 do 40. Vrijednost relativne pogreške računati uz pomoć izraza: Rel_err = (ispravna_vrijednost - očitana_vrijednost) / ispravna_vrijednost * 100 [%]. Prikažite postupak pretvorbe ulaznog napona od 5,17734 V. Koliko iznose apsolutna i relativna pogreška pretvorbe za taj slučaj?

Page 322: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 323

15. Integrirani logički sklopovi.

15.1. Zadatak Nacrtati osnovni sklop porodice RTL. Koju funkciju obavlja taj sklop i kako se ona ostvaruje? Poznati su sljedeći podaci: napon napajanja UCC=6 V, tranzistori su silicijski s minimalnim faktorom istosmjernog strujnog pojačanja hFE=25 (reverzna struja zasićenja ICB0 može se zanemariti), UCEzas=0.3 V, kolektorski otpor iznosi RC=1 kΩ a bazni otpori iznose RB=10 kΩ. Odredite: a) Faktor grananja n b) Faktor grananja n, uz tolerancije otpora 20%

Osnovni sklop porodice RTL (Resistor-Transistor Logic) je NILI sklop, koji se temelji na paralelnom radu tranzistora, i prikazan je na sljedećoj slici:

+UCC

RB RB

RC

BAf +=

A B a) Faktor grananja bez tolerancija otpora Da bismo mogli odrediti faktor grananja, moramo pretpostaviti da se na izlaze ovoga sklopa spajaju ulazi identičnog sklopa, kao što je prikazano na sljedećoj slici. Promotrimo rad lijevog sklopa. Kada je na barem jednom od ulaza (A ili B) visoka razina, tada će taj tranzistor (ili oba ako su oba ulaza na visokoj razini) provesti, i izlaz f bit će pritegnut na nisku razinu. No kada je izlaz f na niskoj razini, tada tranzistor idućeg stupnja čija je baza spojena na taj izlaz neće voditi, i taj stupanj neće opterećivati dodatnom strujom tranzistor u prvom sklopu koji je proveo. Iz ovoga slijedi da nema nikakvih ograničenja na broj sklopova koji se mogu spojiti na izlaz. Promotrimo sada i preostali slučaj. Kada je na oba ulaza (A i B) niska razina, tada niti jedan tranzistor ne vodi, te je izlaz f sklopa spojen na visoku naponsku razinu. Visoka razina na izlazu f znači da će

Page 323: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

324 Zbirka riješenih zadataka

tranzistori sljedećeg stupnja čiji su ulazi spojeni na taj izlaz provesti. Struja koja će poteći iz promatranog sklopa tada se dijeli za struje baza svih tranzistora.

+UCC

RB RB

RC

A B

+UCC

RB RB

RC

'A 'B

f

Treba uočiti da struja u tom slučaju teče iz UCC kroz RC na izlaz f, i dalje se dijeli kroz sve tranzistore sklopova sljedećeg stupnja spojene na taj izlaz. Što je ta struja veća, veći je pad napona na RC, i napon izlaza f pada. Ukoliko je previše sklopova spojeno na taj izlaz, napon na f će previše pasti, i struja više neće biti dovoljna za držanje svih tranzistora u zasićenju, čime se dobiva neispravan rad. Vidimo dakle da ovaj slučaj postavlja ograničenje na broj ulaza koje spajamo na promatrani izlaz. Sklop u ovom slučaju izgleda kako je prikazano na sljedećoj slici. Kako tranzistori u sljedećem stupnju vode (jer je f=1), njihova maksimalna struja kolektora određena je s:

mAR

UUI

C

CEzasCCCzas 7.5=

−=

Izraz je dobiven uz pretpostavku da vodi samo jedan od tranzistora u sklopu (jer bi se u suprotnom slučaju struja dijelila na pola kroz svaki tranzistor). Struja baze potrebna za održavanje izračunate kolektorske struje određena je uvjetom zasićenja:

Am

h

II

h

II

FE

CzasBzas

FE

CzasBzas µ228

25

7.5 ===⇒≥

Page 324: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 325

+UCC

RB RB

RC

A B

+UCC

RB RB

RC

'A'Bf

+UCC

RB RB

RC

''A ''B

n

IBI

BIn )1( −

CI

CI

Nadomjesna shema:

+UCC

RC

+UBEzas

RB

+UBEzas

RB

n

I

f

U

Napon U možemo izračunati prema Milmannu:

BC

B

BEzas

C

CC

BBC

B

BEzas

B

BEzas

C

CC

R

n

R

R

Un

R

U

RRR

R

U

R

U

R

U

U+

+=

+++

+++=

1111

Page 325: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

326 Zbirka riješenih zadataka

Struja IB tada je:

CB

BEzasCC

C

B

C

BEzas

C

CC

B

BEzas

BC

B

BEzas

C

CC

B

BEzasB nRR

UU

nR

RR

U

R

U

R

U

R

n

R

R

Un

R

U

R

UUI

+−

=+

−=

−+

+

=−

=

1

25.13=−−

=CB

BBBEzasCC

RI

RIUUn

Slijedi da je maksimalni broj ulaza koji se smije priključiti na izlaz f jednak 13. b) Faktor grananja uz tolerancija otpora Odredimo ponovno maksimalnu struju kolektora tranzistora sljedećeg stupnja:

( ) mAR

UU

R

UUI

C

CEzasCC

C

CEzasCCCzas 125.7

2.01=

−−

=−

=

Struja baze potrebna za održavanje izračunate kolektorske struje određena je uvjetom zasićenja:

Am

h

II

h

II

FE

CzasBzas

FE

CzasBzas µ285

25

125.7 ===⇒≥

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 slučaj. To će biti kada jedan otpor baze bude najveći, a svi ostali otpori baza najmanji, jer će tada kroz najveći otpor teći najmanja struja (koja možda neće biti dovoljna da tranzistor održava u zasićenju). Možemo pisati:

( )

BBC

B

BEzas

B

BEzas

C

CC

BBBC

B

BEzas

B

BEzas

B

BEzas

C

CC

R

n

RR

R

Un

R

U

R

U

RRRR

R

U

R

U

R

U

R

U

U111

1

1111 −++

−++

=++++

++++

=

Struja baze tranzistora koji ima najveći bazni otpor tada je:

Page 326: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 327

( )

B

BCCB

BEzasCC

B

B

C

B

C

BEzas

C

CC

B

BEzas

BBC

B

BEzas

B

BEzas

C

CC

B

BEzasB

R

RRnRR

UU

R

Rn

R

R

R

U

R

U

R

U

R

n

RR

R

Un

R

U

R

U

R

UUI

)1(

)1(1

111

1

−++

−=

−++

−=

−−++

−++

=−

=

pa je n određen izrazom:

( )998.2=

+−−=

B

BCB

CBBBEzasCC

R

RRI

RRIUUn

Dakle, faktor grananja u ovom slučaju iznosi svega 2.

15.2. Zadatak Nacrtati DTL sklop u diskretnoj izvedbi. Koju funkciju obavlja sklop? Neka je k takvih sklopova s otvorenim kolektorom spojeno u spojeni I, i neka je na taj izlaz spojeno n ulaza istih sklopova. Poznati su sljedeći podaci: napon napajanja UCC=5V, ulazna struja DTL sklopa IIL = 0.5 mA, struja baze izlaznog tranzistora iznosi IBzas = 0.1 mA. Minimalni faktor istosmjernog pojačanja tranzistora je hFE = 40. Odrediti izraz za minimalni iznos vanjskog otpora da bi sklop radio ispravno. Koliko iznosi taj otpor za slučaj k=6, n=4?

Shema DTL sklopa u diskretnoj izvedbi za dva karakteristična slučaja:

RCR1

R2

R3

-UBB

+UCC

ILI

A=N

B=V

f=V

Struja teče iz ulaza sklopa prema van.

RCR1

R2

R3

-UBB

+UCC

BzasIA=V

B=V

f=N

Nema struje prema van iz ulaza sklopa.

Sklop obavlja logičku funkciju NI.

Page 327: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

328 Zbirka riješenih zadataka

U slučaju da su zadani sklopovi s otvorenim kolektorom spojeni kako je opisano, shema je:

R

sklop k

sklop 2

sklop 1

RCR1

R2

R3

-UBB

+UCC

ILIf=V

RCR1

R2

R3

-UBB

+UCC

ILIf=V

+UCC

k n

Ako su svi izlazni tranzistori zatvoreni, tada kroz R ne teče struja. Ako neki od izlaznih tranzistora vodi, tada mu je struja baze IB = 0.1 mA, pa je maksimalna struja kolektora izlaznog tranzistora jednaka:

mAmIhI BFEC 41.040max =⋅==

Kada nastupa najgori slučaj? Ako više tranzistora vodi, tada će se struja koja dolazi iz ulaza sljedećeg stupnja, kao i kroz otpor R dijeliti kroz te tranzistore. Najgori slučaj je ako samo jedan izlazni tranzistor vodi, jer će tada on sam morati provesti svu struju i ostati u zasićenju (a struja baze mu je ograničena). U tom slučaju vrijedi:

ILCEzasCC

C InR

UUI ⋅+−=

Odavde možemo izračunati R:

ILC

CEzasCC

InI

UUR

⋅−−=

maxmin

Za slučaj k=6, n=4 imamo:

Page 328: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 329

Ω=⋅−

−= kmm

R 35.25.044

3.05min

Ujedno vidimo i da broj izlaza koji je spojen zajedno ne utječe na iznos otpora R.

15.3. Zadatak Za TTL sklopove poznati su sljedeći podaci: IOL=16mA, IOH=250µA, IIL=1.6mA, IIH=40µA, UOHmin=2.4V, UOLmax=0.4V. Treba odrediti izraz za iznos vanjskog otpora R tako da se k izlaza sklopova s otvorenim kolektorom može spojiti u spojeni I, i zatim na tu točku priključiti n ulaza. Odrediti iznos R za slučaj k = 5, n = 4.

Uvijek moramo analizirati najnepovoljnije slučajeve. Neka je spojeni I na visokoj razini. Kako su kod spojenog I sklopovi spojeni u paralelu, napon u toj točki bit će određen najmanjim naponom koji drži neki izlaz. Tada u izlaze sklopova u najgorem slučaju ulazi struja IOH, a u ulaze sklopova struja IIH. Otpor R mora biti takav da propusti potrebnu struju, pa je njegov maksimalni iznos jednak:

IHOH

OHCC

InIk

UUR

⋅+⋅−= min

&

&

&

&

&

&

+UCC

R

I

Promotrimo sada slučaj 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 slučaj nastupa kada je samo jedan sklop stvarno u niskoj razini, jer će on tada morati progutati svu struju:

Page 329: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

330 Zbirka riješenih zadataka

& &

&

&

+UCC

R

I

U izlaz tog jednog sklopa tada ulazi struja:

ILOLCC In

R

UUI ⋅+−= max*

Kako izlazni sklop može maksimalno progutati struju IOL, struja I* ograničena je ovom strujom, pa je minimalni otpor R koji je potreban kako bi struja ostala u dozvoljenim granicama jednak:

ILOL

OLCC

InI

UUR

⋅−−= max

Zašto je R određen razlikom maxOLCC UU − a ne gledamo

najnepovoljniji slučaj koji bi generirao najveću struju (pa bi brojnik trebao biti maksimalan, dakle CCU )? Radi se o tome da

je tranzistor aktivan element pa kod njega ne možemo samo tako izlazni napon uzeti kako želimo i pri tome držati struju po volji veliku. Pogledajmo jednostavan sklop od jednog tranzistora i jednog otpornika uz konstantnu baznu struju. Kako se mijenja izlazni napon ( CEU ) u ovisnosti o otporu R?

Neka je iznos otpora R jednak 0. Tada je sav napon CCU na kolektoru tranzistora, pa

vrijedi CCCE UU = . Kolika je tada struja kolektora? Kako je tranzistor u NAPu

(normalnom aktivnom području) struja kolektora određena je strujom baze i za faktor istosmjernog pojačanja veća od bazne struje, pa iznosi (u našem slučaju kod TTL sklopa) upravo OLI , kao što je prikazano na slici.

konstIB =

+UCC

CEU

R

Page 330: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 331

][VUCE

0.1V

0.4V

Ω0

NAP!

OLBFEC IIhI =⋅=CCU

0>R

RIUU CCCCE ⋅−=

OLBFEC IIhI =⋅≤CEzasCE UU =

Zasićenje

][ΩR

Porastom vrijednosti otpora raste pad napona na njemu i smanjuje se napon CEU .

Međutim, treba uočiti da je struja kolektora i dalje konstantna i određena izrazom

OLBFEC IIhI =⋅= . Međutim, do kada možemo povećavati R? Ako bi R postao jako

veliki, tada bi se prema jednadžbi RIUU CCCCE ⋅−= moglo dogoditi da umnožak

kolektorske struje i otpora bude veći od CCU , pa bi CEU postao negativan. Međutim, to

se fizikalno ne može dogoditi, jer kako napon CEU pada prema nuli, tranzistor polako

ulazi u zasićenje, i napon CEU neće ići do nule, već će u dubokom zasićenju biti oko

0.1V. No kako jednadžba izlaznog kruga i dalje mora vrijediti ( RIUU CCCCE ⋅−= ), to

će sada struja kolektora početi padati, pa će vrijediti OLBFEC IIhI =⋅≤ . Kako u našem

slučaju tražimo minimalni iznos otpora, promatrajmo sada proces naopačke. Uz jako velike otpore nema problema. Smanjivanjem otpora polako izlazimo iz zasićenja i napon CEU počinje rasti. U našem slučaju dozvoljeno je da izlazni napon poraste do

maksimalno UOLmax=0.4V, i u toj točki treba izračunati vrijednost otpora. Za konkretni slučaj k = 5, n = 4 slijedi:

Ω=⋅+⋅

−= kInIk

UUR

IHOH

OHCC 84.1min

Ω=⋅−

−= kInI

UUR

ILOL

OLCC 479.0max

pa možemo uzeti npr. otpor od 1kΩ.

Page 331: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

332 Zbirka riješenih zadataka

15.4. Zadatak

Nacrtati standardni TTL. Koju funkciju ostvaruje sklop? Koji su dijelovi sklopa? Analizirati rad sklopa (bez opterećenja i sa opterećenjem identičnim sklopovima). Analizirati spojeni I izveden ovim sklopovima.

Standardni TTL sklop prikazan je na slici.

+UCC

R2

Tr2AB Tr1

V5

Tr3

ABf =D

R4Ω130

R3

R1 Ωk4 Ωk62.1

Ωk1

Tr4

Sklop ostvaruje funkciju NI. Sastoji se od tri dijela: ulaznog I sklopa, međustupnja (obrtač faze) i izlaznog stupnja ("totemski stup"). Ulazne diode služe za uklanjanje negativnih napona nastalih uslijed refleksija u sustavu. Promotrimo slučaj kada su oba ulaza na visokoj naponskoj razini. Tr1 se tada nalazi u inverznom području, a Tr2 i Tr3 u zasićenju. Očekujemo da će Tr4 biti u zapiranju.

VUUU CEzasBEzasB 95.02.075.0234 =+=+=

VUU CEzasC 2.033 ==

Da bi tranzistor Tr4 vodio (ili barem došao do ruba vođenja), UBE4 mora biti barem Uγ=0.65V, isto kao i UD. Slijedi da bi UB4-UC3 moralo biti veće 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 zaključujemo da je Tr4 stvarno u zapiranju. Što bi bilo da nema diode D? Tada bi napon UB4-UC3=0.75V bio veći od napona Uγ i tranzistor Tr4 također bi vodio! Dakle, dioda D potrebna je zato da drži tranzistor Tr4 isključenim. Pogledajmo sada što se događa ako je barem jedan od ulaza spojen na nisku naponsku razinu (npr. A). Kako identičan sklop pobuđuje ulaz sklopa, niskom ulaznom naponu odgovara napon UCEzas3=0.2V. Tada je tranzistor Tr1 duboko u zasićenju (napon UCEzas1=0.1V), pa je napon UB2 jednak:

VUUUuUU CEzasCEzasCEzasulCB 3.01.02.013112 =+=+=+==

Da bi Tr2 došao na rub vođenja, mora i Tr3 biti na rubu vođenja, pa bi napon baze tranzistora Tr2 trebao biti barem Uγ+Uγ=1.3V. No upravo smo izračunali da je taj napon

Page 332: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 333

svega 0.3V što nije dovoljno da provede serija tranzistora Tr2 i Tr3, pa su oni sigurno u zapiranju. Pretpostavimo sada da izlaz sklopa nije opterećen. Tada je struja baze IB4 = 0, nema pada napona na otporu R2 te je UB4=UCC. Bitno je uočiti da zbog nepostojanja opterećenja izlaza izlazna je struja jednaka 0, pa Tr4 nije u zasićenju (unatoč visokom naponu baze) već je na rubu zapiranja i aktivnog područja. Tada je UBE4 isto kao i UD jednako Uγ. Izlazni napon tada je:

VUUUUUUUU CCDBEBCEizl 7.365.065.05443 =−−=−−=−−== γγ

Sada je očito da je izlazni napon čak i bez opterećenja izlaza manji od UCC. Ako izlaz sklopa opteretimo sa n ulaza (pretpostavimo da je IIH=100µA, i neka bude n=10, a hFE barem 50), tada tranzistor Tr4 više neće biti na rubu aktivnog područja i zapiranja, već će ući u aktivno područje (naime, sada će moći poteći struja baze i kolektora Tr4). Struja IB4 na otporu R2 stvarati će pad napona i umanjiti napon baze Tr4 (ali neznatno):

244 RIUU BCCB ⋅−=

Izlazna struja biti će jednaka:

mAInI IHizl 110010 =⋅=⋅= µ

Kako je to ujedno i emiterska struja Tr4, bazna struja bit će hFE puta manja, pa vrijedi:

VmVkm

Rh

IURIUU

FE

izlCCBCCB 9676.44.32562.1

50

152244 =−=⋅−==⋅−=⋅−=

Tada je izlazni napon:

VUUUU DzasBEBizl 5676.37.07.09676.444 =−−=−−=

Vidimo dakle da izlazni napon vrlo malo ovisi o opterećenju izlaza (naime, u primjeru smo izlaz opteretili s čak 10 ulaza!). Kada sklop prelazi iz stanja u kojem je izlaz nizak, u stanje u kojem je izlaz visok, postoji kratkotrajna pojava zbog činjenice da se tranzistor Tr4 prije uključi no što se Tr3 isključi. Zbog toga jedno kratko vrijeme (cca 2 ns) teče struja:

mAR

UUUUCCI zasCEDtasCE 5.28

130

3.07.03.05

4

34 =−−−=−−−=

Analiza spojenog I Neka jedan sklop na izlazu daje visoku naponsku razinu (lijevi sklop), a drugi nisku (desni).

Page 333: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

334 Zbirka riješenih zadataka

+UCC

R2

Tr2AB Tr1

V5

Tr3

D

R4Ω130

R3

R1 Ωk4 Ωk62.1

Ωk1

Tr4

V5

R4Ω130

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 poteći:

mAR

UUUUI zasCEDzasCECC 30

130

9.3

130

2.07.02.05

4

34 ==−−−=−−−=

Struja od 30 mA u relativno bi kratkom periodu uzrokovala termičko uništenje tranzistora, pa se zbog toga spojeni I ne smije izvoditi s standardnim TTL sklopom!

15.5. Zadatak Nacrtati prijenosnu karakteristiku standardnog TTLa.

Promatramo NI sklop u funkciji invertora. Kada je Uul=0V:

VUUuUU CEzasCEzasulCB 1.01112 ==+==

Da bi Tr2 došao na rub vođenja, mora i Tr3 biti na rubu vođenja, pa bi napon baze tranzistora Tr2 trebao biti barem Uγ+Uγ=1.3V. No upravo smo izračunali da je taj napon svega 0.3V što nije dovoljno da provede serija tranzistora Tr2 i Tr3, pa su oni sigurno u zapiranju. Pretpostavimo sada da izlaz sklopa nije opterećen. Tada je struja baze IB4 = 0, nema pada napona na otporu R2 te je UB4=UCC. Bitno je uočiti da zbog nepostojanja opterećenja izlaza izlazna je struja jednaka 0, pa Tr4 nije u zasićenju (unatoč visokom naponu baze) već je na rubu zapiranja i aktivnog područja. Tada je UBE4 isto kao i UD jednako Uγ. Izlazni napon tada je:

VUUUUUUUU CCDBEBCEizl 7.365.065.05443 =−−=−−=−−== γγ

Page 334: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 335

Porastom ulaznog napona prva se promjena događa kada Tr2 počinje voditi (dolazimo do točke A). Tada na bazi Tr2 mora biti napon UB2 jednak Uγ, pa je na ulazu potreban napon:

VUUU CEzasul 55.01.065.01 =−=−= γ

Sve do tog napona izlaz je bio nepromjenjen (3.7V), i napon UB4 bio je jednak UCC. Kako sada Tr2 počinje voditi, pada napon baze UB4, što direktno smanjuje i izlazni napon (idemo prema točki B). Nova prekretnica događa se u trenutku kada i Tr3 počinje voditi (točka B). Tada je i njegov UBE3 jednak Uγ, što znači da je odgovarajući ulazni napon bio:

VUUUUUUU CEzaszasBECEzasBEzasBEul 3.11.065.075.012132 =−+=−+=−+= γ

Struja kroz R3 tada je:

mAkR

U

R

UI BE

R 65.01

65.0

33

33 ==== γ

Otprilike ta ista struja teče i kroz otpor R2, pa izlazni napon jednak:

Vkm

UURIUUUUUU RCCDBEBCEizl

647.265.065.062.165.0523443

=−−⋅−=

−−−=−−== γγ

Napon baze UB4 iznosi:

VRIUU RCCB 947.365.065.0647.2234 =++=−=

Daljnjim porastom ulaznog napona raste struja kroz R2 i ruši napon UB4; Tr4 se isključuje, Tr2 i Tr3 idu u zasićenje (prema točki C). U točki C Tr4 je isključen. Napon UCE1 iznosi 0V, pa je ulazni napon kod kojega se ovo dogodi jednak:

VUUU zasBEzasBEul 5.175.075.032 =+=+=

Izlazni napon tada je:

VUU CEizl 2.03 ==

i dalje ostaje nepromijenjen.

Page 335: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

336 Zbirka riješenih zadataka

uizl [V]

uul [V]

1

2

3

4

1 2 3 40

A

B

C

Tr4 vodiTr2, Tr3 u zapiranju

Tr2 vodiTr3 ne vodi

Tr2 u zasićenjuTr3 vodi (ide u zasićenje)Tr4 ide u zapiranje

Tr2, Tr3 u zasićenjuTr4 u zapiranju

0.551.3 1.5

3.7

0.2 V

3.7 V

2.647 V

15.6. Zadatak Prikazati TTL sklop s tri stanja. Prikazati simbol sklopa. Objasniti način rada.

Sklop s tri stanja prikazan je na slici.

+UCC

R2

Tr2AB Tr1

V5

Tr3

ABf =D

R4

R3

R1

Tr4

EN

D'

Page 336: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 337

Kada je ulaz EN na nuli, sklop se ponaša kao "obični" 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 opću strukturu CMOS sklopa. Izvesti sklopove koji ostvaruju: a) Af =

b) BAf +=

c) ABf =

d) CBAf +=

e) EDCBAf )( ++=

Opća struktura CMOS sklopova prikazana je na slici.

Pull Up Network(PUN)

Pull Down Network(PDN)

+UDD

X1

Xn

f

Sklop se sastoji od dva dijela: mreže za pritezanje na +UDD (PUN), i mreže za pritezanje na masu (PDN). Ove dvije mreže uvijek ostvaruju komplementarne funkcije, tako da ili PUN priteže izlaz na UDD, ili PDN priteže izlaz na masu. U svakom slučaju, nikada obje mreže nisu aktivne (jer su komplementarne), pa nikada ne teče struja iz UDD ka masi kroz njih. Zbog toga ovi sklopovi troše vrlo malo. PUN mreža ostvaruje se PMOS tranzistorima, a PDN mreža NMOS tranzistorima. Koristiti ćemo sljedeće simbole NMOSa i PMOSa:

Page 337: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

338 Zbirka riješenih zadataka

NMOS

PMOS

Rad mreža možemo si pojednostavljeno predočiti sljedećim ekvivalentnim shemama:

+UDD

f=1

Kada f treba biti 1, izlaz se kratko spaja na

napajanje, a otpaja od mase.

+UDD

f=0

Kada f treba biti 0, izlaz se kratko spaja na

masu, a otpaja od napajanja. a) Invertor Funkcija je zadana izrazom Af = . Ovaj izraz određuje kada je vrijednost funkcije 1, dakle određuje PUN mrežu. Kako je PUN sastavljen od PMOSa koji vodi kada je na upravljačkom ulazu (G) niska razina, možemo dovesti direktno A (jer tranzistor i treba provesti kada je A nisko da izlaz spoji na UDD).

PDN mora ostvarivati komplement funkcije, dakle: AAf == . No kako je PDN sastavljen od NMOSa koji vodi kada mu je na upravljačkoj elektrodi visoka razina, možemo na njegov ulaz dovesti direktno A (jer PDN mora izlaz pritegnuti na masu kada je A visoko). Shema sklopa:

+UDD

A

Af =

Tr1

Tr2

Provjerimo da li sklop radi dobro:

Page 338: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 339

A Tr1 Tr2 f nisko vodi ne vodi UDD

visoko ne vodi vodi 0 Interpretacija u pozitivnoj logici:

A A f 0 1 1 1 0 0

U tablici je napisana očekivana vrijednost funkcije (dakle, komplement) i stvarna vrijednost funkcije. Vidi se da je dobivena funkcija upravo A . b) Nili

Funkcija je zadana izrazom BAf += . Ovaj izraz određuje kada je vrijednost funkcije 1, dakle određuje PUN mrežu. Kako je PUN sastavljen od PMOSa koji vodi kada je na upravljačkom ulazu (G) niska razina (pomozimo si na sljedeći način: varijabla je u logičkoj nuli onda kada je komplement 1; zato je pogodno funkciju napisati preko komplemenata varijabli), primjenimo DeMorgana:

BABAf ⋅=+= Vidimo da je funkcija 1 onda kada je 1=A I 1=B . I funkciju ostvariti ćemo serijskim povezivanjem tranzistora u PUNu, a na ulaze dvaju tranzistora dovodimo direktno varijable A i B. PDN mora ostvarivati komplement funkcije, dakle:

BABAf +=+= . Kako je PDN sastavljen od NMOSa koji vodi kada mu je na upravljačkoj elektrodi visoka razina, i budući da imamo funkciju napisanu direktno preko varijabli (a ne komplemenata), na ulaze tranzistora u PDNu dovesti ćemo direktno varijable, a tranzistorima moramo ostvariti ILI funkciju – što ćemo dobiti paralelnim povezivanjem tranzistora. Shema sklopa prikazana je na slici.

Provjerimo da li sklop radi ispravno:

+UDD

A B

BAf +=

Tr1

Tr2

Tr3 Tr4

Page 339: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

340 Zbirka riješenih zadataka

A B Tr1 Tr2 Tr3 Tr4 f

nisko nisko vodi vodi ne vodi ne vodi UDD nisko visoko vodi ne vodi ne vodi vodi 0

visoko nisko ne vodi vodi vodi ne vodi 0 visoko visoko ne vodi ne vodi vodi vodi 0

Interpretacija u pozitivnoj logici:

A B BA + f 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0

Iz tablice se vidi da je dobivena funkcija upravo BAf += . c) Ni

Funkcija je zadana izrazom ABf = . Ovaj izraz određuje kada je vrijednost funkcije 1, dakle određuje PUN mrežu. Kako je PUN sastavljen od PMOSa koji vodi kada je na upravljačkom ulazu (G) niska razina, primjenimo DeMorgana:

BAABf +== Vidimo da je funkcija 1 onda kada je 1=A ILI 1=B . ILI funkciju ostvariti ćemo paralelnim povezivanjem tranzistora u PUNu, a na ulaze dvaju tranzistora dovodimo direktno varijable A i B. PDN mora ostvarivati komplement funkcije,

dakle: ABABf == . Kako je PDN sastavljen od NMOSa koji vodi kada mu je na upravljačkoj elektrodi visoka razina, i budući da imamo funkciju napisanu direktno preko varijabli (a ne komplemenata), na ulaze tranzistora u PDNu dovesti ćemo direktno varijable, a tranzistorima moramo ostvariti I funkciju – što ćemo dobiti serijskim povezivanjem tranzistora. Shema sklopa prikaza je desno.

Provjerimo da li sklop radi ispravno:

+UDD

ABf =

A

B

Tr1Tr2

Tr3

Tr4

Page 340: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 341

A B Tr1 Tr2 Tr3 Tr4 f nisko nisko vodi vodi ne vodi ne vodi UDD nisko visoko vodi ne vodi ne vodi vodi UDD

visoko nisko ne vodi vodi vodi ne vodi UDD visoko visoko ne vodi ne vodi vodi vodi 0

Interpretacija u pozitivnoj logici:

A B AB f 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0

Iz tablice se vidi da je dobivena funkcija upravo ABf = . d) CBAf += Funkcija je zadana izrazom CBAf += . Ovaj izraz određuje kada je vrijednost funkcije 1, dakle određuje PUN mrežu. Kako je PUN sastavljen od PMOSa koji vodi kada je na upravljačkom ulazu (G) niska razina, a funkcija je zadana upravo preko komplemenata, na upravljačke ulaze dovodit ćemo direktno varijable. Pri tome moramo ostvariti funkciju (A' I B') ILI C', što znači da ćemo I funkciju ostvariti serijskim povzivanjem dvaju tranzistora, a zatim ćemo ILI ostvariti paralelnim povezivanjem. PDN mora ostvarivati komplement funkcije, dakle:

CBACBACBAf ⋅+=⋅=+= )( . Kako je PDN sastavljen od NMOSa koji vodi kada mu je na upravljačkoj elektrodi visoka razina, i budući da imamo funkciju napisanu direktno preko varijabli (a ne komplemenata), na ulaze tranzistora u PDNu dovesti ćemo direktno varijable. Tranzistorima moramo ostvariti I funkciju – što ćemo dobiti serijskim povezivanjem dvaju tranzistora, a na jedan ulaz dovodimo rezultat ILI operacije ostvarene paralelnim povezivanjem tranzistora. Shema sklopa prikazan na prethodnoj stranici.

+UDD

A

B

C

Tr1

Tr2

Tr3

Tr4 Tr5

Tr6

CBAf +=

Page 341: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

342 Zbirka riješenih zadataka

Provjerimo da li sklop radi ispravno:

A B C Tr1 Tr2 Tr3 Tr4 Tr5 Tr6 f nisko nisko nisko vodi vodi vodi ne vodi ne vodi ne vodi UDD nisko nisko visoko vodi vodi ne vodi ne vodi ne vodi vodi UDD nisko visoko nisko vodi ne vodi vodi vodi ne vodi ne vodi UDD nisko visoko visoko vodi ne vodi ne vodi vodi ne vodi vodi 0 visoko nisko nisko ne vodi vodi vodi ne vodi vodi ne vodi UDD visoko nisko visoko ne vodi vodi ne vodi ne vodi vodi vodi 0 visoko visoko nisko ne vodi ne vodi vodi vodi vodi ne vodi UDD visoko visoko visoko ne vodi ne vodi ne vodi vodi vodi vodi 0

Interpretacija u pozitivnoj logici:

A B C CBA + f 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0

Iz tablice se vidi da je dobivena funkcija upravo CBAf += . e) EDCBAf )( ++= Analogno prethodnom zadatku, PUN je određen direktno izrazom za f (jer su prisutni samo komplementi varijabli), pa treba PMOS tranzistore povezati tako da se ostvari funkcija: (A' I B') ILI ((C' ILI D') I E'). PDN određujemo iz komplementa:

)()()( ECDBAEDCBAf +⋅+=++= 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'). Konačno, serija tranzistora Tr1 i Tr2 spojena je u paralelu s upravo opisanom podmrežom čime se ostvaruje (A' I B') ILI ((C' ILI D') I E'). Na sličan način može se analizirati i PDN.

Page 342: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 343

+UDD

A

B

C

D

E

EDCBAf )( ++=

Tr1

Tr2

Tr3 Tr4

Tr5

Tr6Tr7

Tr8

Tr9

Tr10

Page 343: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

344 Zbirka riješenih zadataka

15.8. Zadatak CMOS tehnologijom ostvarena je funkcija f (vidi sliku). O kojoj se funkciji radi?

A

B

C

D

EF

AB

CD

E

F

+UDD

f

Direktnim očitanjem PUN-a dolazimo do funkcije sklopa:

( ) ( ) ( )( ) FEDCBAFEDCBAf ⋅+++=+⋅⋅+⋅= .

15.9. Zadatak Uporabom CMOS tehnologije izvesti sklopove koji ostvaruju funkcije: a) BAf += b) BAf ⋅= c) CBAf ⋅+= )( d) )()( ECDBAf +⋅+=

Zajednička karakteristika svim navedenim funkcijama jest ovisnost o direktnoj vrijednosti funkcije (a ne o njezinom komplementu). U prethodnom smo zadatku vidjeli da PUN, koji direktno određuje kada je izlaz sklopa u 1, ovisi o komplementima varijable, zbog P-kanalnih tranzistora. Zbog toga se ovakve funkcije realiziraju na sljedeći način:

1. korak: realizirati komplement zadane funkcije fg =

Ovime će funkcija g ovisiti samo o komplementima ulaznih varijabli.

2. korak: invertirati izlaz sklopa

Page 344: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 345

ffgizlaz === Krenimo redom u rješavanje zadanih funkcija. a) Komplement funkcije glasi:

BAfg ⋅== Rješenje je prikazano na slici.

A B

BAg ⋅=

Tr1

Tr2

Tr3 Tr4

+UDD

BAgf +==

Tr5

Tr6

+UDD

b) Komplement funkcije glasi:

BAfg +== Rješenje je prikazano na slici.

+UDD

BAg +=A

B

Tr1Tr2

Tr3

Tr4

+UDD

ABgf ==

Tr5

Tr6

Page 345: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

346 Zbirka riješenih zadataka

c) Komplement funkcije glasi: CBAfg +⋅== . Rješenje je prikazano na slici.

+UDD

A

B

C

Tr1

Tr2

Tr3

Tr4 Tr5

Tr6

CBAg +=

+UDD

CBAgf ⋅+== )(

Tr7

Tr8

d) Komplement funkcije glasi: EDCBAfg ⋅++⋅== )( . Rješenje je prikazano na slici.

+UDD

A

B

C

D

E

EDCBAg ⋅++= )(

Tr1

Tr2

Tr3 Tr4

Tr5

Tr6Tr7

Tr8

Tr9

Tr10

+UDD

Tr11

Tr12

)()( EDCBAgf +⋅⋅+==

Page 346: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 347

15.10. Zadatak Uporabom CMOS tehnologije izvesti sklopove koji ostvaruju funkcije: a) BAf +=

b) BAf ⋅=

c) CBAf +⋅=

d) )()( EDCBAf +⋅⋅+=

Kada u funkcijskom izrazu imamo miješane varijable i komplemente, funkciju ćemo ralizirati uz uporabu dodatnih tranzistora koji će ostvarivati invertore. Pri tome ćemo se u nastavku razmatranja voditi sljedećim zahtjevom: potrebno je potrošiti što manje tranzistora. Kako bismo to postigli, najprije je potrebno utvrditi što je dominantno u funkcijskom izrazu – varijable ili komplementi. Možemo razlučiti četiri (nedisjunktna) slučaja. Ukoliko su dominantni komplementi, projektiramo sklop direktnim izvođenjem zadane funkcije, pri čemu dodatno generiramo sklopovlje za realizaciju potrebnih komplemenata varijabli (1. slučaj). Ukoliko su dominantne nekomplementirane varijable, projektiramo sklop izvođenjem komplementa funkcije nakon čega dodajemo invertor, te na ulazu generiramo sklopovlje za realizaciju nekomplementiranih ulaza (2. slučaj). Kao poseban slučaj možemo promotriti izraz kod kojega je broj komplementiranih varijabli jednak broju nekomplementiranih varijabli (3. slučaj). Tada se sklop projektira direktnim izvođenjem zadane funkcije (jer se u suprotnom slučaju troše dva tranzistora više). Dakle, slučaj 3 rješava se kao slučaj 1. Također specifičan slučaj nastupa kada imamo izraz u kojem je broj nekomplementiranih varijabli za jedan veći od broja komplementiranih varijabli. Tada se može izabrati proizvoljan način projektiranja sklopa. Neka u tom slučaju funkcija ovisi o 2n+1 varijable, i to n+1 nekomplementiranih i n komplementiranih varijabli. Ovime je nastupio slučaj 2. Krene li se, zbog toga, realizirati komplement funkcije, trebat će dodati invertor na izlaz, i napraviti invertore za n komplementiranih ulaznih varijabli, čime je ukupan broj dodatnih invertora jednak n+1. Ukoliko se ipak odlučimo postupiti prema slučaju 1, potrebno je napraviti invertore za n+1 nekomplementiranu varijablu, čime je broj dodanih invertora opet jednak n+1. Krenimo redom u realizaciju zadanih funkcija. a) U izrazu imamo jedan komplement (A) i jednu nekomplementiranu varijablu (B). Nastupio je slučaj 3. Zbog toga ćemo sve nekomplementirane varijable prevesti u komplemente (u našem slučaju to je varijabla B), i realizirati ostatak sklopa kao da cijeli izraz ima samo komplementirane varijable. Dakle, projektiramo sklop koji obavlja funkciju:

BAf +=' pri čemu na ulaz B dovodimo komplement. Rješenje je prikazano na slici.

Page 347: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

348 Zbirka riješenih zadataka

+UDD

BAf +=

A

Tr1Tr2

Tr3

Tr4

+UDD

B

Tr5

Tr6B

b) U izrazu imamo jedan komplement (B) i jednu nekomplementiranu varijablu (A). Nastupio je slučaj 3. Zbog toga ćemo sve nekomplementirane varijable prevesti u komplemente (u našem slučaju to je varijabla A), i realizirati ostatak sklopa kao da cijeli izraz ima samo komplementirane varijable. Dakle, projektiramo sklop koji obavlja funkciju:

BAf ⋅=' pri čemu na ulaz A dovodimo komplement. Rješenje je prikazano na slici.

+UDD

B

BAf ⋅=

Tr1

Tr2

Tr3 Tr4

+UDD

Tr5

Tr6A

A

c) U izrazu imamo dva komplementa (A i B) i jednu nekomplementiranu varijablu (C). Očito je dominantan komplement, pa je nastupio slučaj 1. Zbog toga ćemo sve

Page 348: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 349

nekomplementirane varijable prevesti u komplemente (u našem slučaju to je varijabla C), i realizirati ostatak sklopa kao da cijeli izraz ima samo komplementirane varijable. Dakle, projektiramo sklop koji obavlja funkciju:

CBAf +⋅=' pri čemu na ulaz C dovodimo komplement. Rješenje je prikazano na slici.

+UDD

A

BC

Tr1

Tr2

Tr3

Tr4 Tr5

Tr6

CBAf +=

+UDD

Tr7

Tr8

C

d) U izrazu imamo jedan komplement (A) i četiri nekomplementirane varijable (B, C, D i E). Očito su dominantne nekomplementirane varijable, pa je nastupio slučaj 2. Zbog toga ćemo sve komplementirane varijable prevesti u nekomplementirane (u našem slučaju to je varijabla A), i realizirati ostatak sklopa kao da cijeli izraz ima samo nekomplementirane varijable. Dakle, projektiramo sklop koji obavlja funkciju:

)()(' ECDBAf +⋅+= pri čemu na ulaz A dovodimo komplement. Ovakav oblik funkcije rješava se

realizacijom njezinog komplementa EDCBAfg ⋅++⋅== )('' , i dodatnim invertorom na izlazu. Rješenje je prikazano na slici.

Page 349: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

350 Zbirka riješenih zadataka

+UDD

A

B

C

D

E

EDCBAg )( ++=

Tr1

Tr2

Tr3 Tr4

Tr5

Tr6Tr7

Tr8

Tr9

Tr10

Tr7

Tr8

+UDD

A+UDD

Tr1

Tr2

)()( EDCBAgf +⋅⋅+==

15.11. Zadatak Prikazati "propusna vrata" izvedena u CMOS tehnologiji.

Ovaj sklop uspostavlja električku vezu između ulaza A i izlaza B (i to u oba smjera) ovisno o signalu na upravljačkom ulazu EN. Sklop je prikazan na slici. Sklop se sastoji od dva tranzistora koji su direktno povezani, a na upravljačke elektrode se dovode komplementarni signali. Ponašanje sklopa prikazano je tablici.

EN

EN

EN

EN n-MOS p-MOS izlaz 0 isključen isključen visoki otpor 1 uključen uključen "kratki spoj" A i B Kada su oba tranzistora uključena, otpor između točaka A i B iznosi svega nekoliko stotina Ω, tako da u tom slučaju možemo govoriti o "kratkom spoju".

Page 350: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 351

O popularnosti ove strukture dovoljno govori podatak da u seriji 40xx postoji nekoliko čipova s ovim vratima. Čip 4016 sadrži 4 propusna vrata, dok čip 4066 sadrži vrata poboljšanih karakteristika. Čipovi s oznakama 4051, 5052 i 4053 sadrže implementacije multipleksora/demultipleksora uporabom propusnih vrata, i to: 4051 sadrži jedan 8/1 multipleksor/demultipleksor, 4052 sadrži dva 4/1 multipleksora/demultipleksora a 4053 sadrži tri 2/1 multipleksora/demultipleksora. Dobra karakteristika ovih sklopova vidljiva je iz njihovog opisa: oni mogu biti multipleksori ili demultipleksori, jer propusna vrata propuštaju o oba smjera! To znači da kod npr. multipleksora/demultipleksora 8/1 sklop možemo 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 označava simbolom prikazanim na slici desno. Slovo p pri tome označava upravljački ulaz (engl. gate) p-kanalnog MOSFET-a, a slovo n označava upravljački ulaz n-kanalnog MOSFET-a.

15.12. Zadatak Prikazati multipleksor 2/1 u izveden u CMOS tehnologiji.

Jedna moguća izvedba kojom se može uštediti određen broj tranzistora prikazana je na slici:

Za sklop na slici vrijedi:

),,( 1010 SiiMUXiSiSY =⋅+⋅=

Međutim, multipleksor 2/1 se u CMOS tehnologiji standardno izvodi uporabom propusnih vrata (a ne realizacijom logičkog izraza koji opisuje funkciju multipleksora). Moguće rješenje prikazano je na slici.

Page 351: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

352 Zbirka riješenih zadataka

S

Funkcija sklopa opisana je tablicom:

S TG1 TG2 Y 0 propušta ne propušta i0 1 ne propušta propušta i1

Prikazan sklop ima jednu karakteristiku koja je istovremeno i dobra i loša. Naime, budući da je sklop ostvaren uporabom propusnih vrata (koja predstavljaju analognu sklopku, propusnu u oba smjera), sklop se istovremeno može 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)! Međutim, ovakvo ponašanje nije uvijek poželjno, pa se multipleksor često izvodi dodavanjem još triju invertora prethodnom sklopu, kao što je prikazano na slici.

S

Ovaj se sklop može koristiti samo kao multipleksor.

15.13. Zadatak Prikazati multipleksor 8/1 izveden u CMOS tehnologiji.

Multipleksor 1/2n , n>1, se u CMOS tehnologiji ostvaruje izgradnjom multipleksorskog stabla sa n razina, pri čemu se kao temeljni element koristi multipleksor 2/1 izveden pomoću propusnih vrata (vidi prethodni zadatak). Rješenje je prikazano na slici.

Page 352: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 353

Prilikom realizacije sklopa (uz pretpostavku da se projektira sklop za implementaciju na čipu) invertori upravljačkih signala izbačeni su iz svih sklopova osim jednog u svakoj razini. Budući da je sklop ostvaren na način koji osigurava da se na putu između ulaza i izlaza nalaze samo propusna vrata, ulazi i izlazi su međusobno zamjenjivi, tako da se sklop može upotrijebiti i kao demultipleksor.

Page 353: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

354 Zbirka riješenih zadataka

15.14. Zadatak Čip oznake CD40174B proizvođača Texas Instruments sadrži 6 pozitivnim bridom okidanih D bistabila izveenih CMOS tehnologijom. Bistabili imaju i dodatni ulaz za brisanje. Proučiti strukturu i način izvedbe ovih bistabila. Na što se svodi implementacija bridom okidanih D bistabila u CMOS tehnologiji?

Struktura jednog bistabila preuzeta iz kataloga proizvođača prikazana je na slici.

1 1

&

&

1

1

1 1

CLR

CLK CL

CL

CL

CL

CLCL

CLCL

CL

CL

D Q

Kako bismo došli 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 isključivo do NI logičkih sklopova, pogledajmo u što se oni pretvaraju:

( ) ( ) ( ) XXNIXNIXCLRNI ==⇒ ,1, Dakle, svaki NI sklop zapravo se pretvara u invertor. Pojednostavljena shema prikazana je u nastavku.

Page 354: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 355

1 1

1

1

1 1CLK CL

CL

CL

CL

CLCL

CLCL

CL

CL

D Q1

1

Na slici su odmah i osjenčanje dvije interesantne strukture; precrtajmo sliku još jednom:

1

CL

CL 1

CL

CL

1

1

1

1

D

Q

CL

1 1CLK CL

CL

Page 355: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

356 Zbirka riješenih zadataka

Uklanjanjem invertora odmah se dolazi do već poznatog sklopa D bistabila koji reagira na pozitivni brid izvedenog pomoću dva multipleksora. Jedan od razloga dodavanja ovih invertora prilikom izrade bistabila u CMOS tehnologiji jest činjenica da se multipleksori direktno realiziraju strukturom prijenosnih vrata, gdje direktno spajanje izlaza na ulaz više ne bi funkcioniralo prema logičkoj shemi (jer bismo zapravo kratko spojili uvod i odvod MOSFET-a). Zbog toga se dodaju invertori koji osiguravaju električko odvajanje izlaza i ulaza multipleksora i unose kašnjenje u povratnu vezu.

15.15. Pismeni ispit, 10. 10. 2003, 10. zadatak Na raspolaganju su TTL sklopovi podskupine 74N i 74S čiji su parametri zadani u tablici. Sklop iz jedne podskupine pobuđuje više sklopova iz druge podskupine. Koliko se maksimalno sklopova može spojiti na izlaz jednog sklopa u oba slučaja?

IOL IIL IOH IIH 74N 16 mA 1.6 mA 400 µA 40 µA 74S 8 mA 400 µA 400 µA 20 µA

Analizirajmo oba slučaja. Kada sklop porodice 74N pobuđuje više sklopova porodice 74S, vrijedi: Izlaz je L:

40,

,

,, =≤⇒⋅≥SIL

NOL

SILNOL I

InInI

Izlaz je H: 20

,

,

,, =≤⇒⋅≥SIH

NOH

SIHNOH I

InInI

Kako obje nejednadžbe moraju biti zadovoljene, slijedi da je n=20. Kada sklop porodice 74S pobuđuje više sklopova porodice 74N, vrijedi: Izlaz je L:

5,

,

,, =≤⇒⋅≥NIL

SOL

NILSOL I

InInI

Izlaz je H: 10

,

,

,, =≤⇒⋅≥NIH

SOH

NIHSOH I

InInI

Kako obje nejednadžbe moraju biti zadovoljene, slijedi da je n=5.

d0

d1

a

yD

CP

d0

d1a

y Q

Page 356: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Integrirani logički sklopovi. 357

ZADACI ZA VJEŽBU

1. U CMOS tehnologiji projektirati sklop čija je funkcija u negativnoj logici zadana

izrazom DECEAEDCBAf +⋅=),,,,( .

2. Objasnite izvedbu spojenog I kod: a) Standardnih TTL sklopova b) TTL sklopova s otvorenim kolektorom c) CMOS sklopova

Obratite pažnju na struje i napone koji se pri tome pojavljuju.

3. Prikažite izlazni stupanj standardnog TTL sklopa. Objasnite zašto je iznos otpora baš 130Ω (odnosno, čime je određena gornja a čime donja granica).

4. U CMOS tehnologiji ostvariti funkciju ( ) ( )( )YBCXPAPYXCBAf +⋅+⋅⋅=,,,,, .

5. Objasnite (definirajte) što znače sljedeće oznake: IILmax, IIHmax, IOLmax, IOHmax. Ako su ti podaci poznati za neku porodicu, na koji se način računa faktor grananja izlaza (engl. fan-out) nekog sklopa iz te porodice? Izračunajte to za slučaj 74S porodice, kod koje su podaci sljedeći: IILmax=400µA, IIHmax=20µA, IOLmax=8mA, IOHmax=400µA. Objasnite što je to faktor grananja na ulazu sklopa (engl. fan-in) i čime je on određen? Pokažite to na primjeru NI i NILI sklopova izvedenih u CMOS-u. Koji od ta dva sklopa ima veći faktor grananja na ulazu i zašto? Objasnite (definirajte) što znače sljedeće oznake: UOHmin, UIHmin, UILmax, UOLmax. U kakvom su međusobnom odnosu ti naponi? Definirajte kako se na temelju tih podataka računa granica istosmjerne smetnje?

6. Zadan je CMOS invertor. Na izlaz invertora spojen je otpor R1 iznosa 1kΩ prema UDD=5V, te otpor R2 iznosa 1kΩ prema masi. Ako su za invertor poznati sljedeći podaci: UOLmax = 0.1V, UILmax = 1.5V, UIHmin = 3.5V, UOHmin = 4.9V, odredite koliko iznose izlazni naponi za slučaj kada je na izlazu logička 0, odnosno logička jedinica. Izračunajte koliko iznose struje IOLmax i IOHmax, uzimajući pri tome u obzir da napon na izlazu sklopa mora poštivati zadane naponske raspone! Pretpostavite da su otpori isključenih tranzistora veći od 100 MΩ, otpor uključenog NMOS tranzistora 100Ω, a otpor uključenog PMOS tranzistora 200Ω.

7. TTL sklopom potrebno je pobuđivati 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 zašto.

8. TTL sklopom koji radi s naponom napajanja 5V potrebno je pobuđivati 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 zašto.

9. CMOS sklopom potrebno je pobuđivati TTL sklop. Oba sklopa rade s naponom napajanja od 5V. Objasnite kako treba izvesti ovo spajanje, i zašto.

10. CMOS sklopom koji radi s naponom napajanja 10V potrebno je pobuđivati TTL sklop koji radi s naponom napajanja 5V. Objasnite kako treba izvesti ovo spajanje, i zašto.

Page 357: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Dodatak 1. RC mreža. 359

Dodatak 1. RC mreža Zadana je RC mreža prema slici. Izvor napona u(t) spojen je na RC mrežu. Izračunajte napon na kondenzatoru ako su poznati iznosi otpora R i kapaciteta C, te vrijedi:

<=<<=

<=

ttU

ttU

t

tu

L

H

1

1

,

0,

0,0

)( .

Uočimo da vrijedi

∫+⋅= dttiC

Rtitu )(1

)()( . (1)

Kako je napon na kondenzatoru jednak

∫= dttiC

tuC )(1

)( (2)

slijedi

C

tituC

)()( = . (3)

Uvrštavanjem (3) u (1) dobiva se )()()( tuRCtutu CC +⋅= (4)

odnosno

)(1

)()(1

tuRC

tutuRC CC ⋅+=⋅ . (5)

Da bismo opisali kretanje napona na kondenzatoru, potrebno je dakle riješiti (5). Ovo se može obaviti na više načina, a jedan je opisan u nastavku. Homogena jednadžba od (5) glasi

)(1

)(0 tuRC

tu CC ⋅+= (6)

odnosno

)(1)(

0 tuRCdt

tduC

C ⋅+= .

Rješenje jednadžbe separacijom varijabli daje

1

)()(ln1

)()(

1

KRC

t

CCC

C etuKRC

ttudt

RCtu

tdu +−=⇒+−=⇒⋅−=

odnosno

Ketu RC

t

C ⋅=−

)( . (7)

Kako bismo riješili (5), koristiti ćemo varijaciju konstante. U tu svrhu pretpostavimo da K nije konstanta, pa pronađimo derivaciju od uC(t). Iz (7) slijedi

R

)(tu

C)(ti )(tuC

Page 358: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

360 Zbirka riješenih zadataka

)()(1

)( tKetKeRC

tu RC

t

RC

t

C ⋅+⋅⋅−=−−

. (8)

Uvrštavanjem (7) i (8) u (5) slijedi

)(1

)()(1

)(1

tKeRC

tKetKeRC

tuRC

RC

t

RC

t

RC

t

⋅⋅+⋅+⋅⋅−=⋅−−−

odnosno

)()(1

tKetuRC

RC

t

⋅=⋅−

. (9)

U zadatku koji rješavamo, pobuda u(t) je vremenski promjenjiva, ali bitno je uočiti da je po dijelovima konstantna. Ukoliko se ograničimo na rješavanje jednadžbe po dijelovima, možemo postupiti na slijedeći način. Ako (9) zapišemo kao

dt

tdKetu

RCRC

t )()(

1 ⋅=⋅−

možemo opet primijeniti separaciju varijabli budući da je u(t) u određenom intervalu konstantno

dttueRC

tdK RC

t

⋅⋅⋅= )(1

)( .

Slijedi

WtuetK RC

t

+⋅= )()( . (10) pri čemu je W konstanta. Uvrštavanjem (10) u (7) konačno slijedi

Wetueetu RC

t

RC

t

RC

t

C ⋅+⋅⋅=−−

)()(

odnosno

Wetutu RC

t

C ⋅+=−

)()( . (11)

Ovime smo došli do općeg rješenja. Promotrimo sada kako se to primjenjuje na naš konkretni zadatak. U trenutku t=0, pobuda skače na UH. U tom trenutku napon na kondenzatoru uC(0) iznosi 0V. Ako te podatke uvrstimo u (11) za t=0, slijedi

WeU RCH ⋅+=

− 0

0 . iz čega slijedi iznos konstante W

HUW −= . (12) Uvrštavanjem (12) u (11) slijedi jednadžba koja opisuje kretanje napona uC(t) od trenutka t=0, pa do trenutka t=t1 (naime, u tom intervalu u(t)=UH)

)1()( RC

t

HRC

t

HHC eUeUUtu−−

−=⋅−= . (13)

U trenutku t=t1, pobuda u(t) pada na UL. Do tog trenutka vrijedila je (13) pa možemo izračunati napon uC(t1) koji je u tom trenutku vladao kondenzatoru

)1()(1

1RC

t

HC eUtu−

−= .

(14) Uvrštavanjem (14) u (11) u trenutku t=t1 možemo odrediti novi iznos konstante W

Page 359: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Dodatak 1. RC mreža. 361

WeUeU RC

t

LRC

t

H ⋅+=−−− 11

)1( te je

RC

t

LRC

t

H eUeUW11

)1( ⋅

−−=

− (15)

Uvrštavanjem (15) u (11) slijedi jednadžba koja opisuje kretanje napona uC(t) od trenutka t=t1 na dalje (jer u tom intervalu ostaje u(t)=UL)

RC

t

LRC

t

HRC

t

LC eUeUeUtu11

)1()( ⋅

−−⋅+=

−−

odnosno

RC

tt

LRC

t

HLC eUeUUtu11

)1()(−

−−⋅

−−+= (16)

Iz (13) i (16) slijedi iznos napona uC(t)

<=⋅

−−+

<<=−

<

=−

−−

tteUeUU

tteU

t

tu

RC

tt

LRC

t

HL

RC

t

HC

1

1

,)1(

0),1(

0,0

)(11

Page 360: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Dodatak 2. Booleova algebra – pregled potrebnih formula. 363

Dodatak 2. Booleova algebra – pregled potrebnih formula

Pregled potrebnih formula Definicija Booleove algebre: 1. Skup S od barem dva elementa S=a,b,… 2. Binarni operacije + i ⋅ zatvorene obzirom na S. 3. Aksiomi: A.1, A.2, A.3, A.4 A.1. Neutralni element a) AA =+ 0 b) AA =⋅1 A.2. Komplement a) 1=+ AA b) 0=⋅ AA A.3. Komutativnost a) ABBA +=+ b) ABBA ⋅=⋅ A.4. Distributivnost a) CABACBA ⋅+⋅=+⋅ )( b) )()( CABACBA +⋅+=⋅+ Vrijedi metateorem o dualnosti: ako zamijenimo 1 i 0 te + i ⋅ iz a) dobijemo b) i obrnuto. Neka je )1,0,,,,...,,,( ⋅+= CBAff . Dualna funkcija glasi )0,1,,,,...,,,( +⋅= CBAffD . Koristit ćemo još i sljedeće zakone.

Zakon involucije: AA = . Zakon asocijacije: a) )()( CBACBA ++=++ b) )()( CBACBA ⋅⋅=⋅⋅ De Morganov zakon: a) BABA ⋅=+ b) BABA +=⋅

Page 361: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

364 Zbirka riješenih zadataka

Još jedna definicija Booleove algebre Booleova algebra može se definirati na različite načine. Osim definicije korištene u Zbirci, jedna od mogućnosti prikazana je u nastavku. Booleova algebra je neprazni skup B nad kojim su definirane dvije binarne operacije ⋅ i ⊕ koje zadovoljavaju sljedeće aksiome (za svaki X, Y i Z iz B): A1. )()( ZYXZYX ⊕⊕=⊕⊕ )()( ZYXZYX ⋅⋅=⋅⋅

Asocijativnost

A2. XYYX ⊕=⊕ XYYX ⋅=⋅

Komutativnost

A3. Postoji 0∈B: XX =⊕ 0 Postoji 1∈B: XX =⋅1

Neutralni element

A4. 0=⊕ XX Samoinverz XXX =⋅ Idempotentnost A5. )()()( ZXYXZYX ⋅⊕⋅=⊕⋅ Distributivnost Operator ⋅ nazvat ćemo I, a operator ⊕ ISKLJUČIVO-ILI.

Operatore + i tada možemo definirati na sljedeći način: Def1. )( YXYXYX ⋅⊕⊕=+

Def2. XX ⊕= 1

Page 362: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Dodatak 3. K tablice. 365

Dodatak 3. K tablice

Prazne K-tablice Tablica za dvije varijable: A 0 1

B 0

1 Tablica za tri varijable: AB 00 01 11 10

C 0

1 Tablica za četiri varijable: AB 00 01 11 10

CD 00

01 11

10 Tablica za pet varijabli (direktno Grayev kod):

Page 363: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

366 Zbirka riješenih zadataka

ABC 000 001 011 010 110 111 101 100

DE 00

01 11

10 Tablica za pet varijabli (3D prikaz; A određuje visinu): ABC 000 001 011 010 100 101 111 110

DE 00

01 11

10

Popis minterma po tablicama: Tablica za dvije varijable: A 0 1

B 0 0 2

1 1 3 Tablica za tri varijable: AB 00 01 11 10

C 0 0 2 6 4

1 1 3 7 5

Page 364: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Dodatak 3. K tablice. 367

Tablica za četiri varijable: AB 00 01 11 10

CD 00 0 4 12 8

01 1 5 13 9 11 3 7 15 11

10 2 6 14 10 Tablica za pet varijabli (direktno Grayev kod): ABC 000 001 011 010 110 111 101 100

DE 00 0 4 12 8 24 28 20 16

01 1 5 13 9 25 29 21 17 11 3 7 15 11 27 31 23 19

10 2 6 14 10 26 30 22 18 Tablica za pet varijabli (3D prikaz; A određuje visinu): ABC 000 001 011 010 100 101 111 110

DE 00 0 4 12 8 16 20 28 24

01 1 5 13 9 17 21 29 25 11 3 7 15 11 19 23 31 27

10 2 6 14 10 18 22 30 26

Page 365: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

368 Zbirka riješenih zadataka

Susjednost: Kod K-tablica za dvije do četiri varijable susjedna polja su na istoku, zapadu, sjeveru i jugu (da se poslužimo "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 Susjedna polja 7 3, 5, 6, 15 3 1, 2, 7, 11 0 1, 2, 4, 8 10 2, 8, 11, 14

K-tablica za pet varijabli donekle je problematična. Naime, kod K-tablice dobivene direktno Grayevim kodom vrijedi sljedeće: polje 21, osim što ima susjedna polja (istok, zapad, sjever, jug) = (29, 17, 20, 23), ima i susjedno polje 5 (zbog promjene varijable A)! Zbog toga se puno češće koristi K-tablica za pet varijabli koja se dobije ako se A varijabla shvati kao dimenzija koja u 3D prostoru određuje na kojoj se visini nalazi tablica. U tom slučaju imamo dvije tablice dimenzija 4×4, pri čemu je kod lijeve A=0, a kod desne A=1 pa u prostoru desna tablica leži točno iznad lijeve tablice. Tada se susjednost može odrediti puno lakše, jer su susjedna polja (istok, zapad, sjever, jug), te polje iznad odnosno ispod. Pogledajmo ponovno slučaj za polje 21. To polje se nalazi u desnoj (gornjoj, A=1) tablici, pa će susjedna polja biti (istok, zapad, sjever, jug) = (29, 17, 20, 23) i polje ispod, a to je polje 5.

Page 366: Marko Cupic-Zbirka Zadataka Iz Digitalne Elektronike

Literatura 369

Literatura

1. Materijali s auditornih vježbi (A.G. 2001./2002.) 2. Peruško, U., Digitalna elektronika. Logičko i električko projektiranje, III.

prošireno 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 riješenih zadataka, I dio, Uvod u

digitalnu tehniku, Sveučilišna naklada, d.o.o., Zagreb, 1991. 5. Szabo, A., Impulsna i digitalna elektronika, Sveučilišna 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 (posjećeno: 05. 05. 2003.)

9. Lattice Semiconductor Corporation http://www.latticesemi.com/ (posjećeno: 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 (posjećeno: 06. 12. 2003.)

11. ECE 410, Fall 2003 http://www.egr.msu.edu/classes/ece410/mason/ Michigan State University College of Engineering (posjećeno: 17. 05. 2004.)

12. 6.111, Introductory Digital Systems Laboratory http://sunpal7.mit.edu/6.111/s2003/ Massachusetts Institute of Technology (posjećeno: 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 (posjećeno: 17. 05. 2004.)

14. Internet (Google)