prenos i kodiranje podataka na primeru vhdl kodaes.elfak.ni.ac.rs/papers/msrbulovic - mnikolic -...

79
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU Predmet: MIKROPROCESORSKI SISTEMI PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Profesor: Studenti: Maja Srbulovid 10966 Prof. Dr Mile Stojčev Marko Nikolid 10911 Niš, Novembar 2009.

Upload: others

Post on 04-Sep-2019

29 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU Predmet: MIKROPROCESORSKI SISTEMI

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA

Profesor: Studenti: Maja Srbulovid 10966

Prof. Dr Mile Stojčev Marko Nikolid 10911

Niš, Novembar 2009.

Page 2: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

2 Maja Srbulovid 10966 / Marko Nikolid 10911

SADRŽAJ

1. Prenos Podataka ........................................................................... ............................... 3

1.1 Način Komunikacije ........................................................................................ 4

1.2 Serijski i Paralelni Prenos ................................................................................ 5

1.3 Asinhrini i Sinhroni Režim Rada ...................................................................... 9

2. Kodiranje Podataka ................................................................................................... .. 12

3. Opis Projektovanog Kola za Prenos i Kodiranje Podataka .......................................... 16

3.1 Opis Protokola Podataka ............................................................................... 16

3.2 Opis šeme i Rada Kola ................................................................................... 18

4. Opis Entiteta Kola u VHDL Kodu ................................................................................. 35

4.1 D Flip Flop ............................................................................. ......................... 35

4.2 T Flip Flop ...................................................................................................... 37

4.3 Multiplekser .................................................................................................. 38

4.4 Pomerački Registar ...................................................................................... . 41

4.5 Brojač ......................................................................................................... ... 43

4.6 Registar_16 ............................................................................................... .... 46

4.7 Komparator ............................................................................................... .... 48

4.8 Automat ........................................................................................................ 49

5. Testiranje Rada Kola ................................................................................................ .. 58

6. Laboratorijska Vežba ................................................................................................. 63

Zadatak 1 ......................................................................................................... ... 63

Zadatak 2 ............................................................................................................ 70

7. Literatura ............................................................................................................... .... 78

8. Biografije Autora ..................................................................................................... ... 79

Page 3: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

3 Maja Srbulovid 10966 / Marko Nikolid 10911

1. PRENOS PODATAKA

Fundamentalni aspekt svakog sistema za prenos podataka odnosi se na tehniku koja se koristi

za slanje podataka između dve tačke (predajnika/prijemnika). Prenos podataka između

predajnika i prijemnika ostvaruje se preko prenosnog medijuma. Prenosne medijume možemo

svrstati u dve osnovne grupe:

a) trasirane (guided) i

b) netrasirane (unguided).

U oba slučaja komunikacija se ostvaruje zahvaljujudi prostiranju elektromagnetnih talasa kroz

medijum. Kod trasiranog prenosa prostiranje talasa (adekvatniji termin u ovom slučaju je

električni signal) se usmerava duž fizičkih puteva kakvi su upredeni kablovi, koaksijalni kablovi,

optička vlakna itd. Kod netrasiranog prenosa prostiranje elektromagnetnih talasa se vrši kroz

prostor (vazduh, vakuum, tečnost). Prenosni put između dve tačke naziva se veza (link), a deo

veze koji je namenjen prenosu podataka jednostavno nazivamo kanal. Termin direktna veza

(direct link) odnosi se na prenosni put između dva uređaja duž koga se prostiranje signala

između predajnika i prijemnika ostvaruje bez posrednika. U ovom slučaju kao posrednici na

prenosnom putu ne smatraju se uređaji tipa pojačavač ili repetitor, čija je osnovna uloga da

povedaju snagu (amplitudu) signala duž prenosnog puta, tj. da kompenziraju slabljenje signala

kroz prenosni medijum.

Na Slici 1.1 prikazane su dve konfiguracije koje se najčešde koriste kod trasiranog prenosa. Kod

usmerenog prenosa tipa tačka-ka-tački (point-to-point) prikazan na Slici 1.1a) ostvarena je

direktna veza između predajnika i prijemnika, a kod višetačkaste (multipoint) konfiguracije,

medijum za prenos je deljiv između vedeg broja uređaja (Slika 1.1b)).

Page 4: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

4 Maja Srbulovid 10966 / Marko Nikolid 10911

Sl.1.1: Tipovi kod usmerenog prenosa

1.1 Načini Komunikacije

Razlikujemo tri načina prenosa podataka (Slika 1.1.1):

a) simpleks (simplex) – signali se prenose (predaju) samo u jednom smeru; jedna

stanica/terminal je predajnik, a druga prijemnik;

b) polu-dupleks (half-duplex) – obe stanice mogu vršiti predaju/prijem po istom kanalu, ali

ne istovremeno (kada je jedna predajnik, druga je prijemnik, i obratno);

c) potpuni dupleks (full-duplex) – obe stanice mogu istovremeno da obavljaju predaju

koristedi posebne kanale (po jedan za svaki smer prenosa).

Page 5: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

5 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 1.1.1: Načini prenosa signala: a) simpleks; b) polu-dupleks; c) potpuni-dupleks

Napomena: Tx - predajnik (transmitter); Rx - prijemnik (receiver)

1.2 Serijski i paralelni prenos

Podaci se kroz medijum (žicu, vod, magistralu itd.) prenose ili serijski ili paralelno. Odlika

serijskog prenosa je jednostavnost realizacije – bitovi se prenose preko jedinstvene linije, jedan

po jedan. Kod paralelnog prenosa n bitova (n = 8, 16, 32, 64) podatka prenosi se istovremeno

(ovakav prenos se tipično ostvaruje kod sistemske magistrale mikroprocesora, IEEE-488 GPIB

magistrale itd.) Na Slikama 1.2.1 i 1.2.2 prikazani su serijski i paralelni prenos, respektivno.

Paralelni prenos podataka je brži od serijskog, ali je skuplji (zahteva vedi broj veza). Serijski

prenos je daleko pouzdaniji – greška ili prekid u prenosu mogu jednostavno da se detektuju.

Daleko značajnija prednost serijskog prenosa je u tome što su vremenom razvijeni brojni i

Page 6: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

6 Maja Srbulovid 10966 / Marko Nikolid 10911

kvalitetni protokoli (pravila za razmenu podataka). Kod paralelnog prenosa, zbog različitih

formata paralelnih podataka, to nije slučaj. Uopšte, paralelni prenos podataka se daleko više

koristi kada se prenosi podatak na kradim rastojanjima: interno, unutar mikroprocesorskog

sistema (npr. komunikacija između mikroprocesora i memorije) i eksterno, do nekoliko metara,

u okviru računarskog okruženja (npr. komunikacija između računara i štampača preko

paralelnog porta). Kada su u pitanju rastojanja veda od reda nekoliko metara, serijski prenos

podataka je jedini izbor. Serijski prenos može da se ostvari preko jednog provodnika (žice). U

praksi su, međutim, potrebne najmanje dve linije (provodnika, žice) za serijsku komunikaciju:

jedna za podatke i druga, tzv. masa – da bi se zatvorilo strujno kolo između dva sistema koji

serijski komuniciraju. Veliki broj potrebnih veza (jedna žica po bitu n-bitnog podatka)

ograničava primenu paralelnog prenosa na kratka rastojanja. Na primer, u merno-informacionoj

tehnici projektovana je paralelna magistrala IEEE-488 GPIB, preko koje komuniciraju

sistemi/uređaji udaljeni maksimalno 20 m. Uređaji svih renomiranih proizvođača merno-

informacione opreme (digitalni osciloskopi, digitalni izvori napajanja, logički analizatori,

analizatori spektra itd.) poseduju IEEE-488 GPIB magistralu. Komunikacija u okviru

mikroprocesorskog sistema ostvaruje se preko sistemske magistrale u paralelnoj formi. Da bi se

ostvarila sprega sistema koji sa jedne strane obavljaju paralelni, a sa druge strane serijski

prenos podataka, neophodno je izvršiti paralelno-serijsku konverziju. Za tu svrhu se najčešde

koriste pomerački registri. U aplikacijama se često koriste oba tipa konverzije, i

paralelnoserijska i serijsko-paralelna, kako bi se ostvario prenos n-tobitnih paralelnih podataka

od predajnika ka prijemniku preko serijske linije.

Sl. 1.2.1: Ilustracija serijskog prenosa

Page 7: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

7 Maja Srbulovid 10966 / Marko Nikolid 10911

Mikroprocesorski sistemi memorišu i procesiraju podatke u formi bitova koji su uređeni kao reči

fiksnog obima. Memoriju računara čini niz lokacija pri čemu svaka ima svoju jedinstvenu adresu.

Računarski sistemi mogu manipulisati sa rečima obima 8, 16, 32, 64 bitova, itd. U okviru velikog

broja gradivnih blokova računarskog sistema podaci se prenose u paralelnoj formi, što znači da

je svakom bitu u okviru reči dodeljen po jedan prenosni put. Primer paralelnog prenosa

podataka uobičajeno se srede kod hardverskih interfejsa za pobudu štampača ili kod interfejs

ploča za spregu sa diskom. Kod paralelnih interfejsa, kakva je recimo sprega računara sa

štampačem, potrebno je uvesti neki oblik signalizacije koji de na određeni način, sa jedne

strane, ukazati kada su podaci na izlazu računarskog sistema raspoloživi/validni, a sa druge

strane, kada je (da li je) štampač spreman da prihvati novi podatak. Glavni razlog uvođenja

signalizacije predstavlja velika razlika u brzini rada uređaja koji se međusobno povezuju.

Konkretnije, računar može da generiše nove podatke na svakih 0.5 ns, dok štampač može da

štampa podatke brzinom reda 100 znakova u minuti (postoje i štampači koji mogu štampati do

50000 znakova u minuti).

Sl. 1.2.2: Ilustracija paralelnog prenosa (n=8)

Da bi se na jedan regularan način ostvarila korekt na razmena podataka između uređaja koriste

