You are on page 1of 79

UNIVERZITET U NIU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU Predmet: MIKROPROCESORSKI SISTEMI

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA

Profesor: Prof. Dr Mile Stojev


Ni, Novembar 2009.

Studenti: Maja Srbulovid 10966 Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

SADRAJ

1. Prenos Podataka .......................................................................................................... 3 1.1 Nain Komunikacije ........................................................................................ 4 1.2 Serijski i Paralelni Prenos ................................................................................ 5 1.3 Asinhrini i Sinhroni Reim 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 Pomeraki 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 Veba ....................... .......................................................................... 63 Zadatak 1 ............................................................................................................ 63 Zadatak 2 ............................................................................................................ 70 7. Literatura ............................................................................................................... .... 78 8. Biografije Autora ........................................................................................................ 79

2 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

1. PRENOS PODATAKA
Fundamentalni aspekt svakog sistema za prenos podataka odnosi se na tehniku koja se koristi za slanje podataka izmeu dve take (predajnika/prijemnika). Prenos podataka izmeu predajnika i prijemnika ostvaruje se preko prenosnog medijuma. Prenosne medijume moemo svrstati u dve osnovne grupe: a) trasirane (guided) i b) netrasirane (unguided). U oba sluaja komunikacija se ostvaruje zahvaljujudi prostiranju elektromagnetnih talasa kroz medijum. Kod trasiranog prenosa prostiranje talasa (adekvatniji termin u ovom sluaju je elektrini signal) se usmerava du fizikih puteva kakvi su upredeni kablovi, koaksijalni kablovi, optika vlakna itd. Kod netrasiranog prenosa prostiranje elektromagnetnih talasa se vri kroz prostor (vazduh, vakuum, tenost). Prenosni put izmeu dve take 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 izmeu dva ureaja du koga se prostiranje signala izmeu predajnika i prijemnika ostvaruje bez posrednika. U ovom sluaju kao posrednici na prenosnom putu ne smatraju se ureaji tipa pojaava 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 najede koriste kod trasiranog prenosa. Kod usmerenog prenosa tipa taka-ka-taki (point-to-point) prikazan na Slici 1.1a) ostvarena je direktna veza izmeu predajnika i prijemnika, a kod vietakaste (multipoint) konfiguracije, medijum za prenos je deljiv izmeu vedeg broja ureaja (Slika 1.1b)).

3 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Sl.1.1: Tipovi kod usmerenog prenosa

1.1 Naini Komunikacije

Razlikujemo tri naina 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 vriti 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).

4 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 1.1.1: Naini 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 tipino 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 bri od serijskog, ali je skuplji (zahteva vedi broj veza). Serijski prenos je daleko pouzdaniji greka ili prekid u prenosu mogu jednostavno da se detektuju. Daleko znaajnija prednost serijskog prenosa je u tome to su vremenom razvijeni brojni i

