You are on page 1of 75

 

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

2.2.3 Obostrani brojač ............................................................................................ 48 


2.2.4 BCD brojač .................................................................................................... 50 
2.2.5 Registarski fajl............................................................................................... 51 
2.2.6 RAM .............................................................................................................. 53 
2.2.7 Stek ................................................................................................................ 57 
2.2.8 FIFO .............................................................................................................. 61 
2.3 Konačni automati ..................................................................................................... 65 
2.4 Staza podataka .......................................................................................................... 67 
2.4.1 Paralelna staza podataka........................................................................................ 72 
3 Pitanja ...................................................................................................................... 75 

 
   

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. 

1.1 Sabirač sa rednim prenosom


Sabirač  je  kombinaciona  komponenta  koja  se  koristi  za  obavljanje  operacije  sabiranja  binarnih 
brojeva. Dva binarna broja, kao što su x=xn‐1 … x0 i y=yn‐1 … y0,  sabiraju se tako što se na zbir svakog 
par bita xi i yi doda bit prenosa ci koji je prenesen iz prethodne bit‐pozicije. Sabiranjem tri bita, xi, yi i 
ci,  za  svaku  bit‐poziciju  i,  0≤i≤n‐1,  generiše  se  bit  sume  si  i  bit  prenosa  ci+1.  Procedura  sabiranja  na 
nivou jedne bit‐pozicije opisana je tabelom istinitosti sa Sl. 1‐1(a). 
Polazeći od tabele istinitosti sa Sl. 1‐1(a), a uz pomoć Karnoovih  mapa sa Sl. 1‐1(b), možemo izvesti 
logičke  jednačine  na  osnovu  kojih  projektujemo  logičku  šemu  jednobitnog  sabirača  (Sl.  1‐1(c)). 
Jednobitni sabirač, koji sabira dva jednobitna operanda xi i yi, i bit ulaznog prenosa ci, poznat je pod 
nazivom potpuni sabirač (FA – Full Adder). 

   
xiyi
ci 00 01 11 10
0 1

1 1 1 1

ci = xiyi + ci(xi yi)


 
(a)  (b)  (c)  (e) 
x7 y7 x6 y6 x5 y5 x4 y4 x3 y3 x2 y2 x1 y1 x0 y0

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. 

1.3 Logička jedinica


Uopšteno govoreći, logička jedinica nam omogućava da obavimo jednu od nekoliko logičkih operacija 
nad  dva  n‐bitna  operanda  X=xn‐1  …  x0  i  Y=yn‐1  …  y0.  Binarne  logičke  operacije  se  primenjuju  na 
višebitne  operande  tako  što  se  logička  operacije  primeni  na  svaki  par  odgovarajućih  bitova  dva 
operanda.  Na  primer,  logičko  AND  primenjeno  na  dva  4‐bitna  operanda  1010  i  1100,  daje  4‐bitni 
rezultat 1000. Drugim rečima, uvek kada je izabrana funkcija fi, logička jedinica će izračunati rezultat: 

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

1.4 Aritmetičko-logička jedinica


Aritmetičko‐logička  jedinica  (ili  ALU  prema  engleskom  nazivu  Arithmetic  and  Logic  Unit)  je 
višefunkcionalno  kombinaciono  kolo  koje  može  da  obavi  bilo  koju  od  više  različitih  aritmetičkih  i 
logičkih  operacija  nad  parom  b‐bitnih  operanada.  Pri  tom,  jedna  od  raspoloživih  operacija  bira  se 
preko skupa selekcionih ulaza. Broj i složenost operacija podržanih od strane ALU modula su pitanje 
izbora projektanta i mogu značajno da variraju od ALU do ALU modula. Tipične aritmetičke operacije, 
koje  se  sreću  kod  većine  ALU  modula,  obično  su  zasnovane  na  sabiranju,  kao  na  primer,  sabiranje, 
oduzimanje,  inkrementriranje  i  dekrementiranje.  Inkrementiranje  je  operacija  sabiranja  sa  1,  a 
dekrementiranje  oduzimanja  za  1.  Međutim,  postoje  i  ALU  moduli  koji  su  u  stanju  da  obavljaju  i 
složenije aritmetičke operacije, kao što su množenje, deljenje, stepenovanje, pomeranje, poređenje i 
dr. Tipične logičke operacije su AND, OR, komplement, XOR.  
Postoje  dva  glavna  razloga  za  projektovanje  ALU  jedinica  u  obliku  standardnih  modula.  Prvo, 
dostupnost univerzalnih aritmetičkih modula omogućava da se isti modul koristi u mnogim različitim 
primenama,  čime  se  smanjuje  broj  različitih  modula  koji  se  koriste  u  projektovanju.  Drugo,  ALU 
moduli  se  mogu  efikasno  koristiti  u  sistemima,  kao  što  je  procesor,  kod  kojih  operacija  koju  treba 
obaviti u datom trenutku bira dinamički, od strane upravljačke jedinice procesora. 
U ovom odeljku biće izložen postupak projektovanje jedne konkretne 4‐bitne ALU jedinice. S obzirom 
da  su  aritmetičke  operacija  zasnovane  na  sabiranju,  ALU  se  može  projektovati  tako  što  će  se 
modifikovati  ulazi  binarnog  sabirača.  Logika  koja  obavlja  ovu  modifikaciju,  a  tiče  se  aritmetičkih 
operacija,  zove  se  aritmetički  ekspander  (AE),  dok  se  ona  koja  se  koristi  za  logičke  operacije  zove 
logički ekspander (LE). Ekspanderi su povezani su na ulaz sabirača, na način kako je to prikazano na Sl. 
1‐4. U nastavku će biti izložena procedura projektovanja ekspandera AE i LE na primeru ALU jedinice 
koja obavlja četiri aritmetičke i četiri logičke operacije. 
Najpre,  neophodan  je  ulaz  za  izbor  režima  rada,  M,  koji  će  birati  između  aritmetičkih  ili  logičkih 
operacija, tako da pri M=1, ALU obavlja aritmetičke, a pri M=0 logičke operacije. Takođe, potrebne su 
dva ulazna signala za izbor operacije, S1 i S0, koji će, u zavisnosti od vrednosti ulaza M, birati jednu od 
četiri aritmetičke ili četiri logičke operacija, na način kako je to definisano funkcionalnom tabelom sa 
Sl. 1‐5(a), za aritmetičke, i tabelom sa Sl. 1‐5(b) za logičke operacije. 

 
Sl. 1‐4. 4‐bitni sabirač u spoju sa aritmetičkim (AE) i logičkim (LE) ekspanderima. 