se posebni signali poznati kao handshake signali. Procedura kojom se reguliše način razmene

podataka i tajming naziva se handshake procedura. Na Sl. 1.2.3 prikazana je handshake

Page 8: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

8 Maja Srbulovid 10966 / Marko Nikolid 10911

procedura koja se uobičajeno koristi kod paralelnog interfejsa. U trenutku kada se upravljački

signal DAV (Data Available) menja sa nisko-na visoko, računar signalizira štampaču da je

podatak, prisutan na magistrali, dostupan. Sa druge strane, kada štampač prihvati novi podatak

on postavlja signal DAC (Data Accepted) na visoko.

Sl. 1.2.3: (a) Paralelni prenos; (b) handshaking (rukovanje)

Paralelni način prenosa podataka pogodan je kod onih aplikacija kada su uređaji bliski jedan

drugom. Kada signale (podatke) treba prenositi na veda rastojanja paralelni prenos postaje

nepraktičan iz slededih razloga: Kabliranje je složenije, prenos postaje nepouzdaniji zbog

različitih kašnjenja signala duž vodova, a greške u prenosu se teže otkrivaju u slučaju kada dođe

Page 9: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

9 Maja Srbulovid 10966 / Marko Nikolid 10911

do nekog kratkog spoja ili prekida linija (žica u kablu). Alternativni pristup kod prenosa podataka

je onaj koji se zasniva na serijskom prenosu. Kod ovog načina prenosa postoji samo jedna linija

po kojoj se prenose bitovi podataka. I pored toga što je serijski prenos sporiji od paralelnog

prenosa, kabliranje je jednostavnije, a greške u prenosu se lakše otkrivaju. Svaki bit serijskog

niza podataka trajanja je određenog vremenskog perioda koji se naziva signalni elemenat.

Signali se predstavljaju pozitivnom vrednošdu za logičku jedinicu, a nultom vrednošdu za logičku

nulu.

1.3 Asinhroni i sinhroni režim rada

Bilo koji komunikacioni sistem za prenos podataka čine, u najopštijem slučaju, predajnik,

prijemnik i neki oblik komunikacionog kanala. Predajnik generiše niz podataka pri čemu je

tajming svakog bita pod kontrolom taktnih impulsa.

Asinhroni prenos

Za sistem kod koga predajnik može u bilo kojem trenutku da generiše bitove kažemo da koristi

asinhroni prenos. Ključne karakteristike asinhronog prenosa su te da predajnik ne predaje

prijemniku bilo kakvu informaciju o lokalnom taktnom impulsu ili tajming bit. Zadatak

prijemnika je da interpretira dolazede signale i da korektno interpretira svaki dolazedi bit. U

suštini asinhroni prijemnik ne regeneriše takt na osnovu dolazedeg signala. Naime, predajnik i

prijemnik koriste posebne taktne impulse čije su frekvencije veoma bliske jedna drugoj. Sa

ciljem da se odredi korektni početak rada prijema koristi se metod rada poznat kao start-stop

(Slika 1.3.1).

Page 10: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

10 Maja Srbulovid 10966 / Marko Nikolid 10911

Sl.1.3.1: Start-stop operacija

Kada se podaci ne predaju, linija se nalazi u pasivnom (idle) stanju. Podatku prethodi start-bit

koji je trajanje jednog bitskog intervala i suprotnog je polariteta u odnosu na pasivno stanje.

Nakon toga slede nekoliko bitova podataka (obično je osam). Na kraju se pridružuje stop-bit koji

je istog polariteta kao i pasivno stanje. (Trajanje pasivnog stanja može biti proizvoljno). Stop bit

se uvodi sa ciljem da se jasno razgraniči zadnji bit prenetog znaka. Kada detektuje prednju ivicu

start-bita, prijemnik aktivira generisanje prijemnog takta. Prva pojava taktnog impulsa je tako

podešena da se javi na sredini, ili oko sredine, prvog bita podataka i koristi se za strobovanje

bita u registar ili leč (latch). Sa narednim taktnim impulsima, za ostale bitove podataka, proces

se ponavlja. U suštini, ako je taktna frekvencija prijemnika i predajnika identična, strobovanje de

se uvek javljati (dešavati) na sredini trajanja bitskog intervala. Zbog različitih frekvencija

predajnika i prijemnika ipak dolazi do "klizanja" tako da, ako se broj bitova povedava,

koincidencija taktnih impulsa i princip strobovanja podataka na sredini bitskog intervala se

narušava. Imajudi ovo u vidu, a iz razloga pouzdane detekcije, obim (trajanje) asinhronog signala

ograničen je na 12 bitova (misli se na prenos jedinstvenog karaktera (znaka ili simbola), zato što

se sinhronizacija kod ovog prenosa ostvaruje na nivou jednog znaka).

Sinhroni prenos

Daleko efikasniji način za održavanje sinhronizacije kod komunikacione veze je onaj koji se

zasniva na sinhronom prenosu (synchronous transmission). Podaci koji se sinhrono predaju

dolaze do prijemnika kao kontinualni niz u regularnim vremenski definisanim bitskim

intervalima. Predajnik i prijemnik moraju da rade sinhrono, a to se ostvaruje korišdenjem

Page 11: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

11 Maja Srbulovid 10966 / Marko Nikolid 10911

sinhronizacionih signala na nivou takta. Predajnik generiše taktni signal koji mora biti prenet do

prijemnika bilo preko posebnog kanala ili direktno regenerisan od strane prijemnika iz

dolazedeg signala. Zbog toga u predajnoj poruci mora biti emitovana i informacija o

sinhronizaciji. Princip regenerisanja takta kod ovog načina prenosa prikazan je na Slici 1.3.2.

Slika 1.3.2: Sinhroni prijemnik

Uobičajeno se podaci predaju kao okviri, tj. ramovi (frame) fiksnog obima (Slika 1.3.3), pri čemu

svaku informaciju na početku i kraju prate specijalni bit oblici nazvani preambule (preamble).

Svrha preambule je da ostvari sinhronizaciju predajnog i prijemnog oscilatora pre početka

prijema informacionih bitova.

Sl.1.3.3: Izgled okvira (rama) podatka kod sinhronog prenosa

Page 12: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

12 Maja Srbulovid 10966 / Marko Nikolid 10911

2. KODIRANJE PODATAKA

Ako kažemo da pojam podatak definiše najmanju esencijalnu celinu za funkcionisanje

najrazličitijih sistema koji su prisutni u svakodnevnom životu, onda je verodostojnost, sigurnost

i dostupnost tih podataka nešto što je neophodno ostvariti kako bi sve to funkcionisalo i davalo

očekivane rezultate. Podatak možemo definisati za veoma različite oblasti društvenog života. U

medicini, recimo, podataci bi bili simptomi bolesnika i nakon njihove obrade se postavi

dijagnoza. U muzici bi podaci bile note, kao nosioci informacija. Praktično, podaci su svuda oko

nas. Kako su se razvijale tehničke nauke, svi ti podaci su na neki način pretočeni u elektronsku

formu. Vremeno, kako su rasle naše potrebe za sve vedom upotrebom računara u svim sferama,

rasli su i problemi kako sve te potrebe zadovoljiti sa tako ograničenim faktorom, prenosnim

medijumom. Plus, bezbednost podataka više nije bilo sigurno.

Iz ovih, kao i iz mnogo drugih razloga je nastalo kodiranje, kao novi vid prenosa, kompresije i

zaštite podataka. I, naravno, našao veoma široku primenu. Recimo u TV tehnici koristimo

metodu kodovanja kao vid kompresije podataka u manje paketa koji de se lakše i brže prenositi.

U audio/video tehnici, kodovanjem se može menjati format podataka i lakše manipulisati njime.

Zatim u mobilnim i bežičnim kominikacijama se koristi za zaštitu podataka koje se šalju, kao i

neki vid kompresije koji de povedati brzinu prenosa. Kodovima je obezbeđena sinhronizacija

između predajnika i prijemnika. Zato je kodiranje postalo tako značajna oblat u savremenim

komunikacijama.

Ako potražimo neku definiciju kodiranja, možemo nadi da je kodiranje podataka, ustvari, proces

konvertovanja informacije iz jednog formata u drugi (kodirani) format. Komunikacija sa ovakvim

vrstama podataka je moguda jedino ako i predajna i prijemna strana razumeju tehniku kodiranja

tj načina na koji su formirani novi bitovi. Na prijemnoj strani se mora izvršiti dekodiranje

podataka pre nego što se bude manipulisalo sa njima.

Page 13: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

13 Maja Srbulovid 10966 / Marko Nikolid 10911

Danas je prisutno veoma velik broj načina kodiranja. Svaki oblik kodiranja je specifičan za neku

oblast za koju je bio pravljen. Tako na primer tzv kanalno kodiranje, koje podrazumeva

kodiranje na taj način da što više smanji veličinu podataka, poveda brzinu prenosa i smanji broj

pogrešno prenetih bitova, se razllikuje i zasebno projektuje za različita uslove. Prirodne

prepreke koje utiču na ovo se razlikuju kada se radi o satelitskoj komunikaciji (u svemiru je

problem termički šum koji se javlja na prijemniku), mobilnoj komunikaciji (učestanost fadinga je

mnogo veda nego inače), zemljanim telefonskim komunikacijama (uskopijasni modemi su

ograničeni bukom koja se javlja u ovoj mreži) itd.

Pojmom kodiranja obuhvadeni su postupci obrade koji se primenjuju pri digitalnom prenosu

digitalnih signala, kada se karakteristike digitalnog signala prilagođavaju karakteristikama

prenosnog puta, kao i pri digitalnom prenosu analognih signala, kada se vrši pretvaranje

analognog signala u digitalni oblik. Saglasno tome, u postupku obrade signala, razlikuju se dva

tipa kodiranja:

Kodiranje digitalnih signala u osnovnom opsegu učestanosti i

Kodiranje analognih signala, odnosno analogno/digitalna konverzija.

Kodiranjem se utiče na: oblik spektra signala, sinhronizaciju, otkrivanje grešaka, povedanje