5 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. kvalitetni protokoli (pravila za razmenu podataka). Kod paralelnog prenosa, zbog razliitih formata paralelnih podataka, to nije sluaj. Uopte, paralelni prenos podataka se daleko vie koristi kada se prenosi podatak na kradim rastojanjima: interno, unutar mikroprocesorskog sistema (npr. komunikacija izmeu mikroprocesora i memorije) i eksterno, do nekoliko metara, u okviru raunarskog okruenja (npr. komunikacija izmeu raunara i tampaa preko paralelnog porta). Kada su u pitanju rastojanja veda od reda nekoliko metara, serijski prenos podataka je jedini izbor. Serijski prenos moe da se ostvari preko jednog provodnika (ice). U praksi su, meutim, potrebne najmanje dve linije (provodnika, ice) za serijsku komunikaciju: jedna za podatke i druga, tzv. masa da bi se zatvorilo strujno kolo izmeu dva sistema koji serijski komuniciraju. Veliki broj potrebnih veza (jedna ica po bitu n-bitnog podatka) ograniava primenu paralelnog prenosa na kratka rastojanja. Na primer, u merno-informacionoj tehnici projektovana je paralelna magistrala IEEE-488 GPIB, preko koje komuniciraju sistemi/ureaji udaljeni maksimalno 20 m. Ureaji svih renomiranih proizvoaa mernoinformacione opreme (digitalni osciloskopi, digitalni izvori napajanja, logiki 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 izvriti paralelno-serijsku konverziju. Za tu svrhu se najede koriste pomeraki 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 6 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Mikroprocesorski sistemi memoriu i procesiraju podatke u formi bitova koji su ureeni kao rei fiksnog obima. Memoriju raunara ini niz lokacija pri emu svaka ima svoju jedinstvenu adresu. Raunarski sistemi mogu manipulisati sa reima obima 8, 16, 32, 64 bitova, itd. U okviru velikog broja gradivnih blokova raunarskog sistema podaci se prenose u paralelnoj formi, to znai da je svakom bitu u okviru re i dodeljen po jedan prenosni put. Primer paralelnog prenosa podataka uobiajeno se srede kod hardverskih interfejsa za pobudu tampaa ili kod interfejs ploa za spregu sa diskom. Kod paralelnih interfejsa, kakva je recimo sprega raunara sa tampaem, potrebno je uvesti neki oblik signalizacije koji de na odreeni nain, sa jedne strane, ukazati kada su podaci na izlazu raunarskog sistema raspoloivi/validni, a sa druge strane, kada je (da li je) tampa spreman da prihvati novi podatak. Glavni razlog uvoenja signalizacije predstavlja velika razlika u brzini rada ureaja koji se meusobno povezuju. Konkretnije, raunar moe da generie nove podatke na svakih 0.5 ns, dok tampa moe 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 nain ostvarila korekt na razmena podataka izmeu ureaja koriste se posebni signali poznati kao handshake signali. Procedura kojom se regulie nain razmene podataka i tajming naziva se handshake procedura. Na Sl. 1.2.3 prikazana je handshake 7 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. procedura koja se uobiajeno koristi kod paralelnog interfejsa. U trenutku kada se upravljaki signal DAV (Data Available) menja sa nisko-na visoko, raunar signalizira tampau 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 nain prenosa podataka pogodan je kod onih aplikacija kada su ureaji bliski jedan drugom. Kada signale (podatke) treba prenositi na veda rastojanja paralelni prenos postaje nepraktian iz slededih razloga: Kabliranje je sloenije, prenos postaje nepouzdaniji zbog razliitih kanjenja signala du vodova, a greke u prenosu se tee otkrivaju u sluaju kada doe

8 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 naina 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 greke u prenosu se lake otkrivaju. Svaki bit serijskog niza podataka trajanja je odreenog vremenskog perioda koji se naziva signalni elemenat. Signali se predstavljaju pozitivnom vrednodu za logiku jedinicu, a nultom vrednodu za logiku nulu.

1.3 Asinhroni i sinhroni reim rada

Bilo koji komunikacioni sistem za prenos podataka ine, u najoptijem sluaju, predajnik, prijemnik i neki oblik komunikacionog kanala. Predajnik generie niz podataka pri emu je tajming svakog bita pod kontrolom taktnih impulsa.

Asinhroni prenos

Za sistem kod koga predajnik moe u bilo kojem trenutku da generie bitove kaemo da koristi asinhroni prenos. Kljune 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 sutini asinhroni prijemnik ne regenerie takt na osnovu dolazedeg signala. Naime, predajnik i prijemnik koriste posebne taktne impulse ije su frekvencije veoma blis ke jedna drugoj. Sa ciljem da se odredi korektni poetak rada prijema koristi se metod rada poznat kao start-stop (Slika 1.3.1).

9 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

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 (obino je osam). Na kraju se pridruuje stop -bit koji je istog polariteta kao i pasivno stanje. (Trajanje pasivnog stanja moe biti proizvoljno). Stop bit se uvodi sa ciljem da se jasno razgranii zadnji bit prenetog znaka. Kada detektuje prednju ivicu start-bita, prijemnik aktivira generisanje prijemnog takta. Prva pojava taktnog impulsa je tako podeena 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 sutini, ako je taktna frekvencija prijemnika i predajnika identina, strobovanje de se uvek javljati (deavati) na sredini trajanja bitskog intervala. Zbog razliitih 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 naruava. Imajudi ovo u vidu, a iz razloga pouzdane detekcije, obim (trajanje) asinhronog signala ogranien 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 nain za odravanje 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 koridenjem 10 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. sinhronizacionih signala na nivou takta. Predajnik generie 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 naina prenosa prikazan je na Slici 1.3.2.

Slika 1.3.2: Sinhroni prijemnik

Uobiajeno se podaci predaju kao okviri, tj. ramovi (frame) fiksnog obima (Slika 1.3.3), pri emu svaku informaciju na poetku i kraju prate specijalni bit oblici nazvani preambule ( preamble). Svrha preambule je da ostvari sinhronizaciju predajnog i prijemnog oscilatora pre poetka prijema informacionih bitova.

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

11 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

2. KODIRANJE PODATAKA
Ako kaemo da pojam podatak definie najmanju esencijalnu celinu za funkcionisanje najrazliitijih sistema koji su prisutni u svakodnevnom ivotu, onda je verodostojnost, sigurnost i dostupnost tih podataka neto to je neophodno ostvariti kako bi sve to f unkcionisalo i davalo oekivane rezultate. Podatak moemo definisati za veoma razliite oblasti drutvenog 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. Praktino, podaci su svuda oko nas. Kako su se razvijale tehnike nauke, svi ti podaci su na neki nain pretoeni u elektronsku formu. Vremeno, kako su rasle nae potrebe za sve vedom upotrebom raunara u svim sferama, rasli su i problemi kako sve te potrebe zadovoljiti sa tako ogranienim faktorom, prenosnim medijumom. Plus, bezbednost podataka vie nije bilo sigurno.

Iz ovih, kao i iz mnogo drugih razloga je nastalo kodiranje, kao novi vid prenosa, kompresije i zatite podataka. I, naravno, naao veoma iroku primenu. Recimo u TV tehnici koristimo metodu kodovanja kao vid kompresije podataka u manje paketa koji de se lake i bre prenositi. U audio/video tehnici, kodovanjem se moe menjati format podataka i lake manipulisati njime. Zatim u mobilnim i beinim kominikacijama se koristi za zatitu podataka koje se alju, kao i neki vid kompresije koji de povedati brzinu prenosa. Kodovima je obezbeena sinhronizacija izmeu predajnika i prijemnika. Zato je kodiranje postalo tako znaajna obla t u savremenim komunikacijama.

Ako potraimo neku definiciju kodiranja, moemo 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 naina na koji su formirani novi bitovi. Na prijemnoj strani se mora izvriti dekodiranje podataka pre nego to se bude manipulisalo sa njima.

12 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Danas je prisutno veoma velik broj naina kodiranja. Svaki oblik kodiranja je specifian za neku oblast za koju je bio pravljen. Tako na primer tzv kanalno kodiranje, koje podrazumeva kodiranje na taj nain da to vie smanji veliinu podataka, poveda brzinu prenosa i smanji broj pogreno prenetih bitova, se razllikuje i zasebno projektuje za razliita uslove. Prirodne prepreke koje utiu na ovo se razlikuju kada se radi o satelitskoj komunikaciji (u svemiru je problem termiki um koji se javlja na prijemniku), mobilnoj komunikaciji (uestanost fadinga je mnogo veda nego inae), zemljanim telefonskim komunikacijama (uskopijasni modemi su ogranieni bukom koja se javlja u ovoj mrei) itd.

Pojmom kodiranja obuhvadeni su postupci obrade koji se primenjuju pri digitalnom prenosu digitalnih signala, kada se karakteristike digitalnog signala prilagoavaju karakteristikama prenosnog puta, kao i pri digitalnom prenosu analognih signala, kada se vri pretvaranje analognog signala u digitalni oblik. Saglasno tome, u postupku obrade signala, razlikuju se dva tipa kodiranja:

Kodiranje digitalnih signala u osnovnom opsegu uestanosti i Kodiranje analognih signala, odnosno analogno/digitalna konverzija.

Kodiranjem se utie na: oblik spektra signala, sinhronizaciju, otkrivanje greaka, povedanje otpornosti na uticaj uma, sloenost i ekonominost ureaja.

Najjednostavniji postupak kodiranja je onaj koji se upotrebljava za opisivanje binarnih signala na nain to se dva binarna stanja predstavljaju sa dva naponska nivoa u odgovarajudem talasnom obliku signala. Ovakav kod se moe realizovati tako to se binarna jedinica predstavi viim nivoom napona (impulsom), a binarna nula nultim naponom (pauzom).

13 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Druga, eda, mogudnost je ona u kojoj se negativni napon koristi da predstavi binarnu nulu, a pozitivni napon za binarnu jedinicu, tj. signal zadrava stanje kod svakog bita u toku bitskog intervala, poto se signal ne vrada na nulu posle svakog bita. U tom sluaju se govori o specifinom 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 moe ostati u istom stanju (0 ili 1) nedefinisani period vremena, tako da je potrebno obezbediti u prenosu i DC spregu.

Da bi se obezbedilo vie informacija o taktnoj frekvenciji smiljeni su i drugi kodovi. Najjednostavniji meu njima je NRZ-Mark (NRZ-M). Zasnovan je na postojanju tranzicije svaki put kada je poslata 1. Lako se moe zakljuiti, da ova tehnika kodiranja ima manu kada se poalje duga sekvenca uzastopnih nula.

Povratak na nulu (RZ Return to Zero) je linijski kod koji se, takoe, koristi kao jedna od tehnika kodiranja u koj oj signal opada (vrada se) na nulu izmeu svakog impulsa. Ovo se deava ak i ako u signalu postoji uzastopni niz nula ili jedinica. Ova tehnika kodovanja je samotaktovana. To znai 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 poreenju sa tehnikom kodiranja bez povratka na nulu. Postoji jo jedna grupa kodova kojima se na slian nain prevazilaze nedostaci NRZ kodova. To su bifazni kodovi, od kojih se najvie koristi Manchester kod. Ova tehnika kodiranja zasnovana je na postojanju tranzicije (prelaza) na sredini vremenskog intervala koji pripada pojedinanom binarnom simbolu. Pri tome je binarna 1 predstavljena tranzicijom sa nieg na vii nivo , dok binarnu 0 predstavlja tranzicija sa vieg nanii naponski nivo.

14 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

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 oteana sinhronizacija i regeneracija takta. Ova tehnika kodiranja omogudava laku sinhronizaciju osiguravajudi pojavljivanje makar jedne tranzicije izmeu 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 logika stanja, koji zajedno ine jedan bit. Svaka binarna 1 predstavljena je sa dva razliita 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

15 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

3. OPIS PROJEKTOVANOG KOLA ZA PRENOS I KODIRANJE PODATAKA


3.1 Opis Protokola Podataka
Pre nego to opiemo sistem za kodiranje i prenos podataka, neophodno je sagledati kako de izgledati jedan paket protokola za komunikaciju i nain komunikacije izmeu predajnika i udaljenog prijemnika. Predvieno je da generalno postoje dva moda rada: peri od 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 poalje 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 doe do slanja poruke udaljenom predajniku. Tad modul koji eli da alje uputi zahtev za slanje i nae kolo treba da pripremi sve da bi slanje informacije poelo. Paket je formiran od dva polja i preambule. Jedno polje je duine 16 bitova i ono nosi informaciju kolika je duina polja sa podacima. Drugo polje koristi se za slanje podataka. Maksimalna duina drugog polja je 64KB, sobziron da kada svih 16 bitova prvog polja budu jedinice to je maksimalna moguda duina paketa. Dakle drugi mod podrazumeva slanje preambule, koja iznosi 47 heksadecimalno (01000111), nakon ega sledi slanje podataka po ved utvrenom redosledu. Izbor preambule od 47 heksadecimanlo je odabrano tako da ukoliko doe do eventualne greke pre prenosu niza bitova nula i jedinica, to nede remetiti prenos preabule tj. automat de modi razlikovati preambulu od sekvence koja oznaava pasivan rad sistema. Kao to je reeno, u modu kada nema podataka naizmenino se alju nule i jedinice duplo vede periode od taktnog signala za predaju, odnosno 01010101. Preambula je 01000111. Recimo da dodje do greke pri prenosu druge jedinice u neaktivnom modu, odnosno da se registruje niz 010 001010. Kao to se vidi ovaj niz podseda na preambulu ali se ipak razlikuje na jednom bitu to sistem nede registrovati kao preambulu i nede grekom predi u mod za slanje podataka. A verovatnoda da dodje do greke pri prenosu ovako bliskih bitova(da se pored ovoga i etvrta nula prenese kao jedinica odnosno 01000111) je izuzetno mala, takoredi zanemarljiva. Na taj nain smo osigurali da de automat uvek ispravno registrovati preabulu i prebaciti sistem u mod za prenos podataka. 16 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 3.1.1: Izgled paketa protokola koji se generie u predajniku

Komunikacija moe da se odvija tako to uzastopno mogu da se poalju jedan ili vie p aketa informacije uzastopno. Na Slici 3.1.1a imamo situaciju kada se poalje vie od jednog paketa (slanje drugog paketa poinje 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 generie modul koji inicira komunikaciju, tj. mora nam biti poznata duina 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 smetamo u registar duine 16 bitova koji de koristiti za kontrolu rada kola da bi se ispravno formirao paket kojim se prenose podaci. Preostali deo informacije se samo prosleuje dalje. Formiranjem ovakvog protokola reene 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 poede sa prijemom podataka. Prvo polje je uvedeno iz razloga da protokol bude potpuno odreen, tj. moe se zamisliti situacija da se u okviru podataka nae sekvenca bitova koja je ista kao preambula. Na ovaj nain bi prijemnik protumaio to kao slanje novog paketa informacije i dolo bi do greke pri slanju. Uvoenjem polja sa 16 bitova, koje nosi podatke o duini polja sa podacima, ova 17 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. nepogodnost se eliminie. Naime, kolo prijemnika tada zna da kada primi informaciju koja moe da predstavlja preambulu, tada se proveri da li primljena informacija ima odgovarajudu duinu i, ukoliko to nije sluaj, 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 moe 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 generie signale za protokol prikazan na slici 3.1.1. Podaci koji se alju dolaze na port koji je oznaen kao data_in. Podaci dolaze u paralelnom obliku. Signal sa ovog porta vodi se na ulaze dva registra. Prvi je registar pomerakog tipa i on se koristi za prevoenje informacije iz paralelne u serijsku formu u okviru koje se podaci alju. Drugi registar na koji se vodi ovaj signal je registar duine 16 bit ova. U ovaj registar vri se upis dva prva bajta informacije. Vrednost ova dva bajta predstavlja duinu polja sa podacima.

18 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 3.2.1: Blok ema kola koje generie signale za protokol sa slike 3.1.1 19 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 podeen tako da proputa ovaj signal na ulaz kola kodera. Sve kontrolne i upravljake signale generie kolo FSM koje predstavlja kolo automata sa konanim 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 objanjena.

Sa slike se uoavaju i signali za kontrolu rada kola. To su signali koji realizuju hand shake proceduru pri slanju podataka. Signalom send_request, modul koji alje podatke obavetava nae kolo o tome da hode da poalje neki podatak. Tad nae kolo prebaci s tanje multipleksera tako da se na ulaz kola za kodiranje dovede signal iz registra za preambulu. Istovremeno se dozvoli pomenutom registru da pone sa pomeranjem upisanog sadraja. Na slici je prikazano da se u registar upie vrednost 47 heksadecimalno, to predstavlja vrednost preambule.

Nakon slanja preambule, nae 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 reeno ranije. U registar 16 se upisuje na poziciji vieg 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 poinje se sa slanjem podataka. Treba pomenuti da se slanje jednog bajta podatka kontrolie pomodu brojaa_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 moe da pree u naredno stanje sekvence slanja informacije.

Doli smo do trenutka kada poinje slanje drugog polja, tj. polja za podatke. Tada poinje sa radom i drugi broja, broja_16. Ovaj broja koristi se za sinhronizaciju slanja polja sa podacima. Broja moe da broji do 64K, a stanje brojaa poredi se sa stanjem registra_16. Kada 20 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. se ova dva stanja poklope, FSM prima signal koji signalizira da je dolo do slanja poslednjeg bajta drugog polja i slanje podataka se zavrava. FSM saopti modulu signalom new_byte_req da je zavrio 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 poinje se sa slanjem nula i jedinica. Druga stvar koja moe 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, odreuje 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 21 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 3.2.3: Realizacija NRZ Level koda Slika 3.2.3 prikazuje logiku kojom je realizovan deo kola koji generie NRZ level kod. Kako se sa slike vidi to je kolo D flip flopa koji upisanu informaciju uva izmeu dve ivice taktnog signala kada se u flip flop upisuje nova vrednost. Na slededoj slici dat je dij agram simulacije rada kola kada se na ulaz u pomeraki 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 grafika interpretacija ovog NRZ Level koda.

Slika 3.2.4: Grafika interpretacija NRZ Level koda

22 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. NRZ Mark kod odlikuje se svojstvom da se stanje na izlazu hardvera koji generie ovaj kod promeni svaki put kada se javi jedinica ulaznog signala. Tako ako pogledamo Sliku 3.2.5 tano se moe zapaziti ova pojava da se stanje signala NRZ Mark menja svaki put kada na ulaz doe 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 Grafika interpretacija NRZ Mark koda je data na Slici 3.2.6.

Slika 3.2.6.

23 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 generie 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 moe uoiti da ulazni signal kola koje generie Manchester i Bifazni kod, dolazi iz kola koje generie NRZ Level kod. U sutini, mogude je ulaz uzeti direktno sa ulaza za podatke, ali znamo da se signal za podatke postavlja neposredno pre deavanja rastude ivice taktnog signala. Na taj nain ne bi bilo mogude direktno poreenje signala kodova koji se u ovom projektu realizuju. Zato je za referentni ulazni signal kola koja generiu Manchester i Bifazni kod uzet signal NRZ Level.

24 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 sluaju da se treba generisati samo signal Manchester koda, tada se na prvi ulaz XOR kola treba dovesti signal sa serijskog izlaza pomerakog 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 moe posluiti za generisanje Manchester koda tako da bi uvoenje jo jednog registra predstavljalo nepotrebno unoenje redundanse.

Slika 3.2.9: Realizacija Manchester koda Izlaz iz Manchester kodera za ulaznu sekvencu datu na poetku, je prikazan na Slici 3.2.10.

Slika 3.2.10: Signal na izlazu Manchester kodera

25 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Bifazni kod je kod ije je generisanje najsloenije. Osobina ovog koda je da na poetku svakog taktnog intervala postoji prelaz (prelazi se iz jednog u drugo stanje). Za nulu je karakteristino 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 deava na opadajudu ivicu taktnog signala za ta je zasluan 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. Moe se zakljuiti 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 poetku 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 dri u jednom stanju (0 ili 1), a d rugi ulaz promeni svoju vrednost (sa 1 se pree u 0 ili obratno). Na port sa oznakom ulaz dovodi se signal NRZ level koda kao to je to sluaj 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.

26 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

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 brojaa modula 255. Na taj nain 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 generiu, osim ako se eksplicitno ne zahteva manuelno unoenje. Nain generisanja ulaznih podataka, kao i opcija za runi unos de biti kasnije objanjene.

27 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Ulazni signali ovog sistema za prenos i kodiranje su clock, reset, signal za unos preambula(ovde je uzeto 47 heksadecimalno ali se moe menjati), data_in(gde se unose podaci kao i vrednost polja od 16 bitova koje odreuje veliinu podataka). Zatim za ra d 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 definie koji tip kodovanja se eli primeniti nad podacima. Kao to se moe primetiti, kolo sainjavaju multiplekseri, registri, flip flopovi, brojai, kao i kolo FSM-a. Uloga svakog od njih de biti sada objanjena. Multiplekser 4 u 1 odreuje ta se dovodi u kolo kodera. Da li de to biti naizmenini niz nula i jedinica kada je automat u idle stanju, ili preambula ili podatak, zavisi od kontrolnog ulaza koji kontrolie automat. Izgled multipleksera je dat na Slici 3.2.13.

Slika 3.2.13: Multiplekser 4 u 1

28 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Na ulazni signal ulaz_1 se dovodi niz nula i jedinica koji se generiu 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 pomerakog registra. U njemu se vri upis i pomeranje preambule. Kada predajni modul poalje zahtev automatu za slanje podataka, tada se a ktivira ovaj ulaz i poinje sa prenosom vrednosti preambule, odnosno 47 heksadecimalno. Na ulaz_3 se dovodi izlaz pomerakog registra u kome se smetaju i shift-uju podataci koji se generiu na ulazu. Ulaz za prenos podataka iz ovog registra se aktivira odmah nakon zavretka slanja preambule. Sistem je zamiljen tako da se kontrolni signali dovode na rastudu ivicu taktnog signala, dok se promena stanja automata deava na opadajudu ivicu taktnog signala. Kako bi izlazni signal iz FSM -a mogao da kontrolie 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 doao 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 odreuju duinu podataka koje treba preneti (16 bitova nakon preambule). Sadi 2 enable ulaza. Kada je aktivan prvi upisuju se bitovi nieg reda, a kada je aktivan drugi bitovi vieg reda. Broja_16 broji bajtove(taktuje se izlaznim signalom brojaa 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 zatrai od modula za prenos da upie naredno niz od 8 bitova. Izlaz ovog brojaa smo iskoristili da taktujemo broja koji de brojati bajtove. Sadraj brojaa_16 i registra_16 se uporeuju u komparatoru. Kada se poklope, odnosno kada broja doe do one vrednosti koja oznaava duinu podataka, aktivira se signal na izlazu komparatora koji signalizira automatu da nema vie podataka i da pree u neko od narednih stanja.

29 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 3.2.14: Broja_16, komparator i regisrar_16

Kolo automata sa konanim brojem stanja je najznaajniji deo sistema koji obezbeuje handshake proceduru. Na osnovu 4 ulazna kontrolna signala (new_byte_set, send_request, komp_signal i byte_sent_signal) automat generie izlazne signale koji predstavljaju kontrolne signale za ostale delove kola: signal za dozvolu upisa u registar, pomeranje sadraja registra, signal za poetak brojanja brojaa, resetovanje brojaa, kontrolni signal za multiplekser itd.

Slika 3.2.15: Automat sa konanim brojem stanja

30 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Spisak izlaznih signala automata 1. brojac_8_reset - signal kojim se resetuje samozaustavljujudi broja osnove 8 2. brojac_8_en - signal za dozvolu brojanja brojaa 8 3. data_write_en - dozvola upisa podataka u pomeraki 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 brojaa 16 10. brojac_16_reset - reset brojaa 16 11. registar_16_reset - reset registra 16 12. registar_16_enable_H - dozvola upisa vieg bajta polja 2 13. registar_16_enable_L - dozvola upisa nieg bajta polja 2 14. send_ack - potvrda o zavretku 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. 2. 3. 4. reset - signal za resetovanja FSM kola clock - taktni signal FSM kola byte_sent_signal - signal iz kola brojaa 8 koji nam govori da je poslat jedan bajt komp_signal - signal iz kola komparatora koji nam govori da je zavreno 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

31 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Automat ima 13 stanja koja definiu 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 vii bajt polja duine paketa u registar 16. Traje jedan taktni interval. S6 - stanje u okviru kojeg se alje vii bajt polja duine paketa. Traje 6 taktnih in tervala. S7 - stanje byte_req/byte_set_2. Traje 1 taktni interval S8 - stanje za upis drugog bajta polja duine u registar 16. Traje jedan taktni interval. S9 - stanje u okviru kojeg se alje drugi bajt polja duine 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 - Oekivanje novog zahteva za slanje. Poetno stanje S1 je, kao to se vidi, stanje u kome nema slanj e podataka. Tada sistem automatski alje niz nula i jedinica. Kada predajni modul poalje zahtev automatu da eli da poalje 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 duina prea mbule) je ta to pre isteka poslednjeg bita sistem mora od predajnog modula da zatrai postavljanje novog bajta jer tzv sekvenca rada kola je 8 bitova, odnosno informacije te duine sa paralelno upisuju. Pa zato pre isteka osmog bita se trai 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 odreuje duinu polja podataka. Nakon jednog taktnog intervala, koliko traje ovo stanje, prelazi se u stanje S6 gde se vri 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 32 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. u nii nivi registra_16 (S7). Kada dobije potvrdu da je novi bajt postavljen, (S8) vri se upis novog bajta u nii nivo registra_16. Za ovo vreme (2 dodatna takta) se i zavri prenos vieg bajta (6+2 bita) i moe se odmah krenuti sa prenosom nieg upisanog bita, to se deava u stanju S9. Stanje S10 je identino stanju S7. Stanje S11 je slino stanju S8 ali stim to se sada upis u registar_16 zavrio pa sledi upis u pomeraki registar koji de prosleivati korisnu informaciju tj podatke. Oni se prosleuju i alju u stanju S12, koji traje takoe 6 taktnih intervala, dok za preostala 2 intervala alje zahtev predajnom modulu za postavljanje i upis novih 8 bitova u pomeraki registar. Kada se prenese ceo podatak sistem prelazi u stanje S13 gde oekuje 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 doe do zahteva za slanjem novog podataka od predajnog modula, automat p relazi u idle stanje S1 i poinje da prenosi naizmenini niz nula i jedinica.

Slika 3.2.16: Graf stanja automata 33 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Na Slici 3.2.17 je prikazana tabela kodiranja signala automata, gde se moe videti koji signal automata je aktivan za svako od 13 stanja automata.

Stanje/signal brojac_8_reset brojac_8_en data_write_en data_shift_en data_shift_reset preamb_write_en preamb_shift_en preamb_reset brojac_16_count_en brojac_16_reset registar_16_reset registar_16_enable_H registar_16_enable_L send_ack new_byte_req MUX_control_signal

S1 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 00

S2 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 00

S3 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 01

S4 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 01

S5 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 10

S6 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 10

S7 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 10

S8 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 10

S9 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 10

S10 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 10

S11 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 10

S12 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 10

S13 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 10

Slika 3.2.17: Tabela kodiranja signala automata

34 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

4. OPIS ENTITETA KOLA U VHDL KODU

U cilju boljeg razumevanja funkcije i strukture svakog bloka kola pojedniano, naredni deo de biti posveden opisivanju entiteta nae 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 logiko kolo ije je uloga da informaciju na ulazu prikae na izlaz samo kada je prisutna aktivna ivica taktnog signala. U naem sluaju je to rastuda ivica. Ima 3 ulazna i jedan izlazni port. Koristimo ga kada elimo da zakasnimo odreeni 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 naem 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:

35 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

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 takt nog 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.

36 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

4.2 T Flip Flop

T Flip Flop je standardno logiko kolo koje invertuje vrednost na izlazu sa svakom pojavom rastude ivice taktnog signala na ulazu. U naem kolu T flip flop se koristi za generisanje naizmeninog 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:

37 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Kao i kod D flip flopa vidimo da se u opisu arhitekture uvodi fiktivna promenljliva STANJE, koja ima poetnu vrednost 0. Nakon dolaska svake rastude ivice njena vrednost se invertuje.

4.3 Multiplekser

Multiplekser je logiko kolo sa vie ulaza, jednim izlazom i jednim kontrolnim ulazom koji odreuje koji ulaz de biti aktivan i samim tim njegova informacija prosleena 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 naem sluaju 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.

38 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 4.3.1: Multiplekser a) 4u1 ; b) 5u1 Opisi arhitektura multipleksera 4 u 1, kao i multipleksera 5 u 1 su dati kao:

