Professional Documents
Culture Documents
Komponente
Komponente
Komponente digitalnih sistema
‐ materijal za pripremu ispita iz predmeta Arhitekture mikrosistema ‐
Predmetni nastavnik: G. Lj. Đorđević
Elektronski fakultet, Niš, 2012.
Komponente digitalnih sistema
Sadržaj
1 Kombinacione komponente............................................................................................... 4
1.1 Sabirač sa rednim prenosom ...................................................................................... 5
1.2 Sabirač/oduzimač ....................................................................................................... 6
1.3 Logička jedinica ......................................................................................................... 6
1.4 Aritmetičko-logička jedinica ...................................................................................... 8
1.5 Dekoder .................................................................................................................... 11
1.2 Multiplekser ............................................................................................................. 15
1.3 Demultiplekser ......................................................................................................... 19
1.4 Koder ........................................................................................................................ 20
1.4.1 Binarni koderi .................................................................................................. 20
1.4.2 Prioritetni koder............................................................................................... 21
1.5 Komparator............................................................................................................... 24
1.5.1 Iterativna komparatorska mreža ...................................................................... 26
1.5.2 Hijerarhijske komparatorske mreže ................................................................ 27
1.6 Kombinacioni pomerači i rotatori ............................................................................ 28
1.6.1 Barel pomerač ................................................................................................. 30
1.7 ROM ......................................................................................................................... 31
1.8 PLA .......................................................................................................................... 32
2 Sekvencijalne komponente .............................................................................................. 35
2.1 Leč kola i flip-flopovi .............................................................................................. 35
2.1.1 Leč kola ........................................................................................................... 36
2.1.1.1 SR leč ..................................................................................................... 36
2.1.1.2 SR leč sa dozvolom ................................................................................ 37
2.1.1.3 D leč ....................................................................................................... 37
2.1.1.4 Flip-flopovi............................................................................................. 38
2.1.1.5 Tipovi flip-flopova ................................................................................. 42
2.2 Registarske komponente .......................................................................................... 45
2.2.1 Pomerački registar ......................................................................................... 46
2.2.2 Binarni brojač ................................................................................................ 48
2
Komponente digitalnih sistema
3
Komponente digitalnih sistema
Složeni digitalni sistemi se projektuju tako što se najpre ukupna funkcija sistema razloži na više
podfunkcija. Zatim se podfunkcije realizuju u vidu jednostavnijih digitalnih modula, čijim se
povezivanjem konstruiše željeni sistem. Iako je u nekim slučajevima neophodno projektovati module
za neke specifične funkcije, ipak, najčešće, u praksi, složeniji digitalni sistemi se mogu realizovati
korišćenjem standardnih modula ili komponenti. Standardne komponente obavljaju funkcije za koje
je uočeno da su korisne za veliki broj različitih primena, a dostupne su u vidu integrisanih kola ili
bibliotečkih komponenti i kao takve spremne za direktnu ugradnju u sistem koji se projektuje.
Većina digitalnih sistema, uključujući i računare, projektovana je da obrađuje ili transformiše
podatke. Ove transformacije mogu biti različitih tipova, uključujući aritmetičke i logičke operacije,
kodiranje i dekodiranje podataka i reorganizaciju podataka. U opštem slučaju, navedene
transformacije podataka se obavljaju pomoću kombinacionih komponenti. Osnovna osobina
kombinacionih kola jeste činjenica da se njihove izlazne vrednosti izračunavaju isključivo na osnovu
trenutnih ulaznih vrednosti. Nakon svake promene ulaznih vrednosti, na izlazu se javljaju nove izlazne
vrednosti sa kašnjenjem tp koje je neophodno da bi se izračunao novi rezultat. Kombinaciono kolo
nije u stanju da ¨zapamti¨ prethodne rezultate, i da onda tu informaciju, zajedno sa tekućim ulazom,
koristi za određivanje novog izlaza.
Za razliku od kombinacionih, sekvencijalne komponente sadrže memorijske elemente, kao što su leč
kola i flip‐flopovi. Kao posledica toga, izlazne vrednosti sekvencijalnih komponenti zavise ne samo od
trenutnih već i od prethodnih ulaznih vrednosti. Spektar sekvencijalne komponenti se proteže od
bazičnih memorijskih elemenata, kao što su leč kola i flip‐flopovi, preko standardnih registarskih
komponenti, kao što su prihvatni, pomerački i brojački registri, i složenijih memorijskih struktura, kao
što su RAM, FIFO, stek, do staza podataka i upravljačkih jedinca koje su u mogućnosti da izvršavaju
složene algoritme.
U ovom poglavlju, korišćenjem tehnika za logičko projektovanje, opisanih u poglavlju 2, biće
pokazano kao se projektuju generičke kombinacione i sekvencijalne komponente sa registarskog
nivoa apstrakcije.
1 Kombinacione komponente
Kombinacione komponente se koriste za: transformaciju podataka, povezivanje, konverziju podataka
i upravljanje. Konkretno, kombinacione komponente za transformaciju podataka obavljaju: (1)
aritmetičke operacije (sabiranje, oduzimanje, množenje i deljenje), (2) logičke operacije (AND, OR,
XOR i komplement), (3) operacije poređenja (veće ili jednako, manje) i (4) operacije za manipulaciju
nad bitovima (pomeranje, rotiranje, izdvajanje i umetanje bitova). Kombinacione komponente za
povezivanje su multiplekseri i magistrale, a koriste se za povezivanje aritmetičkih i memorijskih
komponenti. Komponente za konverziju podataka, kao što su koderi i dekoderi, se koriste za
4
Komponente digitalnih sistema
konverziju podatka iz jednog u neki drugi kod. Konačno, univerzalne kombinacione komponente, kao
što su ROM memorije i programabilna logička polja (PLD) prevashodno se koriste za projektovanje
upravljačkih jedinica.
xiyi
ci 00 01 11 10
0 1
1 1 1 1
cout c7 c6 c5 c4 c3 c2 c1 c0
FA FA FA FA FA FA FA FA
s7 s6 s5 s4 s3 s2 s1 s0
(d)
Sl. 1‐1. Sabirač sa rednim prenosom: (a) tabela istinitosti potpunog sabirača; (b) Karnoove mape; (c) šematski
prikaz potpunog sabirača; (d) struktura 8‐bitnog sabirača; (e) grafički simbol binarnog sabirača.
Binarni sabirač se formira rednim povezivanjem potpunih sabirača, tako što se izlazni prenos svakog
potpunog sabirača koristi kao ulazni prenos za potpuni sabirač koji zauzima prvu narednu bit‐poziciju
veće težine. Na primer, 8‐bitni sabirač se sastoji od osam potpunih sabirača koji su povezani kao na
Sl. 1‐1(d). U opštem slučaju, n‐bitni sabirač, čiji je grafički simbol prikazan na Sl. 1‐1(e), može se
5
Komponente digitalnih sistema
konstruisati na ovaj način. Kao što se može lako zaključiti, najduže kašnjenje u sabiraču sa rednim
prenosom određeno je putanjom od ulaznog prenosa c0, ili bit‐pozicije najmanje težine x0 i y0, do
izlaznog prenosa cout. Drugim rečima, svaka promena nekog od bita c0, x0 ili y0, mora da se prenese
kroz sve potpune sabirače, kako bi se izračunali svi izlazni bitovi.
1.2 Sabirač/oduzimač
Oduzimanje binarnih brojeva se obavlja sabiranjem umanjenika i potpunog komplementa umanjioca.
Potpuni komplement se dobija tako što se, najpre, svaki bit umanjioca komplementira, a zatim doda
1. Dodavanje 1‐ce se ostvaruje tako što se prilikom sabiranja umanjenika i komplementiranog
umanjioca ulazni prenos sabirača, c0, postavi na 1. Budući da se oduzimanje realizuje preko sabiranja,
pogodno je konstruisati funkcionalnu jedinicu koja će obavljati obe operacije, sabiranje i oduzimanje.
(a) (b)
a7 b7 a6 b6 a5 b5 a4 b4 a3 b3 a2 b2 a1 b1 a0 b0
cout c7 c6 c5 c4 c3 c2 c1 c0
FA FA FA FA FA FA FA FA
f7 f6 f5 f4 f3 f2 f1 f0
(c)
Sl. 1‐2. Sabirač/oduzimač: (a) tabela istinitosti; (b) grafički simbol; (c) struktura 8‐bitnog sabirača/oduzimača.
Sabirač/oduzimač ima dva ulaza, A = an‐1 … a0 i B = bn‐1 … b0, jedan izlaz F = fn‐1 … f0 i jedan selekcioni
signal, S. Kada je S=0, sabirač/oduzimač obavlja sabiranje, a kada je S=1 oduzimanje. Funkcionalna
tabela sabirača/oduzimača prikazana je na Sl. 1‐2(a), a grafički simbol na Sl. 1‐2(b). Konačno, kao
primer, na Sl. 1‐2(c) je prikazana struktura 8‐bitnog sabirača/oduzimača. Kod ovog rešenja,
komplementiranje ulaza B realizuje se kao XOR operacija između S i B. Naime, S XOR B = B, ako važi
S=0, odnosno S XOR B = , ako važi S=1.
6
Komponente digitalnih sistema
S = fi(X,Y)=fi(xn‐1,yn‐1) … fi(x0,y0)
Budući da logička jedinica, koja je sposobna da izračuna svih 16 logičkih operacija koje koriste dva
operanda, i nije tako složena, iskoristićemo takvu jednu jedinicu kako bi smo demonstrirali opštu
proceduru za projektovanje bilo koje logičke jedinice.
Na Sl. 1‐3(a) prikazano je svih 16 logičkih operacija koje koriste dve promenljive. Pošto je broj
operacija 16, za izbor jedne od njih, potrebne su četiri binarne promenljive, S3, S2, S1 i S0. Kodiranje
selekcionih ulaza je takvo da je Si=1, 0≤i≤3, ako i samo ako je minterm mi u izabranoj funkcije jednak
mi=1. Na primer, OR funkcija, izražena kao logička suma minterma ima oblik f14=m3+m2+m1, što znači
da je njen kôd S3S2S1S0=1110. Uočimo da selekcione promenljive interpretirane kao binarni broj imaju
vrednost jednaku indeksu izabrane operacije. Drugim rečima, za operaciju f14 vrednost S3S2S1S0 je
jednaka 1110 što odgovara binarnoj reprezentaciji broja 14.
Pošto svaka selekciona promenjiva kontroliše jedan minterm, logička funkcija koja odgovara logičkoj
jedinici za jednu bit‐poziciju je oblika:
̅ ̅
Struktura logičke jedinice za jednu bit‐poziciju prikazan je na Sl. 1‐3(b), dok je na Sl. 1‐3(c) prikazan
grafički simbol n‐bitne logičke jedinice. U opštem slučaju, bilo koja n‐bitna logička jedinica imaće n
identičnih segmenata, koji istovremeno obavljaju istu operaciju nad parovima odgovarajućih bitova
dva n‐bitna operanda. Na Sl. 1‐3(d) prikazan je primer 8‐bitne logičke jedinice.
(a) (b)
(c) (d)
Sl. 1‐3. Logička jedinica: (a) funkcije od dve promenljive; (b) realizacije logičke jedinice; (c) grafički simbol; (d)
8‐bitna logička jedinica.
7
Komponente digitalnih sistema
Sl. 1‐4. 4‐bitni sabirač u spoju sa aritmetičkim (AE) i logičkim (LE) ekspanderima.
8
Komponente digitalnih sistema
S0
S1
M
AE
yi
(c) (d)
Sl. 1‐5. Aritmetički ekspander: (a) funkcionalna tabela; (b) tabela istinitosti; (c) Karnoova mapa; (d) struktura.
U funkcionalnoj tabeli sa Sl. 1‐5(a), za svaku aritmetičku operaciju, navedene su vrednost izlaza ALU
jedinice, F, kao i vrednosti ulaza sabirača, X i Y, i ulaznog prenosa c0 koje su neophodne da bi se na
izlazu sabirača generisala odgovarajuća vrednost F. Shodno ovoj tabeli, na ulaz X sabirača uvek se
dovodi operand A, dok su na ulazu Y, u zavisnosti od izabrane operacije prisutne: sve jedinice,
operand B, komplement operanda B, ili sve nule. Vrednosti ulaza Y se generišu uz pomoć AE
ekspandera, čija je tabela istinitosti prikazan na Sl. 1‐5(b). Ova tabela je dobijena na osnovu
funkcionalne tabele sa Sl. 1‐5(a) tako što je kolona Y zamenjena kolonama bi i yi. Na Sl. 1‐5(c)
prikazana je Karnoova mapa AE ekspandera, na osnovu koje sledi: ̅ ̅ . Konačno,
struktura AE ekspandera prikazana je na Sl. 1‐5(d).
M S1 S0 Ime funkcije F X Y c0 M S1 S0 xi
0 0 0 Komplement A' A' 0 0 0 0 0 ai '
0 0 1 AND A AND B A AND B 0 0 0 0 1 ai b i
0 1 0 Identitet A A 0 0 0 1 0 ai
0 1 1 OR A OR B A OR B 0 0 0 1 1 ai+bi
1 X X ai
(a) (b)
9
Komponente digitalnih sistema
(c) (d)
Sl. 1‐6. Logički ekspander: (a) funkcionalna tabela; (b) tabela istinitosti; (c) Karnoova mapa; (d) struktura.
Projektovanje logičkog ekspandera, takođe, počinje funkcionalnom tabelom koja definiše logičke
operacije, a koja je prikazana na Sl. 1‐6(a). Kao što se može zaključiti analizom ove tabele, ulazi Y i c0
sabirača su uvek postavljeni na vrednost 0 za bilo koju logičku operaciju, dok se na ulaz X postavlja
rezultat logičke jednačine koja odgovara izabranoj logičkoj operaciji. Na osnovu funkcionalne tabele
sa Sl. 1‐6(a), u mogućnosti smo da formiramo tabelu istinitosti logičkog ekspandera, koja je prikazana
na Sl. 1‐6(b). Na osnovu odgovarajuće Karnoove mape Sl. 1‐6(c), sledi logički izraz za jednu bit‐
poziciju logičkog ekspandera:
̅ ̅
Kombinaciona mreža logičkog ekspandera koja sledi na osnovu dobijenog izraza prikazana je na Sl.
1‐6(d).
Nakon obavljenog projektovanja aritmetičkog i logičkog ekspandera, ALU jedinica formira se
povezivanjem AE i LE ekspandera sa binarnim sabiračem, na način kao što je prikazano na Sl. 1‐7(a).
Uočimo da se kod ALU jedinice, logičke operacije obavljaju u logičkim ekspanderima, a da potpuni
sabirači (FA) propuštaju na izlaz F rezultat LE ekspandera bez ikakve promene. Drugim rečima,
prilikom obavljanja logičkih operacija potpuni sabirači se koriste kao veze sa fiksnim propagacionim
kašnjenjem.
Uočimo, takođe, da prilikom izvršenja aritmetičkih operacija nad neoznačenim brojnim vrednostima,
signal izlaznog prenosa iz pozicije najveće težine ukazuje na prekoračenje. Za slučaj aritmetičkih
operacija nad označenim brojevima (predstavljenim u obliku potpunog komplementa), uslov
prekoračenja je drugačiji i formira se kao XOR operacija izlaznih prenosa iz dve bit‐pozicije najveće
težine. Ako je neophodno, 4‐bitna ALU jedinica sa Sl. 1‐7(a) se može proširiti na n‐bitnu ALU jedinicu,
korišćenjem n‐bitnog sabirača u spoju sa n aritmetičkih i n logičkih ekspandera. Grafički simbol
ovakve ALU jedinice prikazan je na Sl. 1‐7(b). Većina ALU jedinica, koje se koriste u praksi, konstruišu
se na opisani način, osim što se razlikuju po tipu i broju aritmetičkih i logičkih operacija koje
podržavaju.
10
Komponente digitalnih sistema
(a)
A B
S0
S1
M ALU
Cout
prekoračenje F
(b)
Sl. 1‐7. ALU modul: (a) 4‐bitna ALU; (b) grafički simbol.
1.5 Dekoder
Dekoderi su digitalna kola koja se koriste za dekodiranje kodiranih informacija. Binarni dekoder,
predstavljen na Sl. 1‐8, je digitalno kolo sa n ulaza za binarno kodirani podatak i 2n binarnih izlaza, pri
čemu svakom izlazu odgovara jedna kombinacija n logičkih vrednosti na ulazu. Dodatni ulaz za
dozvolu rada, E, upravlja izlazom dekodera na sledeći način: ako je E=0, tada ni jedan izlaz dekodera
nije aktivan; ako je E=1, aktivan je samo izlaz yi, gde je i ceo broj jednak binarnoj vrednosti ulaza wn‐1,
..., w1, w0. (Ime ulaza E potiče od engleske reči Enable koja znači dozvola). Ovo kolo se zove binarni
dekoder n‐u‐2n ili n‐to ulazni binarni dekoder.
Sl. 1‐8. Binarni dekoder n‐u‐2n.
Na Sl. 1‐9 je prikazan binarni dekoder 1‐u‐2. Grafički simbol ovog dekodera se može videti na Sl.
1‐9(a), a tabela istinitosti na Sl. 1‐9(b). Dekoder 1‐u‐2 ima jedan ulaza za podatak w0, ulaz za dozvolu
rada E i dva izlaza y1 i y0. Sve dok je E=1, važi: y0=1 za w0=0 ili y1=1 za w0=1. Logičke jednačine koje
definišu dekoder 1‐u‐2 su oblika:
∙
∙
Logička šema dekodera 1‐u‐2 prikazana je Sl. 1‐9(c).
11
Komponente digitalnih sistema
(a) (b) (c)
Sl. 1‐9. Dekoder 1‐u‐2: (a) grafički simbol; (b) tabela istinitosti; (c) logička mreža.
Dekoder 2‐u‐4 je predstavljen na Sl. 1‐10. Uočimo da dekoder 2‐u‐4 ima dva ulaza za podatak, w1 i
w0, ulaz za dozvolu rada, E, i četiri izlaza, y0, ..., y3. Kao što je već objašnjeno, funkcija ovog kola je da
dekodira binarni broj postavljen na ulazima w1 i w0 i postavi 1 na izlaz čiji je indeks jednak tom broju.
Ponašanje dekodera 2‐u‐4 definisano je sledećim sistemom logičkih jednačina:
∙ ∙ ∙ ∙
∙ ∙ ∙ ∙
(a) (b) (c)
Sl. 1‐10. Dekoder 2‐u‐4: (a) grafički simbol; (b) tabela istinitosti; (c) logička mreža.
U opštem slučaju, dekoder n‐u‐2n može se konstruisati na osnovu sistema logičkih jednačina:
yi = E∙mi, i = 0, ..., 2n, (1.1)
gde je mi i‐ti minterm n ulaznih promenljivih wn‐1, ...., w0.
Na izlazu dekodera, pod uslovom da je njegov rad dozvoljen, postoji samo jedna jedinica. Za izlaz na
kome je prisutna jedinica kažemo da je aktivan. Ovo važi za dekodere sa aktivnim visokim naponskim
nivoom na izlazu. Međutim, u upotrebi su i dekoderska kola sa aktivnim niskim naponskim nivoom na
izlazu. Kod takvih dekodera, nula je prisutna na jednom izlazu, koji je izabran binarnom kombinacijom
na ulazu, dok su na svim ostalim izlazima prisutne jedince. Grafički simbol dekodera 2‐u‐4 sa aktivnim
niskim naponskim nivoom na izlazu prikazan je na Sl. 1‐11(a). Uočimo da je aktivan nizak naponski
nivo naznačen kružićima na izlaznim priključcima dekodera. Tabela istinitosti ovog dekodera je
prikazana na Sl. 1‐11(b), a logička mreža na Sl. 1‐11(c). Uočimo da je logička mreža, po strukturi,
identična onoj sa Sl. 1‐11(c), s tom razlikom što se sada umesto AND koriste NAND kola.
Sl. 1‐11. Dekoder 2‐u‐4 sa aktivnim niskim naponskim nivoom na izlazu.
12
Komponente digitalnih sistema
Pr. 1‐1. Sinteza logičkih funkcija na bazi dekodera
Shodno jednačini (1.1), dekoder n‐u‐2n se ponaša kao generator minterma od n promenljivih. Kada je rad
dekodera dozvoljen, svaki izlaz dekodera se aktivira tačno jednom vrstom tabele istinitosti od n promenljivih.
Ako je logička funkcija zadata u obliku tabele istinitosti ili skupom decimalnih indeksa, tada se ona može
direktno realizovati pomoću dekodera u vidu kanoničke sume‐proizvoda.
(a) (b) (c)
Sl. 1‐12 Sinteza funkcije (0,2,3,5) : (a) Karnoova mapa; (b) logička mreža; (c) realizacija pomoću dekodera
3‐u‐8.
Iako je opisana tehnika sinteze gotovo trivijalna, ona postaje izrazito neefikasna u slučajevima kada je broj
promenljivih veći od nekoliko. Broj minterma, a time i složenost dekodera, raste eksponencijalno sa
povećanjem broja promenljivih, tako da će za tipičnu funkciju od većeg broj promenljivih, od svih generisani
minterma biti iskorišćen tek mali deo. Međutim, ima punog smisla koristiti dekoder za realizaciju sistema
logičkih funkcija, s obzirom na mogućnost da se isti mintermi koriste kod više različitih logičkih funkcija.
Danas se dekoderi retko koriste za sintezu logičkih funkcija na način koji je opisan u ovom primeru. Međutim,
izloženi koncept sinteze, zasnovan na sumiranju generisanih minterma, ili u opštem slučaju, sumiranju
generisanih produktnih članova, predstavlja osnovu programabilnih logičkih kola, kao što su ROM, PLA i PAL
strukture.
13
Komponente digitalnih sistema
4‐bitna dekodera. Izlazi dekoderske mreže 8‐u‐256 formiraju se pomoću 256 2‐ulaznih AND kola, tako
što se svako AND kolo povezuje sa jednim parom signala (hi, lj). Izlazu yk odgovara izlaz AND kola čiji
su ulazi hi i lj, pri čemu važi: k = 24 i + j. Na primer, izlaz y36 odgovara AND kolu čiji su ulazi h2 i l4, s
obzirom da važi: 36 = 24 2 + 4. Uočimo da je ulaz za dozvolu rada dekoderske mreže, E, povezan sa
odgovarajućim ulazom jednog od dekodera 4‐u‐16, dok je ulaz za dozvolu rada drugog dekodera
postavljen na 1. Ako je E=1, tada su svi izlazi iz jednog dekodera jednaki 0, što uslovljava yi=0 za svako
i.
U opštem slučaju, n‐to ulazni koincidentni dekoder se realizuje pomoću dva n/2 – ulazna binarna
dekodera i 2n 2‐ulaznih AND kola, na način kako je to prikazano na Sl. 1‐13(b).
w3 w3 y0 . y0
w2 w2 .
y2
. .
w1 w1
. .
w0 w0 . .
.
E E y15
y36
w7 w3 y0 . .
w6 w2 . .
y4
. .
w5 w1
.
w4 w0 .
. y255
1 E y15
(a) (b)
Sl. 1‐13. Koincidentno dekodiranje: (a) 8‐ulazni koincidentni dekoder; (b) n‐to ulazni koincidentni dekoder
Hijerarhijsko dekodiranje. Druga tehnika za konstrukciju većih dekodera je hijerarhijsko dekodiranje.
Radi ilustracije ove tehnike razmotrimo realizaciju binarnog dekodera 4‐u‐16 pomoću dekodera 2‐u‐
4. Kao i kod koincidentnog dekodiranja, ulazi dekoderske mreže, W=w3w2w1w0, se dele u dve grupe:
WH=w3w2 i WL=w1w0. Na osnovu ove podele, možemo realizovati dvonivovsku mrežu koja se sastoji iz
jednog dekodera 2‐u‐4 u prvom i četiri dekodera 2‐u‐4 u drugom nivou, kao što je to prikazano na Sl.
1‐14(a). Grupa ulaza WH se dekodira u prvom, a grupa ulaza WL u drugom nivou. Šesnaest izlaza
dekoderske mreže je raspoređeno u 4 grupe od po 4 izlaza, gde se svaka grupa generiše na izlazima
jednog dekodera sa drugog nivoa. Princip rada je sledeći: Dekodiranjem ulaza WH, dekodera sa prvog
nivoa, dozvoljava se rad tačno jednog dekodera sa drugog nivoa, koji dekodiranjem ulaza WL aktivira
jedan od svojih izlaza. Na primer, ako je W=0110, tada je WH=01, a WL=10. To znači da će dekoder
DEC dozvoliti rad dekoderu DEC1‚ koji s obzirom na WL=10 aktivira svoj izlaz sa indeksom 2, što
odgovara izlazu dekoderske mreže y4x1+2=y6. Uočimo da je ulaz za dozvolu rada dekoderske mreže, E,
povezan sa odgovarajućim ulazom dekodera sa prvog nivoa. Ako je E=0, tada su svi izlazi dekodera
DEC postavljeni na 0. To znači da je rad svih dekodera sa drugog nivoa zabranjen, pa i da su na svim
izlazima dekoderske mreže prisutne nule.
U opštem slučaju, n‐to ulazni dekoder se može realizovati u vidu dvonivolske dekoderske mreže sa
jednim (n/2)‐ulaznim dekoderom u prvom i 2n/2 (n/2)‐ulaznih dekodera u drugom nivou.
14
Komponente digitalnih sistema
w0 w0 y0 y0
E y1 y1
w1 w0 y0
w0 y0 y2
E y1
E y1 y3
w2 w0 y0
w0 y0 y4
E E y1
E y1 y5
w0 y0
y1 w0 y0 y6
E
E y1 y7
(a) (b)
Sl. 1‐14. Hijerarhijsko dekodiranje: (a) 4‐ulazni hijerarhijski dekoder; (b) 3‐ulazni hijerarhijski dekoder 3‐u‐8.
Hijerarhijska dekoderska mreža može imati više od dva nivoa. Na primer, ako za projektovanje
koristimo dekodere 1‐u‐2, dekoderska mreža n‐u‐2n sadržaće 2n‐1 dekodera 2‐u‐1, raspoređenih u n
nivoa tako da se na svakom nivo dekodira jedan ulazni bit. Drugim rečima, ulaz najveće težine
dekodira se jednim dekoderom 1‐u‐2 u prvom nivou, sledeći ulaz manje težine dekodira se sa dva
dekodera 1‐u‐2 u drugom nivou, i tako redom, sve do ulaza najmanje težine koji se dekodira sa n/2
dekodera 1‐u‐2 u poslednjem, n‐tom nivou. Izlazi dekodera sa određenog nivoa se koriste kao signali
dozvole dva dekodera sa sledećeg nivoa. Znači, na svakom sledećem nivou, broj dekodera će biti dva
puta veći u odnosu na prethodni nivo. Kao primer opisanog postupka konstrukcije dekodera n‐u‐2n,
na Sl. 1‐14(b) je prikazan dekoder 3‐u‐8 realizovan na bazi dekodera 1‐u‐2.
U opštem slučaju, n‐to ulazni dekoder se može realizovati u obliku hijerarhijske mreže k‐ulaznih
dekodera raspoređenih u r nivoa, pri čemu važi n=rk. n ulaza dekoderske mreže se deli na r grupa od
po k ulaza, pri čemu se svaka takva grupa dekodira na jednom nivou. Prvi novo sadrži jedan dekoder,
a broj dekodera u svakom sledećem nivou je 2k puta veći od broj dekodera u prethodnom nivou.
Ukupan broj k‐ulaznih dekodera potrebnih za realizaciju n‐to ulazne dekoderske mreže iznosi:
1 + 2k + 22k + ... + 2(r‐1)k = (2n – 1)/(2k – 1)
Na primer, za n=12 i k=4, broj nivoa je r=3, a broj 4‐ulaznih dekodera (212 – 1)/(24 – 1) = 273.
1.2 Multiplekser
Multiplekser, često u oznaci MUX, je digitalni preklopnik – tj. kolo koje omogućava da se jedan od n
izvora podataka logički povežu na zajedničko odredište. Multiplekser ima veći broj ulaza za podatke,
jedan ili više selekcionih ulaza i jedan izlaz. Vrednost selekcionih ulaza određuje (tj. bira) jedan od
ulaza za podatke čija se vrednost, u datom trenutku, prenosi na izlaz.
15
Komponente digitalnih sistema
w0 0
f
w1 1
(a) (b) (c) (d) (e)
Sl. 1‐15 Multiplekser 2‐u‐1: (a) grafički simbol; (b) analogija sa elektromehaničkim preklopnikom; (c) tabela
istinitosti; (d) logička mreža; (e) realizacija pomoću transmisionih gejtova.
Na Sl. 1‐15(a) je prikazan grafički simbol multipleksera 2‐u‐1. Ako je s=0, izlaz multipleksera biće f=w0;
ako je s=1, izlaz multipleksera je f=w1. Multiplekser 2‐u‐1 je po funkciji analogan elektro‐mehaničkom
dvo‐položajnom prekidaču sa Sl. 1‐15(b), kod koga signal s upravlja položajem preklopnika. Funkcija
multipleksera 2‐u‐1 opisana je tabelom istinitosti sa Sl. 1‐15(c), na osnovu koje lako možemo izvesti
logički izraz oblika suma‐proizvoda: f=s`w0 + sw1. Ovom izrazu odgovara logička mreža sa Sl. 1‐15(d).
Na Sl. 1‐15(e) je prikazano kako se multiplekser 2‐u‐1 može realizovati pomoću transmisionih gejtova.
Na Sl. 1‐16(a) je prikazan jedan veći multiplekser, sa četiri ulaza za podatke, w0, …, w3 i dva selekciona
ulaza s1 i s0. Kao što se može videti iz tabele istinitosti sa Sl. 1‐16(b), kombinacija selekcionih ulaza (s1,
s0), interpretirana kao binarna celobrojna vrednost i, za prosleđivanje na izlaz f bira ulaz wi.
Multiplekseru 4‐u‐1 odgovara sledeći logički izraz oblika suma‐proizvoda:
̅ ̅ ̅ ̅
Ovom izrazu odgovara logička mreža sa Sl. 1‐16(c).
(a) (b) (c)
Sl. 1‐16 Multiplekser 4‐u‐1: (a) grafički simbol; (b) tabela istinitosti; (c) logička mreža.
Pr. 1‐2. Krozbar
Na Sl. 1‐17(a) prikazano je kolo sa dva ulaza, x1 i x2, i dva izlaza, y1 i y2. Kao što je naznačeno isprekidanim
linijama, kolo obezbeđuje kontrolisanu vezu između ulaznih i izlaznih priključaka, tj. omogućava da bilo koji ulaz
može biti povezan na bilo koji izlaz. U opštem slučaju, kolo ovog tipa, sa n ulaza i k izlaza, čija je jedina funkcija
da obezbedi spregu bilo koji ulaz sa bilo kojim izlazom, zove se krozbar prekidač nxk. Ako postoje dva ulaza i dva
izlaza, radi se o krozbar prekidaču 2x2.
Na Sl. 1‐17(b) je prikazana realizacija krozbar prekidača 2x2 pomoću multipleksera 2‐u‐1. Selekcioni ulazi oba
multipleksera povezana su na ulazni signal s. Ako je s=0, krozbar povezuje x1 na y1 i x2 na y2; za s=1, veze su
ukrštene ‐ podatak sa ulaza x1 sprovodi se na izlaz y2, a podatak sa ulaza x2 na izlaz y1. Krozbar prekidači nalaze
primenu svuda tamo gde je neophodno povezati dva skupa veza, pri čemu se način sprege menja s vremena na
vreme.
16
Komponente digitalnih sistema
Sl. 1‐17 Jedna primena multipleksera.
Korišćenjem istog principa, moguće je realizovati i veće multipleksere. Obično, broj ulaza za podatke,
n, je stepen broja 2. Multiplekser n‐u‐1 zahteva selekcionih ulaza. Veći multiplekseri se
takođe mogu realizovati pomoću više manjih multipleksera. Na primer, multiplekser n‐u‐1, gde je n
stepen broja 2, može se konstruisati pomoću n‐1 multipleksera 2‐u‐1 raspoređenih u nivoa.
Svaki od n/2 multiplekser sa prvog nivoa bira između dva izvora podataka, dok svaki od n/4
multiplekser sa drugog nivoa bira između dva multiplekserska izlaza sa prvog nivoa. Drugim rečima,
na svakom nivou, nakon prvog, svaki multiplekser se koristi za izbor između dva izlaza generisana od
strane multipleksera sa prethodnog nivoa. Konkretno, za realizaciju multipleksera 8‐u‐1 potrebna su
8‐1=7 multipleksera 2‐u‐1, a broj nivoa je 3. Na Sl. 1‐18(a) je prikazana tabela istinitosti, a na Sl.
1‐18(b) realizacija multipleksera 8‐u‐1 pomoću multipleksera 2‐u‐1.
Sl. 1‐18 Multiplekser 8‐u‐1: (a) tabela istinitosti: (b) struktura.
Na Sl. 1‐19(a) prikazan je grafički simbol multipleksera 2xm‐u‐m. Ovaj simbol na kompaktan način
predstavlja strukturu od m paralelno povezanih multipleksera sa Sl. 1‐19(b). Pomoću multipleksera
2xm‐u‐m omogućen je izbor jednog od dva m‐bitna podatka. U opštem slučaju, multiplekser kxm‐u‐m
sastoji se iz m multipleksera k‐u‐1 sa zajedničkim selekcionim ulazima.
17
Komponente digitalnih sistema
(a) (b)
Sl. 1‐19 Multiplekser 2xm‐u‐m: (a) grafički simbol; (b) struktura.
(a) (b)
Sl. 1‐20 Alternativno rešenje multipleksera 8‐u‐1: (a) tabela istinitosti; (b) realizacija na bazi dekodera.
Magistrala. U prethodnom odeljku opisana je konstrukcija multipleksera pomoću logičkih kola. Iako
je takav tip multipleksera u širokoj primeni, upotreba multipleksera sa velikim brojem ulaza može
predstavljati problem onda kad veliki broj veza mora biti doveden do jednog mesta u sistemu, tamo
gde je postavljen multiplekser. Na sreću, za ovaj problem postoji jedno elegantno rešenje, koje se
18
Komponente digitalnih sistema
zove magistrala. Za konstrukciju magistrale koristi se trostatički bafer koja, kao elektronska
komponenta, može imati tri različita stanja na izlazu: 0, 1 i Z. Vrednost Z predstavlja stanje visoke
impedanse, koje se kod svih praktičnih primena može smatrati prekidom veze.
(a) (b) (c)
Sl. 1‐21 Realizacija magistrale: (a) trostatički bafer; (b) dvoulazna magistrala; (c) četvoro‐ulazna magistrala.
Kao što se može videti sa Sl. 1‐21(a), trostatički bafer ima liniju podataka D, liniju dozvole, E, i izlaznu
liniju, Y. Uvek kada je E=1, vrednost na izlazu je identična ulazu, Y=D. Suprotno, za E=0, izlaz je u
stanju visoke impedanse, Y=Z, bez obzira na vrednost koja je prisutna na ulaznoj liniji podataka.
Drugim rečima, za E=1 trostatički bafer se ponaša kao zatvoren, a za E=0 kao otvoren prekidač.
Magistralu čini skup trostatičkih bafera, od kojih svaki služi za spregu jednog izvora podataka na
zajedničku magistralu. Pošto u jednom vremenu najviše jedan izvor može pobuđivati magistralu, jer
bi u suprotnom došlo do konflikta na magistrali, neophodno je obezbediti da u svakom trenutku
najviše jedan trostatički bafer bude aktivan (tj. E=1).
Pošto ima n ulaza podataka, ali u svakom trenutku dozvoljava prenos samo jednog podatka na
zajedničku magistralu, magistrala je, po funkciji, ekvivalentna multiplekseru. Na primer dvoulazna
magistrala, prikazana na Sl. 1‐21(b) ima dve linije podataka D0 i D1 i jednu adresnu liniju, S, tako da je
za S=0, Y jednako D0, dok je za S=1, Y jednako D1. Uočimo da je tabela istinitosti dvoulazne magistrale
identična tabeli istinitosti dvoulaznog multipleksera. Primenom istog principa, možemo konstruisati
magistrale sa većim brojem ulaza, kao što je četvoro‐ulazna magistrala sa Sl. 1‐21(c). Kao što se može
videti, ova magistrala sadrži dekoder 2‐u‐4 koji konvertuje dve adresne linije S1 i S0 u četiri linije za
dozvolu od kojih svaka upravlja jednim od četiri trostatička bafera koji pobuđuju magistralu.
U opštem slučaju, magistrale se lako realizuju i lako modifikuju, onda kada je se javi potreba da se
doda novi izvor podataka ili “obriše” stari. Iz tog razloga, magistrale se često koriste za povezivanje
većeg broja izvora podataka na zajedničku liniju, bilo da se radi o integrisanom kolu ili štampanoj
ploči. Izuzetak čine FPGA kola, iz razloga što, po pravilu, sadrže mali broj ugrađenih trostatičkih
bafera.
1.3 Demultiplekser
Kao što je rečeno u odeljku 1.2, multiplekser je digitalno kolo sa jednim izlazom, n ulaza za podatke i
selekcionih ulaza. Namena multipleksera je da multipleksera n ulaza za podatke preko
jedinstvenog izlaza za podatak, pod kontrolom selekcionih ulaza. Kolo koje obavlja suprotnu funkciju
19
Komponente digitalnih sistema
– vrednost sa jedinstvenog ulaza za podatak prosleđuje na jedan od više izlaza za podatke, zove se
demultiplekser.
Na Sl. 1‐22(a) je prikazan grafički simbol demultipleksera 4‐u‐1. Kao što se vidi iz tabele istinitosti sa
Sl. 1‐22(b), binarna kombinacija vrednosti selekcionih ulaza s1 i s2 bira jedan od četiri izlaza, y0, ..., y3,
na koji se prenosi vrednost jedinstvenog ulaza za podatak, d. Demultiplekser 1‐u‐4 se može
realizovati pomoću dekodera 2‐u‐4, kao što je prikazano na Sl. 1‐22(c). U ovom slučaju, ulaz E
dekodera se koristi kao ulaz za podatak demultipleksera, dok su izlazi dekodera izlazi za podatke
demultipleksera. Binarna kombinacija w1w0 određuje izlaz koji će biti postavljen na vrednost E. Ako je
E=0, tada će svi izlazi dekodera biti 0, uključujući i izlaz koji je izabran kombinacijom w1w0; ako je E=1,
tada kombinacija w1w0 postavlja 1 na odgovarajući izlaz. Dakle, uvek važi y(w1w0) = E.
(a) (b) (c)
Sl. 1‐22 Demultiplekser 1‐u‐4: (a) grafički simbol; (b) tabela istinitosti; (c) dekoder 2‐u‐4 kao demultiplekser
1‐u‐4.
Pr. 1‐3. Vremenski multipleks
Par multiplekser‐demultiplekser se može koristiti za prenos informacije od n izvora do n odredišta preko
jedinstvene komunikacione linije, kao što je to za slučaj n=8, prikazano na Sl. 1‐23. Multiplekser bira jedan od n
izvora i prenosi podatak tog izvora na komunikacionu liniju. Na drugom kraju linije, demultiplekser usmerava
primljeni podatak ka jednom od n odredišta. Izbor para izvor‐odredište obavlja se preko selekcionih ulaza
multipleksera i demultipleksera. Ovakav način prenosa informacija zove se vremenski multipleks. Uz
ograničenje da u bilo kom trenutku može postojati direktna sprega samo jednog para izvor‐odredište,
vremenski multipleks omogućava značajno smanjenje broja potrebnih prenosnih linija, što može predstavljati
značajnu uštedu, naročito ako je rastojanje između izvori i odredišta podataka veliko.
Sl. 1‐23 Princip vremenskog multipleksa.
1.4 Koder
Koder je digitalno kolo koje ima suprotnu funkciju od dekodera. Namena kodera je da kodira ulaznu
informaciju u kompaktan oblik.
20
Komponente digitalnih sistema
binarnog kodera generiše se n‐bitni binarni broj koji ukazuje na indeks ulaza čija je vrednost jednaka
1. Na Sl. 1‐24(a) je prikazana tabela istinitosti kodera 4‐u‐2. Tabela istinitosti je nepotpuna, jer sadrži
samo one slogove koji su dozvoljeni na ulazu binarnog kodera. Za sve ostale slogove, odziv kodera
nije definisan. Uočimo da izlaz y0 ima vrednost 1 ako je w1=1 ili w3=1. Slično, izlaz y1 ima vrednost 1,
ako je w2=1 ili w3=1. Na osnovu ovog zapažanja možemo konstruisati logičku mrežu binarnog kodera
4‐u‐2 prikazanu na Sl. 1‐24(b). U opštem slučaju, binarni koder 2n‐u‐n se može realizovati pomoću n
(2n‐1)‐to ulaznih OR kola. Svako OR kolo postavlja jedan izlaz. Ulaz wi je povezan sa j‐tim OR kolom
ako j‐ti bit u binarnoj reprezentaciji indeksa i ima vrednost 1.
(a) (b) (c)
Sl. 1‐24 Binarni koder: (a) binarni koder 2n‐u‐n; (b) binarni koder 4‐u‐2 ‐ tabela istinitosti; (c) binarni koder 4‐
u‐2 ‐ realizacija;
Pr. 1‐4. Jedna primena kodera
Na Sl. 1‐25 je prikazan osmo‐položajni mehanički preklopnik. Preklopnik ima 8 izlaza koji u kodu 1‐od‐8 kodiraju
položaj klizača. U ovoj primeni, binarni koder 8‐u‐3 se koristi za kodiranje položaj klizača u oblik trobitnog
binarnog broja.
Sl. 1‐25 Primena binarnog kodera.
21
Komponente digitalnih sistema
Sl. 1‐26 Tabela istinitosti prioritetnog kodera 4‐u‐2.
Rad prioritetnog kodera se najlakše može razumeti ako najpre razmotrimo poslednju vrstu u tabeli
istinitosti. Ova vrsta kazuje da ako je w3=1, izlaz se postavlja na y1y0=11. Pošto ulaz w3 ima najviši
prioritet, vrednosti ulaza w2, w1 i w0 nisu od značaja. Da bi se ukazalo na činjenicu da su njihove
vrednosti irelevantne, promenljive w2, w1 i w0 su označene simbolom X u tabeli istinitosti.
Pretposlednja vrsta u tabeli istinitosti kazuje da se za w2=1 izlazi postavljaju na y1y0=10, ali samo ako
pri tome važi w3=0. Slično, ulaz w1 uslovljava da izlaz bude postavljen na y1y0=01, ali samo ako važi
w3=w2=0. Konačno, ulaz w0 se kodira na izlazu binarnom kombinacijom y1y0=00, ali samo pod
uslovom da je w0 jedini aktivan ulaz.
Pr. 1‐5. Selekcija prekidnih signala pomoću prioritetnog kodera
U ovoj primeni, prioritetni koder se koristi za izbor jednog od više događaja koji se mogu desiti u isto vreme.
Izabrani događaj se predstavlja (kodira) binarnim brojem. Na primer, kod računarskih sistema, različiti
periferijski uređaji obraćaju se procesoru, putem prekidnih signala, zahtevima za opsluživanjem. S obzirom da
više ovakvih zahteva može biti aktivno u isto vreme, neophodno je izabrati jedan koji će biti opslužen. Kao što je
prikazano na Sl. 1‐27, prioritetni koder se koristi za identifikaciju aktivnog prekidnog signala najvišeg prioriteta.
Najniži
Prekidni
prioritet Kod zahteva
signali
najvišeg prioriteta
Uređaj A w0
Uređaj B w1 y0
Procesor
Uređaj C w2 y1
Uređaj D w3 z
Zahtev je
Najviši prisutan
prioritet
Sl. 1‐27 Primena prioritetnog kodera za izbor signala prekida.
Sl. 1‐28 Realizacija prioritetnog kodera.
Prioritetni koder 2n‐u‐n se može realizovati kombinovanjem dva modula kao na Sl. 1‐28. Prvi modul je
kolo za razrešavanje prioriteta, koje menja na 0 sve ulaze čija je vrednost 1, osim onog čiji je prioritet
22
Komponente digitalnih sistema
najviši. Drugi modul je standardni binarni koder. Modul za razrešavanje prioriteta definisan je
sledećim skupom logičkih jednačina:
∙ ⋯ ∙ , 0,1 … , 2 1
Prethodni izraz kaže da aktivan ulaz wi zadržava vrednost 1 (tj. postavlja 1 na izlazu xi) samo ako su svi
ulazi višeg prioriteta jednaki 0.
(a) (b)
Sl. 1‐29 Modul za razrešavanje prioriteta: (a) paralelna realizacija; (b) iterativna realizacija.
Modul za razrešavanje prioriteta se može realizovati u obliku logičke mreže sa Sl. 1‐29(a). Kod ove
realizacije, izlaz xi se generiše pomoću AND kola sa 2n‐i ulaza. Ovakvo rešenje je adekvatno za module
sa malim brojem ulaza, ali je nepraktično za veće module budući da zahteva AND kola sa velikim
brojem ulaza. Na Sl. 1‐29(b) je prikazana iterativna implementacija istog kola, koja je pogodna za veći
broj ulaza, mada ispoljava veće kašnjenje. Ovo rešenje je zasnovano na umnožavanju ćelija
definisanih logičkim jednačinama:
0, ̅ ∙ ,
Prosto, wi=1 postavlja ci‐1 na 1, što isključuje sve ulaze nižeg prioriteta.
23
Komponente digitalnih sistema
(a)
(b) (c)
Sl. 1‐30. Hijerarhijska realizacija prioritetnog kodera: (a) princip; (b) prioritetni koder 4‐u‐2 pomoću kodera 2‐
u‐1; (c) prioritetni koder 8‐u‐3 pomoću prioritetnih kodera 4‐u‐2.
1.5 Komparator
Većina programskih jezika poseduje relacione operatore koji nam omogućavaju da ispitamo izvesne
uslove kako bi smo odredili kada određene akcije treba preduzeti. Kod programskih jezika, uslovi se
predstavljaju u obliku relacije između dva entiteta, X i Y, koji mogu biti konstante, promenljive ili
aritmetički izrazi. Relacioni izrazi se formiraju uz pomoć tri osnovna relaciona operatora: veće (X>Y),
jednako (X=Y) i manje (X<Y). Takođe, za svaki od ovih operatora postoji komplementarni operator.
Operator “veće ili jednako” (X≥Y) je komplement od “manje”, “manje ili jednako” (X≤Y) je
komplement od “veće”, dok je “različito” (X≠Y) komplement od “jednako”. Rezultat bilo kog od
navedenih operatora je logička promenljiva koja može imati vrednost 0 (netačno) ili 1 (tačno).
Za izračunavanje relacionih operatora koriste se digitalna kola koja se zovu komparatori magnitude
ili samo komparatori. Iako je moguće projektovati komparator za bilo koji operator, u ovom odeljku
pokazaćemo kao se projektuje univerzalni komparator, koji je se može koristiti za izračunavanje bilo
kog od navedenih operatora. U opštem slučaju, n‐bitni univerzalni komparator (Sl. 1‐31) poredi dva
pozitivna binarna broja X=xn‐1,…,x0 i Y=yn‐1,…,y0 i generiše tri binarna rezultata, G, E i L, koji imaju
sledeće značenje: Ako je izlaz G=1, tada je X>Y; E=1 ukazuje na X=Y, a L=1 na X<Y.
24
Komponente digitalnih sistema
Sl. 1‐31 n‐to bitni univerzalni komparator magnitude.
Logička mreža komparatora se može sintetizovati na osnovu tabele istinitosti u kojoj bi za svaku
kombinaciju n‐bitnih operanda X i Y bile navedene vrednosti izlaza G, E i L. Međutim, takva tabela bi
bila previše velika, čak i za relativno malo n. Zato je bolji pristup da se u cilju realizacije komparatora
razmatraju pojedinačni parovi odgovarajućih bitova dva operanda. Razmotrimo konstrukciju 4‐bitnog
komparatora.
Neka su X=x3x2x1x0 i Y=y3y2y1y0. Definišimo skup internih signala i3, i2, i1 i i0. Signal ik je jednak 1 ako su
bitovi sa indeksom k operanada X i Y međusobno jednaki. Jednakost dva bita se ispituje logičkim
kolom XNOR, tj. ⊗ (operacija XNOR se označava znakom ⊗). Dva binarna broja su
jednaka ako imaju iste bitove. Dakle,
E = i3i2i1i0
Izraz za izlaz G se može izvesti tako što će se bitovi operanada X i Y ispitivati u redosledu počev od
bita najveće do bita najmanje težine. Prva bit‐pozicija k na kojoj se bitovi xk i yk razlikuju odrediće da li
je X veće ili manje od Y. Pri tom, ako važi xk=0 i yk=1, tada je X<Y; ako je xk=1 i yk=0, tada važi X<Y.
Dakle, izlaz G definisan je sledećim logičkim izrazom:
Izlaz L se može odrediti na osnovu slične formule u kojoj bi umesto bitova operanda Y
komplementirali bitove operanda X. Međutim, postoji i lakši način. Naime, X je manje od Y ako X i Y
nisu ni jednaki niti je X veća od Y, tj.
Logička mreža koja realizuje četvorobitni univerzalni komparator prikazana je na Sl. 1‐32. Opisana
procedura se može primeniti za konstrukcije univerzalnog komparatora za proizvoljno n.
Sl. 1‐32 Logička mreža 4‐bitnog univerzalnog komparatora.
Pr. 1‐6. Realizacija komparatora pomoću binarnog sabirača
Na Sl. 1‐33 je prikazano kako se 4‐bitni univerzalni komparator može realizovati pomoću 4‐bitnog sabirača.
Odnos između dva broja X i Y može se odrediti ako se brojevi najpre oduzmu, a zatim ispita vrednost rezultat.
Oduzimanje X‐Y se realizuje kao sabiranje broja X i potpunog komplementa broja Y. Kod oduzimanja
25
Komponente digitalnih sistema
neoznačenih binarnih brojeva važi pravilo da je izlazni prenos iz sabirača, c4, jednak 0 ako je razlika negativna,
odnosno 1 ako je razlika nula ili pozitivna. Drugim rečima, c4=0 ukazuje na X<Y, a c4=1 na X≥Y. Ovo pravilo se
lako može proveriti na sledećim konkretnim primerima:
Uslov X≥Y se može razložiti na dva uslova X>Y i X=Y ako se dodatno detektuje kada je rezultat oduzimanja 0. Za
detekciju uslova “sve nule” može se iskoristiti 4‐ulazno NOR kolo, kao što je prikazano na Sl. 1‐33. Dakle, ako je
razlika 0, brojevi su jednaki; ako je c4=0, tada je X manje od Y, a ako razlika nije jednaka nuli i c4=1, tada je X
veće od Y.
Sl. 1‐33 Realizacija univerzalnog komparatora pomoću binarnog sabirača.
, , , , 0, … ,3,
, , , , 0, … ,3
koji se koriste kao ulazi u pojedinačne 4‐bitne komparatorske module. Poređenje se obavlja
sukcesivno (tj. iterativno), počev od bit‐vektora najmanje težine, X(0) i Y(0), a rezultat poređenja,
izražen promenljivama G, E i L se prenosi u naredni stepen. Ako su bit‐vektori X(i) i Y(i) jednaki,
preuzima se rezultat iz prethodnog stepena; ako se X(i) i Y(i) razlikuju, rezultat prethodnog stepena se
zanemaruje, a stepen i dalje prosleđuje rezultat svog poređenja. Izlazi G, E i L iz poslednjeg modula
(i=3) su u isto vreme i izlazi celokupne komparatorske mreže. Da bi se omogućila sprega
komparatorskih modula, neophodno je strukturu 4‐bitnog univerzalnog komparatora sa Sl. 1‐32
proširiti sa tri ulazna signala prenosa, kao na Sl. 1‐34. Ako važi X=Y, tada se na izlaz modula prosleđuju
vrednosti sa ulaza Gul, Eul i Lul; u suprotnom, ako važi X≠Y, na izlaz modula se prenose vrednosti sa
izlaza internog 4‐bitnog komparatora. Na Sl. 1‐35 je prikazana struktura 16‐bitnog iterativnog
komparatora magnitude, realizovanog pomoću 4‐bitnih komparatorskih modula sa Sl. 1‐35.
Opisani postupak se može primeniti za konstrukciju iterativnog komparatora sa proizvoljno velikim
brojem bitova. Međutim, kao i kod sabirača sa rednim prenosom, sa povećanjem broj spregnutih
bazičnih modula propagaciono kašnjenje komparatorske mreže linearno raste.
26
Komponente digitalnih sistema
komparator
4-bitni
Sl. 1‐34 4‐bitni komparator sa ugrađenim signalima ulaznog prenosa.
Sl. 1‐35 16‐bitna iterativna komparatorska mreža.
Sl. 1‐36 16‐bitni hijerarhijski komparator.
Da mreža sa Sl. 1‐36 zaista realizuje funkciju 16‐bitnog komparatora, može se pokazati sledećom
analizom. Na osnovu definicije univerzalnog komparatora, izlazi hijerarhijske mreže komparatora su:
27
Komponente digitalnih sistema
1 ako je g l
G
0 inace
1 ako je g l
E
0 inace
1 ako je g l
L
0 inace
gde su g i l celi brojevi predstavljeni istoimenim bit‐vektorima.
S obzirom da su g i l izlazi iz prvog nivoa komparatora, nije moguće da oba bita gi i li, i=0,...,3, u isto
vreme imaju vrednost 1. Shodno tome, g>l znači da je 1 sa najvećom težinom u vektoru g teža od 1
najveće težine u vektoru l, što odgovara slučajevima kada je X>Y. Slično, g<l sledi iz X<Y. Slučaj g=l se
javlja samo ako važi g=l=0, što znači da važi X=Y. Dakle, mreža sa Sl. 1‐36 realizuje funkciju poređenja
brojeva X i Y.
Pr. 1‐7. 8‐bitni univerzalni komparator
Na Sl. 1‐37 je prikazano kako se pomoću dva 4‐bitna univerzalna komparatora i dodatnih logičkih kola može
realizovati 8‐bitni univerzalni komparator. Operande X i Y možemo napisati u obliku:
X = XH 24 + XL
Y = YH 24 + YL
gde su XH= x7x6x5x4, XL= x3x2x1x0, YH= y7y6y5y4 i YL= y3y2y1y0 više i niže tetrade brojeva X i Y. Najpre, dva 4‐bitna
komparatora nezavisno porede više i niže tetrade brojeva X i Y, a zatim se na osnovu njihovih izlaza određuje
konačni rezultat. Brojevi X i Y su jednaka ako važi XH=YH i XL=YL. X je veće od Y ako važi XH>YH ili ako su XH i YH
jednaki i pri tome XL>YL. Konačno, X je manje od Y ako je viša tetrada broja X manja od više tetrade broja Y ili
ako su više tetrade dva broja jednake i pri tome niža tetrada broja X manja od niže tetrade broja Y.
Sl. 1‐37 Realizacija 8‐bitnog komparatora pomoću 4‐bitnih komparatora.
28
Komponente digitalnih sistema
potpunog komplementa, tada se prilikom pomeranja udesno, u vektor, sa leve strane, ubacuje m
kopija bita znaka. Za slučaj pomeranja ulevo, u vektor se, sa desne stane, ubacuje m nula. Dodatno,
nakon pomeranja ulevo, na poziciju bita najveće težine treba postaviti vrednost koja je jednaka bitu
znaka polazne reči. Pri operaciji rotiranja, bitovi se ne gube, jer se bit koji izađe sa jedne strane reči,
vraća u reč sa druge strane.
Za realizaciju operacija pomeranja i rotiranja, koriste se digitalne komponente koje se zovu pomerači
i rotatori. Ove komponente se konstruišu pomoću multipleksera. Na primer, na Sl. 1‐38(a) je prikazan
grafički simbol 8‐bitnog univerzalnog pomerača/rotatora, koji može da obavlja logičko pomeranje ili
rotiranje za jednu bit‐poziciju ulevo ili udesno. Kolo ima 8‐bitni ulaz za podatak D=d7...d0, 8‐bitni izlaz
za podatak Y=y7...y0, i tri selekcione linije, S2, S1 i S0, preko kojih se vrši izbor željene operacije. Ulaz dl
definiše bit‐vrednost koja se prilikom pomeranja udesno postavlja na krajni levi izlaz, y7, dok ulaz dl
definiše vrednost koja se postavlja na krajnji desni izlaz, y0, prilikom pomeranja ulevo. Shodno
funkcionalnoj tabeli sa Sl. 1‐38(b), kada je S2=0, ulazni podatak se prenosi na izlaz bez ikakve
promene. Ako je S2=1, nad ulaznim podatkom se obavlja operacija pomeranja ili rotiranja. Smer
pomeranja, odnosno rotiranja, zavisi od vrednosti S1: za S1=0 podatak se pomera ulevo, a za S0=1
udesno. Konačno, S0 služi za izbor između pomeranja i rotiranja, tako da pri S0=0 pomerač/rotator
radi kao pomerač, a pri S0=1 kao rotator. Na Sl. 1‐38(c) su ilustrovani različiti režimi rada univerzalnog
pomerača/rotatora.
(a) (b)
(c)
Sl. 1‐38 Univerzalni pomerač/rotator: (a) grafički simbol; (b) funkcionalna tabela; (c) režimi rada.
Na Sl. 1‐39 je prikazana realizacija 8‐bitnog univerzalnog pomerača/rotatora. Kao što se može videti,
pomerač/rotator je realizovan tako što je za svaku bit‐poziciju iskorišćen jedan multipleksera 4‐u‐1.
Ulazi multipleksera su tako raspoređeni da multiplekser koji zauzima poziciju i, može da bira između
29
Komponente digitalnih sistema
ulazih bitova i‐1, i i i+1. Dodatno, pomerač/rotator ima dva multipleksera 2‐u‐1, koji služe za izbor
krajnjeg levog ili krajnjeg desnog bita.
Sl. 1‐39 Realizacija 8‐bitnog univerzalnog pomerača/rotatora sa Sl. 1‐38 pomoću multipleksera.
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
mux mux mux mux mux mux mux mux
S0
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
mux mux mux mux mux mux mux mux
S1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
mux mux mux mux mux mux mux mux
S2
y7 y6 y5 y4 y3 y2 y1 y0
Sl. 1‐40 8‐bitni barel rotator udesno: (a) tabela istinitosti; (b) struktura.
30
Komponente digitalnih sistema
Na Sl. 1‐40 je prikazano jedno moguće rešenje barel pomerača, kod koga je, u cilju
pojednostavljenja, broj funkcija sveden samo na jednu, rotiranje udesno. Kao što se može videti, ovaj
8‐bitni barel rotator realizovan je sa tri nivoa multipleksera 2‐u‐1, koji se kontrolišu sa tri selekcione
linije, S0, S1 i S0, na sledeći način: kada je S0=1, prvi nivo obavlja rotiranje za jednu bit‐poziciju; kada je
S1=1 drugi nivo obavlja rotiranje za dve, a kada je S2=1 treći nivo obavlja rotiranje za četiri bit‐pozicije.
Za konstrukciju složenijih pomerača/rotatora, koji mogu obavljati veći broj različitih operacija, koristi
se u suštini isti postupak, s tim da je neophodan veći broj multipleksera sa većim brojem ulaza za
podatke.
1.7 ROM
ROM memorija (Read Only Memory ‐ ROM) se može razumeti kao univerzalni logički element koji, u
isto vreme, može da realizuje veći broj različitih logičkih funkcija definisanih nad istim skupom
promenljivih. Uopšteno govoreći, ROM sadrži n reči dužine m bita i označava se kao m x n ROM.
ROM, takođe, ima log2n adresnih linija koje se koriste za adresiranje svake od njenih n reči. Znači,
mxn ROM je u stanju da realizuje m proizvoljnih logičkih funkcija od log2n promenljivih.
Pre nego što pređemo na razmatrane strukture ROM memorije uvešćemo dva nova grafička simbola
koji reprezentuju programabilne varijante AND i OR logičkih kola. Kao što se može videti u tabeli sa Sl.
1‐41, ulazne linije logičkog kola zamenjene su jedinstvenom linijom koja je presečena sa nekoliko
ulaznih linija. U svakom preseku nacrtan je crni kvadrat koji ukazuje na postojanje veze između ulaza i
logičkog kola. Ova veza se može ostvariti na dva načina: u toku fabrikacije komponente, kada se dve
linije fizički spajaju uvek kada je takva veza potrebna, ili nakon fabrikacije, kada se svuda tamo gde
veze ne treba da postoje pregore topljivi osigurač ugrađeni u presecima naznačenim u grafičkom
simbolu. ROM sa osiguračima se zove programabilni ROM ili PROM (Programmable ROM). PROM je
veoma praktična komponenta, s obzirom da se može proizvoditi u velikim serijama, a tek kasnije, pre
ugradnje u ciljni sistem prilagodi konkretnoj primeni (tj. programirati).
Kombinacioni simbol Programabilni simbol
Sl. 1‐41 Programabilni simboli AND i OR kola.
Kao što je već rečeno, tipična n x m ROM ili PROM ima k=log2n adresnih linija označenih kao Ak‐1,...,A0,
kao i m izlaznih linija označenih kao Fm‐1,...,F0. ROM memorija sadrži adresni dekoder k‐u‐n i m
programabilnih OR kola. Na primer, na Sl. 1‐42 je prikazan 16x4 ROM kod koga dekoder 4‐u‐16 služi
za izbor jedne od 16 reči. Unutar programabilnog OR polja, vrednost svakog bita u svakoj reči je
određena postojanjem ili nepostojanjem veze između horizontalnih i vertikalnih linija: pošto crni
kvadrat u preseku ukazuje postojanje veze (nepregoreni osigurač), a na Sl. 1‐42 nema ni jednog
kvadrata, sadržaj prikazane ROM memorije je “sve nule“.
31
Komponente digitalnih sistema
Sl. 1‐42 16x4 ROM.
Pr. 1‐8. Realizacija logičkih funkcija pomoću ROM‐a
Na Sl. 1‐43 je pokazano kako se 16x4 ROM može iskoristiti za realizaciju sabirača/oduzimača za jednu bit‐
poziciju. Kao što se može videti na Sl. 1‐43(a), ulazi kola su: jedna selekciona linija S, koja određuje da li se
obavlja sabiranje ili oduzimanje, dva jednobitna operanda ai i bi, i prenos iz prethodne bit‐pozicije, ci. Kolo
generiše bit sume/razlike fi i izlazni prenos ci+1. Tabela istinitosti ovog kola prikazana je na Sl. 1‐43(b), dok je na
Sl. 1‐43(c) prikazana realizacija pomoću ROM‐a. Uočimo da su 1‐ce iz izlaznih kolona tabele istinitosti
konvertovane u odgovarajuće veze unutar OR polja ROM‐a. Ulazne linije S, ai, bi i ci su preslikani na adresne
linije A3, A2, A1 i A0, dok su izlazne linije preslikane na F1 i F0.
(a) (b) (c)
Sl. 1‐43 16x4 ROM programiran kao sabirač/oduzimač za jednu bit‐poziciju; (a) sabirač/oduzimač za jednu
bit‐poziciju; (b) tabela istinitosti; (c) šema programiranja ROM memorije.
U Pr. 1‐8, važno je uočiti da reči ROM memorije sa adresama 0000 i 1010 nisu potrebne (ostaju
neprogramirane). Zbor ovakvog neracionalnog korišćenja raspoloživih reči, realizacija funkcija sa
milim brojem 1‐ca pomoću ROM‐a je veoma skupa. Sa druge strane, budući da poseduje značajno
veću gustinu bitova u poređenju sa RAM memorijom (tj. zauzima manju površinu na čipu), ROM
memorija predstavlja odlično rešenje za čuvanje konstantnih podataka. Iz tog razloga, ROM memorije
se često koriste za generisanje upravljačkih signala kod upravljačkih jedinica standardnih procesora i
aplikaciono‐specifičnih koprocesora. Uz to, ROM memorije su postojane, tj. ne gube memorisani
sadržaj nakon isključenja napajanja i zbog toga se koriste za smeštanje programa kod
mikroračunarskih sistema.
1.8 PLA
U prethodnoj sekciji je napomenuto da ROM predstavlja izrazito neefikasno rešenje kada se koristi za
realizaciju retkih funkcija, tj. funkcija sa malim brojem 1‐ca, jer će u takvim situacijama mnoge reči
32
Komponente digitalnih sistema
ROM‐a imati vrednost 0, što dovodi do neracionalnog korišćenja površine čipa. Programabilna logička
polja (PLA – Programmable Logic Arrays) su razvijena upravo iz potrebe minimiziranja ovog
nepotrebnog gubitka. PLA se razlikuju od ROM‐a po načinu realizacije adresnog dekodera: umesto
potpunog dekodera, kao što je to slučaj kod ROM‐a, PLA koristi programabilni dekoder, koji se zove
AND polje, i koji se može programirati tako da dekodira samo one reči koje imaju sadržaj različit od
nule. Uz to, PLA može imati i programabilno izlazno polje koje se koristi onda kada postoji potreba da
se komplementira izlazna vrednost. Izlazno polje može da poboljša efikasnost PLA strukture jer pruža
veću fleksibilnost prilikom realizacije proizvoljnih funkcija. Na primer, ako funkcija ima samo nekoliko
nula, AND i OR polja mogu biti programirana tako da realizuju komplement date funkcije, što će
zahtevati samo nekoliko reči, a da se onda komplementiranjem u izlaznom polju dobije željena
funkcija.
Sl. 1‐44 PLA struktura
Po pravilu, PLA se karakteriše brojem reči, n, i brojem izlaza, m. Uz to, pošto broj adresnih linija neće
biti jednak log2n, prilikom specifikacije PLA strukture, potrebno je navesti i broj ulaza ili adresnih
ulaza, k. Znači, k n m PLA imaće: k adresnih linija Ak‐1,...,A0, n reči, gde svaka reč predstavlja jedan
minterm adresnih ulaza, i m izlaza, Fm‐1,...,F0. Takva jedna PLA struktura može da realizuje m
proizvoljnih logičkih funkcija k promenljivih sve dok je ukupan broj različitih AND članova u skupu od
m funkcija manji ili jednak m.
Na Sl. 1‐44 prikazana je struktura 4 8 4 PLA polja. Kao što se može videti, PLA sa slike ima četiri
ulaza A3, A2, A1 i A0, četiri izlaza F3, F2, F1 i F0, i 8 AND članova ili reči. Kod ovog PLA polja, svaki AND
član može da sadrži do četiri literala (promenljivih ili njihovih komplemenata), svaka izlazna funkcija
može imati do osam AND članova, a svaki izlaz može biti generisan u svojoj pravoj ili
komplementarnoj formi.
Fleksibilnost PLA strukture približna je fleksibilnosti ROM memorije uz dodatnu prednost u pogledu
veće efikasnosti prilikom realizacije proizvoljne logike. Shodno tome, PLA se mnogo češće nego ROM
33
Komponente digitalnih sistema
koristi za realizaciju upravljačkih jedinica, dok se ROM češće primenjuje za čuvanje tabela
koeficijenata, programa, test vektora i drugih proizvoljnih, fiksnih podataka.
Pr. 1‐9. Realizacija logičkih funkcija pomoću PLA
Na Sl. 1‐45 pokazano je kako se 4 x 8 x 4 PLA može iskoristiti za realizaciju funkcija ci+1 i si potpunog sabirača.
Treba uočiti da se ovo PLA polje ne može iskoristiti za realizaciju sabirača/oduzimača za jednu bit‐poziciju (Sl.
1‐43(a)) zato što ovo kolo zahteva ukupno 13 AND članova, osam za funkciju fi i pet za funkciju ci+1, što
prevazilazi granicu od osam AND članova raspoloživih u 4 x 8 x 4 PLA polju.
U cilju realizacije potpunog sabirača, ulazi xi, yi i ci su dodeljeni adresnim linijama A2, A1 i A0, a izlazi ci+1 i fi
izlazima PLA polja F1 i F0. Tabela istinitosti i odgovarajuće Karnoove mape prikazane su na Sl. 1‐45 (a) i (b), dok
je logička šema PLA polja, u kojoj su naznačene sve potrebne veze, data na Sl. 1‐45(c).
(a) (b) (c)
Sl. 1‐45 Realizacija potpunog sabirača pomoću PLA polja: (a) tabela istinitosti; (b) Karnoove mape; (c) šema
programiranja PLA polja.
34
Komponente digitalnih sistema
2 Sekvencijalne komponente
Kombinaciona kola, koja su razmatrana u prethodnom poglavlju, imaju osobinu da vrednost svakog
njihovog izlaza zavisi isključivo od vrednosti signala trenutno prisutnih na njihovim ulazima. Osim
kombinacionih, postoji još jedna široka klasa digitalnih kola, kod kojih vrednosti izlaza zavise ne samo
od trenutnih vrednosti ulaza, već i od ranijeg ponašanja kola. Ovakva kola sadrže memorijske
elemente koji zadržavaju, tj. memorišu vrednosti logičkih signala. Kaže se da ukupni sadržaj svih
memorijskih elemenata u jednom sekvencijalnom kolu predstavlja stanje tog kola. Kada se promene
vrednosti ulaza, kolo ili ostane u istom (tj. tekućem) stanju, ili promeni svoje stanje. Vremenom, kao
posledica promena ulaza, kolo prolazi kroz sekvencu stanja. Kolo koja se ponašaju na ovaj način zovu
se sekvencijalna kola.
Sekvencijalna kola mogu biti sinhrona ili asinhrona. Asinhrona sekvencijalna kola menjaju svoje
stanje uvek kada se desi promena ulaznih vrednosti, dok sinhrona sekvencijalna kola menjaju svoje
stanje i izlazne vrednosti samo u fiksnim vremenskim trenucima, koji su određeni rastućom ili
opadajućom ivicom taktnog signala. Na Sl. 2‐1 je prikazan vremenski dijagram tipičnog taktnog
signala. Taktni period je vremenski interval između dve uzastopne promene taktnog signala u istom
smeru, tj. između dve rastuće ili između dve opadajuće ivice taktnog signala. Recipročna vrednost
taktnog perioda je taktna frekvencija. Širina taktnog impulsa je vreme u toku koga je vrednost
taktnog signala jednaka 1. Faktor popune taktnog signala je količnik širine taktnog impulsa i taktnog
perioda.
Sl. 2‐1 Taktni signal.
1
Sekcija posvećena leč kolima i flip-flopovima uvrštena je iz razloga kompletnosti izlaganja. Pretpostavka je da
su studenti upoznati sa ovom materijom kroz kurseve koji tretiraju osnove digitalne elektronike.
Pojednostavljeno rečeno, ovu sekciju nije potrebno ˝učiti za ispit˝, ali je svakako neophodno znati osnovne
konfiguracije leč kola i flip-flopova, razliku izmeču lečeva i flip-flopova i tipove flip-flopova.
35
Komponente digitalnih sistema
2.1.1.1 SR leč
SR leč je najjednostavniji memorijski element koji se koristi za projektovanje digitalnih sistema. SR leč
čine dva unakrsno spregnuta NOR kola. Kao što se može videti na Sl. 2‐2(a), SR leč ima dva ulazna
signala: signal za setovanje, S, i signal za resetovanje, R i dva izlazna signala: Q i Q’. SR leč ima dva
stanja: kada je Q=1 (Q’=0), SR leč je u setovanom stanju; kada je Q=0 (Q’=1), leč je u resetovanom
stanju. Sve dok su oba ulazna signala, S i R, jednaka 0, SR leč ostaje u istom stanju. Na primer, ako je
Q=1, izlaz gornjeg NOR kola biće 0, što zajedno sa R=0 drži izlaz donjeg NOR kola na 1. Slično, ako je
Q=0, izlaz gornjeg NOR kola biće jednak 1, što zajedno sa R=0, drži 0 na izlazu donjeg NOR kola.
Međutim, ako ulaz S (ulaz R) postane jednak 1, SR leč prelazi u setovano stanje (resetovano stanje).
S
Q’
Q
R
(a) (b)
Sl. 2‐2. leč (realizacija pomoću NOR kola): (a) logička šema; (b) tabela istinitosti.
Ako oba ulazna signala, S i R, u isto vreme postanu jednaka 1, oba izlazna signala Q i Q’ postaće
jednaka 0. Ako se, zatim, jedan od ulaznih signala deaktivira ranije, SR leč će preći u stanje određeno
signalom koji je deaktiviran kasnije. Problem koji je karakterističan za SR leč nastaje u situaciji kada se
oba ulazna signala, S i R, deaktiviraju u isto vreme, s obzirom na to što se u tom slučaju ne može
predvideti izlaz leča. Ako se oba ulazna signala deaktiviraju tačno u isto vreme, izlazi oba NOR kola, u
isto vreme, postaće 1, što će, zbog povratnih veza usloviti da, nakon nekog kraćeg kašnjenja, oba
izlaza ponovo postanu 0; 0, vraćena ulaze NOR kola inicira promenu izlaza na 1, i tako dalje do u
beskonačnost. Dakle, pod ovim uslovima, SR leč počinje da osciluje. Ovakav tip oscilacija se zove
kritična trka (race condition) i javlja se pod uslovom da oba logička kola imaju identično kašnjenje.
Međutim ako kašnjenja NOR gejtova nisu ista, jedno od NOR kola biće brže i prvo će postavi 1 na
svom izlaz i to u vremenu dok je na izlazu drugog logičkog kola još uvek 0, koja će tu i ostati zbog 1
koja se upravo pojavila na povratnoj vezi. Međutim, bez obzira što pri ovim uslovima oscilacije na
javljaju, i dalje možemo smatrati da je novo stanje leča nakon istovremenog deaktiviranja oba ulazna
signala nedefinisano, s obzirom da ne možemo znati koji je od dva NOR gejta brži.
Da bi se sprečilo opisano nedeterminističko ponašanje, moramo obezbediti da signali S i R nikada ne
budu deaktivirani u isto vreme. Nažalost, ovaj zahtev je teško ostvariti zbog nepoznatog kašnjenja
logičkih mreža koja generišu vrednosti signala S i R. Zbog toga, kada koristimo SR lečeve, moramo se
držati strožeg ograničena: signali S i R nikada ne smeju biti aktivirani u isto vreme.
Na osnovu sprovedene analize SR leča u mogućnosti smo da formiramo tabelu istinitosti koja će
opisivati ponašanje SR leča (Sl. 2‐2 (b)). Za svaku kombinaciju ulazni vrednosti, S i R, i tekućeg stanja
Q, ova tabela definiše rezultujuće izlazne vrednosti, Q(next) i Q’(next).
36
Komponente digitalnih sistema
S
Q
Q’
R
(a) (b)
Sl. 2‐3. SR leč (realizacija pomoću NAND kola): (a) logička šema; (b) tabela istinitosti.
SR leč se, takođe, može realizovati pomoću NAND kola. U ovom slučaju, ulazni signali S i R su
normalno jednaki 1, a postavljanje S ili R na 0 setuje, odnosno, resetuje leč, što je upravo suprotno u
odnosu na realizaciju koja koristi NOR kola, gde postavljanje S ili R na 1 uzrokuje setovanje, odnosno,
resetovanje leča. Realizacija SR leča na bazi NAND kola prikazana je na Sl. 2‐3.
0 X X 0 0
0 X X 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 X 0
1 1 0 X 1
1 1 1 X ND
U radu sa SR lečom sa dozvolom neophodno je voditi računa o sledećem ograničenju: ulazni signali S i
R se ne smeju menjati u vremenskom intervalu u okolini opadajuće ivice signala C. Ovaj vremenski
interval počine u trenutku tsetup pre i traje do vremena thold nakon opadajuće ivice signala C. Ukoliko
ovo ograničene nije obezbeđeno može doći do nedetirminističkog ponašanja leča.
S obzirom da je u većini primena upravljački signal C povezan sa sistemskim taktnom, SR leč sa
dozvolom se često naziva taktovani SR leč.
2.1.1.3 D leč
Projektanti koji koriste SR lečeve moraju voditi računa da ulazi S i R nikada u isto vreme ne postanu
jednaki 1. Ovo ograničenje se može izbeći korišćenjem D leča, koji ima samo jedan ulaz (Sl. 2‐5(a)).
Kao što je prikazano na Sl. 2‐5(b), D leč sa dozvolom se konstruiše na bazi SR leča tako što se ulaz D
veže na ulaz S, a D’ na ulaz R SR leča. Povezivanjem D i D’ na ulaze S i R obezbeđeno je S i R nikada
37
Komponente digitalnih sistema
neće biti jednaki 1 u isto vreme. D leč, takođe, ima ulaz C, koji dozvoljava rad D leča, na sličan način
kao što je to bio slučaj kod SR leča sa dozvolom. Kada je C=1, izlaz Q se postavlja na vrednost koja je
prisutna na ulazu D. Suprotno, kada je C=0, izlaz Q zadržava poslednju vrednost koju je ulaz D imao
pre opadajuće ivice signala C. Drugim rečima, sve dok je C=1, Q prati promene ulaza D. Kaže se da je
leč transparentan. U trenutku kada C postane jednako 0, tekuće stanje leča se zamrzava. Kaže se da
je leč zaključan. Kao i kod SR leča sa dozvolom, postoji ograničenje da ulaz D ne sme da menja svoju
vrednost u vremenu tsetup pre i thold nakon opadajuće ivice signala C.
2.1.1.4 Flip-flopovi
Kao što je već objašnjeno, lečevi sa dozvolom predstavljaju jednostavne memorijske elemente koji su
aktivni, tj. čiji je rad dozvoljen, za sve vreme dok je vrednost upravljačkog signala C=1. Ovakva kola se
često nazivaju lečevi osetljivi na nivo, s obzirom da su aktivni za sve vreme dok je signal C na visokom
naponskom nivou. Aktivan leč je transparentan, u smislu da se bilo koja promena na ulazu (S, R ili D)
utiče na izlaz, naravno, sa izvesnim kašnjenjem. Lečevi osetljivi na nivo se ponašaju kao memorijski
elementi tek nakon opadajuće ivice upravljačkog signala, C, kada zadržavaju stanje postavljeno
poslednjom promenom ulazne vrednosti koja se desila pre opadajuće ivice signala C.
Projektanti moraju biti veoma obazrivi kada koriste lečeve osetljive na nivo, pošto dugi vremenski
intervali tokom kojih je leč transparentan ponekada mogu omogućiti neželjenim informacijama da
˝uđu˝ u leč. Na primer, razmotrimo 3‐bitni pomerački registar kojeg čine tri D leča sa dozvolom, kao
što je prikazano na Sl. 2‐6(a). U prikazanoj strukturi, ulazni signal X je povezan na ulaz D prvog leča.
Izlaz, Q1, prvog leča je povezan na ulaz D drugog leča, a izlaz, Q2, dugog leča na ulaz D trećeg leča.
Upravljački ulaz C je povezan na sistemski takt Clk koji sinhronizuje rad svih lečeva. Idealno, ovaj
pomerački registar bi trebalo da radi na sledeći način: u toku svakog taktnog impulsa, vrednost X se
upisuje u prvi leč, vrednost prvog leča se premešta u drugi, a vrednost drugog leča u treći.
Međutim, kao što se može videti na vremenskom dijagramu sa Sl. 2‐6(b), pomeranje informacije, koje
se zaista dešava, ne odgovara očekivanom. Na primer, pretpostavimo da su svi lečevi u resetovanom
stanju (Q1=Q2=Q3=0) i da u toku prvog taktnog impulsa ulazni signal X ima vrednost 1, a da je nakon
toga njegova vrednost 0. Drugim rečima, sadržaj pomeračkog registara bi trebalo da počev od 000, a
nakon prvog, drugog i trećeg taktnog impulsa redom dobija vrednosti 100, 010 i 001. Međutim, u
realnosti dešava se nešto drugo: počev od sadržaja 000, nakon prvog taktnog im
pulsa, sadržaj pomeračkog registara se menja na 111, da bi nakon drugog ponovo postao 000, a ova
vrednost se zadržava i posle trećeg taktnog impulsa. Drugim rečima, pomerački registar se ponaša
kao jedan D leč koji u svakom taktnom ciklusu memoriše vrednost ulaznog signala X.
38
Komponente digitalnih sistema
(a)
(b)
Sl. 2‐6. Neispravno pomeranje u pomeračkom registru sa D lečevima; (a) logička šema; (b) vremenski
dijagram.
Razlog za opisano ponašanje pomeračkog registra sačinjenog od D lečeva leži u činjenici da su lečevi
osetljivi na nivo transparentni za sve vreme trajanja taktnog impulsa. Ukoliko je trajanje taktnog
impulsa dovoljno dugo, ulazni podatak X ima dovoljno vremena da prođe kroz sve lečeve u nizi i javi
se na izlazu pomeračkog registra. Onog trenutka kada prestane dejstvo taktnog impulsa, svi lečevi
memorišu istu vrednost, tj. X.
Jedna ideja za rešenje opisanog problema bila bi da se skrati trajanje taktnog impulsa do iznosa
propagacionog kašnjenja kroz jedan leč. Međutim, kašnjenja prilikom setovanja i resetovanja leča
nisu ista, a to znači da takt koji pri upisu 1 ispravno pobuđuje leč, ne bi imao dovoljnu širinu pri upisu
0, ili obrnuto. Takođe, zbog varijacija u procesu fabrikacije, proizvođači lečeva ne mogu garantovati
tačne vrednosti kašnjenja. U tom smislu, deklarisana kašnjenja predstavljaju očekivane vrednosti za
realna kašnjenja koja podležu normalnoj raspodeli.
Imajući u vidu navedena ograničenja, postoje dva moguća rešenja našeg problema: master‐slave flip‐
flop ili flip‐flop sa ivičnim okidanjem.
Master‐slave flip‐flop se realizuje pomoću dva leča, od kojih se jedan zove master, a drugi slave (tj.
slejv). Kao što je prikazano na Sl. 2‐7(a), ulaz u master leča je ujedno i ulaz flip‐flopa, dok je ulaz u
slave leč izlaz iz master leča. Izlaz slave leča je ujedno i izlaz flip‐flopa. Unutar flip‐flopa, oba leča se
pobuđuju istim taktnim signalom, Clk, s tom razlikom što je master leč dozvoljen kada je taktni signal
jednak 0, a slave leč kada je taktni signal jednak 1.
Prednost korišćenja ovakvih flip‐flopova je očigledna: s obzirom da master i slave lečevi nikada u isto
vreme nisu dozvoljeni, master‐slave flip‐flop nikada nije transparentan. Kada je Clk=0, dozvoljen je
samo master leč, a njegov sadržaj se prenosi u slave leč tek kada taktni signal postane 1. Uočimo da
prelazak taktnog signala Clk na vrednost 1, “zaključava” master leč, tako da se njegov sadržaj više ne
može menjati.
39
Komponente digitalnih sistema
(a)
(b)
Sl. 2‐7. Master‐slave flip‐flop; (a) logička šema; (b) vremenski dijagram.
Ponašanje master‐slave flip‐flopa opisano je vremenskim dijagramima sa Sl. 2‐7(b). Vremenski
dijagrami su nacrtani pod pretpostavkom da je propagaciono kašnjenje kroz D leč pri setovanju 4.0ns,
odnosno 3.0ns, pri resetovanju. Ulaz D postaje 1 u trenutku t0. Master leč prihvata ovu promenu, s
obzirom da je njegov C ulaz jednak 1, i postavlja Qm=1 u t0+4.0ns. Međutim, sve dok je Clk=0, ova
promena ne prolazi kroz slave leč. U t1 Clk postaje 1, slave leč postaje transparentan i u t1+4.0ns na
izlazu slave leča, Qs, postavlja se 1. Kada ulaz D, u t3, ponovo postane 0, master leč prihvata novu
vrednost, ali se ona ne prenosi kroz slave leč sve do t4+3.0ns. U t5 ulaz D se menja na 1, ali master leč
ne prihvata ovu promenu sve do t6 kada Clk postaje 0. Znači, Qm dobija vrednost 1 u t6+5.0ns. Uočimo
da je kašnjenje povećano za 1.0ns zbog invertora koji pobuđuje ulaz C master leča. Nakon što u t7
slave leč postane dozvoljen, na izlaz Qs se postavlja 1 u t7+4.0ns. Sličnu promenu ulaza D na 0 u t8
master leč ne registruje sve do t9+4.0ns i ona se ne prenosi kroz slave leč sve dok taktni signal ponovo
ne postane 1.
Kao što je pokazano na Sl. 2‐7, vrednost ulaza D se unosi u master leč pre rastuće ivice taktnog
signala, a prenosi u slave leč neposredno nakon iste rastuće ivice. Za sve praktične primene, možemo
smatrati da se vrednost ulaza D upisuje u flip‐flop u trenutku delovanja rastuće ivice taktnog signala.
Ako ponovo konstruišemo 3‐bitni pomerački registar, ali sada umesto D lečeva upotrebimo master‐
slave flip‐flopove, dobićemo logičku šemu prikazanu na Sl. 2‐8(a) kojoj odgovaraju vremenski
dijagrami sa Sl. 2‐8(b). Uočimo da ovi novi vremenski dijagrami sadrže isti taktni signal Clk i isti ulazni
signal X kao i vremenski dijagrami sa Sl. 2‐7(b), ali su prošireni tako da za svaki flip‐flop uključuju dva
talasna oblika: izlaze iz master i slave lečeva, Qim i Qis, 1≤i≤3.
Kao što vremenski dijagram pokazuje, nakon što se u t0 ulazni signal X promeni na 1, samo će master
leč prvog flip‐flopa biti setovan (Q1m=1), u t0+4.0ns. Zatim, nakon što se u t1 taktni signal promeni na
1, slave leč se setuje u t1+4.0ns. Samo nešto malo kasnije, nakon što se u t2 taktni signal vrati na 0, u
t2=5.0ns setuje se master leč drugog flip‐flopa (Q2m=1). Uočimo da kada se u t3 ulazni signal X vrati na
0, master leč prvog flip‐flopa se setuje (Q1m=0). Nakon sledeće rastuće ivice takta, u t3+3.0ns Q1s se
40
Komponente digitalnih sistema
vraća na 0, dok se u t4+4.0ns Q2m postavlja na 1. Slično, treća ivica taktnog signala resetuje Q2m i
setuje Q3m.
(a)
Clk
3.0
Q1m 4.0
3.0
Q1s 4.0
3.0
Q2s 4.0
Q3s 4.0
t0 t1 t2 t3 t4 t5 t6 t7
(b)
Sl. 2‐8. Pomerački registar realizovan master‐slave flip‐flopovima; (a) logička šema; (b) vremenski dijagram.
Kao što se može videti, pomerački registar konstruisan pomoću master‐slave flip‐flopova se ponaša
baš kao što treba: sa svakom rastućom ivicom taktnog signala pomera upisani sadržaj za jednu
poziciju udesno. Znači, svakom taktnom ciklusu odgovara jedno stanje pomeračkog registra, koja (za
sekvencu vrednosti ulaznog signala sa Sl. 2‐8(b)) se počev od stanja 000, menjaju u redosledu 100,
010, 001, da bi se, posle toga, registra vratio u stanje 000.
Flip‐flop sa ivičnim okidanjem realizuje se pomoću tri SR leča: set leč, reset leč i izlazni leč, kao što se
može videti na Sl. 2‐9(a). U trenutku delovanja rastuće ivice taktnog signala Clk, promena signala Clk
se pamti u set leču, ako je D=1, odnosno u reset leč, ako je D=0. Drugim rečima, signali A i B registruju
promene ulaza D sve dok je Clk=0. Način rada flip‐flopa sa ivičnim okidanjem detaljno je objašnjen
vremenskim dijagramom sa Sl. 2‐9(b). D flip‐flop sa ivičnim okidanjem je najčešće korišćeni oblik flip‐
flopa.
41
Komponente digitalnih sistema
Set leč
A
Izlazni leč
S
Q
Clk
R Q’
D B
Reset leč
(a) (b)
Sl. 2‐9. Flip‐flop sa ivičnim okidanjem: (a) logička šema; (b) vremenski dijagram.
Pretpostavimo da propagaciono kašnjenje svih NAND kola ugrađenih u flip‐flop sa Sl. 2‐9(a) iznosi
1.4ns. Dok je Clk=0, oba signala S i R su jednaka 1, što drži izlazni leč u tekućem stanju. Kada se u t0 D
promeni, B ide na 0 u t0+1,4ns a A na 1 u t0+2.8ns. Izlaz Q ostaje nepromenjen sve dok se u t1 Clk ne
promeni na 1, što u t1+1.4ns postavlja S=0, a u t1+2.8ns Q=1. Kada se u t2 Clk vrati na 0, S se u
t2+1.4ns vraća na 1, a Q zadržava tekuće stanje, tj. 1. nakon što u t3 D postane 0, B postaje 1 u
t3+1.4ns, a A postaje 0 u t3+2.8ns.
Nakon rastuće ivice signala Clk u t4, R se menja na 0 u t4+1.4ns, a Q na 0 u t4+4.2ns. Promena ulaza D
u t5 se ne registruje sve do opadajuće ivice signala Clk u t6, a onda se, u t6+1.4ns, R vraća na 1, u
t6+2.8ns B postaje 1 i u t6+4.3ns A postaje 1. Nakon rastuće ivice signala Clk, i postavljanja S na 0 u
t7+1.4ns, u t7+2.8ns Q se postavlja na 1.
Uočimo, ponovo, da se naknadne promene ulaza D u t8 ne prenose na izlaz Q, ali se zato unose u
reset leč kada u t8+1.4ns B postane 1 i u set leč kada u t8+2.8ns A postane 0. Ako se nakon t8 D ne
promeni, vrednost izlaza Q postaće 0 sa sledećom rastućom ivicom signala Clk. Međutim, ako se
posle t8, a pre rastuće ivice signala Clk, D promeni, vrednosti signala A i B će registrovati ovu promenu
i proslediće je na izlaz Q u trenutku delovanja sledeće rastuće ivice signala Clk.
42
Komponente digitalnih sistema
Vrednost na izlazu Q (pravi izlaz flip‐flopa) ukazuje na tekuće stanje flip‐flopa. Komplementarna
vrednost izlaza Q prisutna je izlazu Q’. Takođe, svi flip‐flopovi poseduju ulaz za taktni signal. Trougao
na ulazu na takt ukazuje da se flip‐flop taktuje rastućom ivicom taktnog signala. Dodatni kružić na
ulazu za takt ukazivao bi na taktovanje opadajućom ivicom.
Tip flip-flopa Simbol Tabela prelaza Prenosna funkcija
S Q
Q(next) = S + R’Q
SR
sa ograničenjem SR=0
R Q’
J Q
JK Q(next) = JQ + K’Q
K Q’
D Q
D Q(next) = D
Q’
T Q
T Q(next) = TQ’ + T’Q
Q’
Sl. 2‐10. Tipovi flip‐flopova.
Svaki flip‐flop ima jedan ili dva ulaza podataka. RS flip‐flop ima dva ulaza, S (Set) i R (Reset) koji, kada
su aktivni, setuju, odnosno resetuju flip‐flop. Drugim rečima, ako u momentu rastuće ivice takta važi
S=1 i R=0, izlaz flip‐flopa Q se postavlja na 1; za S=0 i R=1 izlaz se postavlja na 0. Slično RS flip‐flopu, JK
flip‐flop, takođe, ima dva ulaza, J i K, koji, kada su aktivni, setuju ili resetuju flip‐flop. Dodatno, kada
su oba ulaza J i K aktivna u isto vreme, JK flip‐flop menja (tj. komplementira) svoje stanje. D flip‐flop
ima jedan ulaz, D (Data), koji setuje flip‐flop ako je 1, odnosno resetuje flip‐flop ako je 0. T flip‐flop
ima jedan ulaz T (Toggle), koji, kada je aktivan, menja (tj. komplementira) stanje flip‐flopa.
U drugoj koloni tabele sa Sl. 2‐10 date su tabele prelaza, koje predstavljaju skraćenu formu tabele
istinitosti. U tabeli prelaza, za svaku kombinaciju ulaznih vrednosti i svako tekuće stanje flip‐flopa, tj.
stanje pre rastuće ivice taktnog signala, navedeno je sledeće stanje flip‐flopa, tj. stanje u koje flip‐flop
prelazi nakon rastuće ivice taktnog signala. Tekuće stanje flip‐flopa označeno je sa Q, a sledeće sa
Q(next). Tabela prelaza se koristi prilikom analize sekvencijalnog kola, kada su vrednosni ulaza u flip‐
flop poznate, a mi želimo da odredimo stanje flip‐flopa nakon rastuće ivice taktnog signala. Na bazi
tabele prelaza mogu se izvesti prenosne funkcije flip‐flopova, koje su prikazane u trećoj koloni tabele
sa Sl. 2‐10.
Pored grafičkih simbola, tabela i funkcija, flip‐flopovi se mogu jednoznačno opisati i dijagramom
stanja, kod koga je svako stanje prikazano krugom, a prelaz između stanja linijom (tj. granom) koja
ima strelicu na strani odredišnog stanja. Ovakav način opisa fili‐flopova prikazan je u tabeli sa Sl. 2‐11.
Uočimo da su svakoj grani u grafu stanja pridružene vrednosti ulaznih signala koji uslovljavaju prelaz
iz jednog u drugo stanje. Takođe, treba uočiti da isto stanje može biti i izvor i odredište prelaza. Pošto
43
Komponente digitalnih sistema
se prelazi dešavaju u trenutku delovanja ivice taktnog signala, svako stanje se može tretirati kao
vremenski interval između dve rastuće ivice taktnog signala.
Tip flip-flopa Dijagram stanja
SR
JK
Sl. 2‐11. Dijagrami stanja različitih tipova flip‐flopova.
Iz tabele sa Sl. 2‐11 vidimo da dijagrami stanja svih flip‐flopova imaju isti broj stanja i isti broj prelaza.
Flip‐flop je u stanju set kada je Q=1, odnosno, u stanju reset kada je Q=0. Uz to, svaki flip‐flop može
da pređe iz jednog u drugo stanje ili da ostane u istom stanju. Jedina razlika između četiri tipa flip‐
flopova je u vrednostima ulaznih signala koji iniciraju prelaze. Dijagrami stanja se često koriste za
vizuelni prikaz rada flip‐flopova, kao i drugih, mnogo složenijih sekvencijalnih kola.
(a) (b) (c) (d)
Sl. 2‐12. flip‐flopova sa asinhronim ulazima: (a) SR flip‐flop; (b) JK flip‐flop; (c) D flip‐flop; (d) T flip‐flop.
Svaki flip‐flop je obično dostupan u dve varijante: sa ili bez ulaza za direktno (tj. asinhrono)
postavljanje, koji se koriste za setovanje (ulaz SET) i resetovanje (ulaz CLR) flip‐flopa nezavisno od
takta i ostalih ulaza. Ovi ulazi se koriste za postavljanje flip‐flopa u poznato početno (tj. inicijalno)
stanje. Na primer, stanje u koje će se flip‐flop spontano postaviti nakon što je uključeno napajanje ne
može se predvideti. Zato je neophodno da se pre početka normalnog, sinhronog rada, flip‐flop
postavi u odgovarajuće početno stanje posredstvom asinhronih ulaza. Ulazi SET i CLR se zovu
asinhroni zato što ne zavise od taktnog signala i zbog toga imaju prioritet nad svim ostalim sinhronim
ulazima. Drugim rečima, dok je asinhroni ulaz aktivan, vrednosti ostalih ulaza flip‐flopa se ignorišu.
Dejstvo asinhronog ulaza počinje onog trenutka kada se na ulaz dovede aktivan naponski nivo (0 ili 1),
44
Komponente digitalnih sistema
i traje sve dok se ulaz ne deaktivira. Ako flip‐flop poseduje oba asinhrona ulaza, SET i CLR, njihovo
istovremeno dejstvo nije dozvoljeno. Na Sl. 2‐12 su prikazani grafički simboli flip‐flopova sa ulazima
za direktno postavljanje sa aktivnim niskom naponskim nivoom, što je naznačeno kružićima na
odgovarajućim ulazima. Kod asinhronih ulaza sa aktivnim visokim naponskim nivoom, kružići bi bili
izostavljeni.
(a) (b)
Sl. 2‐13. 4‐bitni registar: (a) grafički simbol; (b) unutrašnja struktura
Funkcionalnost osnovne varijante registra, prikazane na Sl. 2‐13, može se proširiti dodavanjem
različitih upravljačkih signala. Na primer, ako registar treba biti resetovan ili setovan nezavisno od
taktnog signala, bilo pri uključenju napajanja, bilo pri pojavi nekih specifičnih događaja, mogu se
dodati signali za asinhrono resetovanje i setovanje. Takvo jedno proširenje se postiže zamenom
jednostavnih flip‐flopova sa Sl. 2‐13(b), flip‐flopovima sa ulazima za direktno postavljanje, kao što je
prikazano na Sl. 2‐14(b).
Kao što se vidi na Sl. 2‐14, kratkotrajnim aktiviranjem signala Rst sadržaj registra se briše ili resetuje,
tj. postavlja na “sve nule”. Slično, registar se setuje, tj. njegov sadržaj postaviti na “sve jedinice”,
kratkotrajnim aktiviranjem signala Set. (S obzirom da je aktivni nivo signala Rst i Set nizak, aktiviranje
jednog od ova dva signala znači postavljanje 0 na odgovarajući ulaz). Ulazi Rst i Set su nezavisni od
taktnog signala i imaju prioritet nad njim. To znači da ako je u trenutku pojave rastuće ivice taktnog
signala, Set ili Rst jednak 0, ulaz I se ignoriše, a registar se setuje, odnosno resetuje.
Kod obe varijante registra, prikazane na Sl. 2‐13 i Sl. 2‐14, novi podatak se automatski upisuje u
registar sa svakom rastućom ivicom takta. Međutim, kod mnogih digitalnih sistema, podatak koji je
upisan u registar ostaje u registru nekoliko taktnih ciklusa pre nego što se upiše novi podatak. Iz tog
razloga, mogućnost kontrole upisa predstavlja korisnu funkciju registra. Kontrola upisa se postiže
korišćenjem upravljačkog signala Enable (En) koji kada je 1 dozvoljava upis novog podatka u registar.
Ovakav tip registra se zove registar sa dozvolom.
45
Komponente digitalnih sistema
(a) (b)
Sl. 2‐14. 4‐bitni registar sa asinhronim resetovanjem i setovanjem: (a) grafički simbol; (b) unutrašnja
struktura.
(a)
(b) (c)
Sl. 2‐15 Registar sa dozvolom: (a) grafički simbol; (b) tabela operacija; (c) unutrašnja struktura.
Na Sl. 2‐15 su prikazani grafički simbol, tabela operacija i unutrašnja struktura registar sa dozvolom.
Registar sadrži multipleksere 2‐u‐1 koji omogućavaju izbor između ulaznog podatka i podatka koje je
već u registru. Signal En upravlja multiplekserima na takav način da kada je En=1, u registar se upisuje
novi, tj. ulazni podatak. U suprotnom, ako je En=0, podatak koji je prethodno upisan u registar se
vraća na ulaze flip‐flopova i sa sledećom rastućom ivicom takta ponovo upisuje u registar ‐ dakle,
sadržaj registra ostaje neizmenjen.
46
Komponente digitalnih sistema
(a)
(b) (c)
Sl. 2‐16 Četvorobitni pomerački registar sa serijskim ulazom i paralelnim izlazom: (a) grafički simbol; (b)
tabela operacija; (c) unutrašnja struktura.
Korišćenjem multipleksera 4‐u‐1, umesto multipleksera 2‐u‐1, moguće je kombinovati funkcije
pomeranja i paralelnog upisa. Na primer, pomerački registar sa Sl. 2‐17 ima mogućnost kako
pomeranja memorisanog sadržaja tako i upisa novog podatka. Takođe, ovaj registar može da obavlja
pomeranje u oba smera. Pri pomeranju ulevo 1‐bitni podatak sa ulaza IR (serijski ulaz sa desne strane)
se upisuje na krajnju desnu poziciju, dok se pri pomeranju udesno, na krajnju levu poziciju upisuje 1‐
bitni podatak sa ulaza IL (serijski ulaz sa leve strane). Na Sl. 2‐17(a) i (b) su prikazani grafički simbol i
tabela operacija, dok se na Sl. 2‐17(c) može videti unutrašnja struktura ovog multi‐funkcionalnog
registra.
I3 I2 I1 I0
IR
IL
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
mux mux mux mux
S1
S0
(a)
D3 Q3 D2 Q2 D1 Q1 D0 Q0
Clk
Q3 Q2 Q1 Q0
(b) (c)
Sl. 2‐17. 4‐bitni pomerački registar sa paralelnim upisom: (a) grafički simbol; (b) tabela operacija; (c)
unutrašnja struktura.
Registar sa Sl. 2‐17 čine četiri razreda, gde svaki razred odgovara jednoj bit‐poziciji i sastoji se od
jednog flip‐flopa i multipleksera 4‐u‐1. Postoje tri tipa razreda, koji se neznatno razlikuju u strukturi:
krajnji levi, krajnji desni i srednji. Srednji razredi se obično projektuju prvi, pošto je njihova funkcija
najočiglednija. Na primer, jednačine ulaza flip‐flopova za svaki od tri tipa razreda, dobijene na osnovu
tabele operacija sa Sl. 2‐17(c) imaju sledeći oblik:
̅ ̅ ̅ ̅
̅ ̅ ̅ ̅ ,1 2
̅ ̅ ̅ ̅
47
Komponente digitalnih sistema
Pomerački registar sa paralelnim upisom može se koristiti za konverziju informacija iz serijskog u
paralelni oblik i obrnuto, sa opcijom da prilikom paralelno‐serijske konverzije prvo generiše bit
najmanje ili bit najveće težine. Registri ovog tipa, često se koriste za konverziju računarskih podataka
u serijski oblik pogodan za komunikaciju i rekonstrukciju serijski prenetih podataka u cilju obrade
unutar računara.
Sve dok je signal E jednak 1, brojač će brojati naviše po modulu 16, dodajući 1 na svoj tekući sadržaj
sa svakom rastućom ivicom taktnog signala.
(a) (b) (c)
(d)
Sl. 2‐18. 4‐bitni binarni brojač: (a) grafički simbol; (b) tabela operacija; (c) tabela istinitosti; (d) unutrašnja
struktura.
48
Komponente digitalnih sistema
Na primer, na Sl. 2‐19 je prikazan obostrani brojač koji u najvećem delu nalikuje brojaču naviše sa Sl.
2‐18 s tom razlikom što poseduje dodatni upravljački ulaz, D. Kao što je ukazano tabelom operacija sa
Sl. 2‐19(b), svrha ovog dodatnog ulaza je postavljanje brojača u režim brojanja naviše, kada je
njegova vrednost 0, odnosno u režim brojanja naniže, kada je njegova vrednost 1. Na osnovu tabela
istinitosti polu‐sabiračima/oduzimačima sa Sl. 2‐19(c) možemo izvesti sledeće jednačine za Di i Ci+1:
⨁
Kao što vidimo na Sl. 2‐19(d), svaki polu‐sabirač/oduzimač se sastoji od jednog XOR kola povezanog
na ulaz flip‐flopa, kao i dva AND i jednog OR kola koja se koriste za propagaciju izlaznog prenosa.
Važno je uočiti da obostrani brojač sa Sl. 2‐19 uvek počinje brojanje od 0. Međutim, u mnogim
primenama korisno je imati mogućnost postavljanja brojača na vrednost različitu od nule, a zatim
nastaviti sa brojanjem, naviše ili naniže. Ovakav tip brojača se zove brojač sa paralelnim upisom, a
konstruiše se kombinovanjem inkrementera /dekrementera i registra sa dozvolom. Kao što je
prikazano na Sl. 2‐20, brojač sa paralelnim upisom ima tri upravljačka signala: E, D i Load. Signal E
omogućava brojanje u smeru koji je određen signalom D. Signal Load, uvek kada je 1, zabranjuje
brojanje i upisuje u registar podatak sa ulaza I. Ako važi Load=0, brojač se ponaša na identičan način
kao obostrani brojač sa Sl. 2‐19. Tabela operacija i unutrašnja struktura obostranog brojača sa
paralelnim upisom prikazani su na Sl. 2‐20(b) i (c).
(a) (b) (c)
D
C3 C2 C1 C0
D3 Q3 D2 Q2 D1 Q1 D0 Q0
Rst
Clk
Izlazni
Q3 Q2 Q1 Q0
prenos
(d)
Sl. 2‐19. 4‐bitni obostrani brojač: (a) grafički simbol; (b) tabela operacija; (c) tabela istinitosti polu‐
sabirača/oduzimača; (d) unutrašnja struktura.
49
Komponente digitalnih sistema
(a)
(b) (c)
Sl. 2‐20. 4‐bitni obostrani brojač sa paralelnim upisom: (a) grafički simbol; (b) tabela operacija; (c) unutrašnja
struktura.
1 mux 0
D D I3 I2 I1 I0
E E Obostrani brojač
clk
Load Q3 Q2 Q1 Q0
‘9’
‘0’
Q3 Q2 Q1 Q0
(a) (b)
Sl. 2‐21. BCD brojači: (a) BCD brojač naviše; (b) obostrani BCD brojač.
50
Komponente digitalnih sistema
Na sličan način projektuju se brojači koji počinju brojanje iz bilo kog stanja i broje u gotovo bilo kom
redosledu. Međutim, uočimo da svako pojedinačno “iskakanje” iz prirodne sekvence brojanja zahteva
ugradnju dodatnog logičkog kola za detekciju i dodatni multiplekser za izbor vrednosti koja se upisuje
u brojač.
(a) (b)
I3 I2 I1 I0
Dekoder za
čitanje
0
2-u-4
0
1
WA0 RA0
1
2
WE RE
RFC RFC RFC RFC
2
3
Dekoder
za upis 3
2-u-4
O3 O2 O1 O0
(c)
Sl. 2‐22 Registarski fajl sa jednim portom za upis i jednim portom za čitanje: (a) ćelija registarskog fajla; (b)
grafički simbol; (c) unutrašnja struktura.
51
Komponente digitalnih sistema
Registarski fajl čine: dvodimenzonalno polje registarskih ćelija (register‐file cells – RFC), dekoderi za
čitanje i upis i izlazna baferska logika. Kao što je prikazano na Sl. 2‐22(a), tipičnu registarska ćeliju
sadrži jedan D flip‐flop i dva logička kola. Osim taktnog signala, ćelija ima tri ulaza i jedan izlaz:
Write_select, Read_select, Input i Output. Pri Write_select=1, vrednost signala Input se upisuje u D
flip‐flop pod dejstvom rastuće ivice taktnog signala. Kada je Read_select=1, sadržaj D flip‐flopa se
prenosi na izlaz Output kroz trostatički bafer. Primetimo da je u istom taktnom ciklusu moguće čitati
trenutni sadržaj registarske ćelije (Read_select = 1) i pripremati upis nove vrednosti (Write_select =
1).
Na Sl. 2‐22(b) je prikazan blok dijagram registarskog fajla kapaciteta 2nxm, dok je na Sl. 2‐22(c)
prikazana unutrašnja organizacija registarskog fajla kapaciteta 4x4. (Iz razloga jednostavnijeg prikaza,
na Sl. 2‐22(c) je izostavljen taktni signala.) Registarski fajl kapaciteta 2nxm ima m ulaza Im‐1, …, I0, m
izlaza Om‐1, …, O0 i 2n vrsta flip‐flopova, kao što je prikazano na Sl. 2‐22(c). Dekoder za upis služi za
izbor vrste u koju će, u trenutku delovanja rastuće ivice taktnog signala, biti smeštena ulazna
vrednost. Ulaz dekodera za upis se sastoji od n adresnih linija, WAn‐1, …, WA0 i signala za dozvolu
upisa, WE. Ako je WE=0, ulazna vrednost se ne upisuje u registarski fajl.
Slično dekoderu za upis, dekoder za čitanja bira vrstu čiji sadržaj se prenosi na izlaz registarskog fajla.
Dekoder za čitanje ima n adresnih linija, RAn‐1, …, RA0 i signal dozvole čitanja, RE. Pri RE=1, sadržaj
izabrane vrste se pojavljuje na izlazu registarskog fajla nakon manjeg kašnjenja kroz izlazne bafere. S
druge strane, ako je RE=0, izlazni signali registarskog fajla su u stanju visoke impedanse.
Glavno ograničenje registarskog fajla sastoj se u činjenici da on omogućava ograničen pristup
registrima iz fajla – tj. uvek se može upisivati samo u jedan registar (vrstu) i čitati iz samo jednog
registara (vrste). Ovakva situacija može se donekle popraviti konstrukcijom registarskog fajla sa više
od jednog porta za čitanje ili upis. Nažalost, cena registarskog fajla raste srazmerno broju portova. Iz
tog razloga, većina popularnih tipova registarskih fajlova ima jedan ili dva porta za upis i dva porta za
čitanje. Glavno opravdanje za dva porta za čitanje jeste da su većina aritmetičkih i logičkih operacija
binarne i da stoga, u isto vreme, zahtevaju dva operanda. Sa dva porta za čitanje i jednim za upis,
moguće je, u toku istog taktnog ciklusa, iz registarskog fajla pribaviti dva operanda i smestiti rezultat
nazad u registarski fajl. Sa druge strane, opravdanje za korišćenje dva porta za upis leži u brzini
konzumiranja operanada: U svakom taktnom ciklusu koristimo dva operanda da bi smo dobili jedan
rezultat. Shodno tome, ako nam je cilj da obavljamo jednu operaciju po taktnom ciklusu, mora
postojati mogućnost da se u svakom taktnom ciklusu, u registarski fajl unese jedan novi podatak osim
rezultata koji se vraća u registarski fajl.
Na Sl. 2‐23 prikazan je primer registarskog fajla sa jednim portom za upis i dva porta za čitanje. Kao
što se vidi na Sl. 2‐23(a), registarska ćelija je modifikovana u odnosu na Sl. 2‐22(a) kako bi se
obezbedila podrška za dva porta za čitanje. Grafički simbol registarskog fajla prikazan je na Sl.
2‐23(b). Na Sl. 2‐23(c) prikazana je unutrašnja struktura registarskog fajla kapaciteta 4x4. Uočimo da
je dijagram sa Sl. 2‐23(c) sličan strukturi registarskog fajla sa Sl. 2‐22(c), osim što nova verzija ima
jedan dodatni dekoder za čitanje, koji, sa svoje strane, unosi po jednu dodatnu vezu ka svakoj vrsti i
koloni. Uz pomoć ovih veza omogućen je prenos sadržaja do drugog porta za čitanje.
Registarski fajlovi spadaju u brze memorijske komponente, zahvaljujući činjenici da su registarske
ćelije realizovane na bazi flip‐flopova ili leč kola. Međutim, budući da svaki flip‐flop sadrži barem 6
52
Komponente digitalnih sistema
tranzistora, registarski fajl je skupa memorija. Iz tog razloga, registarski fajlovi se tipično koriste kao
privremena memorija malog kapaciteta u primenama koje zahtevaju veliku brzinu obrade podataka.
Write_select
D Q OutA
Input
OutB
Clk
RFC
Read_ Read_
select select
(port A) (port B)
(a) (b)
(c)
Sl. 2‐23. Registarski fajl sa jednim upisnim portom i dva porta čitanje: (a) ćelija registarskog fajla; (b) grafički
simbol; (c) unutrašnja struktura.
2.2.6 RAM
U odeljku 2.2.5 opisan je registarski fajl, koji predstavlja brzu memoriju malog kapaciteta pogodnu za
privremeno čuvanje vrednosti promenljivih u toku nekog složenijeg izračunavanja. S druge strane,
RAM (Random‐access memory, ili memorija sa proizvoljnim pristupom) predstavlja sporiju memoriju
daleko većeg kapaciteta pogodnu za dugotrajno smeštanje programa i podataka koji se koriste tokom
izračunavanja. Slično registarskom fajlu, RAM je organizovan u vidu polja od 2n vrsta sa m bita u
53
Komponente digitalnih sistema
svakoj vrsti. U opštem slučaju, n se kreće između 16 i 32, dok je m, obično 1, 4, 8, 16 ili 32. Tipična
memorija nalikuje onoj sa Sl. 2‐24(a). S obzirom da memorija ima 2n vrsta, za jednoznačnu
identifikaciju svake vrste potrebno je n adresnih linija. Pored adresnih linija, memorija poseduje
ulazni signal Chip_select (CS) koji se koristi prilikom konstrukcije većih memorija na bazi memorijskih
čipova manjeg kapaciteta. Uvek kada je CS=1, memorija normalno funkcioniše. Međutim, kada je
CS=0, pristup memoriji radi čitanja ili upisa je onemogućen. Takođe, memorijski čip ima još jednu
upravljačku liniju, Read/write_select (RWS), koja bira jednu od dve memorijske operacije: upis ili
čitanje. Kada je RWS=0, memorija čita svoj sadržaj sa lokacije određene adresinim linijama koji
postaje dostupan na izlaznom portu. S druge strane, kada je RWS=1, memorija upisuje sadržaj
prisutan na ulaznom portu u lokaciju određenu adresnim linijama.
RAM, takođe, ima m‐bitni ulazni i m‐bitni izlazni port. Za male vrednosti m (npr. 1 ili 4), memorija
može imati razdvojene ulazne i izlazne portove. Međutim, da bi se smanjio broj pinova na
memorijskom čipu, ulazni i izlazni port su obično objedinjeni u jedinstven ulazno/izlazni port. U
opštem slučaju, broj pinova na čipu određuje površnu koju čip zauzima na štampanoj ploči. Grafički
simboli oba tipa pakovanja memorije su prikazana na Sl. 2‐24(b).
Memorijska adresa
Sadržaj memorije
Binarno Decimalno
RAM memoriju čine: polje memorijskih ćelija, adresni dekoder i ulazno/izlazni (U/I) baferi. Kao što je
prikazano na Sl. 2‐25(a), memorijska ćelija (memory cell – MC) može se simbolički predstaviti kao
struktura koju čine: taktovani D leč, jedno AND kolo i izlazni trostatički bafer. Kada je signal
Row_select jednak 1, bit informacije zapamćen u leču se prenosi na izlaz Output. Ako je pri tom i
signal Write_enable jednak 1, vrednost sa ulaza Input se pamti u leču. Uočimo da signal Write_enable
služi kao signal takta za leč. Iako je memorijska ćelija predstavljena uz pomoć leča i dva gejta, treba
razumeti da se ona realizuje sa daleko manjim brojem tranzistora u odnosu na registarsku ćeliju.
Shodno načinu implementacije, memorije se dele na statički i dinamički RAM. Statički RAM (SRAM)
se konstruiše na bazi memorijskih ćelija sa četiri do šest tranzistora kod kojih se leč realizuje uz
pomoć unakrsno spregnutih invertora (2 tranzistora), dok se za AND kolo i trostatički bafer koristi još
po jedan tranzistor. SRAM memorija čuva upisani sadržaj sve dok se ne upiše novi ili isključi
napajanje. S druge strane, kod dinamičke RAM memorije (DRAM), za realizaciju memorijske ćelije
koristi se samo jedan tranzistor. Takva memorijska ćelija gubi upisani sadržaj pri svakom čitanju, te
zbog toga nakon svakog čitanje mora da sledi upis upravo pročitanog podataka. Takođe, kao
54
Komponente digitalnih sistema
posledica nesavršenog postupka fabrikacije, sadržaj memorijske ćelije se spontano i nepovratno gubi
nakon izvesnog vremena po upisu. Da bi memorijska ćelija uspela da sačuva svoj sadržaj, neophodno
joj je pristupati sa nekom određenom frekvencijom, ili periodično obnavljati (ili osvežavati) upisani
sadržaj. U toku osvežavanja, operacije čitanja i upisa se suspenduju, što može u nekim slučajevima
biti problem. Međutim, bez obzira na sve to, zahvaljujući superiornim karakteristikama u pogledu
gustine pakovanja i cene, DRAM memorije se veoma često koriste za projektovanje najrazličitijih
elektronskih uređaja. S druge strane, SRAM memorije su, iako skuplje, brže i zbog toga pogodne za
primene koje ne zahtevaju veliku količinu memorije, kao i tamo gde brzi pristup memoriji predstavlja
imperativni zahtev.
(a) (b)
Sl. 2‐25. Organizacija RAM memorije: (a) memorijska ćelija; (b) unutrašnja struktura.
SRAM i DRAM memorije su tzv. nepostojane memorije (volatile memories), s obzirom da se njihov
sadržaj gubi kada se isključi napajanje. S druge strane, ROM i PROM memorije su tzv. postojane
memorije, s obzirom da zadržavaju sadržaj čak i nakon isključenja napajanja.
Na Sl. 2‐25(b) je prikazan primer memorije 4x4 koja ima 16 memorijskih ćelija. Radi pristupa svakoj
memorijskoj ćeliji, adresni dekoder dekodira adresu i selektuje jednu od vrsta. Pri tome, ako su oba
signala RWS i CS jednaka 1, u selektovanu vrstu upisuje se novi sadržaj. Iako su sadržaji svih ćelija
prisutni na izlaznim linijama, izlazni tro‐statički baferi su zakočeni što omogućava novom podatku koji
je prisutan na ulazno/izlaznom portu da bude upisan. Međutim, ako je RWS=0 i CS=1, podatak iz
selektovane vrste se kroz tro‐statičke bafere prosleđuje na U/I port.
Kao što je već rečeno, memorijske komponente se po pravilu proizvode u veličinama 2nxm, gde n i m
mogu da variraju unutar širokog opsega brojeva. Međutim, uopšteno govoreći, za konkretnu
implementacionu tehnologiju i godinu proizvodnje, proizvod 2nxm, tj. kapacitet memorije, je
55
Komponente digitalnih sistema
konstanta. Imajući to u vidu, u slučajevima kada memorija potrebnog kapaciteta nije dostupna u vidu
monolitnog čipa, ona se mora konstruisati pomoću memorijskih čipova manjeg kapaciteta koji su
dostupni na tržištu u vremenu projektovanja. U nastavku ovog odeljka biće opisano kao se realizuju
“šire” i veće memorije, tj. kao postići da m i n budu veći od kapaciteta koji je raspoloživ na jednom
memorijskom čipu.
Proširenje memorijske reči, tj. formiranje memorije sa većim m, postiže se paralelnim vezivanjem
nekoliko memorijskih čipova. Na Sl. 2‐26 je prikazan primer konstrukcije RAM memorije kapaciteta
16Kx32 korišćenjem RAM čipova kapaciteta 16Kx8 (K je oznaka za kilo, tj. 210). Kao što se vidi, kod
ovog rešenja, adresne linije, kao i linije CS i RWS, povezane su sa svim memorijskim čipovima. Uočimo
da su ulazna i izlazna magistrala podeljene na četiri grupe od po 8 linija, pri čemu su linije iz iste grupe
povezane sa jednom memorijom. Korišćenjem ovog postupka u mogućnosti smo da konstruišemo
memoriju bilo koje širine.
Sl. 2‐26. 16Kx32 RAM, realizovan pomoću 16Kx8 RAM.
Da bi smo realizovali veću memoriju, tj. memoriju sa većim brojem memorijskih lokacija, neophodno
je povezati nekoliko memorijskih čipova na red, tako da svaki čip sadrži jedan deo od ukupnog broja
memorijskih reči. Princip rešenja prikazan je na Sl. 2‐27, gde je pomoću četiri RAM čipa kapaciteta
16Kx8 realizovana RAM memorija kapaciteta 64Kx8. Uočimo da u ovom slučaju svi memorijski čipovi
dele istu ulazne i istu izlaznu magistralu, kao i zajednički upravljački signal RWS. U toku pristupa
memoriji, za izbor čipa koji sadrži traženi podatak, koristi se signal CS. Pretpostavimo da RAM
označen kao M0 na slici sadrži sve podatke sa adresama od 0 do 214‐1, M1 od 214 do 215‐1, M2 od 215
do 215+214‐1 i M3 od 215+214 do 216‐1. Šesnestobitna adresna magistrala je podeljena na dva dela, tako
da se dva bita najveće težine koriste za izbor odgovarajućeg čipa, a preostalih 14 bita se koriste za
izbor konkretne lokacije izabranog unutar čipa. Da bi se ovo postiglo, 14 bita na pozicijama manje
težine adresne magistrale su povezani na adresne portove svih memorijskih čipova, dok su dva bita
najveće težine povezana na dekoder 2‐u‐4, koji određuje koji od četiri memorijska čipa će biti izabran
za upis ili čitanje. Ovaj izbor se ostvaruje povezivanjem svakog od izlaza dekodera na ulaz CS
odgovarajućeg memorijskog čipa, kao što je prikazano na Sl. 2‐27.
56
Komponente digitalnih sistema
Sl. 2‐27. 64Kx8 RAM realizovan pomoću 16Kx8 RAM.
2.2.7 Stek
Stek (stack) ili magacin je memorijska struktura koja se često koristi kako u softveru tako i u
hardveru. Po definiciji, stek je memorija sa ograničenim pristupom. Za razliku od RAM‐a gde se bilo
kom zapamćenom podatku može pristupati u bilo kom vremenu, podacima zapamćenim u steku
pristupa se isključivo preko jedne lokacije: vrh steka. Drugim rečima, kada se podatak upisuje u stek,
ili stavlja na stek (operacije push), on se smešta na vrh steka i pri tome se svi prethodno upisani
podaci spuštaju za jednu poziciju niz stek. Suprotno tome, kada se podatak čita iz steka ili uzima sa
steka (operacija pop), on se sklanja sa vrha steka i pri tome se svi ostali podaci podižu za jednu
poziciju naviše uz stek. Na Sl. 2‐28(a) je prikazan stek dubine 4 (tj. kapaciteta 4 reči) koji inicijalno
sadrži dva broja: 34 na lokaciji Top i 23 na lokaciji Top‐1. Na Sl. 2‐28(b) može se videti da stavljanje
57
Komponente digitalnih sistema
broja 45 na stek zahteva da brojevi 34 i 23 budu premešteni na lokacije Top‐1 i Top‐2. S druge strane,
kada se broj 45 uzima sa steka, brojevi 34 i 23 se pomeraju naviše, tako da ponovo zauzimaju lokacije
Top i Top‐1 (Sl. 2‐28(c)). U ovom konkretnom primeru, na stek se može staviti najviše četiri broja, pre
nego što se stek napuni. Nakon toga, svaki novi upis u stek znači gubitak podatka sa dna steka.
(a) (b) (c)
Sl. 2‐28. Rad steka: (a) sadržaj steka pre upisa broja 45; (b) sadržaj steka nakon upisa broj 45; (c) sadržaj steka
nakon čitanja broja 45.
58
Komponente digitalnih sistema
Brojač
Kontrola pom. Kontrola Q2 Q1 Q0 Empty Full
Push/ registra brojača
Push/pop Enable Operacija 0 0 0 1 0
pop Ena. S1 S0 D E 0 0 1 0 0
X 0 Bez promene
X 0 0 0 X 0 0 1 0 0 0
0 1 Upis (push) 0 1 1 1 0 1 0 1 1 0 0
1 1 Čitanje (pop) 1 1 1 0 1 1 1 0 0
0 1
(d)
Sl. 2‐29. Stek dubine 4. (a) Tabela operacija; (b) Tabela izlaza; (c) Tabela upravljanja; (d) struktura steka.
Logičke jednačine za upravljačke signale pomeračkih registara i brojača mogu se izvesti na osnovu
tabele upravljanja koja je prikazana na Sl. 2‐29(b). Na osnovu ove tabele možemo izvesti sledeće
jednačine:
/ ∙
/ ∙
Realizacija ovih jednačina predstavlja upravljačku logiku steka.
59
Komponente digitalnih sistema
Na osnovu tabele izlaza sa Sl. 2‐29(c), vidi se da izlazna logika dekoduje stanja brojača 000 i 100. Uvek
kada je stanje brojača 000, signal Empty biće 1; u bilo kom drugom stanju Empty je 0. Suprotno, uvek
kada je stanje brojača 100 (upisana su 4 podatka), signal Full biće 1; u bilo kom drugom stanju Full je
0. Na osnovu toga, možemo izvesti sledeće jednačine za izlaznu logiku:
Izlaznu logiku čine dva logička kola koja ukazuju kada je stek pun, odnosno prazan. Pošto je stek
prazan uvek kada je sadržaj brojača Top jednak 0, da bi se detektovao uslov Empty koristi se 10‐
ulazno NOR kolo čiji ulazi su povezani na izlaze brojača Top. Slično, stek je pun uvek kada brojač Top
sadrži sve jedinice, što se detektuje 10‐ulaznim AND. Šematski prikaz strukture steka zasnovanog na
RAM memoriji prikazan je na Sl. 2‐30(d).
60
Komponente digitalnih sistema
(b)
Kontrola Kontrola mem. Kontrola broj.
mux‐a
CS RWS D E
Push/pop Enable S
X 0 X 0 0 X 0
0 1 1 1 1 0 1
1 1 0 1 0 1 1
(a) (c)
(d)
Sl. 2‐30. Realizacija steka na bazi RAM memorije: (a) Simboličko rešenje; (b) Tabela operacija; (c) Tabela
upravljanja; (d) šematski prikaz.
2.2.8 FIFO
FIFO (First‐In‐First‐Out), ili, red čekanja, je struktura koja se često koristi kada treba uravnotežiti
zahteve za nekom obradom. Zamislimo, na primer, ljude kako stoje ispred šaltera u banci ili kako
ulaze u autobus, koji moraju čekati u redu dok ne stignu na red da budu opsluženi. Slična situacija se
javlja kod različitih procesora, ASIC kola ili bilo kog uređaja koji šalje podatke nekom drugom uređaju
radi dalje obrade, u smislu da onda kada u jednom trenutku brzina generisanja podataka nadmaši
brzinu kojom se podaci obrađuju, neophodno je između proizvođača i potrošača umetnuti red
čekanja, tj. FIFO. Naravno, u takvim situacijama, brzina kojom proizvođač generiše podatke ne može
u nedogled biti veća od brzine kojom potrošač može da prihvata podatke, jer bi to zahtevalo red
čekanja beskonačne dužine. U svakom slučaju, u proseku, obe brzine moraju biti iste, a veličina reda
čekanja određuje koliko dugo se može tolerisati neujednačenost između zahteva za obradom i brzine
obrade.
61
Komponente digitalnih sistema
Svrha FIFO‐a je da sačuva podatke upućene potrošaču, koje on trenutno nije u stanju da prihvati, ali
koje će u dogledno vreme preuzeti i to u redosledu po kome su oni poslati. Znači, podatak koji je prvi
upisan u FIFO, prvi se i čita, itd., kao što je ilustrovano na Sl. 2‐31. Na Sl. 2‐31(a) je prikazan red
čekanja nakon što su brojevi 23 i 34 upisani, ali pre nego što je stigao broj 45. Na Sl. 2‐31(b) možemo
videti sadržaj FIFO‐a nakon upisa broja 45. Uočimo da je nakon čitanja FIFO‐a, broj 23 odbačen i da je
sadržaj reda pomeren za jednu poziciju na dole. Sadržaj reda čekanja nakon pomeranja prikazan je na
Sl. 2‐31(c).
(a) (b) (c)
Sl. 2‐31. Princip rada FIFO‐a: (a) sadržaj reda pre upisa broja 45; (b) sadržaj reda posle upis broja 45; (c)
sadržaj reda nakon čitanja broja 23.
Na Sl. 2‐32 je prikazan blok dijagram FIFO‐a. U opštem slučaju, FIFO ima m ulaznih linija INi i m
izlaznih linija OUTi, gde je 0≤i≤m‐1. Takođe, FIFO ima tri upravljačka signala: Read/write, Enable i
Reset. Kada je Read/write=0, na izlazu FIFO‐a postavljen je podatak uzet sa početka reda, tj. podatak
koji je najduže u redu čekanja. Kada je Read/write=1, u FIFO se upisuje podatak prisutan na ulazima
INi i smešta na kraj reda čekanja. Tipična realizacija FIFO‐a ima još dva statusna signala, Full i Empty,
koji se koriste za kontrolu proizvođača i potrošača. Kada je red pun, signal Full ima vrednost 1, što
predstavlja upozorenje proizvođaču da će svaki naredni poslati podatak biti odbačen. Kada se red
isprazan, signal Empty postaje 1, što predstavlja upozorenje potrošaču da novi podaci još uvek nisu
stigli.
Sl. 2‐32. Blok dijagram FIFO‐a.
62
Komponente digitalnih sistema
pomoć multipleksera, bira se podatak sa početka reda i postavlja na izlaz, a brojač se dekrementira.
Uočimo da se pročitani podatak ne poništava, već samo postaje nevažeći, time što je brojač
dekrementiran. Na Sl. 2‐33(b) je prikazana tabela upravljanja koja definiše vrednosti internih
upravljačkih signala u zavisnosti od izabrane operacije. U toku operacije čitanja, sadržaj pomeračkih
registara se ne menja, a brojač broji za 1 unazad. Međutim, u toku operacije upisa, pomerački registri
će obaviti pomeranje za jednu poziciju udesno, a brojač će odbrojati za 1 unapred. Brojač, takođe,
upravlja izborom podatka prilikom operacije čitanja. U toku inicijalizacije, brojač se postavlja na 1111,
tako da njegovo stanje pri upisu prvog podatka u red postaje 0000. Ovakva inicijalizacija brojača je
neophodna kako bi se ostvarila pravilno upravljanje multiplekserima, koji zahtevaju vrednosti 00, 01,
10 i 11 na svojim selekcionim ulazima da bi izabrali jedan od izlaza pomeračkih registara.
Read/write Enable Operacija Read/write Enable S1 S0 D E
X 0 Bez promene X 0 0 0 X 0
0 1 Čitanje 0 1 0 0 1 1
1 1 Upis 1 1 1 0 0 1
(a) (b)
(c)
Sl. 2‐33. FIFO dužine 4 reči: (a) Tabela operacija; (b) Tabela upravljanja; (c) Šematski prikaz.
Na osnovu tabele upravljanja možemo odrediti jednačine preostalih upravljačkih signala:
/ ∙
/ ∙
63
Komponente digitalnih sistema
Svrha izlazne logike je generisanje signala Full i Empty. Red čekanja je prazan (Empty=1) ako je stanje
brojača 111, a pun (Full=1) ako je stanje brojača 011. U svim ostalim stanjima brojača, oba signala,
Full i Empty, imaju vrednost 0. Dakle:
Sl. 2‐34. Princip rada FIFO‐a na bazi RAM‐a.
Na Sl. 2‐35 prikazana je realizacija FIFO reda koja koristi 1K RAM i dva brojača. Takođe, FIFO sadrži
multiplekser preko koga se bira jedan od brojača kao izvor adrese za RAM i komparator koji poredi
sadržaje brojača. Tabela operacija je prikazana na Sl. 2‐35(a), tabela upravljanja na Sl. 2‐35(b), dok je
na Sl. 2‐35(c) dat konačni šematski izgled FIFO‐a zasnovanog na RAM‐u.
E E
Read/write Enable Operacija Read/write Enable S CS RWS
(Početak) (Kraj)
X 0 Bez promene X 0 X 0 X 0 0
0 1 Čitanje 0 1 1 1 0 1 0
1 1 Upis 1 1 0 1 1 0 1
(a) (b)
64
Komponente digitalnih sistema
(c)
Sl. 2‐35. FIFO realizovan na bazi 1K RAM‐a: (a) Tabela operacija; (b) Tabela upravljanja; (c) šematski prikaz.
65
Komponente digitalnih sistema
memorijskim elementima. Iz tog razloga, funkcije f i h se definišu kao Bulove funkcije koje se realizuju
uz pomoć logičkih kola.
Konačni automat može modelirati funkciju bilo kog sekvencijalnog kolo sa k ulaznih signala A1, ..., Ak,
m flip‐flopova Q1, ..., Qm i n izlaznih signala Y1, ..., Yn, kao što je prikazano na Sl. 2‐36. Za jedno ovakvo
sekvencijalno kolo, S, I i O predstavljaju unakrsni proizvod flip‐flopova ili signala, na sledeći način:
S = Q1 Q2 ... Qm
I = A1 A2 ... Ak
O = Y1 Y2 ... Yn
S obzirom da vrednost flip‐flopa ili signala može biti samo 0 ili 1, svaki element iz S, I i O predstavljen
je nizom nula i jedinica dužine m, k i n, respektivno.
Sl. 2‐36. Model konačnog automata.
Svaki konačni automat može se realizovati uz pomoć flip‐flopova i logičkih kola. Sadržaj flip‐flopova
definiše stanje konačnog automata, dok su funkcije f i h realizovane u obliku kombinacionih mreža.
Uopšteni blok dijagrami konačnih automata Murovog i Milijevog tipa, prikazani su na Sl. 2‐37.
(a)
66
Komponente digitalnih sistema
(b)
Sl. 2‐37. Tipovi konačnih automata: (a) Murov; (b) Milijev.
Ovo izračunavanje se može obaviti u petlji, gde bi sum bila promenljiva inicijalno postavljena na nulu:
sum = 0
loop:
for i=1 to 100
sum=sum + xi
end loop
Opisano izračunavanje se može izvršiti u 32‐bitnoj staza podataka koja sadrži jedan registra, tzv.
akumulator, i jednu ALU. Vrednost promenljive sum se čuva akumulatoru; u svakom taktnom ciklusu
novo xi se sabira sa sum uz pomoć ALU, a nova vrednost promenljive sum su upisuje u akumulator.
2
Ova sekcija predstavlja uvod u problematiku projektovanja na RTL nivou apstrakcije i sintezu visokog nivoa, a
to su upravo teme koje se obrađuje u nastavku kursa. Iako iz ove sekcije ne postoje ispitna pitanja i zadaci,
preporučuje se studentima da s razumevanjem pročitaju nekoliko narednih stranica teksta.
67
Komponente digitalnih sistema
Na Sl. 2‐38 prikazana je jednostavna (tj. Sekvencijalna) staza podataka koja može da obavi opisano
sumiranje. Ova staza podataka sadrži multiplekser, preko koga se kao levi operand ALU jedinice
dovodi 0 ili ulazni podatak. Sadržaj akumulator se koristi kao desni operand ALU jedinice. Takođe,
sadržaj akumulatora se preko trostatičkog bafera vodi na izlaz staze podataka. Akumulator je
pomerački registar sa paralelnim upisom (mada se u ovom primeru ne koristi mogućnost pomeranje
memorisanog sadržaja). Na Sl. 2‐38(a) dat je šematski prikaz staze podataka, dok je na Sl. 2‐38(b)
prikazana 9‐bitna upravljačka reč u okviru koje su navedene vrednosti signala koji upravljaju
multiplekserom, ALU jedinicom, akumulatorom i izlaznim baferom. Sve komponente staze podataka
su širine 32 bita.
Uopšteno govoreći, većina digitalnih projektanata postupa na isti način kada projektuje sisteme
slične opisanom. Vrednosti promenljivih i konstante se čuvaju u registrima ili memoriji, odakle se
čitaju nakon rastuće ivice taktnog signala i sve do sledeće rastuće ivice transformišu uz pomoć
funkcionalnih jedinica, da bi, konačno, sa sledećom rastućom ivicom takta rezultat bio upisan nazad u
memorijske komponente.
U toku svakog taktnog ciklusa, upravljačka reč određuje operaciju staze podataka. Izračunavanje
zbira 100 brojeva zahteva 102 taktna ciklusa. Upravljačka reč biće ista u svim taktnim ciklusima osim
u prvom i poslednjem. U prvom taktnom ciklusu, neophodno je obrisati sadržaj akumulatora (sum=0),
u sledećih 100 taktnih ciklusa dodaje se novo x na akumuliranu sumu, a u poslednjem taktnom
ciklusu sadržaj akumulatora se prenosi na izlaz.
(a) (b)
Sl. 2‐38. Staza podataka sa akumulatorom i ALU: (a) Šematski prikaz; (b) Upravljačka reč.
Iako opisana staza podataka može biti korišćena i za neka druga jednostavna aritmetička
izračunavanja, složenija izračunavanja zahtevaju veći broj promenljivih kao i složeniju stazu podataka
koja, na primer, za smeštanje promenljivih, umesto akumulatora, koristi registarski fajl. Na Sl. 2‐39
prikazan je primer složenije staza podataka koja sadrži multiplekser, registarski fajl sa 8 registra i tri
68
Komponente digitalnih sistema
porta, jednu ALU jedinicu, pomerač i izlazni trostatički bafer. U ovom slučaju, u svakom taktnom
ciklusu, oba operanda ALU jedinice se uzimaju iz registarskog fajla, gde se upisuje i rezultat. Iz razloga
kompletnosti, na Sl. 2‐39(b) i (c) su prikazane tabele operacija ALU jedinice i pomerača, dok je format
upravljačke reči prikazana na Sl. 2‐39(d). Uočimo da je za upravljanje stazom podataka neophodna
20‐bitna upravljačka reč, koja određuje sva odredišta, izvore podataka kao i operacije u stazi
podataka. Radi boljeg razumevanja rada staze podataka, iskoristićemo je za realizaciju algoritma
brojanja jedinica.
(b)
(a) (c)
(d)
Sl. 2‐39. Staza podataka sa registarskim fajlom: (a) šematski prikaz. (b) ALU operacije; (c) operacije
pomerača; (d) upravljačka reč.
Pr. 2‐1. Brojač jedinica
Problem: Korišćenjem staze podataka sa Sl. 2‐39, projektovati brojač jedinica koji određuje broj 1‐ca u ulaznoj
reči. Registar R0 registarskog fajla sadrži konstantu 0.
Rešenje: Za opis algoritma rada brojača jedinica koristićemo četiri promenljive: Podatak, BrojJedinica, Maska i
Temp. Promenljiva Podatak sadržaće vrednost ulazne reči, tj. reči u kojoj se broje jedinice. Algoritam analizira
69
Komponente digitalnih sistema
promenljivu Podatak, bit po bit, od bita najmanje do bita najveće težine i dodaje 1 promenljivoj BrojJedinica za
svaku 1 na koju naiđe u ulaznoj reči. Promenljiva Maska sadrži konstantu 1, a promenljiva Temp se koristi za
privremeno čuvanje bita najmanje težine promenljive Podatak. Nakon inicijalizacije, algoritam izdvaja bit
najmanje težine promenljive Podatak i smešta ga u promenljivu Temp, zatim dodaje Temp na BrojJedinica i
konačno, pomera promenljivu Podatak za jednu poziciju udesno. Ova sekvenca operacija se ponavlja sve dok
promenljiva Podatak sadrži vrednost različitu od “sve nule”. Uočimo da će za različite ulazne reči, broj
ponavljanja ove sekvence operacija biti različit. Na Sl. 2‐40(a), prikazan je algoritam brojanja jedinica. Naredbe
1, 2 i 3 se koriste za inicijalizaciju promenljivih. Naredbe 4 i 5 dodaju bit najmanje težine promenljive Podatak
na tekuću vrednost promenljive BrojJedinica, dok naredba 6 pomera sadržaj promenljive Podatak za jednu bit‐
poziciju udesno. (Pri pomeranju udesno, u bit najveće težine upisuje se 0.) Konačno, naredba 7 prenosi sadržaj
promenljive BrojJedinica na izlaz.
(a) (b)
Upravljačka Adresa Adresa Adresa ALU Operacija
IE OE
reč upisa čitanja A čitanja B Operacija pomerača
1 1 R1 X X X Propuštanje 0
2 0 R3 0 0 Sabiranje Propuštanje 0
3 0 R2 0 X Inkrement Propuštanje 0
4 0 R4 R1 R2 AND Propuštanje 0
5 0 R3 R3 R4 Sabiranje Propuštanje 0
6 0 R1 R1 0 Sabiranje Pomeranje udesno 0
7 0 ‐ R3 0 Sabiranje Propuštanje 1
(c)
Start = 0
S0
Start = 1
S1 Podatak = Ulaz
S2 BrojJedinica = 0
Done = 1
S3 Maska = 1
S7 Izlaz = BrojJedinica
(d)
Sl. 2‐40. Algoritam brojanja jedinica: (a) polazni algoritam; (b) dodela registara; (c) upravljačke reči brojača
jedinica; (d) konačni automat upravljačke jedinice.
70
Komponente digitalnih sistema
D2 Q2
Q2'
D1 Q1
Q1'
D0 Q0
Clk Q0'
Logika
sledećeg stanja
Podatak<>0 Magistrala
rezultata
IE
WA2
WA1
WA0
Staza
podataka
WE
0 RAA2
RAA1
1 RAA0
REA
RAB2
RAB1
0 RAB0
REB
M
Upravljačka
jedinica S1
1 S0
S2
S1
0 S0
OE
Izlaz
Izlazna logika
Q2 Q2' Q1 Q1' Q0 Q0'
Sl. 2‐41. Hardverska struktura brojača jedinica.
Prvi korak u projektovanju hardverske realizacije algoritma je pridruživanje promenljivih registrima registarskog
fajla. Kao što je prikazano na Sl. 2‐40(b), promenljive Podatak, Maska, BrojJedinica i Temp, pridružene su redom
registrima R1, R2, R3 i R4. Nakon što su promenljive dodeljene registrima, za svaku algoritamsku naredbu
određuje se upravljačka reč, kao što je prikazano na Sl. 2‐40(c). Upravljačka reč je podeljena na polja koja
71
Komponente digitalnih sistema
definišu operacije ALU jedinice i pomerača zajedno sa adresama registara koji se koriste kao izvori operanada i
adresom registra gde se smešta rezultat. U cilju upravljanja stazom podataka, pretpostavićemo da se Brojač
jedinica realizuje kao nezavisni modul koji počinje sa radom uvek kada signal Start postane 1, a postavlja 1 na
izlaz Done odmah nakon što je završio izračunavanje.
Kao što se može videti na Sl. 2‐40(d), konačni automat koji opisuje rad Brojača jedinica ima osam stanja. Brojač
jedinica ostaje u stanju S0 sve dok signal Start ne postane jednak 1, a zatim, u sledećih sedam stanja, S1, S2, ...,
S7, Brojač jedinica radi shodno algoritmu sa Sl. 2‐40(a). Konačno, u stanju S7, Brojač jedinica postavlja rezultat
na izlaz, aktivira signal Done i vraća se u stanje S0. Upravljačka jedinica Brojača jedinica ima dva ulazna signala,
Start i Podatak≠0 i jedan izlazni signal, Done. Signali Start i Done se koriste za komunikaciju sa okruženjem, dok
signal Podatak≠0, u suštini, predstavlja statusni signal staze podataka. U svakom taktnom ciklusu, upravljačka
jedinica generiše 20 bita upravljačke reči. Uočimo da su za realizaciju osam stanja neophodna tri D flip‐flopa.
Konačno, na Sl. 2‐41 dat je šematski prikaz Brojača jedinica koji koristi stazu podataka sa Sl. 2‐39(a).
72
Komponente digitalnih sistema
Sl. 2‐42. Primer paralelne staze podataka
Na osnovu prethodne diskusije možemo zaključiti da povećanje performansi kod paralelne staze
podataka zavisi ne samo od broja i tipa ugrađenih funkcionalnih jedinica, već i od načina na koji su
funkcionalne jedinice povezane, kao i od nivoa i tipa paralelizma koji je sadržan u algoritmu koji se
izvršava na toj stazi podataka. Drugim rečima, najbolji odnos cena/performanse se postiže ako su
tipovi jedinica i način njihovog povezivanja usklađeni sa paralelizmu koji je dostupan u algoritmu.
Takođe, moramo biti svesni činjenice da, tipično, algoritam ne obezbeđuje isti nivo paralizama za sve
vreme svog izvršenja.
U opštem slučaju, da bi se postiglo najbolje poklapanje između algoritma i namenski projektovane
staze podataka, potrebno je naći optimalan broj ALU jedinica, brojača, registarskih fajlova sa
različitim brojem portova, koji su povezani pomoću više magistrala. Magistrale se koriste kako za
prenos operanada iz memorijskih komponenti do funkcionalnih jedinica, tako i za prenos rezultata
funkcionalnih jedinica nazad u memorijske komponente. Takođe, moguće je da funkcionalne jedinice
dobijaju operande sa više od jedne magistrale, mada takvo jedno rešenje zahteva ugradnju dodatnih
multipleksera na ulazima funkcionalnih jedinica. Takođe, moguće je ispred ulaza i izlaza funkcionalne
jedinice ugraditi registre koji bi se koristili za privremeno smeštanje ulaznih operanada. Na ovaj način
se značajno skraćuje vreme u kome se magistrale koriste za prenos operanada, čime se posredno
povećava saobraćaj na magistralama.
S druge strane, ugradnja ulaznih i izlaznih registara zahteva složenije upravljanje, s obzirom na to što
bi bi kod takvog rešenja obavljanje svake operacije zahteva više od jednog taktnog ciklusa. Najmanje
jedan taktni ciklus je neophodan za svaku od sledećih aktivnosti: (a) pribavljanje operanada iz
registara, registarskih fajlova ili memorije i upis u ulazne registre funkcionalnih jedinica, (b) izvršenje
operacije i upis rezultata u izlazne registre i (c) smeštanje rezultata iz izlaznih registara nazad u
registre ili memoriju. Na Sl. 2‐43 prikazan je primer jedne ovakve staze podataka. Uočimo da staza
73
Komponente digitalnih sistema
podataka sadrži jedan brojač, jedan registar, troportni registarski fajl i memoriju. Za izračunavanje se
koriste dve ALU jedinice i množač, dok se za spregu komponenti koriste četiri magistrale. Kao što se
može videti, kod ALU1 ne lečevi nisu ugrađeni, kod ALU2 postoje registri i na ulazima i na izlazima, dok
kod množača registri postoje samo na ulazima. U ovakvoj strukturi, ALU1 može da dobije svoj levi
operand preko magistrala Magistrala_2 i Magistrala_3, dok desni operand množača može doći bilo
preko Magistrala_1 bilo preko Magistrala_4. Slično, memorijske komponente mogu da prime
podatke preko više od jedne magistrale. Ovakav tip staze podataka se često koristi kod aplikaciono‐
specifičnih integrisanih kola da bi se za dati algoritam ostvario najbolji odnos performanse/cena.
Ulaz
1 0 1 0
mux mux
1 0
mux
Registarski
Memorija
Brojač Registar fajl
Magistrala_1
Magistrala_2
Magistrala_3
Magistrala_4
1 0
mux
1 0
mux Registar Registar Registar Registar
Sl. 2‐43. Primer složenije paralelne staze podataka
74
Komponente digitalnih sistema
3 Pitanja3
1. Sabirač sa rednim prenosom. Tabela istinitosti i logičke jednačine potpunog sabirača. Sprega
potpunih sabirača.
2. Sabirač/oduzimač.
3. Logička jedinica.
4. Aritmetičko‐logička jedinica. Princip konstrukcije na bazi sabrača i logičkih i aritmetičkih
ekspandera.
5. Koincidentno dekodiranje.
6. Hijerarhijsko dekodiranje.
7. Hijerarhijska realizacija multipleksera.
8. Realizacija multipleksera pomoću dekodera i logičkih kola.
9. Trostatička magistrala.
10. Demultiplekser. Realizacija pomoću dekodera.
11. Realizacija prioritetnog kodera pomoću binarnog kodera i mreže za razrešavanje prioriteta.
12. Hijerarhijska realizacija prioritetnog kodera.
13. Univerzalni komparator. Izvođenje logičkih jednačina komparatora četvorobitnih brojeva.
14. Iterativna komparatorska mreža.
15. Hijerarhijska komparatorska mreža.
16. Pomerač/rotator. Realizacija pomoću multipleksera.
17. Barel pomerač.
18. Princip realizacije logičkih funkcija pomoću ROM‐a
19. PLA – struktura i princip realizacije logičkih funkcija
20. Tipovi flip‐flopova.
21. Univerzalni pomerački registar. Struktura.
22. Binarni brojač. Struktura.
23. Obostrani binarni brojač. Struktura.
24. Princip realizacije brojača ˝skraćene˝ osnove brojanja (BCD brojač)
25. Registarski fajl. Struktura. RF sa jednim portom za upis i jednim portom za čitanje. RF sa dva
porta za čitanje i jednim za upis.
26. RAM. Struktura. Proširenje.
27. Stek. Princip.
28. Stek. Realizacija pomoću pomeračkih registara.
29. Stek. Realizacija pomoću RAM‐a.
30. FIFO. Princip.
31. FIFO. Realizacija pomoću pomeračkih registara.
32. FIFO. Realizacija pomoću RAM‐a.
33. Strukturni blok dijagram konačnog automata: (a) Murovog; (b) Milijevog tipa.
3
Pitanja koja su ovde data treba da vam posluže da lakše savladate gradivo. Ovo nije konačna lista ˝ispitnih
pitanja˝, što ne isključuje mogućnost da neka od ovih pitanja dobijete na ispitu
75