otpornosti na uticaj šuma, složenost i ekonomičnost uređaja.

Najjednostavniji postupak kodiranja je onaj koji se upotrebljava za opisivanje binarnih signala

na način što se dva binarna stanja predstavljaju sa dva naponska nivoa u odgovarajudem

talasnom obliku signala. Ovakav kod se može realizovati tako što se binarna jedinica predstavi

višim nivoom napona (impulsom), a binarna nula nultim naponom (pauzom).

Page 14: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

14 Maja Srbulovid 10966 / Marko Nikolid 10911

Druga, češda, mogudnost je ona u kojoj se negativni napon koristi da predstavi binarnu nulu, a

pozitivni napon za binarnu jedinicu, tj. signal zadržava stanje kod svakog bita u toku bitskog

intervala, pošto se signal ne vrada na nulu posle svakog bita. U tom slučaju se govori o

specifičnom postupku kodiranja bez povratka na nulu (NRZ – Non Return to Zero, NRZ-L – Non

Return to Zero Level). Ova tehnika kodiranja se često koristi kod asihronih komunikacija, ali ima

nedostatak što nije samotaktovana,tj. iz NRZ-L signala nije mogude izdvojiti taktnu frekvenciju.

Pored toga NRZ –L signal može ostati u istom stanju (0 ili 1) nedefinisani period vremena, tako

da je potrebno obezbediti u prenosu i DC spregu.

Da bi se obezbedilo više informacija o taktnoj frekvenciji smišljeni su i drugi kodovi.

Najjednostavniji među njima je NRZ-Mark (NRZ-M). Zasnovan je na postojanju tranzicije svaki

put kada je poslata 1. Lako se može zaključiti, da ova tehnika kodiranja ima manu kada se

pošalje duga sekvenca uzastopnih nula.

Povratak na nulu (RZ – Return to Zero) je linijski kod koji se, takođe, koristi kao jedna od

tehnika kodiranja u kojoj signal opada (vrada se) na nulu između svakog impulsa. Ovo se dešava

čak i ako u signalu postoji uzastopni niz nula ili jedinica. Ova tehnika kodovanja je

samotaktovana. To znači da nije potrebno poslati zaseban taktni signal pored signala, a

nedostatak je u tome što zauzima duplo vedi propusni opseg kako bi dosegla istu bitsku brzinu u

poređenju sa tehnikom kodiranja bez povratka na nulu.

Postoji još jedna grupa kodova kojima se na sličan način prevazilaze nedostaci NRZ kodova. To

su bifazni kodovi, od kojih se najviše koristi Manchester kod. Ova tehnika kodiranja zasnovana

je na postojanju tranzicije (prelaza) na sredini vremenskog intervala koji pripada pojedinačnom

binarnom simbolu. Pri tome je binarna 1 predstavljena tranzicijom sa nižeg na viši nivo, dok

binarnu 0 predstavlja tranzicija sa višeg naniži naponski nivo.

Page 15: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

15 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 2.1: Manchester kod

Bifazni kod je tehnika kodiranja binarnog niza podataka. Kada se binarni niz podataka bez

modulacije šalje kroz kanal, mogu se javiti veliki nizovi binarnih 0 ili 1 bez i jedne tranzicije tako

da je otežana sinhronizacija i regeneracija takta. Ova tehnika kodiranja omogudava lakšu

sinhronizaciju osiguravajudi pojavljivanje makar jedne tranzicije između svakog bita podataka u

kanalu. Kod kodiranja bitska brzina mora da je dvostruko veda od bitske brzine originalnog

signala. Svaki bit podatka koji se šalje predstavljen je sa dva logička stanja, koji zajedno čine

jedan bit. Svaka binarna 1 predstavljena je sa dva različita bita (10 ili 01) na izlazu. Binarna 0

predstavljena je sa dva jednaka bita (00 ili 11) na izlazu. Binarna 1 i 0 su predstavljene istom

amplitudom napona ali suprotnog polariteta.

Slika 2.2: Bifazni kod

Page 16: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

16 Maja Srbulovid 10966 / Marko Nikolid 10911

3. OPIS PROJEKTOVANOG KOLA ZA PRENOS I KODIRANJE PODATAKA

3.1 Opis Protokola Podataka

Pre nego što opišemo sistem za kodiranje i prenos podataka, neophodno je sagledati kako de

izgledati jedan paket protokola za komunikaciju i način komunikacije između predajnika i

udaljenog prijemnika. Predviđeno je da generalno postoje dva moda rada: period kada se ne

šalje nikakva inforamcija i period kada se šalje informacija. Tokom neaktivnog perioda šalje se

niz nula i jedinica duplo vede periode od taktnog signala za predaju, tj. na svaki otkucaj takta

pošalje se npr. nula, a naredni put jedinica i tako dalje. Ovo je na Slici 3.1.1 prikazano kao niz

nula i jedinica pre preambule. Drugi mod rada je kada dođe do slanja poruke udaljenom

predajniku. Tad modul koji želi da šalje uputi zahtev za slanje i naše kolo treba da pripremi sve

da bi slanje informacije počelo. Paket je formiran od dva polja i preambule. Jedno polje je

dužine 16 bitova i ono nosi informaciju kolika je dužina polja sa podacima. Drugo polje koristi se

za slanje podataka. Maksimalna dužina drugog polja je 64KB, s’obziron da kada svih 16 bitova

prvog polja budu jedinice to je maksimalna moguda dužina paketa. Dakle drugi mod

podrazumeva slanje preambule, koja iznosi 47 heksadecimalno (01000111), nakon čega sledi

slanje podataka po ved utvrđenom redosledu.

Izbor preambule od 47 heksadecimanlo je odabrano tako da ukoliko dođe do eventualne greške

pre prenosu niza bitova nula i jedinica, to nede remetiti prenos preabule tj. automat de modi

razlikovati preambulu od sekvence koja označava pasivan rad sistema. Kao što je rečeno, u

modu kada nema podataka naizmenično se šalju nule i jedinice duplo vede periode od taktnog

signala za predaju, odnosno 01010101. Preambula je 01000111. Recimo da dodje do greške pri

prenosu druge jedinice u neaktivnom modu, odnosno da se registruje niz 010001010. Kao što se

vidi ovaj niz podseda na preambulu ali se ipak razlikuje na jednom bitu što sistem nede

registrovati kao preambulu i nede greškom predi u mod za slanje podataka. A verovatnoda da

dodje do greške pri prenosu ovako bliskih bitova(da se pored ovoga i četvrta nula prenese kao

jedinica odnosno 01000111) je izuzetno mala, takoredi zanemarljiva. Na taj način smo osigurali

da de automat uvek ispravno registrovati preabulu i prebaciti sistem u mod za prenos podataka.

Page 17: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

17 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 3.1.1: Izgled paketa protokola koji se generiše u predajniku

Komunikacija može da se odvija tako što uzastopno mogu da se pošalju jedan ili više paketa

informacije uzastopno. Na Slici 3.1.1a imamo situaciju kada se pošalje više od jednog paketa

(slanje drugog paketa počinje bez ikakve pauze), a na Slici 3.1.1b imamo situaciju kada se šalje

samo jedan paket informacije. Treba napomenuti i to da prvo polje od 16 bitova generiše modul

koji inicira komunikaciju, tj. mora nam biti poznata dužina polja sa podacima kako bi mogli da

ispravno formiramo frejm kojim se šalje podatak. Tako prva dva bajta koja preuzmemo od

modula koji inicira komunikaciju smeštamo u registar dužine 16 bitova koji de koristiti za

kontrolu rada kola da bi se ispravno formirao paket kojim se prenose podaci. Preostali deo

informacije se samo prosleđuje dalje.

Formiranjem ovakvog protokola rešene su neke od slededih stavki:

Preambula je fiksna i šalje se pre slanja svakog paketa sa podacima. Tako de kolo prijemnika

biti u mogudnosti da detektuje niz bitova koji se šalju kao preambula i počede sa prijemom

podataka.

Prvo polje je uvedeno iz razloga da protokol bude potpuno određen, tj. može se zamisliti

situacija da se u okviru podataka nađe sekvenca bitova koja je ista kao preambula. Na ovaj

način bi prijemnik protumačio to kao slanje novog paketa informacije i došlo bi do greške pri

slanju. Uvođenjem polja sa 16 bitova, koje nosi podatke o dužini polja sa podacima, ova

Page 18: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

18 Maja Srbulovid 10966 / Marko Nikolid 10911

nepogodnost se eliminiše. Naime, kolo prijemnika tada zna da kada primi informaciju koja

može da predstavlja preambulu, tada se proveri da li primljena informacija ima

odgovarajudu dužinu i, ukoliko to nije slučaj, tada se taj bajt tretira kao bajt podatka koji je

primljen, a ne kao bajt preambule.

Kada se nikakvi podaci ne šalju, šalje se niz nula i jedinica koji se može iskoristiti na

prijemnoj strani da se frekvencija i faza prijemnog taktnog signala podese da budu u

sinhronizmu sa fazom i frekvencijom signala koji nosi podatke.

Na Slici 3.1.1 prikazan je i komentar koji govori o tome gde se formira informacija koja se šalje

na komunikacionu liniju.

3.2 Opis šeme i rada kola

Na Slici 3.2.1 prikazana je blok šema kola koje generiše signale za protokol prikazan na slici

3.1.1. Podaci koji se šalju dolaze na port koji je označen kao data_in. Podaci dolaze u

paralelnom obliku. Signal sa ovog porta vodi se na ulaze dva registra. Prvi je registar

pomeračkog tipa i on se koristi za prevođenje informacije iz paralelne u serijsku formu u okviru

koje se podaci šalju. Drugi registar na koji se vodi ovaj signal je registar duđine 16 bitova. U ovaj

registar vrši se upis dva prva bajta informacije. Vrednost ova dva bajta predstavlja dužinu polja

sa podacima.

Page 19: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

19 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 3.2.1: Blok šema kola koje generiše signale za protokol sa slike 3.1.1

Page 20: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

20 Maja Srbulovid 10966 / Marko Nikolid 10911

