Professional Documents
Culture Documents
Digitalna Elektronika Skripta PDF
Digitalna Elektronika Skripta PDF
Burny Nndor
Divki Szabolcs
Digitalna elektronika
-skripta-
Subotica, 2007.
-1-
Predgovor
Skripta je napisana za studente druge godine Vie Tehnike kole u Subotici i sadri
gradivo predavanja iz predmeta Digitalna elektronika. Ovaj predmet predstavlja neposredni
nastavak predmeta Digitalna tehnika i Analogna elektronika. U Digitalnoj tehnici studenti su se
upoznali sa logikim osnovama digitalnog projektovanja. Glava o logikim kolima u Analognoj
elektronici pruala je uvid u hardverska reenja koja ine osnove digitalnih ureaja.
Skripta obrauje aktuelna reenja za realizaciju digitalnih kola prema programu za
predmet Digitalna elektronika. Polazi se od (I. deo) optih pitanja vezanih za fiziku realizaciju. U
nastavku (II. deo) se razmatra projektovanje zasnovano na kolima malog i srednjeg stepena
integracije (SSI, MSI) koje je svoj vrhunac dostiglo sedamdesetih i osamdesetih godina XX veka.
Sedamdesetih godina XX veka su se pojavila kola koja se programiraju softverski
(mikroprocesori, mikrokontroleri) a ubrzo zatim i kola koja se programiraju hardverski
(programmable logic device PLD). U okviru drugih predmeta e se studenti upoznati sa kolima
koja se softverski programiraju. Digitalno projektovanje zasnovano na PLD-ovima se detaljno
obrauje u okviru ovog predmeta. U cilju toga III. deo skripte prikazuje savremeni alat za
hardversko programiranje, jezik za opis hardvera Verilog. U ovom predmetu se stie do opisa jezika
i do raunarskih simulacija. U okviru predmeta Projektovanje elektronskih ureaja e se studenti
upoznati sa softverima za automatsku sintezu digitalnih kola i sa samim postupkom programiranja.
Karakteristino je za savremeni nain projektovanja da vei deo zadatka u digitalnim
sistemima obavljaju mikroprocesori i mikrokontroleri koji se softverski programiraju kao i PLD-ovi
koji se hardverski programiraju dok je uloga SSI i MSI kola da obavljaju pomone zadatke
(pobuivanje, prilagoavanje nivoa itd.).
Ureaji koji se softverski programiraju imaju iru oblast primene i veoma su pogodni za
obavljanje sloenih zadataka kao to su upravljanje, merenje, prikazivanje rezultata itd. Meutim,
postoje i takvi zadaci obrade signala i upravljanja koji se ne mogu reiti mikroprocesorima ili
mikrokontrolerima, jer su oni previe spori za takve primene. U ovom sluaju reenje nam pruaju
kola sa hardverskim programiranjem.
U izvesnoj meri ureaji koji se softverski programiraju i ureaji koji se hardverski
programiraju su konkurencija jedan drugom ali u velikom broju primena oni se meusobno
dopunjuju. U mnogim ureajima pored mikrokontrolera se mogu nai i jedan ili vie PLD kola.
Programabilna logika kola su danas dostigla takav nivo sloenosti da je u njima mogue
realizovati ak i kompletan mikrokontroler. Na ovaj nain korisnik moe da projektuje i hardverski
programira integrisano kolo sa eljenim hardverskim resursima koji se zatim softverski programira
sa eljenim skupom naredbi. Ovakvi zadaci esto prevazilaze znanje jednog inenjera i zbog toga
proizvoai PLD ureaja podravaju ovaj pravac projektovanja nudei gotova reenja
projektantima.
Autori
-2-
Sadraj
-3-
Pitanja vezana za realizaciju digitalnih elektrinih kola
-4-
Pitanja vezana za realizaciju digitalnih elektrinih kola
-5-
Uvod
Digitalne realizacije su karakteristine u mnogim oblastima savremene tehnike.
Raunarska tehnika, telekomunikacije i upravljanje industrijskim procesima su oblasti koje najvie
prednjae u primeni digitalnih reenja.
U poetku su samo mehaniki i elektromagnetni prekidai (releji) bili na raspolaganju za
realizaciju digitalnih ureaja. Bilo je pokuaja za realizaciju digitalnih ureaja primenom
elektronskih cevi koje su dugo vremena drali monopol na polju analogne obrade signala. Prvi
elektronski raunar je sagraen pomou elektronskih cevi. Velike dimenzije, nedovoljna pouzdanost
u radu i znaajna potronja su bili faktori koji su spreili iru primenu ovih ureaja.
Nakon otkria tranzistora, skoro istovremeno su se pojavile analogne i digitalne primene.
Povezivanjem tranzistora, dioda i otpornika bilo je mogue izgraditi brza digitalna kola malih
dimenzija i male potronje. Od kraja pedesetih godina XX veka osnovu digitalne elektronike
nesporno su dala integrisana reenja. Razvoj tehnologije za proizvodnju poluprovodnikih
komponenata omoguilo je projektovanje (integrisanje) sve komplikovanijih elektrinih kola na
povrini jedne kristalne ploe.
Na poetku razvoja integrisanja elektrinih kola samo nekoliko logikih kapija je bilo mo-
gue smestiti na jednu ploicu. Ova tehnologija je dobila naziv mali stepen integracije (small scale
of integration SSI). Posle ovoga tehnologija srednjeg stepena integracije (medium scale of
integration MSI) je omoguila smetanje sloenijih celina (multipleksori, brojai itd.) na jednu
ploicu. U to vreme projektovanje digitalnih ureaja se sastojalo od spretne kombinacije SSI i MSI
integrisanih kola.
Smatralo se da e pravac razvoja dovesti do sve sloenijih elektrinih kola, koja e u
potpunosti integrisati sva neophodna digitalna reenja za funkcionisanje nekog ureaja. Ovakva
integrisana kola su projektovana npr. za digitalne satove, merne ureaje itd. Meutim, ubrzo je
postalo jasno da su primene toliko brojne da nije ekonomino posebno razvijati integrisana kola za
svaku primenu (application specific integrated circuit ASIC). Razvoj i proizvodnja integrisanih
kola je ekonomina samo ako se proizvodnja istih vri u velikim serijama.
Prepoznavanje ovih ogranienja je usmerilo razvoj u dva pravca. Sa jedne, strane pojavile
su se mikroprocesori koji se ne mogu samostalno primeniti u konkretne svrhe, ali njihovim
povezivanjem sa odgovarajuim pomonim elektrinim kolima (memorije, prilagodni stepeni itd.) i
dodavanjem softvera mogue je reiti proizvoljne probleme. Sa druge strane, digitalna kola koja se
hardverski programiraju (programmable logic device PLD) sadre veliki broj unapred proizvede-
nih logikih blokova, i hardverskim programiranjem se mogu povezati na nain da obavljaju eljenu
funkciju. Ova elektrina kola pripadaju kolima visokog stepena integracije (large scale integration
LSI) odnosno kolima vrlo visokog stepena integracije (very large scale integration VLSI).
Skriptu predlaemo svakome ko eli da se upozna sa osnovama digitalne elektronike.
Autori
-6-
I. Pitanja vezana za realizaciju digitalnih
elektronskih kola
Pitanja vezana za realizaciju digitalnih elektrinih kola
(a) (b)
Slika 1-1: Realizacija (a) I i (b) ILI logike funkcije pomou strujne logike.
Elektrina kola sa strujnom logikom su skoro izala iz upotrebe, ali proteklih godina kod
pojedinih reenja za integrisana kola su ponovo ula u centar interesovanja. Kod veine dananjih
digitalnih kola je naponska logika dominantna. Potrebna logika stanja se i kod naponske logike
postiu zatvaranjem ili otvaranjem prekidaa. U ovom sluaju cilj nije protok struje od ulazne take
(taaka) do izlazne take (taaka) nego dobijanje odreenih standardnih naponskih nivoa za repre-
zentaciju logike nule i jedinice.
Slika 1-2a prikazuje principijelnu emu jednog digitalnog (logikog) elementa sa napon-
skom logikom. Dva prekidaa (K1, K2) su redno vezana (mogu se posmatrati kao naponski deli-
telji). Slobodni izvodi su vezani na izvore koji obezbeuju naponske nivoe koji odgovaraju logikoj
jedinici (1) i nuli (0). Obino je re o jednom izvoru, iji se jedan kraj vee na potencijal zemlje
koji se smatra logikom nulom, dok potencijal prisutan na drugom kraju izvora se smatra logikom
jedinicom. Teoretski gledano, prekidai se mogu ukljuiti na etiri razliita naina koji su prikazani
u tabeli na slici 1-2b.
Funkcionisanje savremenih digitalnih ureaja se obino zasniva na dva naponska nivoa,
odnosno na dvema logikim vrednostima. Vrednost izlaza u prvom redu tabele je neodreena to
ukazuje na odstupanje od definicije dvovalentne logike. Poto su oba prekidaa iskljuena, izlaz Y
prelazi u stanje visoke impedanse koje se jo naziva i tree stanje (engl. three-state ili 3-state). U
tom sluaju drugi elementi prikljueni na istu taku odreuju naponski nivo izlaza datog logikog
elementa. Ova mogunost se koristi kod onih digitalnih ureaja kod kojih se komunikacija izmeu
vie logikih elemenata ostvaruje kroz jedinstveni zajedniki provodnik. U razliitim vremenskim
intervalima se aktiviraju razliiti logiki elementi. Aktivni element u datom trenutku upravlja
provodnikom, dok su drugi elementi u stanju visoke impedanse i njihovi uticaji na vrednost logi-
kog nivoa se mogu zanemariti.
-8-
Pitanja vezana za realizaciju digitalnih elektrinih kola
"1"
K1 K2 Y
0 0 Trecestanje
K1
Y 0 1 0
1 0 1
K2
1 1 Zabranjeno stanje
"0"
(a) (b)
Slika 1-2: (a) Principijelna ema logikog elementa sa naponskom logikom i (b) varijacije stanja prekidaa.
U drugom redu tabele K2 provodi, dok K1 ne provodi. Znai, izlaz Y je u kratkom spoju
sa zemljom (taka sa nultim potencijalom) i na taj nain se ostvaruje logika nula. Trei red
odgovara suprotnom sluaju, K1 provodi dok K2 ne provodi. Znai, na izlazu se pojavljuje
potencijal koji odgovara stanju logike jedinice. Realni prekidai u ukljuenom stanju ne
predstavljaju idealni kratak spoj i kao rezultat toga dolazi do promene napona na izlazu logikog
elementa pri optereenju. Prema tome, u realnim kolima, vrednosti logikih nivoa odstupaju od
idealnih. Slino ovome, vremena ukljuivanja i iskljuivanja su konana i zato se uticaji
upravljakih signala prenose sa izvesnim kanjenjima to dovodi do kanjenja u funkcionisanju
logikih elemenata. Ovi problemi se detaljno obrauju u narednim poglavljima.
Kombinacija prikazana u poslednjem redu tabele predstavlja nedozvoljeno stanje.
Prekidai K1 i K2 ne smeju biti istovremeno u stanju provoenja, jer bi to kratko spojio krajeve
naponskog izvora. Velika struja koja bi nastala kao posledica kratkog spoja, dovela bi do unitenja
prekidaa.
-9-
Pitanja vezana za realizaciju digitalnih elektrinih kola
Vo Vo
VDD VDD
Vi Vi
0 VDD/2 VDD 0 VIL VIH VDD
(a) (b)
Slika 1-3: Prenosne karakteristike logikog invertora: (a) idealan sluaj, (b) realan sluaj.
VDD
Vi
0 VTL VTH VDD
(a) (b)
Slika 1-4: (a) Prenosna karekteristika invertora sa histerezisom i (b) njegova ematska oznaka.
- 10 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
VOLMAX VOHMIN
VILMAX VIHMIN
0 VDD
Prema slici, margina smetnji za nizak ulazni logiki nivo je data sledeom formulom:
Kao to emo kasnije videti, velika margina smetnji predstavlja prednost ali zahteva veliki
napon napajanja koji dovodi do velike potronje. Korienje integrisanih kola sa velikom marginom
smetnji se preporuuje u industrijskim primenama gde je nivo smetnji znaajan.
1.2.4. Kanjenja
Ukljuivanje i iskljuivanje tranzistorskih prekidaa u digitalnim kolima se vri u
konanom vremenu. Kanjenje elektrinog kola je vreme koje protie izmeu pojave ulaznog
(upravljakog) signala i formiranja izlaznog logikog nivoa. Pored konanog vremena ukljuivanja
i iskljuivanja na kanjenja utiu i parazitne kapacitivnosti. Struje koje pune i prazne parazitne
kapacitivnosti su konane i zato se promene logikih nivoa deavaju u konanom vremenu.
Slika 1-6a prikazuje kanjenja jednog logikog invertora pri pobudi sa idealizovanim
ulaznim signalom (pravougaoni signal). Nakon pojave skoka u ulaznom signalu do promene
logikog nivoa izlaza dolazi tek posle proteklog vremena kanjenja tpHL odnosno tpLH. U realnosti
(slika 1-6b) nije mogue obezbediti idealni pravougaoni signal na ulazu digitalnih kola. Umesto
toga, signali koji se dovode na ulaze se dobijaju iz prethodnih stepena koji su veoma slini
posmatranom invertoru. U tom sluaju, kanjenje se rauna kao proteklo vreme izmeu preseka
signala sa linijom koja predstavlja polovinu logike amplitude ili napona napajanja (na slici 1-6b
obeleen sa 50%). Obino se razlikuju kanjenja pri silaznim (tpHL) i uzlaznim ivicama (tpLH).
50%
t t
50% 50%
t t
- 11 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
Slika 1-7: Grafiki prikaz intervala kanjenja u katalokim podacima za digitalna kola.
1.2.6. Potronja
U toku rada, digitalna kola troe struju iz izvora napajanja. U katalokim podacima se daje
prosena vrednost struje jer je ona zavisna od logikih nivoa na izlazu. Pored toga, potronja
digitalnih kola zavisi jo i od uestalosti promene logikih nivoa (frekvencija rada). Razlog za to je
da gornji i donji prekidai na slici 1-2a pri promeni logikih nivoa na kratko vreme provode
istovremeno da bi se smanjila vremena kanjenja. Otpornost prekidaa u provodnom stanju je
konana i zbog toga u fazi preklapanja (kada oba prekidaa vode) nee se javiti beskonana struja
ali e se potronja znaajno poveati u odnosu na statiko stanje. Slino, i punjenje i pranjenje
parazitnih kapacitivnosti u digitalnim kolima dovodi do poveanja potronje. Zbog kratkotrajnih
strujnih impulsa potrebno je filtrirati napon napajnja digitalnih kola kondezatorima dobrog kvaliteta
smetenih u blizini samog kola.
Maksimalna frekvencija rada digitalnog kola je u tesnoj vezi sa potronjom i kao osnov za
uporeivanje razliitih familija integrisanih kola uzima se proizvod potronje i kanjenja. Ovaj
proizvod se oznaava sa PDP (power-delay product) i jedinica mere je ista kao i za energiju (J
odnosno pJ).
PDP PD t p .
- 12 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
1.2.8. Kuita
Poluprovodnike ploice na kojima su realizovana integrisana kola se smetaju u
odgovarajua kuita radi adekvatne mehanike vrstoe i dobijanja masivnih prikljuaka.
Integrisana kola su dugi niz godina bila proizvedena u takozvanom DIL (dual in line dvorednom)
kuitu (slika 1-8a). Ugradnja se sastojala od umetanja noica integrisanog kola u otvore na
tampanoj ploici i od samog lemljenja. Rastojanje izmeu noica koje se nalaze u jednom redu je
standardno i iznosi 0,1 ina (2,54 mm). Za izradu kuita se koriste materijali koji imaju dobre
izolacione karakteristike kakvi su npr. plastika i keramika.
(a) (b)
(c) (d)
Slika 1-8: Kuita integrisanih kola: (a) DIL kuite, (b) SMD kuite tipa SO, (c) SMD kuite tipa PLCC,
(d) SMD kuite tipa BGA.
- 13 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
novih kuita koja se povrinski montiraju (surface mounted device SMD). Kuite SO (slika 1-
8b) je slino DIL kuitu, sa razlikom da su izvodi savijeni u obliku krila galeba kako bi obezbedili
dobro naleganje na povrinu tampane ploice. U poetku su rastojanja izmeu noica SO kuita
bila 0,05 ina (1,27 mm) a kasnije su ove mere jo smanjene. Kod PLCC kuita (slika 1-8c) postoje
izvodi na sve etiri strane, a za dodatno smanjenje dimenzija, noice su savijane ispod kuita. Kod
BGA kuita (slika 1-8d) ne postoje izvodi u klasinom smislu. Na donjoj strani kuita su
formirana metalna ostrva u ravni sa izolatorom. Pri lemljenju metalna ostrva se pozicioniraju na
lemne kugle smetene na tampanoj ploici i zagrevanjem celog integrisanog kola se formiraju
elektrini kontakti.
Kuita za povrinsku montau su bila skuplja u poetku i proces montae je bio kompli-
kovan. Meutim, razlika u cenama je ve oko 1990 godine bila na strani SMD tehnologije s tim da
ugradnju vre preteno roboti (osim kod maloserijske proizvodnje i popravki). Primena SMD
komponenti omoguava montiranje kola sa obe strane tampane ploice to dalje smanjuje
dimenzije ureaja.
1.3. Posledice kanjenja: hazardi
Posledice kanjenja (taka 1.2.4), osim kanjenja u formiranju izlaznih signala mogu biti i
privremene ili trajne greke u funkcionisanju ureaja. Greke koje nastaju zbog kanjenja se
nazivaju hazardima jer su nepredvidive i imaju tetne posledice.
Ako se posmatra jednostavno kolo koje je dato na slici 1-9, moe se ustanoviti da u
idealnom sluaju vrednost izlaza bi trebala uvek da bude logika nula jer (zbog prisustva invertora
na jednom ulazu I kola) ne mogu se pojaviti istovremeno dve jedinice na ulazima to je uslov za
formiranje logike jedinice na izlazu. U realnim okolnostima neophodno je ukljuiti u razmatranje i
kanjenje invertora koje je predstavljeno blokom Td. Zbog kanjenja, nakon uzlazne ivice
promenljive X, na oba ulaza I kola stiu logike jedinice u kratkom intervalu zbog ega vrednost
izlaza privremeno postaje logika jedinica.
Y
X
X Xd
Td
X
t
Xd
Yid
Ystv
Prikazane pojave u nekim sluajevima mogu da budu i korisne: na ovaj nain mogue je
generisati kratkotrajne impulse u okolini uzlazne ivice datog signala bez korienja pasivnog
diferencijatora ili nekog monostabilnog kola. U nastavku e se vriti analiza razliitih hazardnih
pojava i traie se reenje za otklanjanje hazarda.
- 14 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
B
I
A
Y
C
II
A Ad
Td
(a)
B t
BC
A 00 01 11 10
C
0 1 1
1 1 1
A
A
(c)
BC
Ad
A 00 01 11 10
redundantni
0 1 1
logicki proizvod
AB
1 1 1
AC
(d)
AdC
AB+AC Y(bezkasnjenja)
BC
(b)
Slika 1-10: Statiki hazard i njegovo otklanjanje: (a) minimizirana mrea, (b) vremenski dijagrami, (c)
Karnaugh-ova tabela sa oznaenim logikim proizvodima, (d) Karnaugh-ova tabela za dopunjenu mreu bez
hazarda.
Ako se zanemare sva kanjenja, na ulaz ILI kola dolazi logika jedinica ili iz jednog ili iz
drugog I kola i logiki nivo izlaza se odrava konstantno na logikoj jedinici (slika 1-10b). Ako se
ukljui u razmatranje kanjenje invertora, vrednost logikog proizvoda AB padne na nulu pre nego
to proizvod ( A)C postigne vrednost logike jedinice i kao rezultat, dobija se privremena logika
- 15 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
nula na izlazu. Ovo se smatra hazardom jer moe da dovodi do ozbiljnih smetnji u radu narednih
stepena.
Za otklanjanje hazarda posmatrajmo Karnaugh-ovu tabelu prikazanu na slici 1-10c.
Statiki hazard nastupa zato to se prim implikanti koje sainjavaju logiku funkciju, dodiruju
umesto da se preklapaju. Ako je pri promeni ulaznih promenljivih potrebno prei iz jednog prim
implikanta u drugi, moe se javiti prelaz ne preko susedne ivice ve preko polja tabele na kojoj je
vrednost logike funkcije nula. Za vreme takvog prelaza javlja se hazard.
Jedan nain za otklanjanje hazarda je izmena logike datog digitalnog kola. Uvoenjem
redundantnog logikog proizvoda (prikazan isprekidanom linijom na slici 1-10d) koji pokriva mesto
prelaza, otklanja se mogunost pojave hazarda. Redundantni logiki proizvod je realizovan pomou
I kola koje je prikazano isprekidanom linijom na slici 1-10a. Analizom se moe pokazati da I kolo
koje je dodato funkciji predstavlja takav logiki proizvod, koji je u toku minimizacije izostavljen jer
(ako se zanemari hazard) je bio suvian pri realizaciji date logike funkcije.
Postoje i druge metode za otklanjanje statikih hazarda. Jedan pristup je da se kanjenja
nastala u jednoj grani kola, kompenzuju namerno postavljenim kanjenjima u drugim granama kola.
Drugi, veoma esto primenjen pristup je korienje takt signala za sinhronizaciju. Sinhronizacija
omoguava kontrolu nad vremenskim trenucima kada je dozvoljeno korienje izlaznih vrednosti
digitalnog kola. Zabrana treba da traje dovoljno dugo da eventualni hazard iezne pre pojave
novog signala dozvole.
X1...Xn
Y1
M1
Y=Y1Y2d
(a) Y2 Y2d
M2 Td
Y1id t
Idealna situacija
Y2id
(bezhazarda)
(b)
Yid=Y1idY2id
Y1
Y2
Stvarnasituacija
(c) (sahazardom)
Y2d
Dinamicki hazard
Y=Y1Y2d
Kao primer posmatrajmo kolo koje je prikazano na slici 1-11a. Kolo sadri dve podmree
(M1 i M2). Pretpostavimo, da funkcija logike mree M1 stadri statiki hazard koji na izlazu
prouzrokuje privremenu logiku jedinicu. Ako pri tome promena na izlazu mree M2 kasni za Td2,
onda pomou dijagrama na slici 1-11c se moe pokazati, da vrednost izlaza Y nee trajno prei u
- 16 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
stanje logike nule kada vrednost izlaza Y2 opadne na nulu (to bi bilo u idealnom sluaju), nego e
se javiti jedan niz prelaza 1-0-1-0 na izlazu.
Dinamiki hazardi mogu da prouzrokuju ozbiljne smetnje u radu narednih stepena kod
digitalnih ureaja. Pojava dinamikog hazarda je u znaajnoj meri posledica statikog hazarda u
nekoj podmrei. Ako se otklone statiki hazardi i dinamiki hazard e nestati.
BC
A 00 01 11 10
0 0 1 0 0 ABC: 101 -----> 110
(a) Y : 1 -----> 1
1 0 1 1 1
Bi Csemenjaju istovremeno.
BC
A 00 01 11 10
0 0 1 0 0 ABC: 101 ---> 100 ---> 110
(b) Y : 1 ---> 0 --->1
1 0 1 1 1
Prvo semenja CzatimB.
BC
A 00 01 11 10
0 0 1 0 0 ABC: 101 ---> 111 ---> 110
(c) Y : 1 ---> 1 ---> 1
1 0 1 1 1
Prvo semenja BzatimC.
Na slici 1-12b se analizira sluaj kada se prvo vrednost promenljive C opadne na logiku
nulu, zatim posle kratkog kanjenja vrednost promenljive B postaje logika jedinica. Ovaj prelaz,
pri kojoj se pojavljuje kratkotrajna lana nula, oznaena je strelicama u Karnaugh-ovoj tabeli.
Kada se vrednosti ulaznih promenljivih menjaju u suprotnom redosledu (prvo se menja B,
a zatim C) tada se, na osnovu slike 1-12c, moe zakljuiti da nee doi do pojave hazarda.
Pristup u otklanjanju funkcionalnih hazarda se moe sastojati od uvoenja planiranih ka-
njenja ali za sistematsko reenje ovog problema je neophodna sihronizacija ulaza sa taktom.
1.4. Tehnologije izrade integrisanih kola
Digitalna kola se mogu realizovati u razliitim tehnologijama. Pri tome optimizacija
pojedinih parametara se vri na manji ili vei utrb drugih karakteristika. Npr. smanjenem kanjenja
mogue je poveati maksimalnu frekvenciju rada ureaja ali to povlai za sobom i vee gubitke. Ili,
smanjenjem napona napajanja smanjuju se gubici ali se pogorava margina smetnji itd.
- 17 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
Na desnoj strani dijagrama su prikazane one familije integrisanih kola (TTL, S, LS, ...) koje
su se poele proizvoditi ezdesetih i sedamdesetih godina XX. veka i njihova popolarnost je ve
opala do danas. Na vrhu dijagrama se nalaze ona kola koja su razvijena osamdesetih godina i danas
su najzastupljeniji proizvodi u industriji.
Na levoj strani su prikazane familije integrisanih kola u povoju koje su izraene novim i
obeavajuim tehnologijama. Veina prikazanih familija integrisanih kola se izrauju u CMOS
tehnologiji zbog manje potronje i bolje prenosne karakteristike. Danas se bipolarne tehnologije
najvie primenjuju u onim oblastima gde su potrebne velike struje za pobudu.
- 18 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
Slika 1-15: Logiki nivoi pojedinih familija integrisanih kola i njihova meusobna kompatibilnost.
- 19 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
Tabela u gornjem desnom uglu slike prikazuje kompatibilnost izmeu pojedinih familija
logikih kola. Logiki nivoi integrisanih kola unutar jedne familije su uvek kompatibilni.
Povezivanje integrisanih kola iz razliitih familija je mogue samo ako su ispunjeni uslovi VOL<VIL
i VOH>VIH. Ponekad se desi da koriena familija integrisanih kola ne sadri potrebnu logiku
funkciju. U takvoj situaciji se potrebno logiko kolo bira iz druge familije koja je kompatibilna sa
prvom. Za postizanje kompatibilnosti mogu se koristiti specijalna kola za sprezanje.
U tabeli su i takve familije oznaene kao kompatibilne kod kojih je izlazni visoki logiki
nivo (VOH) pobudnog kola (D) vilji od napona napajanja (VCC) prijemnog kola (R). Takva veza je
dozvoljena samo u sluaju ako proizvoa za datu familiju logikih kola dozvoljava napon na ulazu
vei od napona napajanja.
Slika 1-16: Zavisnost kanjenja od primenjenog napona napajanja za razne familije logikih kola.
- 20 -
Pitanja vezana za realizaciju digitalnih elektrinih kola
Slika 1-17: Izbor logikih funkcija realizovanih u raznim familijama logikih kola.
- 21 -
II. Digitalno projektovanje primenom
SSI i MSI funkcionalnih jedinica
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
2. Kombinacione mree
Kombinacione mree su digitalna kola kod kojih se vrednost izlaza odreuje na osnovu
trenutne vrednosti ulaza. U realnosti je potrebno neko odreeno vreme (zbog kanjenja, poglavlje
1.3) za formiranje vaeeg izlaznog logikog nivoa posle svake promene vrednosti ulaza ali nakon
toga vrednost izlaza je nezavisna od prethodnih vrednosti ulaza. Ovo je naglaeno zbog toga jer
ponaanje sekvencijalnih mrea (3. glava) odstupa od navedenog.
Vrste kombinacionih mrea koje se obrauju u ovoj glavi se proizvode od ezdesetih
godina u obliku SSI i MSI funkcionalnih jedinica. Njihova primena se ne ograniava samo na
izgradnju digitalnih ureaja upotrebom SSI i MSI integrisanih kola. Ova reenja se takoe nalaze i u
strukturi mikrokontrolera, mikroprocesora i PLD-ova. Navedene funkcije se pojavljuju i u jezicima
za opis hardvera koji se koriste pri programiranju PLD-ova (III deo).
2.1. Kola za sprezanje
Povezivanje razliitih funkcionalnih jedinica se esto vri preko kola za sprezanje
(prilagoenje). Ova kola mogu da menjaju logike nivoe, prilagoavaju impedanse i proputaju
signale u direktnom ili u invertovanom obliku. Kod kola za sprezanja akcenat nije na logikim
funkcijama, nego na kolima za pojaavanje koja se koriste u prekidakom reimu. Obino se vei
broj kola za sprezanje (npr. osam komada) ugrauje u jedno DIL ili SO kuite i oni pripadaju
kategoriji SSI kola.
A Y A Y
Slika 2-1: ematske oznake kola za
sprezanje : a) bafer, b) invertor.
(a) (b)
U jednostavnijim sluajevima kola za sprezanje zahtevaju samo jedan napon napajanja. Ako
je potrebno povezati dve logike jedinice sa razliitim naponima napajanja, ulazni i izlazni deo kola
za sprezanje se povezuje na posebne izvore napajanja.
A B C D
Slika 2-2: Prenos signala preko
zajednikog provodnika korienjem
EA EB EC ED
kola za sprezanje sa tri stanja.
- 23 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
etiri idejna reenja kola za sprezanje sa tri stanja su u ponudi proizvoaa (slika 2-3).
Kola za sprezanje mogu da propuste signal bez invertovanja (slike a i c) ili sa invertovanjem (slike
b i d) dok signal dozvole moe da bude aktivan na logikoj jedinici (slike a i b) ili na logikoj nuli
(slike c i d). Obino se i kod kola za sprezanje sa tri stanja vei broj komada smeta u zajedniko
kuite.
E E E E
A Y A Y A Y A Y
2.2. Dekoder
Dekoderi su kombinacione mree sa vie ulaza i izlaza, gde svaka dozvoljena kombinacija
ulaznih promenljivih aktivira poseban izlaz.
A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 Y 0 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 1 Y 1 A2 A1 A0
0 0 1 0 0 0 0 0 0 1 0 Y 2 A2 A1 A0
0 1 0 0 0 0 0 0 1 0 0
Y 3 A2 A1 A0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0 Y 4 A2 A1 A0
1 0 1 0 0 1 0 0 0 0 0 Y 5 A2 A1 A0
1 1 0 0 1 0 0 0 0 0 0 Y 6 A2 A1 A0
1 1 1 1 0 0 0 0 0 0 0 Y 7 A2 A1 A0
- 24 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Za realizaciju dekodera se koriste logika I kola sa potrebnim brojem ulaza jer se svaka
izlazna logika funkcija Y0...Y7 sastoji od jednog logikog proizvoda (slika 2-5).
A2
A1
A0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
Y0 Y0
Integrisana kola namenjena za funkciju A0 Y1 Y1
A1 Y2 Y2
dekodiranja obino sadre i ulaz za dozvolu (EN A2 Y3 Y3
DEK
enable). Ovo omoguava poveanje kapaciteta 3/8
Y4 Y4
Y5 Y5
dekodera: povezivanjem dva dekodera 3/8 mogue je EN Y6 Y6
dobiti dekoder 4/16 (slika 2-6), itd. Y7 Y7
Y0 Y8
A0 Y1 Y9
A1 Y2 Y10
A2 Y3 Y11
DEK
Y4 Y12
3/8
Slika 2-6: Realizacija dekodera 4/16 pomou dva dekodera Y5 Y13
3/8. EN Y6 Y14
Y7 Y15
A3 A2 A1 A0
- 25 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
A3 A2 A1 A0 Y9 Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 0 0 0 1 0 0
0 0 1 1 0 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0 0 1 0 0 0 0
0 1 0 1 0 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 0 1 0 0 0 0 0 0
0 1 1 1 0 0 1 0 0 0 0 0 0 0
1 0 0 0 0 1 0 0 0 0 0 0 0 0
1 0 0 1 1 0 0 0 0 0 0 0 0 0
Y0
ABC
A A0 Y1
B A1 Y2
ABC
C A2 Y3 Y
DEK
Y4
3/8 ABC
Y5
Y6
Y7
- 26 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
2.3. Koder
Digitalna obrada se vri nad kodiranim signalima. Npr. kada se pritisne jedan taster na
tastaturi raunara, nastaje niz logikih nula i jedinica (kod). Sutina kodiranja je dodeliti razliit kod
svakoj ulaznoj vrednosti.
A7 A6 A5 A4 A3 A2 A1 A0 Y2 Y1 Y0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1 Y0=A1+A3+A5+A7
0 0 0 0 0 1 0 0 0 1 0 Y1=A2+A3+A6+A7
0 0 0 0 1 0 0 0 0 1 1 Y2=A4+A5+A6+A7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
Tabela 2-3: Kombinaciona tabela kodera 8/3 i odgovarajue izlazne logike funkcije.
Logika ema koja se dobija na osnovu prethodnih jednaina za koder 8/3 je prikazana na
slici 2-9. Logika vrednost izlaza je netana ako na ulazima logike mree ima vie od jedne
jedinice. Zbog ovih kombinacija, koder se moe proiriti sa jednim logikim kolom koje upozorava
na nedozvoljene kombinacije na ulazima.
A0
A1
A2
A3
A4
A5
A6
Slika 2-9: Logika mrea koja realizuje koder 8/3.
A7
Y2 Y1 Y0
2.3.2. Nepotpuni koder
Koder je nepotpun kada je broj moguih stanja na ulaznim linijama koja se kodiraju
pomou n izlaznih linija manji od 2n. Tipian primer za to je kodiranje cifara decimalnog brojnog
sistema pomou etiri izlazne linije (bit-a). Naziv ovog kodera je DC-BCD koder. Odgovarajue
kombinacione tabele su prikazane u tabeli 2-4, gde su date i minimizovane logike funkcije.
- 27 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Ai Y3 Y2 Y1 Y0
0 0 0 0 0
1 0 0 0 1 Y0=A1+A3+A5+A7+A9
2 0 0 1 0 Y1=A2+A3+A6+A7
3 0 0 1 1 Y2=A4+A5+A6+A7
4 0 1 0 0 Y3=A8+A9
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
Tabela 2-4: Kombinaciona tabela DC/BCD kodera i odgovarajue logike funkcije.
A0
A1
A2
A3
A4
Logika mrea koja realizuje DC-BCD A5
koder je prikazana na slici 2-10. Neophodno je A6
naglasiti da realizacija funkcije zatite od A7
istovremene pojave vie logikih jedinica na ulazu A8
kodera je zadatak korisnika. A9
- 28 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
G 2 B2 B1 B0 B2 B1 B0 B2 B1 B0 B2 B1 B0
G1 B2 B1 B0 B2 B1 B0 B2 B1 B0 B2 B1 B0
G0 B2 B1 B0 B2 B1 B0 B2 B1 B0 B2 B1 B0
G 2 B2
G1 B2 B1
G0 B1 B0
B2 G2 G2 B2
Pojednostavljena ema
G1 B1
pretvaraa koda je prikazana na slici B1 G1
2-12a dok minimizovana logika
mrea prikazana na slici 2-12b
G0 B0
obavlja inverznu operaciju u odnosu B0 G0
Slika 2-17: Minimizovani pretvarai koda: (a) iz binarnog u Gray-ov kod i (b) iz Gray-ovog koda u binarni.
- 29 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
- 30 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
D0 D0
D1 D1
D2
MUX Y
Slika 2-15: (a) Unutranja Y
struktura multipleksora i (b) Dn-1
njegova ematska oznaka. Dn-1
SEL Sm-1 S1 S0
(a) (b)
Y D0 S 2 S 1 S 0 D1 S 2 S 1 S 0 .... D7 S 2 S1 S 0 .
Realizacija kola se vri korienjem osam komada troulaznih I kola i jednog osmoulaznog
ILI kola. Logika mrea prikazana na slici 2-16 realizuje dati multipleksor, sa time da je izveden i
ulaz za dozvolu rada (E) pomou kojeg je mogue stanje izlaza prevesti u logiku nulu nezavisno
od ulaza za podatke i selekcionih ulaza. Ulaz za dozvolu se moe koristiti i za proirivanje
multipleksora. Ovo je znaajno kada je potreban multipleksor sa vie ulaza za podatke od onoga to
je na raspolaganju u integrisanoj formi (obino se proizvode do 16 ulaza).
D0 D1 D2 D3 D4 D5 D6 D7
S2
S1
S0
Y
E
Slika 2-16: Logika mrea koja realizuje multipleksor sa osam ulaza za podatke.
- 31 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Y C B A C B CB A
Y C B A C B A C B A CB A
- 32 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
D0
D1 MUX
"1" D2 4/1
A D3 Y
Slika 2-19: Realizacija logike funkcije od tri promenljive
multipleksorom 4/1. B S0
C S1
Y0 Y0
Y1 Y1
DMX
Y2 X
Slika 2-20: (a) Funkcija X 1/n
demultipleksora prikazana Yn-1
viepoloajnim prekidaem i (b) Yn-1
njegova ematska oznaka. SEL S0 S1 Sm-1
(a) (b)
- 33 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
S0 S1 Sm-1 S0 S1 Sm-1
Nedostatak ove metode je da prenos podataka sa pojedinih ulaznih kanala na pojedine
izlazne kanale se ne deava istovremeno nego jedno za drugim. Ovaj princip se naziva vremenskim
multipleksom. Kapacitet zajednikog kanala se deli meu pojedinim podacima i zbog toga dolazi do
znaajnih smanjenja u brzini prenosa.
X X
VDD
VSS
(a) (b)
Slika 2-22: (a) Konstrukcija analognog prekidaa pomou N kanalnog i P kanalnog mosfeta i (b) ematska
oznaka analognog prekidaa.
- 34 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
moe koristiti i kao demultipleksor, jer analogni prekidai provode signale u oba smera kada su
ukljueni i neprovodni su u oba smera kada su iskljueni.
Y0
A0 Y1
A1 Y2
A2 DEK
m
m/2
Am-1 Yn-1
S
Wn-1 W1 W0
- 35 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
3. Sekvencijalne mree
Sekvencijalne mree su digitalna kola koja poseduju osobinu pamenja (memorisanja).
Digitalno kolo pamti odreene informacije o stanju samog kola u prolosti i o upravljakim
signalima dovedenim u prosloti. Izlazni signali sekvencijalne mree se formiraju na osnovu
zapamene informacije i novih vrednosti logikih nivoa na ulazima. Sekvencijalne mree se
redovno nazivaju i logikim automatima jer se esto primenjuju u oblasti automatskog upravljanja.
Kapacitet sekvencijalnih mrea za pamenje je najee mali i obino je re o svega
nekoliko bita. Kod n-bitnih sekvencijalnih mrea postoje 2n razliitih stanja. Zbog konanog broja
stanja, sekvencijalne mree se jo nazivaju i automatima sa konanim brojem stanja (engl. finite-
state machine) .
Pored memorije, sekvencijalne mree sadre i kombinacione elemente (mree). Na osnovu
unutranje strukture razlikujemo dve vrste logikih automata. Na slici 3-1 je prikazana blok ema
Mealy-jevog automata. Kolo, pored memorije, sadri i dve kombinacione mree: jednu na ulazu,
drugu na izlazu. Ulazna kombinaciona mrea odreuje novo stanje automata na osnovu trenutne
vrednosti logikih nivoa na ulazima i na osnovu trenutnog stanja automata. Istovremeno, izlazna
kombinaciona mrea definie izlazne digitalne signale na osnovu trenutne vrednosti signala na
ulazima i trenutnog stanja automata.
TAKT
Na slici 3-2 je prikazan Moore-ov automat koji je jednostavnije konstrukcije. Kod ovog
tipa se vrednosti izlaza formiraju samo na osnovu trenutnog stanja automata. Pojednostavljeni
sluaj Moore-ovog automata se dobija kada se izostavlja izlazna kombinaciona mrea a izlazi
memorije (svi ili neki) su ujedno i izlazi automata.
TAKT
- 36 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Pojmovi i metode koje se ovde uvode (osim klasinog naina projektovanja primenom SSI
i MSI integrisanih kola) se primenjuju i kod projektovanja primenom programabilnih logikih kola.
3.1. Elementarne memorije
Memoriju sekvencijalnih mrea sainjavaju latch-evi i flip-flop-ovi. Ova kola su u stanju
da pamte informaciju veliine jednog bita i sami po sebi predstavljaju sekvencijalnu mreu.
Informacija se pamti korienjem povratne sprege. Upisana informacija se pamti sve dok je napon
napajanja prisutan. Kod pojedinih memorijskih elemenata se primenjuje okidanje na nivo dok kod
drugih ivino okidanje.
Q Q
S R
(a) (b)
Slika 3-3: SR latch kolo sa ukrtenim povezivanjem logikih kola: (a) NILI kolima, (b) NI kolima.
- 37 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
nivo, ulazna NI kola postaju aktivna i proputaju ulazne S i R signale koji prouzrokuju odgovarajuu
promenu stanja.
S
Q
Enable
Dok je signal Enable na visokom logikom nivou svaka promena vrednosti ulaza S i R
utie na stanje latch kola. Ova vrsta sinhronizacije se naziva okidanjem na naponski nivo. Kolo koje
se dobija na ovaj nain se naziva transparentno latch kolo jer je providno za set i reset signale sve
dok je upravljaki signal aktivan.
Nedozvoljene kombinacije ulaznih signala je mogue izbei dodavanjem invertora
prethodnom kolu (slika 3-5a). Uloga invertora je da zatiti kolo od zabranjene kombinacije (kada su
istovremeno prisutni set i reset signali na ulazima). Ovo kolo se naziva D latch kolo jer poseduje
samo jedan ulaz za podatak (Data). Uobiajena ematska oznaka D latch-a je data na slici 3-5b, a
princip rada se moe shvatiti na osnovu dijagrama na slici 3-5c. Osobina transparencije je prisutna i
kod ovog kola. Ulaz Data nema uticaja na izlaz kada je signal dozvole odsutan, dok u suprotnom
sluaju signal sa ulaza (sa malim kanjenjem) prelazi na izlaz. Signal koji je prisutan na izlazu u
trenutku silazne ivice signala dozvole ostaje vaei sve dok signal dozvole ne postane ponovo
aktivan.
Data
Data
Q
t
Enable 0 10 20 30 40 50
Enable
t
0 10 20 30 40 50
(a)
Data Q Q
t
Enable Q 0 10 20 30 40 50
(b) (c)
Slika 3-5: D latch kolo sa sinhronizacijom (a), ematska oznaka (b) i dijagrami za objanjenje
principa rada (c).
3.1.2. Flip-flop-ovi
Flip-flop-ovi su elementarne memorije koje se okidaju na ivicu upravljakog signala. Upis
podatka se vri na uzlaznu ili na silaznu ivicu upravljakog signala, zavisno od realizacije kola.
Podatak koji se upisuje je zadat ulaznim signalom ili ulaznim signalima. U odnosu na izvedbu
ulaza, postoje nekoliko tipova flip-flop-ova. Kao prvi primer, naveemo D flip-flop koji je u
izvesnom srodstvu sa D latch kolom. ematska oznaka D flip-flop-a, tabela koja prikazuje njegov
princip rada i odgovarajui vremenski dijagrami su prikazani na slici 3-6. Kod svake uzlazne ivice
takt signala (na dijagramu je to oznaeno isprekidanom linijom) se upisuje vrednost ulaza D u izlaz
Q. Strelica na ematskoj oznaci uvek oznaava ulaz za takt signal (clk).
- 38 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
clk
D Q
t
clk Q D
D flip-flop se moe realizovati pomou kaskadne veze dva D latch kola kao to je
prikazano na slici 3-7 (master-slave veza). Sve dok je takt signal na visokom logikom nivou, izlaz
Q prvog latch kola (master) neprekidno preuzima vrednost ulaza D ali je istovremeno drugo latch
kolo u zatvorenom stanju jer je signal dozvole doveden preko jednog invertora.
Master Slave
Data D Q D Q Q
Slika 3-7: Realizacija D flip-flop-a
D latch D latch
kaskadnom vezom dva D latch kola (master-
slave veza). Enable Q Enable Q Q
clk
Posle silazne ivice takt signala prvo latch kolo se zatvara (zadrava stanje koje je bilo
aktivno pri silaznoj ivici takt signala), dok drugo (slave) latch kolo postaje transparentno.
Posmatrajui spolja moe se rei da upis u flip-flop se vri na silaznoj ivici takt signala.
Za realizaciju D flip-flop-a postoje i druga reenja koja su bolja jer sadre manji broj
logikih kapija i vremena kanjenja su im manja. Slika 3-8 prikazuje jedno takvo kolo koje se okida
uzlaznom ivicom. Sve dok je takt signal na niskom logikom nivou i ulazi S i R su na visokom
logikom nivou i nije mogue izvriti upis u izlazno latch kolo. Po dve logike kapije su prisutne na
ulazima koje se takoe mogu smatrati latch kolima ija je funkcija priprema signala za upis u
izlazno latch kolo. U trenutku promene takt signala na visoki logiki nivo vri se upis pripremljene
vrednosti ulaznog signala u izlazno latch kolo.
S
Q
clk
Slika 3-8: Efikasnija realizacija D flip-flop-a
sa manjim brojem logikih kapija i manjim Q
R
vremenima kanjenja.
- 39 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
(a) (b)
Stanje izlaza RS flip-flop-a, slino odgovarajuem latch kolu, je nepredvidljivo u onim
sluajevima kada su istovremeno prisutne logike jedinice na oba ulaza. Kao reenje ovog problema
nastao je JK flip-flop ija su ematska oznaka i kombinaciona tabela prikazana na slici 3-10. JK flip-
flop-ovi invertuju vrednosti svojih izlaza pri svakoj silaznoj ivici takt signala u sluaju istovremeno
prisutnih logikih jedinica na oba ulaza.
J K Qn Qn+1
J Q
0 0 Q Q
K 0 1 Q 0
Slika 3-10: (a) ematska oznaka JK flip-flop-a i (b)
njegova kombinaciona tabela. clk Q 1 0 Q 1
1 1 Q Q
(a) (b)
T flip-flop poseduje samo jedan ulaz za podatke (slika 3-11a) i zato se njegova kombinaci-
ona tabela sastoji samo od dva reda (slika 3-11b). Ako je na ulazu T logika jedinica onda se
vrednost izlaza invertuje pri svakoj uzlaznoj ivici takt signala, dok za logiku nulu vrednost izlaza
ostaje nepromenjena.
T Q T Qn Qn+1
0 Q Q
Slika 3-11: (a) ematska oznaka T flip-flop-a i (b) clk Q 1 Q Q
njegova kombinaciona tabela.
(a) (b)
Obino se dva ili etiri flip-flop-a smetaju u zajedniko kuite kod MSI tehnologije.
Pored sinhronizacionih ulaza redovno ovi flip-flop-ovi sadre i asinhrone set i/ili reset ulaze. Na
slici 3-12 su prikazana ematska oznaka i kombinaciona tabela D flip-flop-a sa asinhronim reset
ulazom. Reset ulaz je nezavisan od takt signala. U prikazanom primeru mali krug na Reset ulazu na
ematskoj oznaci ukazuje na osobinu da se proces resetovanja aktivira niskim logikim nivoom.
D Q R CLK D Qn Qn+1
0 X X 0 1
Slika 3-12: D flip-flop sa asinhronim reset ulazom: CLK R Q 1 0 0 1
(a) ematska oznaka, (b) kombinaciona tabela. 1 1 1 0
(a) (b)
- 40 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Za konstruisanje sekvencijalnih mrea je mogue primeniti bilo koji tip flip-flop-a. Tip
primenjenog flip-flop-a utie na realizaciju kombinacionog dela sekvencijalne mree. Sloenost
kombinacionih mrea se znaajno smanjuje pri optimalnom izboru tipa flip-flop-a. Naalost, ne
postoji jednoznano pravilo za biranje odgovarajueg tipa flip-flop-a i jedino ponavljanjem sinteze
sekvencijalne mree se moe odrediti optimalan izbor. Po potrebi flip-flop se moe pretvoriti u
drugi flip-flop dodavanjem potrebne kombinacione mree. Slika 3-13 prikazuje primere takvih
transformacija.
J S Q
CLK T D Q
K
R Q CLK Q
(a) (c)
J
D Q
T J Q
K CLK
CLK Q K Q
(b) (d)
U dananjoj VLSI tehnologiji vie nije presudan broj korienih logikih kapija za
realizaciju kombinacionog dela sekvencijalnih mea. ak ni minimizacija broja korienih flip-flop-
ova vie nije bitna pri realizaciji. Mnogo je vanije da se nain realizacije prilagodi unutranjoj
strukturi programabilnog logikog kola (PLD) i da se dobije to preglednije i pouzdanije reenje.
- 41 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
nazivi stanja. Linije sa strelicama koje povezuju vorove predstavljaju prelaze izmeu stanja. Na
linije se piu ulazne kombinacije pri kojima se deavaju date promene stanja.
Dijagram stanja se menja u zavisnosti od tipa sekvencijalne mree (Mealy-jev ili Moore-
ov model). Kod Mealy-jevog modela na granama grafa se prikazuju vrednosti izlaza koji se javljaju
pri odreenom prelazu (slika 3-14b), dok kod Moore-ovog modela vrednosti izlaza se dobijaju
dekodiranjem trenutnog stanja i zato se vrednosti izlaza upisuju u krugove koji oznaavaju stanja
(slika 3-14c). I broj stanja kod navedenih modela moe biti razliit: broj stanja Mealy-jevog modela
za dati automat je dva, a kod Moore-ovog modela tri.
01, 10, 11
U tabelu je potrebno upisati sva mogua stanja sekvencijalne mree i sve kombinacije
ulaznih signala. Zatim za sve te kombinacije se odreuju naredna stanja i vrednosti izlaznih
promenljivih. U tabelama 3-1 i 3-2 nazivi trenutnih stanja su upisana u prvu kolonu (a, b odnosno a,
b, c) a odgovarajui kodovi stanja su dati u zagradama. U sredinjem delu tabele se nalaze naredna
stanja, koja kod oba modela zavise i od vrednosti ulaznih promenljivih. Zbog toga su iznad
narednih stanja navedene pripadajue kombinacije ulaznih signala.
Na desnoj strani tabele su definisane vrednosti izlazne promenljive (Y). Kod Mealy-jevog
modela (tabela 3-1) vrednosti izlaza zavise i od trenutnih vrednosti ulaza. Zato su iznad vrednosti
izlaza date sve mogue kombinacije ulaza. Kod Moore-ovog automata vrednosti izlaza su
- 42 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
jednoznano odreene trenutnim stanjima automata i zbog toga su svi izlazi navedeni u jednoj
koloni.
- 43 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
D QB A
Vrednosti izlaznih promenljivih kod Moore-ovog modela zavise samo od trenutnog stanja
mree. Najjednostavniji sluaj je kada su izlazi flip-flop-ova ujedno i izlazi samog automata. Ako to
nije sluaj, izlazni signali se generiu pomou odgovarajue kombinacione mree. Ulazi
kombinacione mree su stanja flip-flop-ova. Na osnovu tabele 3-4 izlazna jednaina Moore-ovog
automata (slika 3-14c) posle minimizacije je:
Y Q1Q 0 .
- 44 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
B
D1 D Q Q1
A
D0 D Q Q0
Y
CLK
Slika 3-16: Logika mrea koja realizuje Moore-ov automat dat na slici 3-14c.
D Q D Q D Q
Q0 Q1 Qn-1
- 45 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
upisuje u naredni, dok sadraj zadnjeg memorijskog elementa se gubi. Kod sloenih pomerakih
registara, pored serijskog, postoji i mogunost paralelnog upisa i itanja.
Na slici 3-18 je prikazana logika ema univerzalnog etvorobitnog pomerakog registra.
Smer pomeranja se bira pomou L / R signala. RIN predstavlja serijski ulaz pri pomeranju udesno,
dok pri pomeranju ulevo funkciju serijskog ulaza obavlja signal LIN. Serijski izlaz je QA ili QD u
zavisnosti od smera pomeranja. itanje je mogue obaviti i u paralelnom reimu. Kod ovog reenja
ne postoji mogunost paralelnog upisa. Takt (CLK) signal, ija je funkcija sinhronizacija pomeranja
podataka, je zajedniki za sve flip-flop-ove.
L/R
RIN LIN
D Q QA D Q QB D Q QC D Q QD
CLK Q Q Q Q
D Q D Q D Q D Q
CLK
- 46 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
reimu rada krue prema redosledu koji je dat u tabeli koja je prikazana na slici 3-20b. U sluaju n
flip-flop-ova, sekvenca istih brojeva se ponavlja posle 2n periode takt signala. Broja e ui u
pravilan reim rada i ako se svi flip-flop-ovi resetuju u trenutku ukljuenja. Ako se to propusti,
mogue je da kolo na izlazu generie pogrene vrednosti. Raznim povratnim spregama je mogue
obezbediti pravilno funkcionisanje kola.
Q0 Q1 Q2 Q3 STANJE Q0 Q1 Q2 Q3
0 0 0 0 0
1 1 0 0 0
2 1 1 0 0
D Q D Q D Q D Q 3 1 1 1 0
4 1 1 1 1
Q Q Q Q 5 0 1 1 1
6 0 0 1 1
CLK 7 0 0 0 1
0 0 0 0 0
(a) (b)
Slika 3-20: Jedno mogue reenje (a) za logiku emu Donsonovog krunog registra (brojaa) i (b)
odgovarajua tabela stanja.
3.4. Brojai
Registri koji pod uticajem upravljakih impulsa prolaze kroz unapred odreena stanja se
nazivaju brojaima. Upravljaki signali mogu da potiu iz izvora takt signala ili iz bilo kog drugog
kola koje je u stanju da generie digitalne signale. Impulsi su obino periodini, ali brojai mogu da
rade i pod uticajem impulsa koji se pojavljuju u sluajnim vremenskim trenucima. Pored takt ulaza
pojedini brojai imaju i dodatne ulaze kojima se odreuje nain brojanja.
Redosled stanja brojaa moe da bude jednak redosledu binarnih brojeva (binarni broja),
ali po potrebi je mogue formirati i proizvoljan redosled. Broj razliitih stanja kod brojaa se naziva
moduo brojaa. Pored memorijskih elemenata brojai obino sadre i ulaznu kombinacionu mreu
koja obezbeuje odgovarajue promene stanja u registru koji je centralni deo brojaa. Obino,
izlazna kombinaciona mrea koja je svojstvena sekvencijalnim mreama ne postoji kod brojaa.
Izlazi memorijskih elemenata su ujedno i izlazi brojaa. Znai, brojai su mree tipa Moore.
Brojae je mogue svrstati u dve kategorije: asinhroni (serijski) i sinhroni (paralelni)
brojai.
CLK Q Q Q
R R R
Slika 3-21: Asinhroni broja
CLR
realizovan T flip-flop-ovima.
Q0 Q1 Q2
Ukoliko korieni flip-flop-ovi reaguju na silaznu ivicu takt signala, broja e brojati
unapred u prironom binarnom kodu. Za sluaj asinhronog brojaa prikazanog na slici 3-21
- 47 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
vremenski dijagrami su dati na slici 3-22. Posmatrajui redosled stanja kroz koja broja prolazi
(tabela 3-5) pri sukcesivnom delovanju takt signala, moe se zakljuiti da broja broji po redosledu
binarnih brojeva. Moduo brojanja je osam za sluaj tri memorijska elementa. U optem sluaju,
pomou n memorijskih elemenata mogue je realizovati broja modula 2n. Ako je potreban broja
unazad, koriste se flip-flop-ovi sa okidanjem na uzlaznu ivicu i na takt ulaz narednog flip-flop-a se
dovodi Q umesto izlaza Q.
1 2 3 4 5 6 7 8 9
CLK
Q0
Slika 3-22: Vremenski
dijagrami takt signala i Q1
pojedinih izlaza asinhronog
brojaa.
Q2
0 1 2 3 4 5 6 7 0
Q2 Q1 Q0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
Tabela 3-5: Redosled stanja trobitnog asinhronog brojaa. 1 1 0
1 1 1
- 48 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
"1"
J Q J Q J Q J Q
K K K K
Q Q Q Q
CLK
Q0 Q1 Q2 Q3
Ova ema je samo dvostepena: posle aktivne ivice takt signala potrebno je da proe samo
jedno kanjenje I kola i flip-flop-a kako bi vrednosti izlaza flip-flop-ova postale vaei.
Odgovarajuom promenom ulazne kombinacione mree kod sinhronih brojaa mogue je
postii brojanje unazad. Kod brojaa proizvedenih u MSI tehnologiji postoje i dvosmerna reenja:
kod ovih kola postoje dve posebne ulazne kombinacione mree za oba sluaja (brojanje napred i
nazad) i pomou jednog kontrolnog signala se odreuje koja e od te dve mree biti aktivna.
esto se javlja potreba za poveanjem modula brojanja. MSI kola za brojanje obino
sadre i odgovarajue izlaze (prenos, engl.: carry) i ulaze za kaskadno vezivanje pojedinih
brojakih modula. Prethodni modul, pomou bita prenosa obavetava naredni modul o tome da je
stigao do najveeg broja i da naredni stepen mora da inkrementira vrednost sopstvenog registra.
Moduo brojanja brojaa sastavljenog od n memorijskih elemenata je mogue smanjiti sa
2n. Za to postoje dva naina. Prvi nain je primenom metode koja je prikazana kod projektovanja
logikih automata. Taj postupak se sastoji od formiranja dijagrama stanja i tabele stanja. Kod druge
metode polazi se od gotovog brojaa modula 2n, koji na uobiajeni nain funkcionie do
predvienog zadnjeg stanja. Na broja se dodaje jedan dekoder koji je posebno projektovan za
detektovanje zadnjeg stanja (slika 3-24). Kada se detektuje zadnje stanje, dekoder sinhrono ili
asinhrono resetuje sve flip-flop-ove. Posle toga se proces brojanja nastavlja sa nule. U prikazanom
sluaju realizovani broja je modula deset jer se posle devetog stanja (1001) vri paralelni upis
nultih vrednosti preko linija (D0...D3).
CLK CETVOROBITNI
BINARNI
D0 BROJAC Q0
D1 Q1
D2 Q2
D3 Q3
- 49 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
4. Sloene mree
Digitalna kola koja se razmatraju u nastavku se nazivaju sloenim mreama jer sadre
kako kombinacione tako i sekvencijalne elemente. Memorije su po prirodi sekvencijalne mree kod
kojih se upravljanje realizuje kombinacionim mreama. Aritmetika kola se prvenstveno realizuju
kombinacionim mreama pri emu se za njihovo upravljanje koriste logiki automati. D/A i A/D
pretvarai pored obe vrste (kombinacionih i sekvencijalnih) digitalnih elemenata sadre i analogna
kola.
4.1. Memorije
Memorije su digitalna kola koja slue za trajno ili privremeno pamenje velike koliine
podataka. Uloga registara (poglavlje 3.3) je takoe pamenje podataka, ali pamenje velikih
koliina podataka zahteva efikasniju organizaciju. Danas su ureaji ija je osnovna namena
pamenje podataka veoma raznovrsni (tu spadaju i magnetni- i optiki mediji). Ovde se razmatraju
samo poluprovodnike memorije.
Za sve memorije vai blok dijagram koji je prikazan na slici 4-1. Pomou adresnih linija
(na emi oznaene sa C) se odreuje elementarna elija memorije sa kojom se eli komunicirati.
Preko upravljakih ulaza V se odreuje svrha komunikacije: upis, itanje ili dobijanje povratnih
informacija o stanju memorije (npr. zauzetost). Pomou linija A se prosleuju podaci od drugog
kola ka memoriji ili obrnuto.
- 50 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
random access). Pomou adresiranja mogue je pristupiti bilo kojoj memorijskoj lokaciji za
priblino isto vreme ali je cena toga prilino sloena mrea za adresiranje. Znaajno se
smanjuje kompleksnost memorije ako se podaci serijski upisuju odnosno iitavaju. Ove
memorije poseduju serijski pristup iji je nedostatak da se vreme pristupa poveava sa
poveanjem adrese traene memorijske lokacije.
Veina dananjih memorijskih kola se proizvode u CMOS tehnologiji ali postoje i kola
izraena u bipolarnoj tehnologiji. Veliina podatka emu se moe pristupiti u jednom
koraku (jedno adresiranje ili inkrementiranje adrese) je jedan bit ili vie bita (npr. osam ili
esnaest).
Najvaniji parametri memorijskih kola, pored vrednosti napona napajanja i logikih nivoa,
su kapacitet (broj memorijskih elija) i brzina (upis, itanje i brisanje).
- 51 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
programske memorije jer je njihova brzina itanja velika ali ipak ne mogu zameniti RAM
memorije jer je njihovo vreme upisa veliko. Meutim, trajno pamenje podataka nakon
iskljuenja napajanja predstavlja veliku prednost.
Centralni deo memorije je polje memorijskih elija, koje se sastoji od potrebnog broja
elementarnih memorija. Adresa elije kojoj se eli pristupiti ulazi u adresni dekoder preko adresnog
kola za spregu (bafer). Uloga dekodera je selektovanje (identifikacija) elije sa kojom se eli
ostvariti komunikacija. Sloenost dekodera veoma brzo raste (kvadratno) sa poveanjem broja
memorijskih elija. Zato se elemetarne memorije postavljaju u matrini oblik umesto rednog
(linearnog) rasporeda. U tom sluaju, adresiranje se vri pomou dva manja dekodera (dekoderi
reda i kolone). Ukupan broj korienih logikih kola za realizaciju ta dva dekodera je znaajno
manji nego u sluaju jednog dekodera. Ovaj pristup podrazumeva postojanje dva adresna ulaza za
svaku memorijsku eliju. Zbog tenje za to manjim kuitima, adresne linije dinamikih memorija
velikih kapaciteta se multipleksiraju: posebno se uitavaju i pamte adrese kolona i redova.
Unos podataka odnosno njihovo iitavanje se vri preko kola za spregu za podatke
(bafer). Obino se iste linije podataka koriste za komunikaciju u oba smera. Razlog za to je
uproavanje kuita. Prilikom upisa, podaci moraju biti stabilni ve neko vreme neposredno pre
upisa. Kod iitavanja neophodno je uzeti u obzir kanjenje koje postoji izmeu adresiranja i pojave
podataka na izlazu. Kataloki podaci sadre konkretne vrednosti ovih kanjenja.
Uloga upravljake jedinice je generisanje odgovarajuih upravljakih signala prilikom
upisa, itanja ili brisanja za selektovanu memorijsku eliju. Inicijalizacija upisa se vri pomou WE
(engl.: write enable) signala koji se alje upravljakoj jedinici memorije. Za itanje je potrebno
aktivirati signal OE (engl.: output enable). Upravljaka jedinica poseduje jo jedan ulaz sa nazivom
CS (engl.: chip select) pomou kojeg je mogue zaustaviti ili pokrenuti rad celog kola. Uloga ovog
ulaza je da omogui proirivanje kapaciteta memorije.
- 52 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Proirivanje duine rei je jednostavniji zadatak: memorijska kola se poreaju jedan pored
drugog i adresne i upravljake linije sa identinim oznakama se povezuju (slika 4-3). U konkretnom
sluaju se radi o ROM memorijama i funkcija jedinog upravljakog signala je otvaranje njihovih
izlaza. Izlazne linije podataka se mogu posmatrati kao deo jedne zajednike magistrale podataka.
Slika 4-4: Poveanje broja adresabilnih memorijskih rei odgovarajuom vezom memorijskih kola.
- 53 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
4.2.1. Sabirai
Osnovna kola u binarnoj aritmetici su sabirai. Operacija oduzimanja se realizuje sa-
biranjem u drugom komplementu. Operacija mnoenja se esto izvodi korienjem sabirakih kola.
Osnovnu jedinicu sloenijih sabiraa ine polusabirai, koji sabiraju dva jednobitna
binarna broja prema tabeli koja je prikazana na slici 4-5a. Rezultat sabiranja u decimalnom brojnom
sistemu moe biti 0, 1 ili 2. Najmanje znaajan bit u rezultatu predstavlja zbir sabiranja (sf) dok je
najznaajniji bit (c engl.: carry) predstavlja prenos i formira ulaz za sledei stepen.
b a
a b c sf
0 0 0 0
0 1 0 1
Slika 4-5: (a) Kombinaciona tabela polusabiraa i (b) 1 0 0 1
njegova logika ema. 1 1 1 0
c sf
(a) (b)
Jednaine koje se dobiju na osnovu prethodne tabele su:
s f ab ab a b
c ab .
Na osnovu ovih jednaina je nacrtana ema polusabiraa koja je prikazana na slici 4-5b.
Nedostatak polusabiraa je da se ne mogu povezati u kaskadu kako bi sabirali viebitne brojeve. Za
ovo je potrebno reiti sabiranje bita prenosa iz prethodnog polusabiraa sa bitovima sledeeg
polusabiraa. Na ovaj nain se dobija potpuni sabira za koji vae sledee jednaine:
s a b ci
co a b ci ab
ci
s
a b a ci
b
co s
co
(a) (b)
Slika 4-6: (a) Logika ema potpunog sabiraa i (b)njegova ematska oznaka.
Kaskadnom vezom potpunih sabiraa na nain koji je prikazan na slici 4-7 mogue je
sabiranje viebitnih brojeva. Formiranje zbira kod date mree se vri paralelno, s tim da se bitovi
- 54 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
prenosa prostiru serijski kroz pojedine module sabiraa to znaajno usporava rad kola. Postoje kola
koja pomou dvostepene logike mree odreuju da li se moe oekivati bit prenosa kod nekog bita.
Takvo reenje znaajno ubrzava rad sabiraa.
b3 a3 b2 a2 b1 a1 b0 a0
b a ci b a ci b a ci b a ci
- 55 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Realizacija digitalnih kola za mnoenje brojeva od vie bita zahteva sve vei broj logikih
kapija. Reenje mnoaa za vee binarne brojeve je u primeni ROM-a. ROM kapaciteta 256x8 bita
(slika 4-9) koji je na odgovarajui nain programiran, moe da obavlja funkciju mnoaa za dva
etvorobitna broja. Kada se mnoioci (A i B) spoje na odgovarajue adresne linije, iita se sadraj
ROM-a to se moe smatrati kao jedna tabela koja sadri sve mogue vrednosti proizvoda (P).
b0 A0 D0 p0
b1 A1 D1 p1
B b2 A2 D2 p2
b3 A3 ROM D3 p3
256x8 bit P
a0 A4 D4 p4
Slika 4-9: Realizacija mnoaa sa ROM-om. A a1 A5 D5 p5
a2 A6 D6 p6
a3 A7 D7 p7
U VLSI tehnologiji se realizuju 16x16 bitni ili jo vei mnoai u formi kombinacionih
mrea kao sastavni delovi mikroprocesora.
Kod mnoaa koji se realizuju sekvencijalnim mreama potrebno je skrenuti panju na
dva osnovna principa. Logika mrea koja je prikazana na slici 4-10 pod uticajem START signala
brie sadraj akumulatora, u stacionarni registar upisuje prvog mnoioca, zatim upisuje drugi mno-
ilac u programabilni broja. Pod uticajem takt signala broja broji unazad dok akumulacioni sabi-
ra sabira svaki put aktuelni sadraj akumulatora sa mnoiocem. Proces traje sve dok broja ne stie
do nule. U trenutku kada broja dostie vrednost nula, zahvaljujui sukcesivnom sabiranju, u
akumulatoru se nalazi traeni proizvod.
START
bj-1 b2 b1 b0 a k-1 a2 a1 a0
DETEKTORNULE
CLK CLR
AKUMULIRAJUCI SABIRAC
pj+k-1 p2 p1 p0
Drugi osnovni princip se zasniva na proceduri runog mnoenja bit po bit (slika 4-11). Na
poetku procesa prvi mnoilac se smeta u stacionarni registar a drugi mnoilac u pomeraki
registar. Niz I kola vri mnoenje sa pojedinim bitovima drugog mnoioca. Sabira, posle
pomeranja, sabira sopstveni sadraj sa meurezultatom. Mnoenje je zavreno kada je svaki bit
izaao iz pomerakog registra.
- 56 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
an-1 a2 a1 a0
Dn-1 D2 D1 D0
D n-1 D2 D1 D0
LOAD START
Sout
POMERACKI REGISTAR CLK
p2n-1 p2n-2 pn
START CLR
SABIRAC
D n-1 D2 D1 D0
Sout Sin
CLK POMERACKI REGISTAR POMERACKI REGISTAR CLK
AGTB ab
AEQB ab ab a b
ALTB ab .
Vrednost premenljive AGTB (engl.: greater then) je jednak jedinici samo ako je a b ,
AEQB (engl.: equal) je jedinica ako je a b i vrednost ALTB (engl.: less then) je jedinica ako
je a b . Logika ema univerzalnog komparatora koja je realizovana na osnovu prethodnih
jednaina je data na slici 4-12b.
- 57 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
a
AGTB
A B AGTB AEQB ALTB
0 0 0 1 0 AEQB
0 1 0 0 1
1 0 1 0 0
1 1 0 1 0 ALTB
b
(a) (b)
Slika 4-12: (a) Kombinaciona tabela jednobitnog univerzalnog komparatora i (b) njegova logika ema.
Krajnji cilj u vezi komparatora je projektovanje takvih kola koja vre komparaciju
viebitnih brojeva. Teoretski je mogue napisati kombinacionu tabelu za viebitne komparatore na
nain koji je prikazan na slici 4-12a i na osnovu toga izvriti sintezu odgovarajue mree.
Uporeivanje bit po bit je meutim mnogo svrsishodnije i zbog toga je neophodno izmeniti mreu,
koja je prikazana na slici 4-12b, tako da je mogue izvriti kaskadno povezanje pojedinih stepena.
Nain kaskadnog povezanja jednobitnih komparatora je prikazan na slici 4-13. Smanjena je brzina
komparacije ali i sloenost kola.
a0 b0 a1 b1 an-1 bn-1
"1" EQI JEDNOBITNI EQO EQI JEDNOBITNI EQO EQI JEDNOBITNI EQO AEQB
KOMPARATOR KOMPARATOR KOMPARATOR
LTI LTO LTI LTO LTI LTO ALTB
- 58 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Slika 4-15: (a) ematska oznaka D/A konvertora i (b) njegova prenosna karakteristika.
4.3.2. Struktura
Centralni deo D/A konvertora je jedna otpornika mrea (slika 4-16) ija je uloga deljenje
osnovnog signala. Odnos deljenja se podeava pomou analognih prekidaa. Upravljanje
prekidaima mogu direktno da vre bitovi ulaznog broja ali se moe desiti da za dobijanje tanog
rezultata je neophodno izvriti konverziju tog broja u neki drugi kodni sistem. Izlazni signal
otpornike mree je mogue direktno koristiti ali se obino pre toga proputa kroz stepene za
pojaavanje i filtraciju.
- 59 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
otpornika istih vrednosti. Svaka mogua vrednost diskretnog napona je na raspolaganju u takama
spajanja dva otpornika. Od svih prekidaa, istovremeno je samo jedan ukljuen, koji se odreuje na
osnovu ulazne kodne rei i tako se izabrana vrednost napona proputa na izlaz (UK). Neophodo
birati takav kodni sistem kod kojeg se u svakoj kodnoj rei nalazi samo jedna jedinica ili se ovaj
problem reava uvoenjem dekodera ili kodnog pretvaraa. Struktura mree je jednostavna ali se pri
velikoj rezoluciji sastoji od velikog broja prekidaa i otpornika velike tanosti ija je realizacija
skupa.
U integrisanoj tehnici najvei uspeh su doiveli oni D/A konvertori ija se struktura
zasniva na lestviastoj otpornikoj mrei jer je potrebno precizno reprodukovati samo dve vrednosti
otpornosti R i 2R (slika 4-19). Povezivanjem odreenih prekidaa na referentni potencijal se
formiraju pojedinane komponente izlazne struje koja je na desnoj strani eme oznaena sa I.
Najvea komponenta struje se dobija ukljuenjem desnog prekidaa i ta vrednost se prepolovljava
kako se kree ulevo. Konana formula za struju I je:
V REF 1
I ( 2 n 1 Qn 1 2 n 2 Qn 2 ... 2 2 Q2 21 Q1 2 0 Q0 )
6 R 2 n 1
gde su Qi bitovi ulazne kodne rei. Prema tome, veliina izlazne struje je i u ovom sluaju
srazmerna ulaznoj kodnoj rei. Ovu struju je mogue direktno koristiti kao izlazni signal ili ako je
potrebno, mogue ju je pretvoriti u napon pomou jednog operacionog pojaavaa.
- 60 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
2R R R R R 2R I
2R 2R 2R 2R 2R
Q0 Q1 Q2 Qn-2 Qn-1
Slika 4-19: D/A konvertor realizovan
lestviastom otpornikom mreom R-
2R.
Vref
Na slici 4-20 je prikazano reenje za realizaciju D/A konvertora koje sadri najmanji broj
komponenata. Prekida K se periodino prebacuje u levi i desni poloaj. Upravljanje prekidaem se
vri tako da je odnos vremena za koje je prekida u levom poloaju i periode ukljuivanja identian
sa odnosom trenutne vrednosti ulaznog kodiranog broja i njegove maksimalne vrednosti (ovo se
naziva impulsno-irinskom modulacijom). Posle odgovarajueg filtriranja (koje vri RC lan)
vrednost izlaznog napona (srednja vrednost impulsa) e biti proporcionalna vrednosti ulaznog broja.
4.3.3. Karakteristike
Glavne karakteristike D/A konvertora su: rezolucija i vreme uspostavljanja. Rezolucija se
zadaje brojem bita pod pretpostavkom da se podaci na ulaz dovode u binarnom kodu. Podatak o
rezoluciji ukazuje ujedno i na tanost pretvaranja. Pretvarae je neophodno tako konstruisati da
njihova prenosna funkcija bude monotona. Na osnovu prethodnih pretpostavki se zakljuuje da je
greka konverzije uvek manja od napona koji odgovara bitu najmanje teine.
Za uspostavljanje stabilnog izlaznog napona je potrebno odreeno ovreme. Kod veine
pretvaraa ovo vreme je reda s ili ns, dok kod impulsno-irinskih pretvaraa je znaajno vee jer je
vremenska konstanta RC lana nekoliko puta vea od periode prekidanja koja je ve sama po sebi
prilino dugaka.
4.4. A/D konvertori
Kada je potrebno analogne signale (vrednost napona ili neke druge kontinualne veliine) u
digitalnoj formi zapamtiti, obraditi, poslati, prikazati itd., neophodno je prethodno izvriti analogno-
digitalnu konverziju. Uzorku analognog signala se prilikom koverzije dodeljuje odgovarajui broj iz
korienog kodnog sistema.
- 61 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
4.4.2. Struktura
Postoje tri razliita reenja za dananje A/D konvertore: direktni (engl.: flash) tip, reenje
sa postepenim pribliavanjem (sukcesivnom aproksimacijom) i sa postupkom brojanja.
Direktni D/A konvertor u sluaju n-bitnih kodova sadri 2n-1 naponskih komparatora
(slika 4-22). Na jedan ulaz komparatora se dovode odgovarajui naponski nivoi prema datoj
prenosnoj karakteristici. Ovi naponi se formiraju otpornikim razdelnikom povezanim na izvor
referentnog napona. Na taj nain se dobija eljena skala diskretnih vrednosti. Na druge ulaze
komparatora se dovodi analogni napon koji treba da se konvertuje.
U zavisnosti od vrednosti napona, izlazi nekih komparatora e biti na niskom nivou dok su
drugi na visokom. Diskretizaciju po vremenu vri takt signal: izlazne vrednosti komparatora
periodino upisuje u flip-flop-ove. Izlazni stepen se sastoji od jednog prioritetnog kodera: izlazni
kod se formira na osnovu jedinice na izlazu komparatora na najviem poloaju.
- 62 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Kod A/D konvertora sa sukcesivnom aproksimacijom izlazni kod veliine n bita se formira
u n koraka. Princip rada je prikazan na slici 4-23. Ulazni signal se uzorkuje na poetku periode
kovertovanja i ta vrednost se odrava konstantnom na ulazu komparatora K do kraja ciklusa
pretvaranja. Konvertor sadri jedan D/A kovertor ija je rezolucija ista kao i samog A/D konvertora.
Izlaz D/A konvertora je vezan na drugi ulaz komparatora. Izlaz komparatora vri upravljanje
registrom za sukcesivnu aproksimaciju (engl.: successive approximation register SAR) koji je
centralni deo eme.
Na poetku konverzije setuje se bit najvee teine (engl.: most significant bit - MSB) u
registru. Prema toj vrednosti D/A konvertor generie odgovarajui analogni signal a na osnovu toga
komparator javlja registru da li je ulazni signal vei ili manji od vrednosti koja se nalazi na sredini
skale.
Ako je ulazni signal vei, pri odgovarajuoj ivici takt signala, vrednost MSB-a ostaje
nepromenjena dok se u suprotnom sluaju vraa na nulu. Istovremeno, setuje se vrednost susednog
bita u registru. U sledeoj periodi takt signala se ponovo uporeuje vrednost ulaznog signala sa
izlazom D/A konvertora i komparator informie registar o opravdanosti setovanja datog bita. Ako je
setovanje bilo opravdano, vrednost bita ostaje jedinica, ako ne, onda se resetuje. Na kraju periode
takt signala opet se u registru setuje sledei bit.
Ovaj proces se nastavlja sve dok nisu odreene vrednosti svih bitova. Tada se u registru
nalazi digitalni kod koji odgovara ulaznom analognom signalu. U prodaji se mogu nai integrisana
kola koja u sebi sadre kompletan A/D konvertor sa sukcesivnom aproksimacijom.
U trei skup reenja A/D konverzije spadaju brojaka reenja. Razvijeno je vie takvih
postupaka. Osnovni princip kod svih je generisanje pravougaonog impulsa sa vremenom trajanja
srazmernim sa ulaznim analognim signalom. Pri tome uloga brojaa je odreivanje broja perioda
takt signala generisanih za vreme trajanja pravougaonog impulsa. Broj dobijen na kraju brojanja e
biti srazmeran analognom naponu.
Princip rada je prikazan na slici 4-24. Pravougani signal se generie uporeivanjem
analognog signala i linearno rastueg testerastog signala. Naponski komparatori (pomou EX-ILI
kola) dozvoljavaju rad brojaa sve dok je vrednost testerastog signala vea od nule ali jo nije
premaila ulazni napon.
- 63 -
Digitalno projektovanje primenom SSI i MSI funkcionalnih jedinica
Slika 4-24: Blok ema A/D konvertora koji koristi testerasti signal i broja.
4.4.3. Karakteristike
Proces pretvaranja kod direktnih tipova A/D konvertora je veoma kratak (obino je vreme
konverzije ispod 1s), ali zahtevaju veliki broj komponenata i zbog toga im je cena visoka. Ovo
reenje se primenjuje do est ili osam bita rezolucije i samo za konverziju brzo promenljivih signala
(digitalni osciloskopi, telekomunikacije).
Proseno vreme konverzije A/D konvertora sa sukcesivnom aproksimacijom je nekoliko
s. Rezolucija konverzije je obino osmobitna ili vea. Oblasti primene ovih kola su najee kod
upravljanja brzim procesima.
Primenom A/D konvertora sa testerastim signalom i brojaem mogue je dostii veliku
rezoluciju po niskoj ceni jer je broj korienih kola relativno mali. Nedostatak ovog tipa je dugako
vreme konverzije koje je esto reda veliine sekunda. Kod digitalnih prenosnih instrumenata se
uvek ugrauju ovakvi tipovi konvertora jer korisnik ne bi ni bio u stanju da oita izmerenu vrednost
neke veliine kada bi se cifre brzo menjale. Ovaj tip A/D konvertora je pogodan i za digitalizaciju
sporopromenljivih fizikih veliina (npr. temperatura, nivo tenosti itd.).
- 64 -
Projektovanje primenom programabilnih logikih kola (PLD)
- 65 -
Projektovanje primenom programabilnih logikih kola (PLD)
5. Pristupi projektovanju
Ovaj deo skripte je posveen digitalnom projektovanju zasnovanom na jeziku za opis
hardvera (engl.: hadware description language HDL) koji nosi naziv Verilog. Pre upoznavanja sa
jezikim strukturama, prezentovae se uobiajeni pristupi koji se primenjuju pri projektovanja
digitalnih kola.
Postoje dva osnovna pristupa projektovanju:
Top-down pristup:
Definisani sloeni problem se reava deljenjem na vie jednostavnijih podproblema koji se
dalje dele na jo jednostavnije podproblema itd. Proces se nastavlja sve dok podproblemi ne
postanu dovoljno mali i jednostavni za reavanje. Slika 5-1 pokazuje proces projektovanja top-down
metodom.
Bottom-up pristup:
Ova metoda projektovanja polazi od osnovnih blokova koji su na raspolaganju za
reavanje zadatog problema. Njihovim korienjem se grade blokovi vee kompleksnosti. Ovi
blokovi se dalje koriste za dobijanje blokova jo vee kompleksnosti itd. Proces se nastavlja sve dok
se ne rei problem. Slika 5-2 pokazuje proces projektovanja bottom-up metodom.
Pri projktovanju kola u digitalnoj elektronici najee se koristi kombinacija ove dve
metode. Projektanti elektrinih kola definisani problem dele na manje celine, koje posebno
reavaju. Te celine se ponovo dele na podceline sve dok se ne stie do nivoa kada je mogue
- 66 -
Projektovanje primenom programabilnih logikih kola (PLD)
koristiti gotove blokove koji su unapred definisani i predstavljaju osnovne komponente u razvojnim
okruenjima.
Sa druge strane, inenjeri koji projektuju komponente, polaze od nivoa prekidaa, koji su
osnovni elementi u datoj tehnologiji integrisanih kola. Na nivou prekidaa prvo izgrauju proste
funkcionalne jedinice (npr. logika kola) zatim kombinacijom tih jedinica se formiraju sloeniji
blokovi koji e biti gradivni elementi razvojnog okruenja.
Metode koje su prezentovane podjednako se primenjuju kod projektovanja digitalnih kola
sa SSI, MSI komponentama ili PLD kolima. Za ilustraciju navedenih pristupa projektovanju
posluiemo se primerom etvorobitnog brojaa sa asinhronim reset signalom. Broja treba
projektovati tako da ima mogunost asinhronog resetovanja i da se okida na silaznu ivicu takt
impulsa.
5.1. etvorobitni broja
Broja e imati etiri izlaza (q0, q1, q2 i q3) i dva ulaza (clock i reset) kao to je prikazano
na slici 5-3.
T Qn Qn+1 D
0 0 0 0
Tabela 5-1:Kombinaciona tabela za sintezu T flip-flop-a 0 1 1 1
pomou D flip-flop-a. 1 0 1 1
1 1 0 0
- 67 -
Projektovanje primenom programabilnih logikih kola (PLD)
4Q
Slika 5-5: Karnaugh-ova tabela za minimizaciju ulazne logike 7
funkcije D flip-flop-a.
D T Q TQ
7IOLSIORS
Slika 5-7: Hijerarhijska struktura dobijena pri projektovanju etvorobitnog brojaa top-down metodom.
- 68 -
Projektovanje primenom programabilnih logikih kola (PLD)
Koncept modula omoguava da se skup elemenata koji sainjavaju modul koristi na vie
mesta u projektu. Moduli se povezuju sa okolinom preko svojih port-ova (ulazi i izlazi).
Korienjem port-ova unutranjost modula je sakrivena od okoline. Kada se jedan modul posmatra
iz perspektive njegove okoline sve to se vidi to su njegove ulazne i izlazne linije (port-ovi). Ovo
omoguuje promene unutar modula a da se pri tome ne mora menjati ostatak projekta. Druga
prednost koju prua korienje port-ova je mogunost timskog rada na istom projektu.
Za timski rad je potrebno hijerarhijski organizovati projekat, opisati funkcije modula i
definisati port-ove. Nakon toga projektovanje odreenih modula ili grupe modula se dodeljuje
pojedinim lanovima tima.
Primeri modula sa slike 5-7 su etvorobitni broja i T flip-flop.
Definicija modula u Verilog HDL-u poinje pomou kljune rei module i zavrava se sa
endmodule. Svaki modul mora posedovati jedinstveno ime kako bi se mogao razlikovati od ostalih
modula. Takoe, svaka definicija modula mora sadrati listu port-ova koja opisuje ulazne i izlazne
linije modula.
Oblik definicije modula u Verilog HDL-u je prikazan u primeru 5-1:
< telo_modula>
endmodule
Centralni deo modula koji nosi naziv telo modula moe da sadri definicije sa etiri
razliita nivoa apstrakcije. Pojedini nivoi se primenjuju prema potrebama projekta. Ista
funkcionalnost se moe opisati korienjem sva etiri nivoa apstrakcije, pojedini nivoi se mogu i
meati.
Nivoi apstrakcije su sledei:
Verilog HDL dozvoljava korienje svih nivoa apstrakcije unutar jednog projekta.
Uobiajeno, izraz RTL (engl.: register transfer level) se odnosi na izvorni kod koji sadri definicije i
na nivou ponaanja i na nivou toka podataka.
Kada raste nivo apstrakcije poveavaju se fleksibilnost i tehnoloka nezavisnost projekta,
a kada se nivo apstrakcije pribliava nivou prekidaa isto se smanjuje. U takvom sluaju mala
promena u opisu zadatka moe izazvati znaajne promene u projektu. Moe se povui paralela sa
- 69 -
Projektovanje primenom programabilnih logikih kola (PLD)
5.3. Instance
Modul je uzor na osnovu ega se kreira konkretan objekat. Kada se modul poziva, Verilog
HDL kreira jedinstveni objekat na osnovu uzora. Svaki objekat poseduje jedinstveno ime,
ulazno/izlazni interfejs, parametre i nosioce podataka. Proces kreiranja jedinstvenog objekta na
osnovu uzora (modula) se naziva instanciranje (engl.: instantiation) a novonastali objekat je
instanca (engl.: instance).
etvorobitni broja prikazan na slici 5-4 se sastoji od 4 instance T flip-flop-a. Svaki T flip-
flop instancira jedan D flip-flop, dva I kola i po jedno NE i ILI kolo. Primer 5-2 sadri definiciju
modula 4-bitnog brojaa. Svaka instanca mora posedovati jedinstveno ime. Dvostruka kosa crta (//)
oznaava jednolinijski komentar. Komentari sadre informacije za projektanta i nemaju uticaja na
digitalni sistem koji se realizuje.
Verilog HDL ne dozvoljava definisanje modula unutar definicije drugog modula. Umesto
toga se vri instanciranje potrebnog modula.
Pojmovi definicija modula i instanca modula se ne smeju meati. U poreenju ovih
pojmova sa procesom izgradnje zgrade, plan zgrade odgovara definiciji modula, proces izgradnje
zgrade instanciranju a gotova zgrada instanci.
5.4. Simulacija
Pre nego to se primenom odgovarajueg hardvera (PLD) realizuje projektovno kolo i
pristupi testiranju kola realizovanog na bazi HDL opisa, prvo se vri simulacija na raunaru.
Funkcionalnost HDL opisa se proverava primenom ulaznih signala i posmatranjem izlaznih signala.
Treba imati na umu da je takvo ispitivanje dobro u onolikoj meri u kojoj meri pametno odaberemo
ulazne (pobudne) signale. Matematiari rade na razvoju sistematskih postupaka za ispitivanje
ispravnosti HDL opisa ali je zasad to u preliminarnoj fazi.
Blok koji obezbeuje ulazne signale i prima izlazne signale se obino naziva ispitni blok (engl.:
stimulus block ili test bench). Ispitni blok je takoe jedan modul napisan u jeziku za opis hardvera
(HDL). Osnovno pravilo je da se ne sme pomeati ispitni blok sa projekom koji se realizuje. Postoje
dva naina primene ispitnog bloka na objekat koji se testira:
Ispitni blok instancira modul koji se testira i obezbeuje ulazne i prima izlazne signale.
Ispitni blok postaje Verilog modul najvieg nivoa u hijerarhiji projektovanja. Primer koji
ilustruje ovaj princip je prikazan na slici 5-8. Objekat testiranja je etvorobitni broja
prikazan na slici 5-3.
- 70 -
Projektovanje primenom programabilnih logikih kola (PLD)
Drugi nain primene ispitnog bloka je da se predmet testiranja i blok koji vri testiranje
instanciraju unutar jednog praznog modula najvieg nivoa u hijerarhiji projektovanja (engl.:
dummy block). Ispitni blok komunicira sa modulom testiranja kroz port-ove. Ovaj nain
primene ispitnog bloka je prikazan na slici 5-9. Jedina funkcija bloka najvieg nivoa je
instanciranje ispitnog modula i modula koji se testira.
- 71 -
Projektovanje primenom programabilnih logikih kola (PLD)
6.1.2. Komentari
Komentari su neophodni u softverskim jezicima radi dokumentovanja i lakeg
razumevanja programskog koda pri kasnijem analiziranju. Isto vai i za jezike za opis hardvera.
Osnovno pravilo je da se stavi komentar svugde gde postoji sumnja da e jedna naredba ili grupa
naredbi predstaviti problem za razumevanje posle nedelju ili mesec dana. Oni koji se ipak usteu od
pisanja komentara treba da imaju na umu da pisanje komentara ne umanjuje inteligenciju
programera.
Postoje dva naina pisanja komentara (primer 6-1):
Jednolinijski komentari. Znaci // nalau prevodiocu opisa na hardverskom jeziku da sve
to sledi od te take pa do kraja reda preskae u procesu prevoenja.
Vielinijski komentari. Vielinijski komentar poinje znacima /* i zavrava se sa
znacima */.
/*Ovo je vielinijski
komentar*/
6.1.3. Operatori
Operatore delimo u tri kategorije: imamo unarne, binarne i ternarne operatore (primer 6-
2). Unarni operatori se odnose na jedan operand i stavljaju se ispred operanada, binarni operatori se
stavljaju izmeu dva operanda. Ternarni operatori se sastoje od dva posebna znaka koji razdvajaju
tri operanada.
- 72 -
Projektovanje primenom programabilnih logikih kola (PLD)
<veliina><osnova_brojnog_sistema><broj>
<veliina> je decimalni broj koji predstavlja broj bitova pomou kojih se zapisuje dati broj.
Brojni sistemi koje Verilog HDL podrava su: decimalni sistem (oznaka je d ili D),
binarni sistem (oznaka je b ili B), oktalni sistem (oznaka je o ili O) i heksadecimalni sistem
(oznaka je h ili H).
<Broj> se zadaje ciframa 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f ili podskupom ovih cifara
koji odgovara brojnom sistemu koji se koristi. Cifre se mogu pisati i malim i velikim slovima (a, b,
c, d, e, f ili A, B, C, D, E, F)(primer 6-3).
- 73 -
Projektovanje primenom programabilnih logikih kola (PLD)
Znak pitanja
Kada se radi o brojevima, znak pitanja ? (primer 6-8) predstavlja alternativu za stanje
visoke impedanse (z). Znak pitanja se jo koristi u izrazima casex i casez kako bi se poveala
preglednost HDL opisa. Ove dve naredbe emo kasnije detaljno objasniti.
Primer 6-8: Oznaavanje stanja visoke impedanse znakom pitanja.
4b01?? // Identian izrazu: 4b01zz
- 74 -
Projektovanje primenom programabilnih logikih kola (PLD)
6.1.6. Identifikatori
Identifikatori (engl.: identifier) su imena objekata u Verilog HDL-u koja omoguavaju
jednoznano pozivanje na njih. Identifikatori se grade pomou slova, brojeva, znaka donje crte i
znaka dolara ($). Verilog HDL razlikuje mala i velika slova u identifikatorima. Identifikatori se ne
mogu poeti brojevima i znakom dolara. (Znak dolara kao prvi karakter u identifikatoru je
rezervisan za sistemske funkcije.)
- 75 -
Projektovanje primenom programabilnih logikih kola (PLD)
a
Slika 6-2: Primer za nosioce podatka tipa net. c
b
Nosioci podataka tipa net se najee deklariu pomou kljune rei wire (primer 6-11).
Podaci su redovno veliine jednog bita osim kada se deklariu kao vektor. U literaturi pojam wire se
esto koristi umesto net. Po dogovoru, vrednost nekog podatka tipa wire koji nije povezan na izlaz
nekog elementa je jednaka stanju visoke impedanse. Ako je dati nosilac podatka povezana sa
izlazom nekog elementa, njegova vrednost postaje logika vrednost izlaza datog elementa.
Primer 6-11: Deklaracija podataka tipa net pomou kljune rei wire.
wire c; // Deklarie se podatak c, tipa veza koja je
// povezana sa izlazom ILI kola. (Slika 6-2)
wire a, b; // Deklariu se podaci a i b, tipa veza koje su
// povezane na ulaz ILI kola. (Slika 6-2)
wire d = 1b0; // Podatak d je tipa veza i ima konstantnu
// vrednost nula.
Kada je vrednost nekog podatka konstantna kao u sluaju podatka d, nije ga preporuljivo
povezati sa izlazom nekog digitalnog kola. Kada vrednost izlaza datog elementa postaje jedan,
dolazi do kolizije logikih vrednosti jer vrednost podatka d tipa veza treba da je nula.
Potrebno je napomenuti da veza (net) nije kljuna re i predstavlja jednu celu klasu tipa
podataka kao to su wire, wand, wor, tri, triand, trior, trireg itd. Najee se koristi tip wire. Ostali
tipovi podataka se ree koriste.
6.2.3. Registri
Registri su elementi koji slue za pamenje logikih vrednosti. Registri pamte svoje
sadraje sve dok se ne zamene novim vrednostima.
Ne treba meati pojam registra u Verilog HDL-u sa hardverskim registrima sastavljenim
od flip-flop-ova koji dobijaju nove vrednosti na rastuoj ili na opadajuoj ivici takt signala. Pojam
registra u Verilog HDL-u oznaava nosilac podatka koji pamti vrednost koja je njemu dodeljena u
nekom ranijem momentu. Za razliku od veze (net), registru nije potreban drajver (izlaz nekog
logikog kola) da bi imao vrednost razliitu od stanja visoke impedanse. Nosiocima podataka tipa
registar u Verilog HDL-u nisu potrebni takt signali koji sinhroniu promenu stanja. Sadraj registra
u Verilog HDL-u se moe promeniti u bilo kom trenutku putem odgovarajue dodele.
Nosioc podatka tipa registar se deklariu pomou kljune rei reg. Podrazumevana
vrednost podatka tipa reg je neodreeno stanje (tj. x), ta vrednost vai sve dok se registru ne dodeli
neka konkretna vednost. Primer 6-12 prikazuje nain deklarisanja nosioca podatka tipa reg:
Primer 6-12: Deklaracija nosioca podataka tipa registar pomou kljune rei reg.
reg reset; // Nosilac podatka reset pamti dodeljene vrednosti.
initial // Jezika konstrukcija koja e biti objanjena kasnije.
begin
reset = 1b1; // Pomou reset signala se resetuje neko digitalno kolo.
#100 reset = 1b0; // Posle 100 vremenskih jedinica reset signal se deaktivira.
end
- 76 -
Projektovanje primenom programabilnih logikih kola (PLD)
6.2.4. Vektori
Nosioci podataka tipa net i reg se mogu deklarisati kao vektorske veliine (irina je vea
od jednog bita). Ako nije navedena irina podatka u bitovima, podrazumevana vrednost je jedan bit.
U tom sluaju podatka je skalarna veliina (primer 6-13).
Vektori se deklariu kao [vei_broj : manji_broj] ili [manji_broj : vei_broj]. Levi broj u
uglastoj zagradi uvek predstavlja bit nejvee teine u vektoru. U gornjem primeru za nosilac
podatka ledB najznaajniji bit je bit 15, dok za podatak mem najznaajniji biti je bit 0.
Mogue je adresirati jedan bit ili grupu bitova unutar vektorskog podatka. Ova mogunost
je prikazana u primeru 6-14 nad vektorskim poacima definisanim u prethodnom primeru.
- 77 -
Projektovanje primenom programabilnih logikih kola (PLD)
6.2.7. Nizovi
Verilog HDL podrava graenje jednodimenzionalnih nizova (engl.: array) od tipova
podataka reg, integer i vektora registara. Nizovi se ne mogu praviti od podataka tipa real i ne mogu
se praviti viedimenzionalni nizovi. Deklaracija nizova se vri u sledeoj formi:
<ime_niza>[vei_broj : manji_broj] ili <ime_niza>[manji_broj : vei_broj] (primer 6-17).
Potrebno je napomenuti da se ne smeju meati pojmovi vektor i niz. Vektor je jedan podatak
irok n-bita, dok je niz skup vie elemenata irokih 1-bit ili n-bita.
6.2.8. Memorije
U savremenom digitalnom projektovanju pomou PLD-ova esto je potrebno ostvariti
registre i memorijske blokove, (RAM, ROM). Memorije se u Verilog HDL-u delariu kao niz
registara (primer 6-18). Elementi memorije se nazivaju reima (engl.: words). Rei mogu biti iroki
1-bit ili n-bita. Potrebno je razlikovati n 1-bitnih registara od jednog n-bitnog registra.
6.2.9. Parametri
Verilog HDL omoguava definisanje konstanti unutar modula pomou kljune rei
parameter (primer 6-19). Parametri se ne mogu koristiti kao podaci.
- 78 -
Projektovanje primenom programabilnih logikih kola (PLD)
Pri definisanju i korienju makroa uvek je prisutan znak . Svrha tekstualnih makro-a je da
ubrza pisanje HDL opisa (dugaki tekstovi se mogu zameniti kratkim imenima makro-a) i da
povea njegovu preglednost. Ovo se postie tako to prevodilac zamenjuje ime_makroa sa
tekst_makroa u celom HDL opisu (primer 6-23).
- 79 -
Projektovanje primenom programabilnih logikih kola (PLD)
7. Moduli i port-ovi
U prethodnim glavama su predstavljeni koncepti hijerarhijskog projektovanja, osnovne
jezike konvencije hardverskog jezika Verilog i raspoloivi tipovi podataka odnosno nosioci
podataka. Ova glava detaljno obrauje ranije uvedeni pojam modula i daje opis i pravila u vezi
port-ova.
7.1. Moduli
U glavi 5 je reeno da je modul gradivni element koji ini osnovu hijerarhijskog
projektovanja u jeziku Verilog. Akcenat je bio na definisanju i instanciranju modula a ne na
unutranjoj strukturi modula. Ova glava detaljno obrauje unutranjost modula.
Modul je tekst fajl formiran od ASCII karaktera. Sastoji od nekoliko razliitih delova kao
to je prikazano na slici 7-1.
moduleIme_modula, port_lista
Deklaracija_portova (ako postoje)
Parametri (opciono)
Task-ovi i funkcije
endmodule
Definisanje modula uvek poinje pomou kljune rei module. Prvo se zadaju ime modula
i lista port-ova, zatim se deklariu vrste port-ova i uvode parametri. Lista portova i deklaracija
portova su prisutni samo ako postoji interakcija modula i okruenja.
Telo modula sainjavaju pet komponenti koje su: deklaracija tipa podataka, izrazi sa nivoa
toka podataka, instanciranje modula niih nivoa, izrazi na nivoau ponaanja i Verilog funkcije.
Navedene komponente se mogu nalaziti u bilo kom redosledu unutar tela modula.
Definicija modula se uvek zavrava pomou kljune rei endmodule. Samo su kljuna re
module, ime modula i kljuna re endmodule obavezni sve ostalo se koristi prema potrebi. Verilog
HDL dozvoljava definisanje vie modula unutar jednog ASCII fajla i to u bilo kom redosledu.
Redosled nema veze sa hijerarhijom.
Razni delovi modula e se ilustrovati pomou
primera modula koji definie RS latch. Slika 7-2 prikazuje
logiku emu RS latch-a koji ima dva ulaza S i R i dva
izlaza Q i NotQ. U primeru 7-1 data je definicija modula za
RS latch i definicija jednog ispitnog modula (pod imenom
Stimulus) koji moe posluiti za testiranje latch-a.
- 80 -
Projektovanje primenom programabilnih logikih kola (PLD)
Nisu prisutne sve komponente koje su prikazane na slici 7-1 u definiciji modula RS latch-a.
Ne postoje ni deklaracije tipova podataka ni izrazi na nivoa toka podataka (assign) i nivoa
ponaanja (always ili initial), ipak je definicija modula korektna.
Modul sa imenom Stimulus za RS latch poseduje deklaraciju tipova podataka i izraze na
nivou ponaanja ali nema listu port-ova, deklaraciju port-ova, a nema ni izraza na nivou
toka podataka.
Jo jednom da se naglasi: sve komponente modula osim kljune rei module, ime modula
i kljune rei endmodule su opcionog karaktera i koriste se po potrebi u bilo kom redosledu.
- 81 -
Projektovanje primenom programabilnih logikih kola (PLD)
7.2. Port-ovi
Port-ovi su sprene take modula preko kojih se omoguava komunikaciju sa drugim
modulima. U Verilog HDL opisu uloga port-ova je analogna noicama kod integrisanih kola. Jedini
nain da okruenje komunicira sa modulom je preko njegovih port-ova. Unutranja struktura
modula je nevidljiva iz okruenja. Ovo daje veliku fleksibilnost u projektovanju jer se mogu
nainiti promene u konstrukciji modula bez uticaja na nain komuniciranja sa drugim modulima.
Port-ovi se jo nazivaju i terminali (engl.: terminal).
Top je modul najvie hijerarhije i zbog toga nema ulazne signale i ne gernerie izlazne
signale za eventualne vie module u hijerarhiji. Zato nema ni listu port-ova. Modul koji je najvii u
hijerarhiji komunicira samo sa softverom koji obrauje HDL opis, to se ne manifestuje u definiciji
modula.
- 82 -
Projektovanje primenom programabilnih logikih kola (PLD)
input [3:0] a, b;
input c_in;
// Kraj deklaracije port-ova
//------------------------------------
// Telo modula
//------------------------------------
endmodule
Ako se neki port deklarie kao ulazni, izlazni ili bidirekcioni, tom port-u se automatski
dodeljuje nosilac podatka tipa wire. Prema tome, ako je potreban port tipa wire, dovoljno ga je
deklarisati kljunim reima input, output ili inout, deklaracija tipa podaatka se izostavlja. Funkcija
izlaznih port-ova je esto pamenje odreenih vrednosti i u tim situacijama je potrebno da se za njih
deklarie tip podatka reg.
U gornjem primeru svim port-ovima pripadaju nosioci podataka tipa wire. Primer 7-4
prikazuje deklaraciju port-ova D flip-flop-a, u kome port-u q pripada podatak tipa reg.
Ulazni i bidirekcioni (input, inout) port-ovi se ne mogu deklarisati kao reg jer nosioci
podataka tipa reg pamte vrednosti a uloga ulaznih port-ova je da prenose promene eksternih signala
modulu.
- 83 -
Projektovanje primenom programabilnih logikih kola (PLD)
- 84 -
Projektovanje primenom programabilnih logikih kola (PLD)
//------------------------------------
// Telo modula
//------------------------------------
endmodule
module Top;
reg [3:0] A, B;
reg C_IN;
wire [3:0] SUM;
wire C_OUT;
//------------------------------------
// Tu dolazi HDL opis koji predstavlja ispitni deo modula Top.
//------------------------------------
endmodule
- 85 -
Projektovanje primenom programabilnih logikih kola (PLD)
Primer 7-8: Nepotpuno povezivanje port-ova na osnovu imena za primer 7-6 ako je
port c_out nepotreban.
full_add_4 fa0(.sum(SUM), .b(B), .c_in(C_IN), .a(A));
Za dobijanje hijerarhijskih imena zapisuju se imena poetne take i svih instanci koje se
nalaze na putanji do eljenog identifikatora.
U primeru 7-9 su prikazana hijerarhijska imena koja se mogu napisati za sliku 7-5. Obratiti
panju na take kojom se razdvajaju imena nivoa u hijerarhiji.
- 86 -
Projektovanje primenom programabilnih logikih kola (PLD)
- 87 -
Projektovanje primenom programabilnih logikih kola (PLD)
Primeri instanciranja logikih kola koja su definisana u Verilog HDL-u su dati u primeru
8-1. Kod svake instance, izlazni port logike kapije (out) je vezan na nosilac podatka tipa net sa
imenom OUT i nosioci podataka istog tipa IN1 i IN2 su prikljueni na ulaze logikih kola i1 i i2.
Meusobno povezivanje izlaza logikih kola koje je prisutno u datom opisu nije uobiajeno.
U pimeru 8-1 prvih est instanci odgovaraju dvoulaznim logikim kapijama, sedma
instanca je troulazno NI kolo. U Verilog HDL-u I i ILI logike kapije mogu imati proizvoljan broj
ulaza.
Osma instanca u primeru 8-1 nema ime. U sluaju logikih kapija takvo instanciranje se
takoe smatra pravilnim. Mogu se instancirati logika kola na stotine bez ijednog imena instanci.
- 88 -
Projektovanje primenom programabilnih logikih kola (PLD)
Slika 8-3 prikazuje ematske oznake kola za sprezanje za sluaj jednog izlaza. Ime
ulaznog port-a je in, a ime izlaznog port-a je out.
- 89 -
Projektovanje primenom programabilnih logikih kola (PLD)
Tabela 8-3: Imena modula i funkcije kola za sprezanje sa tri stanja definisana u Verilog HDL-u.
Ova kola za sprezanje se ponaaju kao obina kola za sprezanje (taka 8.1.2) dok su
kontrolni ulazi aktivni. U suprotnom sluaju njihovi izlazi su u stanju visoke impedanse. ematski
simboli kola su prikazani na slici 8-5.
bufif1 notif1
in out in out
ctrl ctrl
ctrl ctrl
Primer 8-3 prikazuje nain instanciranja kola za sprezanje sa tri stanja. Prvi port u listi port-
ova je izlaz, drugi je ulaz signala a trei je kontrolni ulaz. Radi uproenja i ovde se moe izostaviti
ime pri instanciranju.
Na slici 8-6 su prikazane kombinacione tabele koje definiu ponaanje kola za sprezanje
sa tri stanja. U tabelama su uzete u obzir sve mogue situacije na ulazima (pored logike 0 i 1 i
neodreeno stanje i stanje visoke impedanse).
- 90 -
Projektovanje primenom programabilnih logikih kola (PLD)
ctrl ctrl
bufif1 notif1
0 1 x z 0 1 x z
0 z 0 x x 0 z 1 x x
1 z 1 x x 1 z 0 x x
in in
x z x x x x z x x x
z z x x x z z x x x
Kola za sprezanje sa tri stanja u Verilog HDL-u imaju analognu ulogu kao odgovarajua
hardverska kola. Obino se koriste u situacijama kada vie kola treba da koriste zajedniku liniju za
prenos u razliitim vremenskim intervalima (vremenski multpleks). U takvim situacijama signali se
prikljuuju na zajedniku liniju preko kola za sprezanje sa tri stanja od kojih istovremeno uvek
samo jedan dobije dozvolu. Na taj nain se izbegava kolizija signala na zajednikoj liniji.
Pod kolizijom se podrazumeva situacija kada vie izlaza logikih kola vezanih na
zajedniku liniju pokuavaju da ostvare razliite logike nivoe. U takvoj situaciji neki izlazi daju a
neki primaju preveliku struju, nastaju veliki gubici (zagrevanje) i u nekim situacijama moe da doe
i do pregorevanje komponenti. Ne treba zanemariti ni injenicu da se pri koliziji formira naponski
nivo koji nije pravilani logiki nivo to moe da dovodi do neoekivanog ponaanja u kolu.
- 91 -
Projektovanje primenom programabilnih logikih kola (PLD)
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
Slika 8-7: Kombinaciona tabela jednobitnog potpunog
sabiraa. 0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
sum a b c_in
c_out a b c_in a b
Polazei od jednaina dobija se logika ema jednobitnog potpunog sabiraa koja je prikazana na
slici 8-8.
a b
c1
c_out
s1
c2
c_in
sum
Na osnovu gornje eme, u primeru 8-4 je napisan HDL opis jednobitnog potpunog
sabiraa na nivou logikih kapija. Pri instanciranju logikih kapija instance nemaju imena. Nazivi
unutranjih veza (vorova) su istovetni kao na logikoj emi na slici 8-8.
- 92 -
Projektovanje primenom programabilnih logikih kola (PLD)
// Deklaracije port-ova
output sum, c_out;
input a, b, c_in;
endmodule
Kaskadnom vezom etiri jednobitna potpuna sabiraa nastaje etvorobitni sabira koji je
prikazan na slici 8-9.
Na osnovu logike eme je formiran Verilog HDL opis etvorobitnog sabiraa dat u primeru
8-5. Pored potrebnih deklaracija ovaj modul vri etiri instanciranja modula jednobitnog potpunog
sabiraa definisnog u primeru 8-4.
// Deklaracija port-ova
output [3:0] sum;
output c_out;
input [3:0] a, b;
input c_in;
- 93 -
Projektovanje primenom programabilnih logikih kola (PLD)
endmodule
Potrebno je naglasiti da se koristi vie istih imena u listi port-ova za modul jednobitnog
potpunog sabiraa i etvorobitnog sabiraa ali se ta imena odnose na razliite podatke. Port sum
jednobitnog potpunog sabiraa je skalarna veliina, dok port sum etvorobitnog sabiraa je
vektorska veliina iroka etiri bita. Imena definisana unutar nekog modula su dostupna samo za taj
modul zato ne dolazi do zbrke. Imena definisana unutar nekog modula su nevidljiva van modula
osim ako se ne navodi celo hijerarhijsko ime datog podatka.
Svakoj instanci modula jednobitnog potpunog sabiraa se moralo pridruiti jedinstveno
ime u procesu instanciranja. Isto nije bilo potrebno pri instanciranju osnovnih elementa (logikih
kapija) pri definisanju modula jednobitnog potpunog sabiraa (primer 8-4).
Kada je projekat zavren, generisanjem ulaznih i posmatranjem izlaznih signala se mora
proveriti funkcionalnost HDL opisa. Potrebno je definisati jedan ispitni modul koji generie ulazne
signale za projekat i prima izlazne signale. Analizom izlaznih signala e projektant ustanoviti da li
dati modul funkcionie pravilno.
U primeru 8-6 je data definicija ispitnog modula pod imenom Stimulus.
#5 A = 4d3; B = 4d4;
#5 A = 4d2; B = 4d5;
#5 A = 4d9; B = 4d9;
#5 A = 4d10; B = 4d15;
#5 B = 4d5; C_IN = 1b1;
end
endmodule
8.3. Kanjenja
Logika kola koja su se koristila u prethodnim primerima su bila bez kanjenja, odnosno
sa nultim kanjenjem. Kod realnih logikih kola uvek se javlja kanjenje promene na izlazu u
odnosu na promenu na ulazu. To se mora uzeti u obzir i u hardverskim opisima da bi pri simulaciji i
pri kasnijoj realizaciji projekta dobili realne rezultate. Za simulaciju kanjenja u realnim digitalnim
sistemima, Verilog HDL omoguava definisanje tri vrste kanjenja za osnovna logika kola.
- 94 -
Projektovanje primenom programabilnih logikih kola (PLD)
Kanjenje porasta
Kanjenje porasta (engl.: rise delay) je vreme
potrebno izlazu da se njegova logika vrednost sa 0, x ili z 0, x ili z 1
vrednosti poraste na 1 (slika 8-10).
tporasta
Slika 8-10: Prikaz vremena kanjenja kod rastue ivice signala.
Kanjenje opadanja
Kanjenje opadanja (engl.: fall delay) je vreme
potrebno izlazu da se njegova logika vrednost sa 1, x ili 0
z opadne na 0 (slika 8-11). 1,x ili z
topadanja
Slika 8-11: Prikaz vremena kanjenja kod opadajue ivice
signala.
Kanjenje iskljuivanja
Kanjenje iskljuivanja (engl.: turn-off delay) je vreme potrebno izlazu da se njegova
logika vrednost sa 0, 1 ili x pree u stanje visoke impedanse (z).
U Verilog HDL-u ne zadaje se posebna vrednost kanjenja izlaza kada se izlaz menja sa
poznate vrednosti (0 ili 1) u nepoznato stanje (x) Softver za prevoenje odnosno simulaciju
automatski uzima minimalnu vrednost od prethodna tri kanjenja.
Verilog HDL podrava tri naina zadavanja gore definisanih kanjenja u logikim kolima:
Jedno kanjenje je zadato i ta vrednost se koristi za sve prelaze.
Dva kanjenja su zadata i odnose se na kanjenje porasta i opadanja. Kanjenje
iskljuivanja postaje manja vrednost od prethodna dva kanjenja.
Sve tri vrste kanjenja su zadata i odnose se redom na kanjenje porasta, opadanja i
iskljuivanja.
Ukoliko ni jedna vrsta kanjenja nije zadata, podrazumevana vrednost je 0, odnosno nema
kanjenja. Jezike konstrukcije za zadavanja kanjenja su prikazane u primeru 8-7.
Primer 8-7: Jezike konstrukcije za zadavanja kanjenja.
// Svi prelazi imaju jednako kanjenje koje je odreeno vrednou parametra delay_time.
and #(delay_time) a1(out1, in1, in2);
- 95 -
Projektovanje primenom programabilnih logikih kola (PLD)
Minimalno vreme kanjenja je najkrae potrebno vreme da se pojavi odziv na izlazu nakon
promene ulaza.
Tipino vreme kanjenja je oekivano vreme kanjenja.
Maksimalno vreme kanjenja je najdue potrebno vreme izlaza da odgovori na promenu na
ulazu.
a e
#5
b
#4 out
c
- 96 -
Projektovanje primenom programabilnih logikih kola (PLD)
// Deklaracija port-ova
output out;
input a, b, c;
// Interne veze
wire e;
endmodule
Ovaj modul se testira ispitnim modulom sa imenom stimulus koji je prikazan u primeru 8-
11.
endmodule
- 97 -
Projektovanje primenom programabilnih logikih kola (PLD)
e xxxx
OUT x x x x x x x x
0 5 9 10 14 15 20 25 29 40
- 98 -
Projektovanje primenom programabilnih logikih kola (PLD)
- 99 -
Projektovanje primenom programabilnih logikih kola (PLD)
Operandi na desnoj strani izraza mogu biti podaci tipa reg, net ili Verilog HDL funkcijski
pozivi (ovo poslednje nije obraeno u ovom opisu). Nosioci podataka tipa reg i net mogu
biti skalarnog ili vektorsk0g karaktera.
U sledeoj taki je predstavljen krai nain zapisa kontinualne dodele nosiocima podataka
tipa net.
- 100 -
Projektovanje primenom programabilnih logikih kola (PLD)
U primeru 9-4 rezultat promene u vrednostima signala in1 i in2 se pojavljuje na izlazu
logikog I kola sa kanjenjem od 10 vremenskih jedinica. Na slici 9-1 su prikazani vremenski
dijagrami signala na nosiocima podataka koji su korieni u primeru 9-4.
in1
in2
out
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80
// Gornji izraz ima isti efekat kao posebna deklaracija tipa podatka i
// pisanje izraza za kontinualnu dodelu sa kanjenjem.
wire out;
assign #10 out = in1 & in2;
- 101 -
Projektovanje primenom programabilnih logikih kola (PLD)
9.3.1. Izrazi
Izrazi su kostrukcije koje kombinuju operatore i operande radi dobijanja eljene obrade
podataka (primer 9-7).
9.3.2. Operandi
Uopteno, operandi mogu biti podaci bilo kog tipa definisanih u poglavlju 6.2. Neke
konstrukcije prihvataju samo odreene tipove operanada. Operand moe biti konstanta, ceo broj
(integer), realan broj (real), net, reg, vektor, deo vektorske veliine (koji moe sadrati jedan ili
vie bitova) ili funkcijski poziv (u ovom opisu, kao to je ve napomenuto, funkcijski pozivi ne
predstavljaju predmet razmatranja). U primeru 9-8 se prikazuju naini korienja operanada.
real a, b, c;
c = a b; // a i b su operandi tipa real
- 102 -
Projektovanje primenom programabilnih logikih kola (PLD)
9.3.3. Operatori
Nad operandima se primenjuju razne operacije s ciljem dobijanja eljenih rezultata.
Opreacije se definiu pomou operatora. U Verilog HDL-u je na raspolaganju veliki broj operatora
(primer 9-9). Tipovi operatora su predstavljeni u poglavlju 9.4.
Primer 9-9: Primeri korienja operatora.
d1 && d2 // && je binarni operator nad operandima d1 i d2.
!a[0] // ! je unarni operator nad operandom a[0].
C >> 2 // >> je binarni operator nad operandima C i 2.
- 103 -
Projektovanje primenom programabilnih logikih kola (PLD)
// Ako je vrednost nekog bita operanda nepoznata (x), onda je i rezultat celog izraza nepoznat (x).
in1 = 4b101x;
in2 = 4b1011;
Unarni operatori
Operatori + i mogu biti i unarni operatori (primer 9-11). U tom sluaju se koriste za
zadavanje pozitivnog ili negativnog predznaka operanda. Unarni operatori + i imaju vei prioritet
od binarnih operatora + i .
Korienje negativnih brojeva se preporuuje samo u tom sluaju kada je tip nosioca
podatka integer ili real. Kod brojeva koji su dati u obliku <veliina><osnova_brojnog_sistema>
<broj> bi trebalo izbegavati korienje negativnog predznaka jer takve brojeve Verilog HDL
prevodi u oblik drugog komplementa i rezultat moe biti neoekivan (primer 9-12).
Primer 9-12: Primer neoekivanog rezultata pri deljenju negativnog broja datog u
obliku <veliina><osnova_brojnog_sistema><broj>.
// Za predstavljanje negativnih brojeva se preporuuje korienje
// nosioca podatka tipa integer ili real.
// Ako se koristi nosioc podatka integer ili real, dobija se oekivani rezultat.
-10 / 5 // Rezultat je -2.
- 104 -
Projektovanje primenom programabilnih logikih kola (PLD)
A <= B; // Rezultat je 0.
A > B; // Rezultat je 1.
Y <= X; // Rezultat je 0.
Y < Z; // Rezultat je x.
- 105 -
Projektovanje primenom programabilnih logikih kola (PLD)
Mogue logike
Izrazi Opisi
vrednosti
a==b a jednako b, rezultat je neodreen ako je x ili z prisutan meu 0, 1, x
bitovima a ili b
a != b a nije jednako b, rezultat je neodreen ako je x ili z prisutan meu 0, 1, x
bitovima a ili b
a = = = a jednako b, pri ispitivanj jednakosti se razmatraju i vrednosti x ili z 0, 1
b u bitovima a i b
a != = b a nije jednako b, pri ispitivanj jednakosti se razmatraju i vrednosti x 0, 1
ili z u bitovima a i b
Tabela 9-2: Opisi operacija jednakosti.
A == B // Rezultat je 0.
X != Y // Rezultat je 1.
X == Z // Rezultat je x.
Z === M // Rezultat je 1 jer svi bitovi se poklapaju ukljuujui x i z.
Z === N // Rezultat je 0 jer bitovi sa najmanjom binarnom teinom se razlikuju.
M !== N // Rezultat je 1.
- 106 -
Projektovanje primenom programabilnih logikih kola (PLD)
0 1 x 0 1 x
0 0 0 x 0 0 1 x
1 0 1 x 1 1 1 x
x x x x x x x x A ~A
I operacija ILI operacija
0 1
bit po bit bit po bit
1 0
0 1 x 0 1 x
x x
0 1 0 x 0 1 0 x
NE operacija
bit po bit
1 0 1 x 1 0 1 x
Slika 9-2: Kombinacione tabele
za operacije bit po bit. x x x x x x x x
Iskljuciva ILI operacija Iskljuciva NILI
bit po bit operacija bit po bit
Vano je naglasiti razliku izmeu operatora nad bitovima: ~, &, | i logikih operatora: !,
&&, ||. U logikim operacijama operandi se smatraju za jednu logiku promenljivu bez obzira na
broj bita dok se kod opearcija bit po bit operacija izvrava nad pojedinim bitovima operanda
(primer 9-17).
Primer 9-17: Primer koji prikazuje razliku izmeu operacija bit po bit i logikih
operacija.
X = 4b1010; Y = 4b0000;
- 107 -
Projektovanje primenom programabilnih logikih kola (PLD)
Y = { B, C }; // Y = 4b0010
Y = { A, B, C, D, 3b001 }; // Y = 11b10010110001
Y = { A, B[0], C[1] }; // Y = 3b101
- 108 -
Projektovanje primenom programabilnih logikih kola (PLD)
Pri izvravanju uslovne operacije, prvo se izraunava tanost (logika vrednost) iskaza
uslov. Ako je uslov taan, koristi se izraz_za_sluaj_tanog_uslova. Ako je uslov netaan, koristi se
izraz_za_sluaj_netanog_uslova.
Ako je tanost iskaza uslov neodreena (x) onda se izraunavaju vrednosti oba izraza
(izraz_za_sluaj_tanog_uslova : izraz_za_sluaj_netanog_uslova) i rezultat se formira
uporeivanjem izraza. Rezultat se odreuje bit po bit: na onim binarnim mestima gde oba izraza
daju istu logiku vrednost, stavlja se ta vrednost dok u sluaju nepoklapanja stavlja se vrednost x.
Uslovni operatori se esto koriste na nivou toka podataka za modeliranje uslovnih
dodeljivanja: tanost uslova odreuje, vrednost kojeg izraza e se dodeliti nosiocu podatka na levoj
strani assign izraza.
Uslovna dodela radi kao digitalni
multipleksor 2/1 (slika 9-3, primer 9-22) tako
in0 0
da se uslovna operacija moe koristiti za
opisivanje multipleksora.
Multipleksor
out
2/1
in1 1
drive_enable
- 109 -
Projektovanje primenom programabilnih logikih kola (PLD)
Primer 9-22: Opisivanje multipleksora i kola za sprezanje sa tri stanja pomou uslovne
operacije.
// Opisivanje multipleksora 2/1 (slika 9-3) pomou uslovne operacije.
assign out = control ? in1 ? in2;
Uslovne operacije je mogue koristiti i na iterativan nain. Izrazi unutar uslovnih operacija
mogu da sadre druge uslovne operacije. Ova mogunost je prikazana preko jednog primera.
Zadatak je da se uporede dva dvobitna broja (A i B). Vrednost izlaza treba da bude logika
jedinica ako su oba broja parna ili neparna, u suprotnom sluaju vrednost izlaza postaje logika
nula. Dovoljno je ispitati parnost bita najmanje teine na nain koji je prikazan u primeru 9-23.
Izlaz se odreuje u dva koraka (na iterativan nain) primenom uslovnih operacija.
- 110 -
Projektovanje primenom programabilnih logikih kola (PLD)
- 111 -
Projektovanje primenom programabilnih logikih kola (PLD)
U toku simulacije gore navedenog modula sve tri initial procedure kreu u trenutku t=0.
Pojedina dodeljivanja e se izvravati sa kanjenjem, ako je tako definisano u opisu. Stvarna
vremena izvravanja dodeljivanja i instrukcija su data u tabeli 10-1.
vreme dodela
0 m=1b0
5 a=1b1
30 b=1b0
50 $finish
Tabela 10-1: Stvarna vremena izvravanja dodela i instrukcija iz primera 10-1.
- 112 -
Projektovanje primenom programabilnih logikih kola (PLD)
jednog modula sa blokirajuim dodelama, a u tabeli 10-2 je sumirano po kom redosledu pojedine
dodele dolaze na izvravanje i u kom momentu se izvravaju.
- 113 -
Projektovanje primenom programabilnih logikih kola (PLD)
count<=count+1;
end
Moe se rei da se prvih est dodela izvravaju u trenutku t=0, i to u redosledu pisanja
(osobina blokirajuih dodela). Posle toga, ali jo uvek u trenutku t=0, preostale tri dodele dolaze na
izvravanje istovremeno. Ako nije naznaeno nikakvo kanjenje, naznaene dodele se deavaju
odmah (u trenutku t=0). Ako ima kanjenja, nosilac podatka sa leve strane znaka dodele e nakon
isteka kanjenja primiti vrednost koja je izraunata na osnovu vrednosti podataka u izrazu sa desne
strane znaka dodele u trenutku t=0.
Sa neblokirajuim dodelama se obino opisuju digitalna kola u kojima se deava
konkurentni (istovremeni) prenos podataka pod delovanjem zajednikog kontrolnog signala. U
primeru 10-5 se deavaju tri dodele na uzlaznoj ivici takt signala. Vremenska kontrola dodela u
procedurama (pomou takt signala ili drugaije) e se obraditi detaljno u poglavlju 10.3.
Odrede se vrednosti podataka u izrazima sa desne strane znakova dodele (in1, in2, in3,
reg1), dotini izrazi se odmah izraunaju i dobijene vrednosti zapisuju u privremenoj
memoriji.
Stvarne dodele se deavaju kada im doe vreme. Prva i trea dodela se odigravaju nakon
kanjenja od jedne vremenske jedinice (zbog naznaenog kanjenja), dok se druga dodela
izvrava na najblioj silaznoj ivici takt signala.
Nije bitno po kom redosledu e se vriti upis u odgovarajue registre (izvravanje dodele)
poto sadraj privremene memorije ne zavisi od redosleda. Npr. u treoj dodeli reg3 dobija
staru vrednost reg1, bez obzira na injenicu da je u prvoj dodeli reg1 dobio novu vrednost.
Da bismo jo bolje utvrdili pravila prenosa podataka kod neblokirajuih dodela, prvo
posmatrajmo primer 10-6.
- 114 -
Projektovanje primenom programabilnih logikih kola (PLD)
Primer 10-6: HDL opis sa blokirajuim dodelama koji dovodi do efekta protravanja.
always @ (posedge clock)
a=b;
always @ (posedge clock)
b=a;
Navedene dve always procedure kreu istovremeno (pri svakoj uzlaznoj ivici takt signala).
Nijedan od napisanih blokirajuih dodela u navedenim procedurama nema prioritet (poto su
napisane u dvema procedurama) zato e redosled izvravanja biti sluajan. Kada se jedna dodela
izvri, oba registra e sadrati istu vrednost, sledea dodela ve nema efekta.
Efekat protravanja se moe spreiti primenom neblokirajuih dodela (primer 10-7). U
ovom sluaju se prvo zapiu poetne vrednosti podataka sa desne strane znaka za dodelu. Nakon
toga se izvre dodele korienjem zapisanih vrednosti i rezultat nee zavisiti od redosleda
izvravanja.
Na osnovu gornjeg HDL opisa sintetizuje se digitalno kolo (kruni broja) prikazano na
slici 10-1. U kolu e se nakon svake uzlazne ivice takt impulsa (clk) zameniti sadraji flip-flop-ova.
Osnovna osobina ivino okidanih kola je da uzorkuju ulazne signale na odgovarajuoj
ivici takt signala i nakon toga izvre potreban upis u skladu sa uzorkovanim vrednostima. Ako se
ulazni signali promene nakon ivice takt signala, to nee imati nikakvog efekta na upis.
a b
D Q D Q
clk
Slika 10-1: Digitalno kolo sintetizovano na bazi HDL opisa iz primera 10-7.
- 115 -
Projektovanje primenom programabilnih logikih kola (PLD)
Prva dodela se izvrava nakon kanjenja od deset vremenskih jedinica raunato u odnosu
na t=0. Ako se na desnoj strani znaka dodele pojavljuje neki izraz (umesto konstante u datoj
dodeli), izraunavanje izraza kasni isto toliko. S obzirom na osobine blokirajuih dodela, druga
dodela dolazi na izvravanje tek nakon izvravanja prve dodele. Poto smo kod druge dodele
vrednost kanjenja zadali u vidu identifikatora (konstante), potrebno je saekati vreme odreeno
identifikatorom da bi se dodela izvrila. Nakon izvravanja druge dodele trea dodela dolazi na
izvravanje kod koje smo kanjenje zadali sa min/typ/max izrazom.
Drugi nain pisanja kanjenja je navoenje kanjenja unutar same dodele. Odgovarajue
vreme kanjenja se navodi na desnoj strani znaka za dodelu (= ili <=). U ovom sluaju
izraunavanje vrednosti izraza koji figurie na desnoj strani dodele se vri u momentu dolaska
dodele na izvravanje (ne posle kanjenja, kao to je sluaj kod pravilnog zadavanja kanjenja), a
sama dodela kasni onoliko koliko je propisano. U primeru 10-10 u prvoj initial proceduri kanjenje
je zadato unutar dodele, zato se sabiranje deava u trenutku t=0, dok dodela kasni pet vremenskih
jedinica. Druga initial procedura pokazuje kako se moe postii isti rezultat uvoenjem privre-
menog nosioca podatka (temp_xz) i pravilnim nainom pisanja kanjenja.
initial
begin
temp_xz=x+z
#5 y=temp_xz
end
- 116 -
Projektovanje primenom programabilnih logikih kola (PLD)
koja su naznaena za trenutak t=0, zato moe nastupiti efekat protravanja. Zadavanjem nultog
kanjenja moe se utvrditi redosled.
U primeru 10-11 sve dodele se izvravaju u t=0, ali dodele unutar prve procedure se
izvravaju pre dodela u drugoj proceduri, pa e krajnji rezultat biti x=y=1. U principu, rizino je
nosiocu podataka istovremeno dodeliti vrednost u dvema procedurama, ali uvoenjem nultog
kanjenja, redosled izvravanja dodela se moe dodatno precizirati.
initial
begin
#0 x=1;
#0 y=1;
end
Potrebno je naglasiti da u hardverskim opisima ne postoji nikakav gotov izvor takt signala,
niti neki poseban, rezervisani naziv za takt signal (u gornjem primeru clock nije kljuna re). Takt
signal koji je potreban za simulaciju HDL opisa mora da formira projektant prema svojim
zahtevima u jednom pomonom modulu. Isti pristup vai i pri hardverskoj realizaciji HDL opisa:
PLD kolo ne sadri unutranji izvor takta, takt signal se mora obezbediti pomou posebnog kola.
Ako vremensku kontrolu planiramo da ostvarimo ekanjem na imenovani dogaaj, prvo
- 117 -
Projektovanje primenom programabilnih logikih kola (PLD)
treba deklarisati dogaaj. Naznaena dodela e se izvriti kada nastupi taj dogaaj. Deklaracija
dogaaja se vri sa kljunom rei event, aktiviranje dogaaja se vri sa znakom ->, a dogaaj se
uzima u obzir (izvri se dodela) kod znaka @.
U primeru 10-13 deklaracija dogaaja je uraena u prvom redu HDL opisa. Sledi proce-
dura tipa always koja definie kada se javlja imenovani dogaaj (ta je ustvari dogaaj koji se eka).
Nain korienja kljune rei if koja se koristi u ovoj jezikoj konstrukciji e se objasniti u
sledeem poglavlju (10.4). U sledeoj always proceduri je navedena dodela koju treba izvriti kada
se desi imenovani dogaaj.
always @ (received_data)
data_buf={data_pkt[0], data_pkt[1], data_pkt[2], data_pkt[3]};
Primena pravilne metode vremenske kontrole (ivino okidanje) se moe uoptiti tako da se
izvravanje dodele vezuje na promenu jednog signala iz grupe signala. Slian je nain definisanja
ovakve vremenske kontrole, samo se pojedina imena signala povezuju sa kljunom rei or (primer
10-14).
- 118 -
Projektovanje primenom programabilnih logikih kola (PLD)
Ako neke dodele treba da se izvravaju pri tanom uslovu a neke pri netanom, koriste se
kljune rei if i else (primer 10-17). Ako je uslov taan, potrebno je izvriti dve dodele navedene
izmeu kljunih rei begin i end, u suprotnom sluaju izvrava se instrukcija $display. Ova
instrukcija ne slui za opisivanje nekog hardvera ve prouzrokuje odreenu akciju kod logikog
simulatora.
U treem sluaju uslov moe da ima vie od dve vrednosti i pri svakoj vrednosti treba
izvrtiti neku drugu dodelu. U primeru 10-18, pri vrednostima parametra alu_control od 0, 1 ili 2,
izvravaju se odreene propisane dodele, meutim ako nijedan uslov nije ispunjen, aktivira se
instrukcija $display. U prikazanoj jezikoj konstrukciji koristi se lanac kljunih rei if else if
else.
- 119 -
Projektovanje primenom programabilnih logikih kola (PLD)
case (alu_control)
2d0: y=x+z;
2d0: y=x-z;
2d0: y=x*z;
default: $diplay (Invalid alu control signal);
endcase
U gornjem primeru procedura always se svaki put aktivira kada se promeni logiki nivo
bilo kog od ulaznih nosioca podataka. Slino primeru 10-14 i ovde se radi o okidanju na nivo, ali
procedura kree kada se promeni logiki nivo (znai: kod ivice). Kodovi pojedinih sluajeva su
dobijeni povezivanjem jednobitnih selekcionih ulaza (s1, s0). Red sa kljunom rei default se moe
izostaviti, poto nema uticaja na sintezu fizikog kola. Izlazni nosilac podatka (out) je deklarisan da
bude tipa registar, ali se ipak na osnovu datog HDL opisa sintetizuje kombinaciono kolo
(multipleksor).
U case strukturi u pojedinim sluajevima umesto jedne dodele moe da se javi vie njih.
Tada dodele treba grupisati sa kljunim reima begin i end. Pojedini bitovi u kodovima sluajeva
mogu uzimati vrednosti x ili z, na taj nain se neka kola mogu preciznije opisati.
- 120 -
Projektovanje primenom programabilnih logikih kola (PLD)
4bxxx1: state=0;
default: state=0;
endcase
Izraz u zagradi pored instrukcija $display definie ta treba ispisati na monitor raunara na
kojoj se vri simulacija. Pri svakom prolasku kroz petlju na monitoru se pojavi tekst count= i
trenutna vrednost podatka count u decimalnom obliku.
- 121 -
Projektovanje primenom programabilnih logikih kola (PLD)
- 122 -
Projektovanje primenom programabilnih logikih kola (PLD)
initial
begin
x=1b0;
y=1b1;
z={x,y};
w={y,x};
end
U primeru 10-27 dodele u rednom bloku sadre kanjenje (izuzev prvog). Poto su kanjenja
nadovezuju, prva dodela se izvrava u t=0, druga u t=5, trea u t=15 a etvrta u t=35.
Pri korienju paralelnog bloka moe da nastupi efekat protravanja ako sa dva ili vie
dodela pokuavamo istovremeno dodeliti vrednost nekom nosiocu podatka. Takoe moe biti
problematino ako u istom bloku definiemo vrednost nekog podatka i koristimo isto u nekoj drugoj
dodeli. U primeru 10-28 vrednosti z i w su nesigurne u momentu naputanja bloka jer se ne zna da li
su vrednosti x i y definisane na vreme.
- 123 -
Projektovanje primenom programabilnih logikih kola (PLD)
initial
fork
x=1b0;
y=1b1;
z={x,y};
w={y,x};
join
initial
begin: block1
integer i;
.........
end
initial
fork: block2
reg i;
.........
join
endmodule
- 124 -
Projektovanje primenom programabilnih logikih kola (PLD)
petlje tipa while. Ako je naredni bit vektora flag jedinica, prekida se izvrenje bloka pod imenom
block1. Primenom instrukcije disable moe se prekinuti bilo koji blok, ne samo onaj u kome je
navedena instrukcija disable. Ovo je znaajno odstupanje od pravila softverskih jezika, kod kojih se
moe prekinuti samo onaj program/potprogram koji se tog momenta izvrava.
- 125 -
Projektovanje primenom programabilnih logikih kola (PLD)
11. Literatura
[1] Szittya Ott: Digitlis s analg technika informatikusoknak, I i II tom, LSI Oktatkzpont,
Budapest, 1999.
[2] Dejan ivkovi, Miodrag Popovi: Impulsna i digitalna elektronika, Nauka, Beograd, 1993.
[3] Samir Palnitkar: Verilog HDL, A Guide to Digital Design and Synthesis, Sunsoft Press, 1996.
[4] Michael Ciletti: Advanced Digital Design with the Verilog HDL, Prentice Hall, 2003.
[5] Morris Mano: Digital Design, III izdanje, Prentice Hall, 2002.
[6] Matijevics Istvn: Digitlis Technika, Szabadkai Mszaki Fiskola, Szabadka, 2003.
[7] Janovics Sndor, Tth Mihly: A logikai tervezs mdszerei, Mszaki Knyvkiad Budapest,
1973.
[8] Arat Pter: A logikai rendszerek tervezse, III izdanje, Tanknyvkiad, Budapest, 1990.
[10] Radomir Stankovi, Milena Stankovi: Logiko projektovanje, Nauka, Beograd, 1991.
[11] Tihomir Aleksi: Logika sinteza digitalnih mrea, Nauna knjiga, Beograd, 1975.
[12] Ripka Gbor: Felletre szerelhet alkatrszek, Mszaki Knyvkiad, Budapest, 1992.
[15] www.ti.com
[16] www.fairchildsemi.com
[17] www.prenhall.com
[18] www.xilinx.com
[19] www.altera.com
[20] www.atmel.com
[21] www.latticesemiconductor.com
[22] www.simucad.com
- 126 -