8
Komponente digitalnih sistema

                  M  S1  S0  bi  yi 


                  1  0  0  0  1 
                  1  0  0  1  1 
                  1  0  1  0  0 
                  1  0  1  1  1 
M  S1  S0  Ime funkcije  F  X  Y  c0    1  1  0  0  1 
1  0  0  Dekrement  A‐1  A  sve jedinice  0    1  1  0  1  0 
1  0  1  Sabiranje  A+B  A  B  0    1  1  1  0  0 
1  1  0  Oduzimanje  A+B'+1  A  B'  1    1  1  1  1  0 
1  1  1  Inkrement  A+1  A  sve nule  1    0  X  X  X  0 
(a)    (b) 
bi

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. 

Na primer, razmotrimo funkciju f zadatu skupom decimalnih indeksa   (0,2,3,5) . Karnoova mapa funkcije f 


prikazana  je  na  Sl.  1‐12(a),  a  realizacija  ove  funkcije  u  obliku  minimalne  sume‐proizvoda  na  Sl.  1‐12(b).  Ista 
funkcija se može realizovati pomoću dekodera 3‐u‐8, koji generiše sve moguće minterme od tri promenljive, i 
jednog OR kola, koje sumira minterme funkcije f, kao što je prikazano na Sl. 1‐12(c). Na ovaj način, korišćenjem 
dekodera odgovarajuće veličine, moguće je realizovati proizvoljnu logičku funkciju. 

                            (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. 

1.1.1 Dekoderske mreže


Shodno jednačini (1.1) binarni dekoder n‐u‐2n se može realizovati pomoću 2n n‐to ulaznih AND kola. 
Međutim,  sa  povećanjem  n,  ukupan  broj  AND  kola  i  broj  ulaza  u  AND  kola  postaju  ograničavajući 
faktor,  tako  da  se  dekoderi  sa  većim  brojem  ulaza  obično  realizuju  u  vidu  dekoderskih  mreža 
sačinjenih  od  više  manjih  dekodera.  Razmotrićemo  dve  tehnike  konstrukcije  dekoderskih  mreža: 
koincidentno dekodiranje i hijerarhijsko dekodiranje. 
Koincidentno  dekodiranje.  U  cilju  ilustracije  koncepta  koincidentnog  dekodiranja,  razmotrimo 
realizaciju 8‐ulaznog binarnog dekodera, tj. dekodera 8‐u‐256, pomoću 4‐ulaznih binarnih dekodera 
(Sl. 1‐13(a)). Neka su W=w7w6...w0 osam ulaza, a Y= y255y254...y0 256 izlaza dekoderske mreže 8‐u‐256. 
Najpre, podelimo ulaze u dve grupe: WH=w7w6w5w4 i WL=w3w2w1w0. Za realizaciju dekoderske mreže 
koristimo dva dekodera 4‐u‐16, kao na Sl. 1‐13. Grupa ulaza WH se dekodira pomoću jednog, a grupa 
ulaza WL pomoću drugog 4‐ulaznog dekodera. Neka su H=h15h14...h0 i L=l15l14...l0 16‐to bitni izlazi dva 

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. 

1.2.1 Alternativne realizacije multipleksera


Dekoder i logička kola. Multiplekser 8‐u‐1 se može realizovati i na način koji je prikazan na Sl. 1‐20. 
Za  dekodovanje  selekcionih  signal  koristi  se  dekoder  3‐u‐8.  Iako  ovo  rešenje  izgleda  jednostavno, 
ono,  međutim,  nije  lako  proširljivo.  Drugim  rečima,  broj  i  veličina  logičkih  kola  u  dekoderu,  kao  i 
veličina izlaznih OR kola raste sa povećanjem broja ulaza u multiplekser. S obzirom da se logička kola 
sa  velikim  brojem  ulaza  realizuju  kao  stabla  logičkih  kola  sa  manjim  brojem  ulaza,  složenost  i 
kašnjenje se značajno povećavaju. Iz tog razloga, rešenje sa Sl. 1‐20 se koriste samo za male vrednosti 
n,  dok  se  multiplekseri  za  veće  n  konstruišu  ranije  opisanom  metodom,  tj.  korišćenjem  više  nivoa 
multipleksera 2‐u‐1 ili 4‐u‐1. 

   
(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. 

1.4.1 Binarni koderi


Binarni  koder  2n‐u‐n  (Sl.  1‐24)  kodira  (transformiše)  informaciju  od  2n  bita  u  n‐bitnu  kodnu  reč.  Sa 
ograničenjem  da  u  bilo  kom  trenutku  samo  jedan  od  2n  ulaza  može  imati  vrednost  1,  na  izlazu 

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. 

1.4.2 Prioritetni koder


Kod  binarnog  kodera  opisanog  u  prethodnom  odeljku  postoji  ograničenje  da  u  bilo  kom  trenutku 
najviše  jedan  ulaz  sme  biti  aktivan.  Ako  se  ovo  ograničenje  ne  poštuje,  tj.  u  slučajevima  kada  je 
aktivno  više  od  jednog  ulaza,  izlaz  kodera  biće  pogrešan.  Međutim,  u  mnogim  primenama  ovo 
ograničenje se ne može nametnuti. Tada, umesto kodera treba koristiti prioritetni koder.  
Kod prioritetnog kodera, svakom ulazu je dodeljen prioritet, a izlaz kodera, interpretiran kao binarni 
broj,  ukazuje  na  indeks  aktivnog  ulaza  najvišeg  prioriteta.  Za  sve  vreme  dok  je  aktivan  ulaz  visokog 
prioriteta, svi ulazi nižeg prioriteta se ignorišu. Na Sl. 1‐26 je prikazana tabela istinitosti prioritetnog 
kodera  4‐u‐2,  pod  pretpostavkom  da  ulaz  w3  ima  najviši,  a  w0  najniži  prioritet.  Izlazi  y1  i  y0 
predstavljaju  binarni  broj  koji  identifikuje  ulaz  najvišeg  prioriteta  koji  ima  vrednost  1.  Pošto  je 
moguće da ni jedan ulaz nema vrednost 1, predviđen je još jedan, dodatni izlaz, z koji treba da ukaže 
na ovu situaciju. Naime, ako je barem jedan ulaz jednak 1, tada važi z=1; inače, ako ni jedan ulaz nije 
jednak 1, važi z=0. 

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. 

1.4.2.1 Hijerarhijska realizacija prioritetnog kodera


Na  Sl.  1‐30(a)  je  prikazan  princip  realizacije  prioritetnog  kodera  2n‐u‐n  pomoću  dva  duplo  manja 
prioritetna  kodera  tipa  2n‐1‐u‐(n‐1).  2n‐1  viših  ulaza,  …   ,  se  kodira  pomoću  prioritetnog 
kodera  H,  a  2n‐1  nižih,  … ,  pomoću  koder  L.  Izlaz  najveće  težine,  ,  rezultujućeg 
prioritetnog  kodera  treba  da  ima  vrednost  1  ako  je  na  ulazima  prioritetnog  kodera  H  prisutna  bar 
jedna jedinica. To se postiže pomoću kodera 2‐u‐1 na čije ulaze se dovode z izlazi prioritetnih kodera 
H  i  L.  Ako  važi  1,  tada  vrednosti  za  preostalih  2n‐1  izlaza,  … ,  treba  uzeti  sa  izlaza 
prioritetnog  kodera  H.  U  suprotnom,  ako  važi  0,  tj.  ako  na  ulazima  …   nije 
prisutna ni jedna jedinica, vrednosti za izlaze  … treba uzeti sa izlaza prioritetnog kodera L. To 
se postiže pomoću multipleksera kojim se upravlja signalom  .  
Na  Sl.  1‐30(b)  je  prikazano  kako  se  primenom  opisanog  principa  realizuje  prioritetni  koder  4‐u‐2 
pomoću  kodera  2‐u‐1.  Primetimo  da  su  u  prvom  nivou  upotrebljeni  binarni  koderi  budući  da  je 
binarni  koder  2‐u‐1  identičan  po  funkciji  prioritetnom  koderu  2‐u‐1.  Prioritetni  koder  4‐u‐2, 
realizovan  na  ovaj  način,  može  se  upotrebiti  za  realizaciju  prioritetnog  kodera  8‐u‐3,  kao  na  Sl. 
1‐30(c). Dakle, polazeći od kodera 2‐u‐1, u mogućnosti smo da rekurzivno primenom principa sa Sl. 
1‐30(a) realizujemo prioritetni koder proizvoljne veličine. 

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. 

1.5.1 Iterativna komparatorska mreža


Razmotrimo konstrukciju 16‐bitnog komparatora na osnovu 4‐bitnih komparatorskih modula. Za ovu 
namenu, ulazni 16‐bitni operandi X=x15x14...x0 i Y=y15y14...y0 se razlažu na po četiri 4‐bitna vektora: 

, , , , 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. 

1.5.2 Hijerarhijske komparatorske mreže


Brža  struktura  za  poređenje  većih  brojeva  se  može  realizovati  ako  se  umesto  iterativne  koristi 
hijerarhijska  mreža  komparatora.  Razmotrimo  ponovo  konstrukciju  16‐bitnog  komparatora  na 
osnovu 4‐bitnih komparatorskih modula, ali tako da sada komparatori budu povezani u hijerarhijsku 
strukturu, kao što je ona sa Sl. 1‐36. Svaki od četiri komparatora sa prvog nivoa, K0 do K3 poredi dva 
bit‐vektora od četiri bita. Izlazi iz prvog nivoa se koriste kao ulazi u komparator sa drugog nivoa, K4, 
na sledeći način: Svi izlazi G iz komparatora sa prvog nivoa čine bit‐vektor g koji je povezan na grupu 
ulaza x komparatora K4. Slično, bit‐vektor l, koga čine svi izlazi L iz prvog nivoa, povezan je na grupu 
ulaza y komparatora K4. 

 
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. 

1.6 Kombinacioni pomerači i rotatori


Operacije  pomeranja  i  rotiranja  često  se  koriste  za  pakovanje  i  raspakovanje  cifara  i  karaktera, 
izdvajanje i umetanje bit‐polja, kao i za realizaciju aritmetičkih operacije za rad u pokretnom zarezu. 
Na primer, svaki procesor poseduje barem nekoliko instrukcija za 1‐bitno pomeranje i rotiranje ulevo 
i  udesno.  Operacije  pomeranja  mogu  se  obavljati  u  logičkom  ili  aritmetičkom  režimu.  Pri  logičkom 
pomeranju, bit‐vektor se pomera za m bit‐pozicija ulevo ili udesno. Kao rezultat ove operacije, m bita 
sa  jedne  strane  vektora  se  izbacuje,  a  m  novih  bita  se  ubacuje  sa  druge  strane  vektora.  Pri 
aritmetičkom pomeranju, pretpostavlja se da bit vektor koji se pomera predstavlja binarni broj, tako 
da pomeranje za m pozicija udesno ima isti efekat kao deljenje broja sa 2m, dok je pomeranje za m 
pozicija  ulevo  isto  što  i  množenje  sa  2m.  Ako  bit‐vektor  predstavlja  brojnu  vrednost  u  formatu 

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.6.1 Barel pomerač


Pomerač/rotator opisan u prethodnom odeljku ima mogućnost pomeranja ili rotiranja za jednu bit‐
poziciju ulevo ili udesno. To znači da ako je potrebno obaviti pomeranje ili rotiranje za više od jedne 
bit‐pozicije, podatak bi morao biti propušten kroz pomerač/rotator veći broj puta. Drugim rečima, na 
ovakvom tipu pomerača, operacija pomeranja za proizvoljan broj pozicija se izvršava sporo. Da bi se 
izbeglo  ovo  veliko  kašnjenje,  kod  sistema  gde  se  zahtevaju  visoke  performanse,  koristi  se  barel 
pomerač,  koji  je  tako  projektovan  da  može  obaviti  pomeranje  za  proizvoljan  broj  pozicija.  n‐bitni 
pomerač  ovog  tipa,  gde  je  n=2m,  sadrži  m=log2n  nivoa  multipleksera  raspoređenih  tako  da  i‐ti  nivo 
multipleksera (0≤i≤m‐1) obavlja pomeranje za 2i  pozicija ako je selekciona linija ovog nivoa Si=1. Ako 
je Si=0, podatak prolazi kroz i‐ti nivo nepromenjen. Drugim rečima, ako želimo da pomerimo podatak 
za B pozicija, gde je B binarni broj bm‐1...b0, tada je potrebno postaviti Si=bi, za 0≤i≤m‐1. 
d7 d6 d5 d4 d3 d2 d1 d0

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. 

2.1 Leč kola i flip-flopovi1


Element koji zadržava, tj. pamti uspostavljeno stanje i po prestanku dejstva pobudnih signala koji su 
ih prouzrokovali, naziva se memorijski element. Osnovna karakteristika memorijskih elemenata jeste 
postojanje  stabilnih  stanja  u  kojima  mogu  ostati  neograničeno  vreme  i  koja  se  mogu  menjati  pod 
uticajem ulaznih signala. U digitalnoj tehnici kao memorijski elementi koriste se bistabilana kola koja 
imaju dva stabilna stanja. Bistabilno kolo može da memoriše informaciju od jednog bita. Dva osnovna 
tipa bistabilnih kola su: leč kola i flip‐flopovi. 

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 Leč kola

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. 

2.1.1.2 SR leč sa dozvolom


SR leč sa dozvolom je sličan SR leču, s tom razlikom što poseduje treći, upravljački ulazni signal, C, koji 
dozvoljava ili zabranjuje dejstvo signala S i R (Sl. 2‐4). To znači da kada je C=1, SR leč sa dozvolom se 
ponaša identično SR leču. Međutim, kada je C=0, setovanje ili resetovanje leča je zabranjeno i kolo 
ostaje  u  istom  stanju,  bez  obzira  na  eventualne  promene  vrednosti  ulaznih  signala  S  i  R.  Drugim 
rečima,  sve  dok  je  C=1,  leč  reaguje  na  promene  ulaznih  signala.  Onog  trenutka  kada  C  postane 
jednako 0, trenutno stanje leča se “zamrzava”, sve do trenutka kada C ponovo postane 1, a onda leč 
nastavlja normalno da funkcioniše. 
C S R Q Q(next)

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

(a)  (b)  (c) 


Sl. 2‐4. SR leč sa dozvolom: (a) grafički simbol; (b) logička šema; (c) tabela istinitosti. 

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. 

(a)  (b)  (c) 


Sl. 2‐5. D leč sa dozvolom: (a) grafički simbol; (b) logička šema; (c) tabela istinitosti. 

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

Q2m 5.0 4.0

3.0
Q2s 4.0

Q3m 5.0 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. 

2.1.1.5 Tipovi flip-flopova


Postoji  nekoliko  tipova  flip‐flopova  koji  se  razlikuju  po  funkciji  i  načinu  konstrukcije.  Opšte 
karakteristike  svih  flip‐flopova  su  sledeće:  (a)  flip‐flop  menja  stanje  sa  rastućom  (ili  opadajućom) 
ivicom  taktnog  signala;  (b)  ulazi  podataka  moraju  biti  stabilni  u  vremenu  tsetup  pre  i  vremenu  thold 
nakon aktivne ivice taktnog signala. 
U primeni su četiri osnovna tipa flip‐flopova: SR, JK, D i T, koji se razlikuju po broju ulaza i načinu na 
koji  flip‐flop  reaguje  na  ulazne  vrednosti.  Flip‐flop  se  opisuje  grafičkim  simbolom,  tabelom  prelaza, 
prenosnom  funkcijom  i  tabelom  pobude.  Tabela  sa  Sl.  2‐10    sadrži  definicije  četiri  tipa  flip‐flopova. 
Grafički  simbol  pokazuje  broj  i  tipove  ulaza  i  izlaza.  Svi  flip‐flopovi  imaju  izlazne  signale  Q  i  Q’. 

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. 

2.2 Registarske komponente


Registar je memorijska komponenta koja se sastoji od n flip‐flopova sa zajedničkim taktnim signalom. 
Sinhronizovano  sa  aktivnom  (rastućom  ili  opadajućom)  ivicom  taktnog  signala,  u  svaki  flip‐flop 
upisuje se jedan bit informacije. U svom osnovnom obliku, pored taktnog signala, registar ima n ulaza 
i n izlaza. Na Sl. 2‐13 prikazan je primer 4‐bitnog registra. Grafički simbol 4‐bitnog registra dat je na Sl. 
2‐13(a),  dok  je  na  Sl.  2‐13(b)  prikazana  njegova  unutrašnja  struktura,  koju  čine  četiri  paralelno 
povezana D flip‐flopa. 

   
(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. 

2.2.1 Pomerački registar


Na primeru registra sa dozvolom pokazano je kako se postavljanjem multipleksera ispred ulaza flip‐
flopova  može  kontrolisati  upis  u  registar.  Sledeći  sličnu  logiku,  multiplekseri  se  mogu  iskoristiti  i  za 
pomeranje  podatka  zapamćenog  u  registru.  Ovakav  tip  registra  se  zove  pomerački  registar  i 
omogućava  pomeranje  upisanog  sadržaja  za  jednu  bit‐poziciju.  U  osnovnoj  varijanti,  pomerački 
registar poseduje upravljački signal Shift  koji kada je jednak 1 postavlja registar u režim pomeranja. 
Na Sl. 2‐16 je prikazan primer 4‐bitnog pomeračkog registra. Serijski ulaz, IL, se koristi za unos novog 
1‐bitnog  podatka  u  krajnji  levi  flip‐flop  registara.  Pomerački  registar,  kao  što  je  registar  sa  Sl.  2‐16, 
tipično se koristi za konverziju informacije iz serijskog u paralelni oblik. Iz tog razloga, ovakav registar 
se zove i pomerački registar sa serijskim ulazom i paralelnim izlazom (SIPO – Serial‐In, Parallel‐Out). 

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. 

2.2.2 Binarni brojač


Binarni brojač je posebna vrsta registara koji sadrži inkrementer, što omogućava brojanje. Na primer, 
na Sl. 2‐18 je prikazan 4‐bitni binarni brojač koji ima dva upravljačka signala: signal dozvole (E), koji 
kada  je  1  omogućava  brojanje  i  signal  Rst  koji  resetuje  brojač,  tj.  postavlja  ga  u  stanje  0.  Grafički 
simbol 4‐bitnog binarnog brojača prikazan je na Sl. 2‐18(a), a tabela operacija na Sl. 2‐18(b). Shodno 
Sl. 2‐18(d) inkrementer se sastoji od niza polusabirača (half‐adder – HA) raspoređenih tako da su dva 
ulaza polusabirača na bit‐poziciji i povezani na izlaz i‐tog flip‐flopa Qi i izlazni prenos polu‐sabirača sa 
pozicije i‐1, Ci. Uočimo da će nova vrednost flip‐flopa Di biti 1 ako važi da je bilo Qi bilo Ci, ali ne oba, 
jednako 1. Suprotno tome, izlaz Ci+1 biće jednak 1 samo ako su Qi i Ci oba jednaki 1. Tabela istinitosti 
polu‐sabirača data je na Sl. 2‐18(c). Polazeći od ove tabele dolazimo do sledećih jednačine za Di i Ci+1: 

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. 

2.2.3 Obostrani brojač


Obostrani  brojač,  tj.  brojač  koji  može  brojati  i  naviše  i  naniže,  konstruiše  se  tako  što  se  u  brojaču 
naviše  polusabirači  zamene  polu‐sabiračima/oduzimačima  (half‐adder/substractor  –  HAS).  HAS 
moduli, pod kontrolom signala za izbor smera brojanja, obavljaju inkrementiranje ili dekrementiranje. 

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

HAS HAS HAS HAS

D3 Q3 D2 Q2 D1 Q1 D0 Q0

Q3' Q2' Q1' 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. 

2.2.4 BCD brojač


Brojač sa paralelnim upisom može biti iskorišćen za konstrukciju drugih tipova brojača. Jedna takva 
primena je BCD brojač koji broji na sledeći način: 0, 1, 2, 4, 5, 6, 7, 8, 9, 0, ... Kao što je pokazano na 
Sl. 2‐21(a), BCD brojač se može konstruisati tako što će se detektovati kada brojač stigne u stanje 9, a 
onda, u sledećem taktnom ciklusu, umesto prelaza u stanje 10, u brojač upisati 0. Detekcije stanje 9 
ostvarena je uz pomoć AND kola čiji je izlaz jednak 1 kada je sadržaj brojača 1001 (tj. decimalno 9). 
Izlaz AND kola je povezan sa ulazom Load brojača, što omogućava da se sa sledećom rastućom ivicom 
taktnog signala u brojač upiše 0. 
Obostrani BCD brojač se konstruiše na sličan način. U smeru “naviše”, u brojač treba upisati 0 uvek 
kada  njegovo  stanje  postane  9,  dok  u  smeru  “naniže”  u  brojač  treba  upisati  9  kada  njegovo  stanje 
postane 0. Kao što je prikazano na Sl. 2‐21(b), za izbor između upisa 0 ili 9 koristi se multiplekser, dok 
se detekcija stanja 0 i 9 vrši uz pomoć AND‐OR mreže. 
1001 0000

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

2.2.5 Registarski fajl


U  prethodnim  odeljcima  opisani  su  različiti  tipovi  registara  i  brojača,  od  kojih  se  svaki  sastoji  od  m 
flip‐flopova  i  dodatne  kombinacione  logike.  Međutim,  takođe  je  moguće  rasporediti  flip‐flopove  u 
dvodimenzionalno  polje  koje  će  sadržati  2n  vrsta  od  po  m  flip‐flopova.  Svaka  vrsta  u  jednoj  takvoj 
dvodimenzionalnoj  strukturi,  koja  se  zove  registarski  fajl,  može  se  smatrati  jednim  registrom. 
Registarski fajl memoriše istu količinu informacije kao i 2n nezavisnih  m‐bitnih registara. Međutim, s 
obzirom  na  regularnost  strukture,  registarski  fajl  zahteva  manji  broj  internih  veza,  a  time  i  manju 
površinu  na  mikročipu  u  odnosu  na  odgovarajući  broj  nezavisnih  registara.  Uz  to,  flip‐flopovi 
registarskog fajla se mogu realizovati sa manjim brojem tranzistora.  

   
(a)  (b) 
I3 I2 I1 I0

Dekoder za
čitanje
0
2-u-4

RFC RFC RFC RFC

0
1

WA1 RFC RFC RFC RFC RA1

WA0 RA0
1
2
WE RE
RFC RFC RFC RFC

2
3

RFC RFC RFC RFC

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

0 … 000 0 011… 0100


0 … 001 1 011… 0100
0 … 010 2 101… 0011
0 … 011 3 011… 1010
0 … 100 4 010… 1100
0 … 101 5 000… 0001
0 … 110 6 110… 1000
0 … 111 7 101… 0110
. . .
. . .
. . .
1 … 110 2n-2 000 … 0001
1 … 111 2n-1 111 … 1101
m bita
   
(a)  (b) 
Sl. 2‐24. RAM memorija: (a) memorijske adrese i sadržaj; (b) grafički simboli. 

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. 

2.2.7.1 Realizacija na bazi pomeračkih registara


Prilikom  projektovanja  steka,  važno  je  uočiti  da  se  zapamćeni  podaci  pomeraju  za  jednu  poziciju 
naniže,  odnosno  naviše,  prilikom  izvođenja  operacija  upisa  i  čitanja.  Na  osnovu  ovog  zapažanja 
zaključujemo  da  za  realizaciju  steka  treba  koristiti  pomeračke  registre  u  kombinaciji  sa  obostranim 
brojačem za detekciju praznog, odnosno punog steka. Ove komponente su korišćene za realizaciju m‐
bitnog  steka  dubine  4  koji  je  prikazan  na  Sl.  2‐29.  Konkretno,  za  realizaciju  su  korišćeni  univerzalni 
pomerački  registar  ‐  vidi  Sl.  2‐17  i  obostrani  brojač  sa  Sl.  2‐19.  Uočimo  da  ovaj  stek  ima  m  ulaznih 
linija INi i m izlaznih linija OUTi, 0≤i≤m‐1. Takođe, stek ima tri upravljačka signala, Push/pop, Enable i 
Reset.  
Signal Push/pop upravlja upisom i čitanjem iz steka. Kada je Push/pop=0, podatak se upisuje u stek; 
kada  je  Push/pop=1,  podatak  se  čita  iz  steka.  Signal  Enable  omogućava  (dozvoljava)  rad  steka,  dok 
signal Reset, uvek kada je 0, briše sadržaj pomeračkih registara i resetuje obostrani brojač. Rad steka 
je opisan tabelom operacija sa Sl. 2‐29(a). Uočimo da stek ima dva izlazna signala, Empty i Full, koji 
ukazuju  na  status  steka,  na  sledeći  način:  ako  je  stek  prazan,  signal  Empty  ima  vrednost  1;  s  druge 
strane, kada Full ima vrednost 1, stek je pun (Sl. 2‐29(c)). 
Na  Sl.  2‐29(d)  se  može  videti  da  se  stek  sastoji  iz  m  4‐bitnih  pomeračkih  registara  tako  da  svakom 
ulazu  odgovara  jedan  pomerački  registar.  Pri  svakom  upisu  u  stek,  svi  pomerački  registri  obavljaju 
operaciju  pomeranja  udesno.  Slično,  pri  svakom  čitanju  iz  steka,  svi  pomerački  registri  obavljaju 
operaciju  pomeranja  ulevo.  Svaki  novi  podatak  koji  se  stavlja  na  stek,  preko  ulaza  IL  pomeračkog 
registra se upisuje se na poziciju Q3  pomeračkih registara, koja predstavlja vrh steka. Stanje brojača 
ukazuje  na  broj  podataka  u  steku.  Sinhronizovano  sa  svakom  rastućom  ivicom  taktnog  signala, 
pomerački registri obavljaju pomeranje udesno, a brojač broji unapred za 1 (Push/pop=0 i Enable=1), 
odnosno pomeranje ulevo i brojanje unazad (Push/pop=1 i Enable=1). 

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 

(a)  (b)  (c) 

 
(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: 

2.2.7.2  Realizacija na bazi RAM-a


Glavna  slabost  rešenja  steka  sa  Sl.  2‐29  ogleda  se  u  činjenici  da  je  za  realizaciju  steka  veće  dubine 
potreban  veliki  broj  ¨skupih¨  pomeračkih  registara.  Iz  tog  razloga,  za  realizaciju  steka  većeg 
kapaciteta koristi se RAM. Međutim, pošto RAM nema mogućnost pomeranja memorisanog sadržaja, 
operacije  push  i  pop  moraju  biti  realizovane  na  drugačiji  način  –  promenom  tekuće  lokacije  vrha 
steka.  Drugim  rečima,  kada  se  podatak  stavlja  na  stek,  adresu  vrha  steka  treba  povećati  za  jedan. 
Suprotno,  kada  se  podatak  uzima  sa  steka,  adresu  vrha  steka  treba  smanjena  za  jedan.  Dakle,  pri 
svakom upisu podatka, podatak se upisuje na vrh steka, a adresa vrha se povećava za jedan, tako da 
vrh steka uvek ukazuje na praznu lokaciju u  koju će biti  upisan  sledeći  podatak. S druge strane, pri 
svakom čitanju podatka, podatak se uzima iz lokacije koja se nalazi odmah ispod vrha steka, na adresi 
za jedan manje od adrese vrha steka.  Sledeći ovu logiku, znamo da je za RAM memoriju kapaciteta 2n 
reči stek prazan ako je vrh steka na adresi 0, a pun ako je vrh na adresi 2n‐1. Uočimo da se lokacija sa 
adresom 2n‐1 nikada ne koristi za smeštanje podatka, već samo za određivanje da li je stek pun. Iako 
se  na  ovaj  način  gubi  jedna  od  2n  raspoloživih  reči  RAM  memorije,  opisani  pristup  značajno 
pojednostavljuje izlaznu logiku. 
Na Sl. 2‐30 je prikazana realizacija steka koja koristi RAM memoriju kapaciteta 1K (210) i dva brojača 
koji  ukazuju  na  vrh  steka  i  prvu  lokaciju  ispod  vrha.  Uočimo  da  su  ulazi,  izlazi  i  operacije  steka 
identične kao na Sl. 2‐29.  Kao što se vidi sa Sl. 2‐30(d), stek sadrži: dva 10‐bitna brojača, jedan 10‐
bitni  multiplekser  2‐u‐1,  1K  RAM,  upravljačku  i  izlaznu  logika.  Dva  brojača,  nazvana  Top  i  Top‐1, 
razlikuju  se  za  1,  i  oba  se  uvećavaju  za  jedan  pri  svakoj  operaciji  push,  a  smanjuju  za  jedan  pri 
operaciji pop. Pri operaciji push, adresa RAM‐a je sadržaj brojača Top, dok pri operaciji pop, adresa 
RAM‐a je sadržaj brojača Top‐1. 
Polazeći od prethodnog razmatranja, u mogućnosti smo da konstruišemo tabelu upravljanja koja je 
prikazana  na  Sl.  2‐30(c)  koja  sadrži  vrednosti  svih  internih  signala  koji  upravljaju  brojačima, 
multiplekserom  i  RAM  memorijom  kako  pri  push  i  tako  i  pri  pop  operaciji.  Na  osnovu  ove  tabele, 
možemo izvesti sledeće jednačine za upravljačku 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

Push/pop Enable Operacija 


X 0 Bez promene 
0 1 Upis (push) 
1 1 Čitanje (pop) 

(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. 

2.2.8.1 Realizacija na bazi pomeračkih registara


Imajući  u  vidu  da  je  unutar  reda  čekanja  redosled  pristizanja  podataka  očuvan,  FIFO  možemo 
konstruisati uz pomoć pomeračkih registara u kombinaciji sa brojačem koji će brojati važeće podatke 
u redu. Takva jedna realizacija FIFO‐a prikazana je na Sl. 2‐33(c), a tabela operacija na Sl. 2‐33(a). Kraj 
reda je uvek na poziciji Q3 pomeračkih registara, dok se početak pomera za jednu poziciju udesno, pri 
svakom  upisu  novog  podatka.  Pri  upisu,  podatak  se  upisuje  na  poziciju  Q3,  pomerački  registri 
pomeraju  svoj  sadržaj  za  jednu  poziciju  udesno,  a  brojač  se  inkrementira  tako  da  njegov  sadržaj 
ponovo  ukazuje  na  prvo  upisani  podatak.  S  druge  strane,  pri  svakom  čitanju  podatka  iz  reda,  uz 

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: 

2.2.8.2 Realizacija na bazi RAM-a


Kao  i  kod  steka,  redovi  čekanja  veće  dužine,  obično,  umesto  pomeračkih  registara,  za  smeštanje 
podataka koriste RAM i sadrže dva brojača koji ukazuju na početak i kraj reda. Takva jedna struktura 
poznata je pod nazivom kružni bafer. Simbolička predstava kružnog bafera prikazana je na Sl. 2‐34. 
Uočimo da struktura sa Sl. 2‐35(a) koristi RAM memoriju kapaciteta 1K reči i dva brojača, označena 
kao  Početak  i  Kraj.  Brojač  Početak  sadrži  adresu  najranije  upisanog  podatka.  Uvek  kada  se  zahteva 
operacija  čitanja,  podatak  se  čita  sa  adrese  na  koju  ukazuje  brojač  Početak  i  postavlja  na  U/I 
magistralu, a brojač Početak se inkrementira. Brojač Kraj sadrži adresu prve prazne lokacije u redu. 
Prilikom operacije upisa, podatak se upisuje na lokaciju na koju ukazuje brojač Kraj, a brojač Kraj se 
inkrementira. Ukoliko se podaci iz reda češće čitaju nego upisuju, desiće se situacija da bajač Početak 
ukazuje  na  istu  lokaciju  kao  i  brojač  Kraj,  što  znači  da  je  red  prazan.  Sa  druge  strane,  ako  se  u  rad 
podaci češće upisuju nego što se čitaju, brojač Kraj koji se inkrementira po modulu 1024, u jednom 
trenutku ukazivaće na istu lokaciju kao i brojač Početak, što, međutim, sada znači da je red pun. Da bi 
se izbegla dvosmislenost u značenju uslova Početak=Kraj, umesto 10‐bitnih možemo koristiti 11‐bitne 
(po  modulu  2048)  brojače.  Za  adresiranje  se  koriste  10  nižih  bitova,  dok  svih  11  učestvuju  u 
ispitivanju  uslova  Početak=Kraj.  Kod  ovakve  realizacije,  red  čekanja  je  prazan  ako  su  sadržaji  oba 
brojača identični, a pun ako se sadržaji brojača razlikuju samo na bitu najveće težine. 

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. 

2.3 Konačni automati


Konačni  automati  (engl.  Finite  State  Machine  –  FSM)  predstavljaju  najznačajniju  tehniku  za 
modeliranje  ponašanja  sekvencijalnih  kola,  koja  je  naročito  pogodna  za  projektovanje  pojedinih 
tipova  digitalnih  sistema  (kao  što  su  to  upravljačke  jedinice)  čija  se  funkcija  može  opisati  precizno 
definisanom sekvencom aktivnosti. Formalno, konačni automat se definiše kao uređena petorka: 
<S, I, O, f, h> 
gde su S, I i O skup stanja, skup ulaza i skup izlaza, respektivno, dok su f i h funkcija sledećeg stanja i 
funkcija  izlaza.  Funkcija  sledećeg  stanja,  f,  definiše  se  kao  preslikavanje  → .  Drugim  rečima, 
funkcija f svakom paru stanja i ulaznog simbola pridružuje simbol stanja. Model konačnog automata 
podrazumeva  da  je  vreme  podeljeno  na  intervale  fiksnog  trajanja,  a  da  se  prelaz  iz  jednog  u  drugo 
stanje  dešava  na  početku  svakog  vremenskog  intervala.  Znači,  za  dato  stanje  i  ulazne  vrednosti  u 
tekućem  vremenskom  intervalu,  funkcija  f  definiše  u  kom  će  stanju  konačni  automat  biti  u  toku 
sledećeg vremenskog intervala. 
Funkcija izlaza, h, određuje izlazne vrednosti u tekućem stanju automata. Postoje dve vrste konačnih 
automata,  kojima  odgovaraju  dve  različite  definicije  funkcije  izlaz  h.  Jedna  vrsta  se  zove  Murov,  a 
druga  Milijev  konačni  automat.  Kod  Murovog  konačnog  automata,  funkcija  h  je  definisana  kao 
preslikavanje:  → , što znači da je svakom stanju pridružen izlazni simbol – tj. izlaz zavisi samo od 
tekućeg  stanja.  Kod  Milijevog  konačnog  automata,  funkcija  h  je  preslikavanje:  → .  U  ovom 
slučaju,  u  svakom  stanju,  izlazni  simbol  je  određen  parom  stanje  –  ulazni  simbol,  tj.  izlaz  zavisi  od 
tekućeg stanja i trenutne vrednosti ulaza. 
Shodno definiciji konačnog automata, skupovi S, I i O mogu imati proizvoljan broj simbola. Međutim, 
kod praktičnih problema, barata se samo sa binarnim promenljivim, binarnim operatorima i binarnim 

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. 

2.4 Staza podataka2


Staza  podataka  (datapath)  je  kolekcija:  (a)  funkcionalnih  jedinica,  kako  što  su  ALU,  množači  i 
pomerači, (b) registara ili drugih memorijskih kola, povezanih u složenu hardversku strukturu pomoću 
magistrale  ili  multipleksera.  Staze  podataka  su  sastavni  deo  svih  standardnih  procesora  i  ASIC  kola, 
gde se koriste za izvršenje složenih numeričkih izračunavanja i manipulaciju podacima. 
Razmotrimo, na primer, realizaciju staze podataka za sabiranje 100 32‐bitnih brojeva: 

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

S4 Temp = Podatak AND


Mask

S5 BrojJedinica = BrojJedinica + Temp


Podatak ≠ 0

S6 Podatak = Podatak >> 1


Podatak = 0

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

Q2 Q2' Q1 Q1' Q0 Q0'


Start

D2 Q2

Q2'

D1 Q1

Q1'

D0 Q0

Clk Q0'
Logika
sledećeg stanja

Done Podatak=0 Ulaz

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).
 
 

2.4.1 Paralelna staza podataka


U prethodnoj sekciji opisano je više primera jednostavnih staza podataka. Međutim, za primene koje 
zahtevaju veliku brzinu obrade podataka, takve, jednostavne staze podataka bile bi verovatno previše 
spore. Povećanje performansi zahteva redizajniranje ovih staza podataka na način koji će omogućiti 
konkurentno izvršenje više operacija. Staze podataka koje omogućavaju istovremeno (konkurentno) 
izvršenje više opcija zovu se paralelne staze podataka.  
Očigledan  način  za  paralelizaciju  staze  podataka  sastoji  se  u  povećanju  broja  portova  registarskog 
fajla  i  korišćenju  nekoliko  funkcionalnih  jedinica,  kao  što  je  prikazano  na  primeru  paralelne  staze 
podataka sa Sl. 2‐42. Uočimo da ova staza podataka ima 6‐to portni registarski fajl (4 porta za čitanje i 
2 za upis), šest magistrala (četiri za prenos operanada i dve za prenos rezultata) i četiri funkcionalne 
jedinice (ALU, pomerač, množač i delitelj). Prikazana staza podataka može da izvršava dve operacije u 
paraleli, jednu u ALU jedinici ili pomeraču i drugu u množaču ili delitelju. 
Staza  podataka  sa  Sl.  2‐42,  ipak  omogućava  samo  ograničen  paralizam,  s  obzirom  da  ne  može 
istovremeno  da  obavlja  bilo  koje  dve  operacije.  Na  primer,  u  ovoj  stazi  podataka  nije  moguće  u 
paraleli obaviti dva sabiranja ili dva množenja (zato što postoji samo jedna ALU jedinica i samo jedan 
množač).  Drugim  rečima,  staza  podataka  sa  Sl.  2‐42  može  ispoljiti  dva  puta  bolje  performanse  u 
odnosu  na  jednostavne  (sekvencijalne)  staze  podataka  iz  prethodne  sekcije,  samo  pod  uslovom  da 
algoritam  ne  zahteva  ovakav  tip  paralelizma.  Takođe,  u  ovoj  stazi  podataka  komponente  nisu 
potpuno povezane, što znači da izvesni tipovi paralelizma, koji iako postoje u algoritmu, neće moći 
biti  iskorišćeni.  Na  primer,  s  obzirom  da  ALU  jedinica  i  pomerač,  kao  i  množač  i  delitelj  koriste 
zajedničke  magistrale  za  prenos  operanada  i  rezultata,  staza  podataka  ne  može  u  isto  vreme  da 
izvršava operaciju množenja i operaciju deljenja, odnosno operaciju sabiranja i operaciju pomeranja. 
Drugim rečima, čak iako algoritam omogućava istovremeno izvršenje operacija sabiranja i pomeranja, 
staza  podataka  je  u  mogućnosti  da  u  jednom  taktnom  ciklusu  obavlja  samo  jednu  od  ove  dve 
operacije, bez obzira što hardverski resursi, u vidu funkcionalnih jedinica, postoje. 

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

ALU1 ALU2 Množač

 
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

You might also like