Sekvenca rada kola je slededa:

Kolo se nalazi u idle stanju i šalje informaciju koja se dobija na izlazu T flip flopa. Tada je

multiplekser podešen tako da propušta ovaj signal na ulaz kola kodera. Sve kontrolne i

upravljačke signale generiše kolo FSM koje predstavlja kolo automata sa konačnim brojem

stanja. Tako se i signal za upravljanje radom multipleksera dobija iz ovog kola. To je signal

MUX_control_signal, koji se dovodi na ulaz registra_2 pa tek onda na kontrolni ulaz

multipleksera. Uloga registra_2 de biti kasnije objašnjena.

Sa slike se uočavaju i signali za kontrolu rada kola. To su signali koji realizuju hand shake

proceduru pri slanju podataka. Signalom send_request, modul koji šalje podatke obaveštava

naše kolo o tome da hode da pošalje neki podatak. Tad naše kolo prebaci stanje multipleksera

tako da se na ulaz kola za kodiranje dovede signal iz registra za preambulu. Istovremeno se

dozvoli pomenutom registru da počne sa pomeranjem upisanog sadržaja. Na slici je prikazano

da se u registar upiše vrednost 47 heksadecimalno, što predstavlja vrednost preambule.

Nakon slanja preambule, naše kolo šalje signal na port send_ack i tada modul koji šalje podatke

postavlja vrednost prvog bajta polja od 16 bitova. Ova vrednost se upisuje u dva registra kako je

ved rečeno ranije. U registar 16 se upisuje na poziciji višeg bajta. Nakon slanja bajta signalom

new_byte_req signalizira se modulu koji šalje podatke da treba da postavi novi bajt informacije

koja se šalje, a modul koji šalje odgovara signalom new_byte_set kada postavi novi bajt. Drugi

bajt iz polja sa 16 bajtova sada se upisuje na mesto donjeg bajta registra sa 16 bitova. Nakon

slanja ovog bajta počinje se sa slanjem podataka. Treba pomenuti da se slanje jednog bajta

podatka kontroliše pomodu brojača_8. Ovaj brojač ima moduo brojanja 8 i sam brojač formira

signal kojim signalizira kolu FSM da je došlo do slanja poslednjeg bita iz serijskog registra i kolo

FSM može da pređe u naredno stanje sekvence slanja informacije.

Došli smo do trenutka kada počinje slanje drugog polja, tj. polja za podatke. Tada počinje sa

radom i drugi brojač, brojač_16. Ovaj brojač koristi se za sinhronizaciju slanja polja sa

podacima. Brojač može da broji do 64K, a stanje brojača poredi se sa stanjem registra_16. Kada

Page 21: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

21 Maja Srbulovid 10966 / Marko Nikolid 10911

se ova dva stanja poklope, FSM prima signal koji signalizira da je došlo do slanja poslednjeg

bajta drugog polja i slanje podataka se završava. FSM saopšti modulu signalom new_byte_req

da je završio sa slanjem bajta i tada se mogu desiti dve stvari. Prva je da izostane signal

send_req od strane modula koji šalje informaciju i tada se prelazi u tzv. idle stanje i počinje se

sa slanjem nula i jedinica. Druga stvar koja može da se desi da modul postavi signal kojim

zahteva slanje novog paketa informacije i tada kolo ponovo šalje preambulu, resetuje

registar_16 koji de pamtiti prvo polje paketa itd..

Nakon upisa, podaci se šalju u koder. Kontrolni ulaz multipleksera 5 u 1, code_select, određuje

na ulaz kog kodera de se dovoditi podaci koji se šalju i, samim tim, biti kodovani tim kodom.

Kola kodera, kao i multiplekser 5 u 1 su prikazani na Slici 3.2.2.

Slika 3.2.2: Šema kodera

Page 22: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

22 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 3.2.3: Realizacija NRZ Level koda

Slika 3.2.3 prikazuje logiku kojom je realizovan deo kola koji generiše NRZ level kod. Kako se sa

slike vidi to je kolo D flip flopa koji upisanu informaciju čuva između dve ivice taktnog signala

kada se u flip flop upisuje nova vrednost. Na slededoj slici dat je dijagram simulacije rada kola

kada se na ulaz u pomerački registar dovede signal 10010110. Za NRZ_LEVEL kod stoji da se

jedninica kodira jednim nivoom (kod nas 1 se kodira visokim naponom), a nula se kodira drugim

nivoom (nizak naponski nivo). Kako smo mi uveli u naš protokol da se informacija upisuje na

rastudu ivici taktnog signala, a i D flip flop se taktuje na rastudu ivicu, to dovodi do toga da na

izlazu ovog kodera de biti ista informacija kao i na ulazu. Na Slici 3.2.4 je data grafička

interpretacija ovog NRZ Level koda.

Slika 3.2.4: Grafička interpretacija NRZ Level koda

Page 23: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

23 Maja Srbulovid 10966 / Marko Nikolid 10911

NRZ Mark kod odlikuje se svojstvom da se stanje na izlazu hardvera koji generiše ovaj kod

promeni svaki put kada se javi jedinica ulaznog signala. Tako ako pogledamo Sliku 3.2.5 tačno se

može zapaziti ova pojava da se stanje signala NRZ Mark menja svaki put kada na ulaz dođe

jedinica. Vidi se da de T flip flop da se taktuje samo onda kada je ulaz postavljen u stanje 1.

Taktovanje T flip flop- a podrazumeva promenu njegovog stanja. Tako ako je prethodno stanje

bilo 0, nakon taktovanja se na izlazu postavlja 1, i obrnuto.

Slika 3.2.5: Realizacija NRZ Mark kodera

Grafička interpretacija NRZ Mark koda je data na Slici 3.2.6.

Slika 3.2.6.

Page 24: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

24 Maja Srbulovid 10966 / Marko Nikolid 10911

RZ kod je veoma prost kod koji signal sa ulaza koji ima trajanje stanja 1 tokom celog taktnog

intervala, pretvara u signal kod kojeg stanje 1 traje polovinu taktnog intervala. Otuda mu i ime

Return to Zero. Na Slici 3.2.7 je prikazano I kolo kojim se generiše RZ kod

Slika 3.2.7: Realizacija RZ koda

A izgled talasnog oblika signala kodovanog ovim kodom je dato na Slici 3.2.8.

Slika 3.2.8: Talasni oblik signala na izlazu iz RZ koda

Do sada opisani kodovi pripadaju grupi kodova kod kojih je potreban spoljni takt za ispravnu

detekciju. Manchester i Bifazni kod pripadaju grupi kodova koji se još nazivaju i samo-taktovani

kodovi. Na Slici 3.2.2 prikazana je blok šeme kola kodera. Na slici se može uočiti da ulazni signal

kola koje generiše Manchester i Bifazni kod, dolazi iz kola koje generiše NRZ Level kod. U suštini,

mogude je ulaz uzeti direktno sa ulaza za podatke, ali znamo da se signal za podatke postavlja

neposredno pre dešavanja rastude ivice taktnog signala. Na taj način ne bi bilo mogude direktno

poređenje signala kodova koji se u ovom projektu realizuju. Zato je za referentni ulazni signal

kola koja generišu Manchester i Bifazni kod uzet signal NRZ Level.

Page 25: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

25 Maja Srbulovid 10966 / Marko Nikolid 10911

Generisanje Manchester koda je veoma prosto. Svojstvo Manchester koda je da jedinica bude

predstavljena rastudom ivicom signala na sredini trajanja taktnog intervala, a nula bude

predstavljena opadajudom ivicom na sredini taktnog intervala. U slučaju da se treba generisati

samo signal Manchester koda, tada se na prvi ulaz XOR kola treba dovesti signal sa serijskog

izlaza pomeračkog registra koji upis i pomeranje informacije obavlja na rastudu ivicu taktnog

signala. Na drugi ulaz XOR kola dovodi se pomenuti taktni signal. U opisanom kolu ved postoji

signal koji može poslužiti za generisanje Manchester koda tako da bi uvođenje još jednog

registra predstavljalo nepotrebno unošenje redundanse.

Slika 3.2.9: Realizacija Manchester koda

Izlaz iz Manchester kodera za ulaznu sekvencu datu na početku, je prikazan na Slici 3.2.10.

Slika 3.2.10: Signal na izlazu Manchester kodera

Page 26: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

26 Maja Srbulovid 10966 / Marko Nikolid 10911

Bifazni kod je kod čije je generisanje najsloženije. Osobina ovog koda je da na početku svakog

taktnog intervala postoji prelaz (prelazi se iz jednog u drugo stanje). Za nulu je karakteristično

da nema dodatnih prelaza u toku trajanja taktnog intervala, dok za jedinicu postoji prelaz na

sredini taktnog intervala. Hardver koji realizuje ovu funkciju dat je na Slici 3.2.11. Na slici

vidimo dva T flip flop-a i dodatnu logiku. Flip flop se taktuje rastudom ivicom taktnog signala. Na

slici vidimo da de gornji flip flop uvek da bude taktovan kada se desi rastuda ivica taktnog

signala što zapravo predstavlja prvu osobinu Bifaznog koda. Drugi flip flop taktuje se samo ako

je podatak koji treba preneti 1. Taktovanje se dešava na opadajudu ivicu taktnog signala za šta

je zaslužan invertor preko kojeg se dovodi taktni signal na I kolo, a I kolo ima ulogu da taktni

signal propusti samo ako je na ulazu za podatke stanje 1. Da bi se na izlazu desila promena

stanja na sredini tatktnog intervala potrebno je postaviti XOR kolo čija je uloga slededa:

Ukoliko se prenosi niz nula, stanje donjeg T flip flop-a je fiksno i pretpostavimo da je jednako 1.

Tada de pri pojavi svake rastude ivice taktnog signala, gornji T flip flop da promeni stanje. Može

se zaključiti da de pomenute promene da se jave i na izlazu (bitno je da se javi promena), dok se

stanje donjeg flip flopa koristi samo da se javi promena na sredini taktnog intervala kada se