39 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

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

40 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

4.4 Pomeraki Registar

Pomeraki (shift) registar, kao to mu i samo ime govori, slui za pomeranje podataka koji su upiu u njega. U naem sluaju pomeraki 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 vii upis u registar; jer se vri 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 pomerakog registra je dat na Slici 4.4.1.

Slika 4.4.1: Pomeraki registar

VHDL kod za pomeraki registar je dat kao:

41 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

U deklaraciji entiteta imamo definisanje jednobitnih ulaznih portova na isti nain kao i kod flip flopova. Osmobitni ulazni port (kao i kod multipleksera) je tipa Standard Logic Vector sa bitovima teine 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 doe do rastude ivice ivica taktnog signala a signal za upis nije aktivan, tada se aktivira signal za pomeranje i registar poinje pomeranje sadraja ulevo. Bit oznaen kao 7 (bit najvede teine 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 poalje i poslednji bit, odnos no dok promenljiva STANJE ponovo ne bude sve nule.

42 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

4.5 Broja

Broja, kao to mu ime govori, je logiko kolo koje se koristi za brojanje. U zavisnosti od potrebe, moe brojati taktove, biitove, bajtove, ili za ta nam ved zatreba odnodno kako ga isprogramiramo. U naem kolu imamo dva tipa brojaa. 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 slui nam da ukae automatu kada je dolo do kraja prenosa podataka i zatraiti postavljanje novog bajta z a upis i prenos od strane predajnog modula. Struktura im je ista. Imaju tri ulaza (reset, clock i count enable) i jedan izlaz. Razlika (u naem sluaju) je samo u nainu taktovanja. Broja_8 se taktuje standardnim clock signalom kojim se taktuju svi ostali entiteti u koli, dok se broja_16 taktuje izlaznim signalom brojaa_8. Dozvolu za brojanje oba brojaa, kao i reset signale kontrolie automat. Na taj nain smo postigli da broja_16 dobije jedan taktni signal kada broja_8 zavri sa brojanjem osam bitova , odnosno jednog bajta. Oba brojaa u sprezi su prikazana na Slici 4.5.1.

Slika 4.5.1: Broja_8 i Broja_16 u sprezi

43 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. VHDL kodovi ovih brojaa su data kao:

Primedujemo da se za opis brojaa koristi datoteka IEEE Numeric, koja se koristi za aritmetike operacije (kod brojaa, mnoaa, sabiraa...). U deklaraciji arhitekture uvodimo fiktivni signal STANJE od tri bita, koje de se aktivirati izlazni signal samo u koliko stanje signala STANJE bude 111. Nakon ispitivanja uslova za resetovanje brojaa ispitujemo da li je dolo do rastude ivice taktnog signala i da li je aktivan signal za dozvolu brojanja. Ukoliko jeste, ispitujemo da li se 44 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 brojaa povedava za jedan. Kada doe do poslednjeg stanja, ponovo se aktivira izlazni signal.

45 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Razlika izmeu ova dva brojaa je ta to je izlaz brojaa_16 16 -o bitni signal koji se uporauje sa izlazom registra_16 (kao to je ved objanjeno). 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 duini paketa koji aljemo. Zahvaljujudi njemu automat zna kada je dolo do prenosa poslednjeg bita podataka i da treba da zatrai novu informaciju od predajnog modula. Nain upisa gornjeg i donjeg bajta u ovaj registar je ved objanjeno. Sadri jedan osmobitni ulaz (na koji se dovode informacije), etiri jednobitna ulaza (clock, reset, write enable 1 koji omogudava upis gornjeg bajta tj bajta vede teine, write enable 2 koji omogudava upis donjeg bajta tj bajta nie teine). Izlaz registra_16 je esnaesto bitni (kao i izlaz brojaa_16).

Slika 4.6.1: Registar_16

46 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 nae fiktivne promenljive STANJE nakon njenog update-ovanje, odnosno nakon upisa oba bajta u registar. 47 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

4.7 Komparator

Komparator slui za uporeivanje dva vrednosti na izlazu iz brojaa_16 i registra_16. Odnosdno, kada nakon slanje preambule broja_16 krene da broji bitove i kada se vrednost na izlazu poklopi da vrednodu na izlazu iz registra_16, znamo da je dolo do poslednjeg bita podatka iju duinu odreuje 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 izjedai. 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. 48 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

4.8 Automat

Automat sa konanim brojem stanja je, kao to je ved reeno, kljuni element hand shake procedure. Kontrolie komunikaciju izmeu svih blokova naeg kola i generie kontrolne signale za njihov rad. Ima ukupno est ulaza i petnaest izlaza. Spisak svih ulaza/izlaza , kao i stanja automata ved je objanjeno ranije. VHDL kod automata je dat kao:

49 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

50 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

51 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

52 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

53 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

54 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

55 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

56 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

57 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

5. TESTIRANJE RADA KOLA


U cilju verifikacije dizajna, napravljen je Testbench na Waves Based principu i izvrena je simulacija rada kola. Ispravnost rada kodera i predajnog modula bide objanjena na talasnim oblicima bitnijih kontrolnih i izlaznih signala. Ulaz je zamiljen kao izlaz iz brojaa modula 255, a u odreenim vremenskim intervalima (32us, 159us i 167us) se na ulaz dovode bitovi koji odreuju duinu paketa. Oni se dovode pomodu porta koji je nezavistan u odnosu na broja, i samo u tim vremenskim intervalima predajni modul zanemaruje izlaz iz brojaa i upisuje podatke sa tog porta koji se naziva second_field. Vrednost second_field polja se ne mogu menjati jer je protokolom zamiljeno da duina paketa bude 2 bajta. Mogude je menjati samo vrednosti ulaznog signala (proizvoljna sekvenca duine 16 bajtova), kao i izbor koda u Testbench fajlu. Na Slici 5.1 je prikazan izgled Testbench fajla za sluaj kada ulazni signal uzima vrednosti koje se generiu na izlazu brojaa modula 255.

Slika 5.1

58 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Slika 5.2 pokazuje izgled Testbench fajla za sluaj kada elimo sami da unesemo sekvencu za kodiranje. Treba napomenuti da sekvenca mora biti duine dva bajta i to u trenucima kao to je naznaeno na slici. Dve crte na poetku svakog reda u VHDL kodu oznaavaju da je u pitanju komentar i da nemaju uticaja u izvrenju Testbench fajla.

Slika 5.2

Ukoliko elimo da promenimo kod, to moemo uiniti 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 59 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 5.4 60 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 5.5

61 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 vii deo registra_16 (stanje S5), a u 32us se postavlja novi bajt za upis u nii deo registra_16. To se deava u stanju S8. U 40us se krede sa slanjem podataka (stanje S10) i traje sve dok se ne poalju dva bajta podataka. Tada se poalje signal send_ack kojim se potvruje da je poslat poslednji bit podataka i oekuje zahtev za novo slanje (stanje S13), kao to je prikazano na Slici 5.5.

62 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

6.LABORATORIJSKA VEBA

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 smetenu na desktop-u raunara. Korak 2: U prozoru Getting Started izabrati levim klikom mia opciju Open existing workspace, zatim levim klikom mia selektovati projekat transmit_unit i na kraju levim klikom na opciju Ok pozivamo program koji opisuje nae kolo.

Slika 6.1: Ilustracija uz Korak 2

63 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 S lici 6.3.

Slika 6.3: Ilustracija uz Korak 3

64 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Korak 4: Pokretanje TestBench vri se tako to se pointerom oznai testbench runtest fajl i desnim klikom pokrene meni iz kog se odabere opcija Execute. Na Slici 6.4 je prikazano pokretanje izvrenja 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 65 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Korak 5: Pokretanje simulacije vri se levim klikom na ikonicu obojenu crvenom bojom .

Slika 6.6: Ilustracija uz Korak 5 Korak 6: Pored izlistanih signala izvlaimo i signal za stanje automata i signal za izlazno stanje brojaa_8 kao to je prikazano na slici. Prevlaenje se vri tako to levim klikom izaberemo kolo iji signal elimo da prikaemo. U opadajudem meniju izaberemo signal i dok drimo levi taster signal samo prevuemo u editor.

66 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 6.7: Ilustracije uz Korak 6 Na narednoj slici (Slika 6.8) crvenom bojom je oznaeno da je vrednost code_select 2, to nam kazuje da je izabrani kod RZ. Crvenom bojom je oznaen i izgled data_out.

Slika 6.8: Izgled kodirane sekvence kodom RZ 67 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Korak 7: Promena koda kojim de se ulazna sekvenca poslati. Promena koda se vri 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 kompa jliranju 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 moemo 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.

68 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 6.10: Ilustracija uz Korak 8

Napomena: Treba izabrati da vreme simulacije bude 200us (kao to moe da se vidi na slikama), kao i da je izbor koda proizvoljan (kodovi su opisani u poglavlju 3).

69 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. ZADATAK 2. Proveriti ispravnost rada kola koristedi proizvoljni ulazni signal (proizvoljna sekvenca duine dva bajta). Posmatrati dijagram stanja.

Korak 1: Pokrenuti program Active-HDL 6.3 dvostrukim klikom na ikonicu smetenu na desktop raunara. Korak 2: U prozoru Getting Started izabrati levim klikom mia opciju Open existing workspace, zatim levim klikom mia selektovati projekat transmit_unit i na kraju levim klikom na opciju Ok pozivamo program koji opisuje nae kolo.

Slika 6.11: Ilustracija uz Korak 2

70 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 S lici 6.13:

Slika 6.13: Ilustracija uz Korak 3 71 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Korak 4: Pokretanje TestBench vri se tako to se pointerom oznai testbench runtest fajl i desnim klikom pokrene meni iz kog se odabere opcija Execute. Na slici 6.14 je prikazano pokretanje izvrenja 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 72 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Korak 5: Pokretanje simulacije vri se levim klikom na ikonicu obojenu crvenom bojom.

Slika 6.16: Ilustracija uz Korak 5 Korak 6: Pored izlistanih signala izvlaimo i signal za stanje automata i signal za izlazno stanje brojaa_8 kao to je prikazano na slici. Prevlaenje se vri tako to levim klikom izaberemo kolo iji signal elimo da prikaemo. U opadajudem meniju izaberemo signal i dok drimo levi taster signal samo prevuemo u editor.

73 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 6.17: Ilustracije uz Korak 6

Ulaz je zamiljen kao izlaz iz brojaa modula 255, a u odreenim vremenskim intervalima (32us, 159us i 167us) se na ulaz dovode bitovi koji odreuju duinu paketa. Oni se dovode pomodu porta koji je nezavistan u odnosu na broja, i samo u tim vremenskim in tervalima predajni modul zanemaruje izlaz iz brojaa i upisuje podatke sa tog porta koji se naziva second_field. Vrednost second_field polja se ne mogu menjati jer je protokolom zamiljeno da duina paketa bude 2 bajta.

74 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. 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 vri 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.

75 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

Slika 6.19: Ilustracije uz Korak 7

76 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009. Korak 8: Ponovnim pokretanjem simulacije Waveform Editoru moemo 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

77 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

8.LITERATURA

1) J.Mirkowski, M.Kapustka, Z.Skovronski, A.Biniszkiewicz Interactive VHDL Tutorial REV. 2.1 2) Dennis Derickson, Marcus Mller - 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 Elektrotehniki fakultet, Nauka, 1997 5) Robert Guastella VHDL Programming by Example 6) M.Stojev, B.Petrovid - Arhitekture i programiranje mikroraunarskih sistema zasnovanih na familiji procesora 80x86, Elektronski fakultet u Niu, Ni, 1999 7) Internet - Impulsna i digitalna elektronika,

78 Maja Srbulovid 10966 / Marko Nikolid 10911

PRENOS I KODIRANJE PODATAKA NA PRIMERU VHDL KODA Novembar 2009.

9.BIOGRAFIJE AUTORA

Ime i Prezime: Datum i mesto roenja: Adresa stanovanja: Obrazovanje: Godina upisa fakulteta: Smer: Poznavanje jezika: Interesovanja:

Maja Srbulovid 15. Maj 1983. Negotin Pariske Komune 9/21, Ni Negotinska gimnazija 2002. Telekomunikacije Engleski, Nemaki Putovanja, Raunari

Ime i Prezime: Datum i mesto roenja: Adresa stanovanja: Obrazovanje: Godina upisa fakulteta: Smer: Poznavanje jezika: Interesovanja:

Marko Nikolid 30. Avgust 1983. - Ni Starca Vujadina 30, Ni Gimnazija Svetozar Markovid 2002. Telekomunikacije Engleski, Francuski Putovanja, Sport, Menadment vetine

79 Maja Srbulovid 10966 / Marko Nikolid 10911

You might also like