prenosi jedinica. Ukoliko se sada na liniju za podatke dovede 1, tada de se osim promene na

početku trajanja taktnog intervala (rastuda ivica) javiti promena i na sredini taktnog intervala

(opadajuda ivica koja taktuje donji T flip flop). Ovakve promene nam omogudava XOR kolo koje

de promeniti stanje svaki put kada se jedan ulaz drži u jednom stanju (0 ili 1), a drugi ulaz

promeni svoju vrednost (sa 1 se pređe u 0 ili obratno). Na port sa oznakom ulaz dovodi se signal

NRZ level koda kao što je to slučaj i za Manchester kod.

Za razumevanje principa rada opisanog kola potrebno je sagledati i talasni oblik signala koda i

sagledati stanje kola u diskretnim vremenskim trenucima kako bi se u potpunosti razumeo

princip rada kola.

Page 27: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

27 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 3.2.11: Realizacija Bifaznog koda

Talasni oblik signala na izlazu iz Bifaznog kodera je predstavljen na Slici 3.2.12.

Slika 3.2.12: Talasni oblik signala na izlazu iz Bifaznoga kodera

Kako bi celokupan proces bio potpuno automatizovan, za ulazne podatke su uzete vrednosti

brojača modula 255. Na taj način je, pored hand shake procedure koju pravi kolo automata sa

svojim kontrolnim signalima new_byte_req, new_byte_set, send_request i send_ack,

postignuto da se i ulazni signali automatski generišu, osim ako se eksplicitno ne zahteva

manuelno unošenje. Način generisanja ulaznih podataka, kao i opcija za ručni unos de biti

kasnije objašnjene.

Page 28: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

28 Maja Srbulovid 10966 / Marko Nikolid 10911

Ulazni signali ovog sistema za prenos i kodiranje su clock, reset, signal za unos preambula(ovde

je uzeto 47 heksadecimalno ali se može menjati), data_in(gde se unose podaci kao i vrednost

polja od 16 bitova koje određuje veličinu podataka). Zatim za rad automata neophodni su ulazni

kontrolni signali new_byte_req, new_byte_set, send_request i send_ack. Dok je za rad kodera

potreban ulazani signal code_select kojim se definiše koji tip kodovanja se želi primeniti nad

podacima. Kao što se može primetiti, kolo sačinjavaju multiplekseri, registri, flip flopovi, brojači,

kao i kolo FSM-a. Uloga svakog od njih de biti sada objašnjena.

Multiplekser 4 u 1 određuje šta se dovodi u kolo kodera. Da li de to biti naizmenični niz nula i

jedinica kada je automat u idle stanju, ili preambula ili podatak, zavisi od kontrolnog ulaza koji

kontroliše automat. Izgled multipleksera je dat na Slici 3.2.13.

Slika 3.2.13: Multiplekser 4 u 1

Page 29: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

29 Maja Srbulovid 10966 / Marko Nikolid 10911

Na ulazni signal ulaz_1 se dovodi niz nula i jedinica koji se generišu u T flip flopu. On je aktivan

kada se ceo sistem nalazi u idle stanju, odnosno kada se ne prenose podaci. Na ulaz_2 se dovodi

izlaz pomeračkog registra. U njemu se vrši upis i pomeranje preambule. Kada predajni modul

pošalje zahtev automatu za slanje podataka, tada se aktivira ovaj ulaz i počinje sa prenosom

vrednosti preambule, odnosno 47 heksadecimalno. Na ulaz_3 se dovodi izlaz pomeračkog

registra u kome se smeštaju i shift-uju podataci koji se generišu na ulazu. Ulaz za prenos

podataka iz ovog registra se aktivira odmah nakon završetka slanja preambule. Sistem je

zamišljen tako da se kontrolni signali dovode na rastudu ivicu taktnog signala, dok se promena

stanja automata dešava na opadajudu ivicu taktnog signala. Kako bi izlazni signal iz FSM-a

mogao da kontroliše rad multipleksera i dozvoljavao upis na rastudu ivicu, stavljen je registar_2

koji ima ulogu da sinhronizuje izlazni signal iz automata i clock singal, kako bi se kontrolni ulaz

multipleksera javljao na rastudu ivicu taktnog signala. Ulaz_4 multipleksera je neaktivan.

Sistem koji čine registar_16, komparator i brojač_16 omogudavaju da automat zna kada je

došao kraj podacima koje treba poslati i da, u zavisnosti od toga da li stigne send_req signal,

ponovo krene sa slanjem preambule, ili da se vrati u idle stanje i prenosi niz nula i jednica. U

registar_16 se upisuju bitovi koji određuju dužinu podataka koje treba preneti(16 bitova nakon

preambule). Sadži 2 enable ulaza. Kada je aktivan prvi upisuju se bitovi nižeg reda, a kada je

aktivan drugi bitovi višeg reda. Brojač_16 broji bajtove(taktuje se izlaznim signalom brojača 8,

byte_sent_signal, koji broji bajtove). Kako se podaci upisuju paralelno po 8 bitova, brojač_8 je

uveden da signalizira kada dodje do prenosa poslednjeg bita iz jedne sekvence. Tada automat

zatraži od modula za prenos da upiše naredno niz od 8 bitova. Izlaz ovog brojača smo iskoristili

da taktujemo brojač koji de brojati bajtove. Sadržaj brojača_16 i registra_16 se upoređuju u

komparatoru. Kada se poklope, odnosno kada brojač dođe do one vrednosti koja označava

dužinu podataka, aktivira se signal na izlazu komparatora koji signalizira automatu da nema više

podataka i da pređe u neko od narednih stanja.

Page 30: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

30 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 3.2.14: Brojač_16, komparator i regisrar_16

Kolo automata sa konačnim brojem stanja je najznačajniji deo sistema koji obezbeđuje

handshake proceduru. Na osnovu 4 ulazna kontrolna signala (new_byte_set, send_request,

komp_signal i byte_sent_signal) automat generiše izlazne signale koji predstavljaju kontrolne

signale za ostale delove kola: signal za dozvolu upisa u registar, pomeranje sadržaja registra,

signal za početak brojanja brojača, resetovanje brojača, kontrolni signal za multiplekser itd.

Slika 3.2.15: Automat sa konačnim brojem stanja

Page 31: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

31 Maja Srbulovid 10966 / Marko Nikolid 10911

Spisak izlaznih signala automata

1. brojac_8_reset - signal kojim se resetuje samozaustavljujudi brojač osnove 8 2. brojac_8_en - signal za dozvolu brojanja brojača 8 3. data_write_en - dozvola upisa podataka u pomerački registar za podatke 4. data_shift_en - dozvola za pomeranje podataka u shift registru 5. data_shift_reset - reset shift registra za podatke 6. preamb_write_en - dozvola upisa u registar za preambulu 7. preamb_shift_en - dozvola za pomeranje bitova preambule 8. preamb_reset - reset registra za preambulu 9. brojac_16_count_en - dozvola brojanja brojača 16 10. brojac_16_reset - reset brojača 16 11. registar_16_reset - reset registra 16 12. registar_16_enable_H - dozvola upisa višeg bajta polja 2 13. registar_16_enable_L - dozvola upisa nižeg bajta polja 2 14. send_ack - potvrda o završetku predaje podataka 15. new_byte_req - zahtev za postavljanje novog bajta 16. MUX_control_signal - signal kojim se postavlja multiplekser

Spisak ulaznih signala automata

1. reset - signal za resetovanja FSM kola 2. clock - taktni signal FSM kola 3. byte_sent_signal - signal iz kola brojača 8 koji nam govori da je poslat jedan bajt 4. komp_signal - signal iz kola komparatora koji nam govori da je završeno sa slanjem

paketa 5. send_request - zahtev za slanje koji dolazi od modula koji šalje podatke 6. new_byte_set - potvrda o postavljanju novog bajta

Page 32: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

32 Maja Srbulovid 10966 / Marko Nikolid 10911

Automat ima 13 stanja koja definišu svaki trenutak prireme i slanje podataka:

S1 - idle stanje. U okviru ovog stanja šalje se niz jedinica i nula S2 - pripremno stanje za slanje preambule. Ovo stanje koristi se za prebacivanje

multipleksera iz stanja u kojem se šalje niz nula i jedinica u stanje slanja preambule. S3 - stanje u okviru kojeg se šalje preambula. Traje 7 taktnih intervala. S4 - stanje byte_req/byte_set_1. Traje 1 taktni interval S5 - stanje kada se upisuje viši bajt polja dužine paketa u registar 16. Traje jedan taktni

interval. S6 - stanje u okviru kojeg se šalje viši bajt polja dužine paketa. Traje 6 taktnih intervala. S7 - stanje byte_req/byte_set_2. Traje 1 taktni interval S8 - stanje za upis drugog bajta polja dužine u registar 16. Traje jedan taktni interval. S9 - stanje u okviru kojeg se šalje drugi bajt polja dužine paketa. Traje 6 taktnih

intervala. S10 - stanje byte_req/byte_set_3. Traje 1 taktni interval S11 - stanje regularnog upisa u shift registar. Traje jedan taktni interval. S12 - stanje u okviru kojeg se šalje jedan bajt podatka. Traje 6 taktnih intervala. S13 - Očekivanje novog zahteva za slanje.

Početno stanje S1 je, kao što se vidi, stanje u kome nema slanje podataka. Tada sistem

automatski šalje niz nula i jedinica. Kada predajni modul pošalje zahtev automatu da želi da

pošalje podatke (signalom send_request), automat prelazi u stanje S2 gde se priprema za slanje

preambule. Nakon jednog taktnog intervala sistem prelazi u stanje S3 u okviru koga šalje

preambulu (47 heksadecimalno). Ovo stanje traje 7 taktnih intervala. Razlog zbog kojeg ovo

stanje ne traje 8 taktnih intervala (kolika je i dužina preambule) je ta što pre isteka poslednjeg

bita sistem mora od predajnog modula da zatraži postavljanje novog bajta jer tzv sekvenca rada

kola je 8 bitova, odnosno informacije te dužine sa paralelno upisuju. Pa zato pre isteka osmog

bita se traži zahtev od predajnog modula da postavi novi bit koji de se kasnije prenositi. Zato

nakon isteka sedmog taktnog intervala automat prelazi u stanje S4 gde automat signalizira

modulu koji šalje podatke da treba da postavi novi bajt informacije koja se šalje. Kada dobije

povratnu informaciju da je bit postavljen, automat prelazi u naredno stanje, S5. Kao što je

navedeno, u ovom stanju se naredni bajt upisuje u gornji deo registra_16, koji određuje dužinu

polja podataka. Nakon jednog taktnog intervala, koliko traje ovo stanje, prelazi se u stanje S6

gde se vrši slanje ovog bajta, koje traje 6 taktnih intervala. Pre isteka slanja ovog bajta podataka

ponovo se šalje zahtev predajnom modulu da postavi novi bajt podataka, koji de se sada upisati

Page 33: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

33 Maja Srbulovid 10966 / Marko Nikolid 10911

u niži nivi registra_16 (S7). Kada dobije potvrdu da je novi bajt postavljen, (S8) vrši se upis novog

bajta u niži nivo registra_16. Za ovo vreme (2 dodatna takta) se i završi prenos višeg bajta (6+2

bita) i može se odmah krenuti sa prenosom nižeg upisanog bita, što se dešava u stanju S9.

Stanje S10 je identično stanju S7. Stanje S11 je slično stanju S8 ali s’tim što se sada upis u

registar_16 završio pa sledi upis u pomerački registar koji de prosleđivati korisnu informaciju tj

podatke. Oni se prosleđuju i šalju u stanju S12, koji traje takođe 6 taktnih intervala, dok za

preostala 2 intervala šalje zahtev predajnom modulu za postavljanje i upis novih 8 bitova u

pomerački registar. Kada se prenese ceo podatak sistem prelazi u stanje S13 gde očekuje zahtev

za novo slanje podataka. Ukoliko dobije zahtev od predajnog modula za ponovnim slanjem

podataka, automata prelazi u stanje S3 i krede iznova ceo postupak. Ukoliko ne dođe do zahteva

za slanjem novog podataka od predajnog modula, automat prelazi u idle stanje S1 i počinje da

prenosi naizmenični niz nula i jedinica.

Slika 3.2.16: Graf stanja automata

Page 34: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

34 Maja Srbulovid 10966 / Marko Nikolid 10911

Na Slici 3.2.17 je prikazana tabela kodiranja signala automata, gde se može videti koji signal

automata je aktivan za svako od 13 stanja automata.

Slika 3.2.17: Tabela kodiranja signala automata

Stanje/signal S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13

brojac_8_reset 1 1 0 1 0 0 1 0 0 1 0 0 1

brojac_8_en 0 0 1 0 1 1 0 1 1 0 1 1 0

data_write_en 0 0 0 0 1 0 0 1 0 0 1 0 0

data_shift_en 0 0 0 0 0 1 0 0 1 1 0 1 0

data_shift_reset 1 1 0 0 0 0 0 0 0 0 0 0 0

preamb_write_en 0 1 0 0 0 0 0 0 0 0 0 0 1

preamb_shift_en 0 0 1 0 0 0 0 0 0 0 0 0 0

preamb_reset 1 0 0 0 1 0 0 0 0 0 0 0 0

brojac_16_count_en 0 0 0 0 0 1 0 0 1 0 1 1 0

brojac_16_reset 1 0 0 1 0 0 0 0 0 0 0 0 0

registar_16_reset 1 0 0 1 0 0 0 0 0 0 0 0 0

registar_16_enable_H 0 0 0 0 1 0 0 0 0 0 0 0 0

registar_16_enable_L 0 0 0 0 0 0 0 1 0 0 0 0 0

send_ack 0 0 0 0 0 0 0 0 0 0 0 0 1

new_byte_req 0 0 0 1 0 0 1 0 0 1 0 0 1

MUX_control_signal 00 00 01 01 10 10 10 10 10 10 10 10 10

Page 35: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

35 Maja Srbulovid 10966 / Marko Nikolid 10911

4. OPIS ENTITETA KOLA U VHDL KODU

U cilju boljeg razumevanja funkcije i strukture svakog bloka kola pojedniačno, naredni deo de

biti posveden opisivanju entiteta naše šeme za prenos i kodiranje podataka. Obuhvatide

strukturni opis (ulaz, izlaz i osnovna funkcija), njegova funkcija u kolu, kao i VHDL kod kojim je

opisan u projektu.

4.1 D Flip Flop

D Flip Flop je standardno logičko kolo čije je uloga da informaciju na ulazu prikaže na izlaz samo

kada je prisutna aktivna ivica taktnog signala. U našem slučaju je to rastuda ivica. Ima 3 ulazna i

jedan izlazni port. Koristimo ga kada želimo da zakasnimo određeni signal (D je skradenica od

Delay). Jedan D flip flop je prikazan na Slici 4.1.1.

Slika 4.1.1: D flip flop

U našem kolu D flip flop se koristi u realizaciji NRZ Level kodera i u predajnom modulu, gde se

koristi da zakasni kontrolni signal za slanje odnosno pomeranje vrednosti preambule za jedan

taktni interval. Opis entiteta D flip flopa, kao i njegova arhitektura su date kao:

Page 36: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

36 Maja Srbulovid 10966 / Marko Nikolid 10911

U deklaraciji entiteta vidimo da su svi portovi tipa Standard Logic (uzimaju vrednosti 0 ili 1), koji

se nalaze u biblioteci IEEE. Dok se u arhitekturalnom delu vidi da na rastudu ivicu taktnog

signala vrednost na ulazu se dodeljuje fiktivnoj promenljivoj STANJE, čija se vrednost nakon

ispitivanja uslova rastude ivice dodeljuje izlaznom portu Q. Ukoliko je aktivan reset signal,

promenljivoj STANJE se dodeljuje vrednost 0.

Page 37: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

37 Maja Srbulovid 10966 / Marko Nikolid 10911

4.2 T Flip Flop

T Flip Flop je standardno logičko kolo koje invertuje vrednost na izlazu sa svakom pojavom

rastude ivice taktnog signala na ulazu. U našem kolu T flip flop se koristi za generisanje

naizmeničnog niza nula i jedinica kada se sistem nalazi u idle stanju, kao i kod realizacije NRZ

Mark i Bifatnog kodera. Ima dva ulazna porta (clock i reset) i jedan izlazni.

Slika 4.2.1: T Flip Flop

Opis entiteta T flip flopa u VHDL kodu, kao u njegova arhitektura su date kao:

Page 38: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

38 Maja Srbulovid 10966 / Marko Nikolid 10911

Kao i kod D flip flopa vidimo da se u opisu arhitekture uvodi fiktivna promenljliva STANJE, koja

ima početnu vrednost 0. Nakon dolaska svake rastude ivice njena vrednost se invertuje.

4.3 Multiplekser

Multiplekser je logičko kolo sa više ulaza, jednim izlazom i jednim kontrolnim ulazom koji

određuje koji ulaz de biti aktivan i samim tim njegova informacija prosleđena na izlaz

multipleksera. Broj ulaza predstavlja kombinatorsku logiku broja bitova kontrolnog ulaza tj

ukoliko je kontrolni port jednobitni, maksimalni broj ulaza je 2. Ako je kontrolni ulaz dvobitni,

maksimalni broj ulaza je četiri itd. U našem slučaju imamo multipleksera 4 u 1, koji se koristi za

realizaciju predajnog modula, i multiplekser 5 u 1 za realizaciju kodera, odnosno izbora jednog

od kodera.

Page 39: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

39 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 4.3.1: Multiplekser a) 4u1 ; b) 5u1

Opisi arhitektura multipleksera 4 u 1, kao i multipleksera 5 u 1 su dati kao:

Page 40: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

40 Maja Srbulovid 10966 / Marko Nikolid 10911

S’obzirom da Standard Logic tip podataka uzima, pored nule i jedinice, još šest vrednosti, na

kraju smo stavili da bilo koja druga kombinacija na selektivnom ulazu dovodi multiplekser u

stanje visoke impedanse (Z).

Page 41: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

41 Maja Srbulovid 10966 / Marko Nikolid 10911

4.4 Pomerački Registar

Pomerački (shift) registar, kao što mu i samo ime govori, služi za pomeranje podataka koji su

upišu u njega. U našem slučaju pomerački registar koristimo za prenos, odnosno slanje

preambule i korisne informacije, odnosno podataka ka kolu za kodiranje. Oba registra imaju po

5 ulaznih portova i po 1 izlazni port. Jedan ulazni port je osmobitni (onaj koji viši upis u registar;

jer se vrši paralelni upis od osam bitova), a ostala četiri su jednobitni portovi. To su clock, reset,

write enable signal, koji omoguduje upis podataka u registar, i shift enable signal, koji

omoguduje pomeranje, odnosno slanje podataka. Izgled jednog pomeračkog registra je dat na

Slici 4.4.1.

Slika 4.4.1: Pomerački registar

VHDL kod za pomerački registar je dat kao:

Page 42: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

42 Maja Srbulovid 10966 / Marko Nikolid 10911

U deklaraciji entiteta imamo definisanje jednobitnih ulaznih portova na isti način kao i kod flip

flopova. Osmobitni ulazni port (kao i kod multipleksera) je tipa Standard Logic Vector sa

bitovima težine od 0 do 7. U deklaraciji arhitekture se uvodi promenljiva STANJE koje je tipa

Standard Logic Vector i koja de predstavljati novo stanje registra nakon pomeranja. Dakle,

ukoliko je aktivan reset signal, registar se resetuje i STANJE je osam nula. Kada dodje do rastude

ivice taktnog signala i kada je aktivan signal za upis u registar, stanje registra je ono što je na

ulazu. Ukoliko dođe do rastude ivice ivica taktnog signala a signal za upis nije aktivan, tada se

aktivira signal za pomeranje i registar počinje pomeranje sadržaja ulevo. Bit označen kao 7 (bit

najvede težine promenljive STANJE) se uvek vodi na izlaz registra, ostali deo se pomera ulevo i

dodaje mu se jedna nula sa desne strane. I tako sve dok se ne pošalje i poslednji bit, odnosno

dok promenljiva STANJE ponovo ne bude sve nule.

Page 43: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

43 Maja Srbulovid 10966 / Marko Nikolid 10911

4.5 Brojač

Brojač, kao što mu ime govori, je logičko kolo koje se koristi za brojanje. U zavisnosti od

potrebe, može brojati taktove, biitove, bajtove, ili za šta nam ved zatreba odnodno kako ga

isprogramiramo. U našem kolu imamo dva tipa brojača. Jedan, brojač_8, koristimo za brojanje

bitova, i on nam govori kada treba dozvoliti upis novom nizu od osam bitova informacija. Drugi

brojač je brojač_16, koji broji bajtove i služi nam da ukaže automatu kada je došlo do kraja

prenosa podataka i zatražiti postavljanje novog bajta za upis i prenos od strane predajnog

modula. Struktura im je ista. Imaju tri ulaza (reset, clock i count enable) i jedan izlaz. Razlika (u

našem slučaju) je samo u načinu taktovanja. Brojač_8 se taktuje standardnim clock signalom

kojim se taktuju svi ostali entiteti u koli, dok se brojač_16 taktuje izlaznim signalom brojača_8.

Dozvolu za brojanje oba brojača, kao i reset signale kontroliše automat. Na taj način smo

postigli da brojač_16 dobije jedan taktni signal kada brojač_8 završi sa brojanjem osam bitova,

odnosno jednog bajta. Oba brojača u sprezi su prikazana na Slici 4.5.1.

Slika 4.5.1: Brojač_8 i Brojač_16 u sprezi

Page 44: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

44 Maja Srbulovid 10966 / Marko Nikolid 10911

VHDL kodovi ovih brojača su data kao:

Primedujemo da se za opis brojača koristi datoteka IEEE Numeric, koja se koristi za aritmetičke

operacije (kod brojača, množača, sabirača...). U deklaraciji arhitekture uvodimo fiktivni signal

STANJE od tri bita, koje de se aktivirati izlazni signal samo ukoliko stanje signala STANJE bude

111. Nakon ispitivanja uslova za resetovanje brojača ispitujemo da li je došlo do rastude ivice

taktnog signala i da li je aktivan signal za dozvolu brojanja. Ukoliko jeste, ispitujemo da li se

Page 45: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

45 Maja Srbulovid 10966 / Marko Nikolid 10911

brojač nalazi u poslednjem stanju (111). Ukoliko jeste, on ostaje u tom stanju

(samozaustavljajudi brojač) i aktivira se izlazni signal. Ukoliko nije, onda se sa svakim taktom

stanje brojača povedava za jedan. Kada dođe do poslednjeg stanja, ponovo se aktivira izlazni

signal.

Page 46: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

46 Maja Srbulovid 10966 / Marko Nikolid 10911

Razlika između ova dva brojača je ta što je izlaz brojača_16 16-o bitni signal koji se uporađuje sa

izlazom registra_16 (kao što je ved objašnjeno). Zato na kraju moramo da stanje prebacimo u

format Standard Logic Vector i da ga dodelimo izlazu (jer je definisan kao unsigned da bi svako

sledede stanje moglo da se realizuje kao prethodno uvedano za jedan).

4.6 Registar_16

Registar_16 koristimo za čuvanje informacija o dužini paketa koji šaljemo. Zahvaljujudi njemu

automat zna kada je došlo do prenosa poslednjeg bita podataka i da treba da zatraži novu

informaciju od predajnog modula. Način upisa gornjeg i donjeg bajta u ovaj registar je ved

objašnjeno. Sadrži jedan osmobitni ulaz (na koji se dovode informacije), četiri jednobitna ulaza

(clock, reset, write enable 1 koji omogudava upis gornjeg bajta tj bajta vede težine, write enable

2 koji omogudava upis donjeg bajta tj bajta niže težine). Izlaz registra_16 je šesnaesto bitni (kao

i izlaz brojača_16).

Slika 4.6.1: Registar_16

Page 47: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

47 Maja Srbulovid 10966 / Marko Nikolid 10911

VHDL kod ovog registra je dat kao:

Vidimo da nakon resetovanja ispitujemo uslov rastude ivice taktnog signala. Ukoliko jeste i

ukoliko je aktivan enable_1 kontrolni ulaz, tada prvih osam bitova fiktivne promenljive STANJE

ostaje nepromenjeno, a podaci sa ulaza postaju drugih osam bitova ove promenljive. Odnosno,

upisao se donji bajt u ovaj registar. Ukoliko je aktivan ulaz enable_2, onda se upisuje gornji bajt

u naš registar. I na kraju izlaz uzima vrednost naše fiktivne promenljive STANJE nakon njenog

update-ovanje, odnosno nakon upisa oba bajta u registar.

Page 48: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

48 Maja Srbulovid 10966 / Marko Nikolid 10911

4.7 Komparator

Komparator služi za upoređivanje dva vrednosti na izlazu iz brojača_16 i registra_16. Odnosdno,

kada nakon slanje preambule brojač_16 krene da broji bitove i kada se vrednost na izlazu

poklopi da vrednošdu na izlazu iz registra_16, znamo da je došlo do poslednjeg bita podatka čiju

dužinu određuje registar_16 i tada automat prelazi u novo stanje. Komparator ima, dakle, dva

šesnaestobitna ulazna porta i jedan jednobitni izlazni port. On se aktivira kada se vrednost

ulaznih portova poklopi tj izjedači. Izgled komparatora je dat na Slici 4.7.1.

Slika 4.7.1: Komparator

VHDL kod ovog komparatora je jednostavan i dat kao:

Dakle izlaz je aktivan samo ukoliko su ulaz_1 i ulaz_2 komparatora jednaki.

Page 49: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

49 Maja Srbulovid 10966 / Marko Nikolid 10911

4.8 Automat

Automat sa konačnim brojem stanja je, kao što je ved rečeno, ključni element hand shake

procedure. Kontroliše komunikaciju između svih blokova našeg kola i generiše kontrolne signale

za njihov rad. Ima ukupno šest ulaza i petnaest izlaza. Spisak svih ulaza/izlaza, kao i stanja

automata ved je objašnjeno ranije. VHDL kod automata je dat kao:

Page 50: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

50 Maja Srbulovid 10966 / Marko Nikolid 10911

Page 51: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

51 Maja Srbulovid 10966 / Marko Nikolid 10911

Page 52: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

52 Maja Srbulovid 10966 / Marko Nikolid 10911

Page 53: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

53 Maja Srbulovid 10966 / Marko Nikolid 10911

Page 54: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

54 Maja Srbulovid 10966 / Marko Nikolid 10911

Page 55: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

55 Maja Srbulovid 10966 / Marko Nikolid 10911

Page 56: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

56 Maja Srbulovid 10966 / Marko Nikolid 10911

Page 57: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

57 Maja Srbulovid 10966 / Marko Nikolid 10911

Page 58: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

58 Maja Srbulovid 10966 / Marko Nikolid 10911

5. TESTIRANJE RADA KOLA

U cilju verifikacije dizajna, napravljen je Testbench na Waves Based principu i izvršena je

simulacija rada kola. Ispravnost rada kodera i predajnog modula bide objašnjena na talasnim

oblicima bitnijih kontrolnih i izlaznih signala.

Ulaz je zamišljen kao izlaz iz brojača modula 255, a u određenim vremenskim intervalima (32us,

159us i 167us) se na ulaz dovode bitovi koji određuju dužinu paketa. Oni se dovode pomodu

porta koji je nezavistan u odnosu na brojač, i samo u tim vremenskim intervalima predajni

modul zanemaruje izlaz iz brojača i upisuje podatke sa tog porta koji se naziva second_field.

Vrednost second_field polja se ne mogu menjati jer je protokolom zamišljeno da dužina paketa

bude 2 bajta.

Mogude je menjati samo vrednosti ulaznog signala (proizvoljna sekvenca dužine 16 bajtova),

kao i izbor koda u Testbench fajlu.

Na Slici 5.1 je prikazan izgled Testbench fajla za slučaj kada ulazni signal uzima vrednosti koje se

generišu na izlazu brojača modula 255.

Slika 5.1

Page 59: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

59 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 5.2 pokazuje izgled Testbench fajla za slučaj kada želimo sami da unesemo sekvencu za

kodiranje. Treba napomenuti da sekvenca mora biti dužine dva bajta i to u trenucima kao što je

naznačeno na slici. Dve crte na početku svakog reda u VHDL kodu označavaju da je u pitanju

komentar i da nemaju uticaja u izvršenju Testbench fajla.

Slika 5.2

Ukoliko želimo da promenimo kod, to možemo učiniti promenom code_select signala kao što je

prikazano na slici 5.3.

Slika 5.3

Verifikacija rada kola je data na Slici 5.4 i Slici 5.5

Page 60: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

60 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 5.4

Page 61: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

61 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 5.5

Page 62: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

62 Maja Srbulovid 10966 / Marko Nikolid 10911

Kao što je protokolom opisano, sistem se nalazi u idle stanju sve dok ne dobije zahtev od

predajnog modula za slanje podataka (signalom send_reuest). Do tog trenutka se šalje niz nula i

jedinica (15us). Nakon toga automat prelazi u stanje S2 (pripremno stanje za slanje preambule).

U slededem taktnom intervalu prelazi u stanje S3 u kojem se šalje preambula, kao što je

prikazano na Slici 5.4 (17us). U stanju S4 se, nakon zahteva, postavlja novi bajt, koji se nakon

toga upisuje u viši deo registra_16 (stanje S5), a u 32us se postavlja novi bajt za upis u niži deo

registra_16. To se dešava u stanju S8. U 40us se krede sa slanjem podataka (stanje S10) i traje

sve dok se ne pošalju dva bajta podataka. Tada se pošalje signal send_ack kojim se potvrđuje da

je poslat poslednji bit podataka i očekuje zahtev za novo slanje (stanje S13), kao što je prikazano

na Slici 5.5.

Page 63: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

63 Maja Srbulovid 10966 / Marko Nikolid 10911

6.LABORATORIJSKA VEŽBA

ZADATAK 1.

Proveriti ispravnost rada kola koristedi proizvoljan kod kojim de se podaci slati. Posmatrati

dijagram stanja.

Korak 1: Pokrenuti program Active-HDL 6.3 dvostrukim klikom na ikonicu

smeštenu na desktop-u računara.

Korak 2: U prozoru Getting Started izabrati levim klikom miša opciju Open existing workspace,

zatim levim klikom miša selektovati projekat transmit_unit i na kraju levim klikom na opciju Ok

pozivamo program koji opisuje naše kolo.

Slika 6.1: Ilustracija uz Korak 2

Page 64: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

64 Maja Srbulovid 10966 / Marko Nikolid 10911

Posle Koraka 2 otvara se prozor kao na narednoj Slici 6.2.

Slika 6.2: Workspace (radni prostor) ’transmint_unit’

Korak 3: Za prikaz blok šeme kola i kodera u projektnim fajlovima dvostrukim klikom otvorimo

transmit_unit_sema.bde i koder.bde kao što je pokazano na Slici 6.3.

Slika 6.3: Ilustracija uz Korak 3

Page 65: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

65 Maja Srbulovid 10966 / Marko Nikolid 10911

Korak 4: Pokretanje TestBench vrši se tako što se pointerom označi testbench runtest fajl i

desnim klikom pokrene meni iz kog se odabere opcija Execute. Na Slici 6.4 je prikazano

pokretanje izvršenja fajla za testiranje transmit_unit kola.

Slika 6.4: Ilustracija uz Korak 4

Nakon pokrenutog TestBench-a otvara se prozor kao na Slici 6.5.

Slika 6.5: Waveform Editor

Page 66: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

66 Maja Srbulovid 10966 / Marko Nikolid 10911

Korak 5: Pokretanje simulacije vrši se levim klikom na ikonicu obojenu crvenom bojom.

Slika 6.6: Ilustracija uz Korak 5

Korak 6: Pored izlistanih signala izvlačimo i signal za stanje automata i signal za izlazno stanje

brojača_8 kao što je prikazano na slici. Prevlačenje se vrši tako što levim klikom izaberemo kolo

čiji signal želimo da prikažemo. U opadajudem meniju izaberemo signal i dok držimo levi taster

signal samo prevučemo u editor.

Page 67: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

67 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 6.7: Ilustracije uz Korak 6

Na narednoj slici (Slika 6.8) crvenom bojom je označeno da je vrednost code_select 2, što nam

kazuje da je izabrani kod RZ. Crvenom bojom je označen i izgled data_out.

Slika 6.8: Izgled kodirane sekvence kodom RZ

Page 68: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

68 Maja Srbulovid 10966 / Marko Nikolid 10911

Korak 7: Promena koda kojim de se ulazna sekvenca poslati. Promena koda se vrši tako što se

dvostrukim klikom otvori TestBench fajl i promeni vrednost signala kojim se selektuje kod kojim

se podaci šalju. Posle promene vrednosti, pristupa se kompajliranju levim klikom na ikonicu

obojenu crvenom bojom. Postupak je prikazan na Slici 6.9.

Slika 6.9: Ilustracija uz Korak 7

Korak 8: Ponovnim pokretanjem simulacije u Waveform Editoru možemo zapaziti da je sada

vrednost code_select polja 3 (na slici obojeno crvenom bojom), a da je oblik data_out

promenjen. Izabrani kod je sad Manchester. Promene su prikazane na Slici 6.10.

Page 69: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

69 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 6.10: Ilustracija uz Korak 8

Napomena: Treba izabrati da vreme simulacije bude 200us (kao što može da se vidi na slikama),

kao i da je izbor koda proizvoljan (kodovi su opisani u poglavlju 3).

Page 70: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

70 Maja Srbulovid 10966 / Marko Nikolid 10911

ZADATAK 2.

Proveriti ispravnost rada kola koristedi proizvoljni ulazni signal (proizvoljna sekvenca dužine dva

bajta). Posmatrati dijagram stanja.

Korak 1: Pokrenuti program Active-HDL 6.3 dvostrukim klikom na ikonicu

smeštenu na desktop računara.

Korak 2: U prozoru Getting Started izabrati levim klikom miša opciju Open existing workspace,

zatim levim klikom miša selektovati projekat transmit_unit i na kraju levim klikom na opciju Ok

pozivamo program koji opisuje naše kolo.

Slika 6.11: Ilustracija uz Korak 2

Page 71: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

71 Maja Srbulovid 10966 / Marko Nikolid 10911

Posle koraka 2 otvara se prozor kao na narednoj slici:

Slika 6.12: Workspace (radni prostor) ’transmint_unit’

Korak 3: Za prikaz blok šeme kola i kodera u projektnim fajlovima dvostrukim klikom otvorimo

transmit_unit_sema.bde i koder.bde kao što je pokazano na Slici 6.13:

Slika 6.13: Ilustracija uz Korak 3

Page 72: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

72 Maja Srbulovid 10966 / Marko Nikolid 10911

Korak 4: Pokretanje TestBench vrši se tako što se pointerom označi testbench runtest fajl i

desnim klikom pokrene meni iz kog se odabere opcija Execute. Na slici 6.14 je prikazano

pokretanje izvršenja fajla za testiranje transmit_unit kola.

Slika 6.14: Ilustracija uz Korak 4

Nakon pokrenutog TestBench-a otvara se prozor kao na narednoj slici:

Slika 6.15: Waveform Editor

Page 73: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

73 Maja Srbulovid 10966 / Marko Nikolid 10911

Korak 5: Pokretanje simulacije vrši se levim klikom na ikonicu obojenu crvenom bojom.

Slika 6.16: Ilustracija uz Korak 5

Korak 6: Pored izlistanih signala izvlačimo i signal za stanje automata i signal za izlazno stanje

brojača_8 kao što je prikazano na slici. Prevlačenje se vrši tako što levim klikom izaberemo kolo

čiji signal želimo da prikažemo. U opadajudem meniju izaberemo signal i dok držimo levi taster

signal samo prevučemo u editor.

Page 74: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

74 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 6.17: Ilustracije uz Korak 6

Ulaz je zamišljen kao izlaz iz brojača modula 255, a u određenim vremenskim intervalima (32us,

159us i 167us) se na ulaz dovode bitovi koji određuju dužinu paketa. Oni se dovode pomodu

porta koji je nezavistan u odnosu na brojač, i samo u tim vremenskim intervalima predajni

modul zanemaruje izlaz iz brojača i upisuje podatke sa tog porta koji se naziva second_field.

Vrednost second_field polja se ne mogu menjati jer je protokolom zamišljeno da dužina paketa

bude 2 bajta.

Page 75: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

75 Maja Srbulovid 10966 / Marko Nikolid 10911

Na narednoj slici prikazan (uokviren crvenom bojom) je izgled signala data_in

Slika 6.18: : Izgled data_in signala

Korak 7: Promena ulaza u kolo. Promena ulazne sekvence vrši tako što se dvostrukim klikom

otvori TestBench fajl i prati postupak prikazan na slikama 1. I 2. Posle promene vrednosti,

pristupa se kompajliranju levim klikom na ikonicu obojenu crvenom bojom. Postupci su

prikazani na ilustracijama sa Slike 6.19.

Page 76: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

76 Maja Srbulovid 10966 / Marko Nikolid 10911

Slika 6.19: Ilustracije uz Korak 7

Page 77: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

77 Maja Srbulovid 10966 / Marko Nikolid 10911

Korak 8: Ponovnim pokretanjem simulacije Waveform Editoru možemo zapaziti da je sada

izgled signala data_in izmenjen (na slici uokvireno crvenom bojom). Promene su prikazane na

Slici 6.20.

Slika 6.20: Ilustracija uz Korak 8

Page 78: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

78 Maja Srbulovid 10966 / Marko Nikolid 10911

8.LITERATURA

1) J.Mirkowski, M.Kapustka, Z.Skovronski, A.Biniszkiewicz − “Interactive VHDL Tutorial REV.

2.1”

2) Dennis Derickson, Marcus Műller - “Digital Communications Test and Measurement”

3) www.embedded.com - “Back to the future: Manchester encoding - Part 1” by Robert

Guastella

4) Dr Dejan B. Živkovid, Dr Miodrag V. Popovid - “Impulsna i digitalna elektronika”,

Elektrotehnički fakultet, Nauka, 1997

5) Robert Guastella – “VHDL Programming by Example ”

6) M.Stojčev, B.Petrovid - “Arhitekture i programiranje mikroračunarskih sistema

zasnovanih na familiji procesora 80x86”, Elektronski fakultet u Nišu, Niš, 1999

7) Internet

Page 79: PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODAes.elfak.ni.ac.rs/Papers/MSrbulovic - MNikolic - Prenos i kodiranje... · suštini asinhroni prijemnik ne regeneriše takt na osnovu

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

79 Maja Srbulovid 10966 / Marko Nikolid 10911

9.BIOGRAFIJE AUTORA

Ime i Prezime: Maja Srbulovid

Datum i mesto rođenja: 15. Maj 1983. – Negotin

Adresa stanovanja: Pariske Komune 9/21, Niš

Obrazovanje: Negotinska gimnazija

Godina upisa fakulteta: 2002.

Smer: Telekomunikacije

Poznavanje jezika: Engleski, Nemački

Interesovanja: Putovanja, Računari

Ime i Prezime: Marko Nikolid

Datum i mesto rođenja: 30. Avgust 1983. - Niš

Adresa stanovanja: Starca Vujadina 30, Niš

Obrazovanje: Gimnazija „Svetozar Markovid“

Godina upisa fakulteta: 2002.

Smer: Telekomunikacije

Poznavanje jezika: Engleski, Francuski

Interesovanja: Putovanja, Sport, Menadžment veštine