1 / 57

PROCESOR DP32

PROCESOR DP32 U ovom radu analizira se princip rada procesora DP32. Ova analiza se sastoji iz dva dela: Teori j ski deo Praktični deo Prvi deo se odnosi na sagledavanja koja se tiču sledećih detalja: Tipovi podataka Definicija skupa podataka Struktura sistema

tyanne
Download Presentation

PROCESOR DP32

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROCESOR DP32 • U ovom radu analizira se princip rada procesora DP32. Ova analiza se sastoji iz dva dela: • Teorijski deo • Praktični deo • Prvi deo se odnosi na sagledavanja koja se tiču sledećih detalja: • Tipovi podataka • Definicija skupa podataka • Struktura sistema • U drugom delu biće opisano test kolo i simulator DP32.Kroz zadavanje odgovarajućih test sekvenci analiziraće se rad DP32 i izvršiti: • Upoznavanje sa arhitekturom DP32 i • Upoznavanje sa radom simulatora DP32 i korišćenje simulatora DP32 radi izvršavanja odgovarajućih definisanih programskih test sekvenci.

  2. TEORIJSKI DEO PROCESORA DP32 • TIPOVI PODATAKA • Svaka arhitektura može da manipuliše sa različitim brojem tipova podataka. Za mikroprocesor se kaže da podržava određeni tip podataka samo ako je u stanju da sa prihvatljivom efikasnošću manipuliše sa operandima tog tipa. Za efikasnu podršku važna su sledeća dva faktora: • instrukcije koje se koriste da obadve operacije nad formatima podataka sa kojima se manipuliše, i • adresni načini rada koji omogučavaju jednostavan pristup operandima sa kojima se manipuliše. • Tipove podataka sa kojima računar manipuliše delimo u tri kategorije: • korisničko definisani podaci - korisnik ih eksplicitno specificira u programu. Struktura ovih podataka je uglavnom određena mogućnostima programskog jezika. • sistemsko definisani podaci - u toku izvršenja programa implicitno se generišu od strane računarskog sistema. • instrukcije - program koji se izvršava može se posmatrati kao kompozicija podataka koji imaju svoju sopstvenu strukturu i osobine.

  3. KORISNIČKO DEFINISANI PODACI • Ove podatke delimo na proste (skalarne), struktuirane i podatke pokazivačkog tipa. • Skalarni tipovi podataka • Svaki tip iz ove grupe podataka ima sledeće tri osobine: • skup vrednosti koje podatak može da uzima (domen); • operacije koje su nad tim podatkom dozvoljene; • način predstavljanja u memoriji računara. • Domen karakterišu dva aspekta: opseg - broj vrednosti koje podatak može da uzima; preciznost - rastojanje između sukcesivnih vrednosti podataka. • Celobrojne vrednosti • Celobrojne vrednosti (integers) se normalno koriste : • za brojanje; • kao indeksi elemenata tipa polja; • za predstavljanje memorijskih adresa i dr. • Kod računarskih sistema njihov opseg (range) je ograničen od strane arhitekture računara.

  4. Mikro procesori koriste dve prezentacije za memorisanje celobrojnih vrednosti: • notacija dvoičnog komplementa - vrednost A predstavlja se nizom od n bitova (an-1,...,a0) čija je vrednost • A = -an-1 2n-1+∑ai 2i • Sa ovom prezentacijom opseg je • -2n-1≤A ≤2n-1-1 • Ove brojeve zovemo označene celobrojne vrednosti. • čista binarna notacija - vrednost A predstavlja se kao niz od n bitova (an-1,...,a0) čija je vrednost • A=∑ai 2i • Kod ove prezentacije opseg dozvoljenih vrednosti je • 0 ≤A ≤2n-1 • i zbog toga ove brojeve zovemo neoznačenim celobrojnim vrednostima. • Kada je rezultat van opsega koji se može predstaviti, generiše se premašaj (overflow). n-2 i=0 n-2 i=0

  5. Opsezi brojeva koji se mogu predstaviti pomoću 32-bitne reči, koristeći prezentaciju dvoičnog komplementa moguće je predstaviti celobrojne vrednosti u opsegu od -231 do 231-1, što iznosi 232 različitih brojeva: • negativni brojevi između -(1-2-24)*2127 i -0.5*2-128 • pozitivni brojevi između 0.5*2-128 i (1-2-24)*2127 • negativni brojevi manji od -(1-2-24)*2127, nazvani negativni premašaj (negative overflow) • negativni brojevi veći od -0.5*2-128, nazvani negativan podbačaj (negative underflow) • nula • pozitivni brojevi manji od 0.5*2-128, nazvani pozitivan podbačaj (positive underflow) • pozitivni brojevi veći od (1-2-24)*2127, nazvani pozitivni premašaj (positive overflow)

  6. DEFINICIJA SKUPA INSTRUKCIJE • PREDSTAVLJANJE INSTRUKCIJA • Na konvencionalnom mašinskom nivou svaka instrukcija se predstavlja sekvencom bita. Kodiranjem ovih bitova, na odgovarajući način, formira se informacija koja je potrebna radi upravljanja izvršenjem instrukcije. Ovom informacijom treba da se definiše: • tip operacije koja treba da se izvrši, • implicitna ili eksplicitna specifikacija jednog ili većeg broja operanada nad kojima se izvršavaoperacija, tj. specificiraju se izvorni operandi, • adresa gde treba da se smesti rezultat obavljene operacije, tj. specificira se odredišni operand, • adresa naredne instrukcije koju treba izvršiti nakon što se obavi tekuća. • Instrukciju čine sledeća dva globalna dela: operacioni i adresni. Globalni delovi instrukcije

  7. Bazični format n-operandskog formata instrukcije • ADRESNI DEO INSTRUKCIJE • Sastavni delovi adresnog dela instrukcije su polja operandi i modifikator. Modifikator uobičajno sadrži informaciju kojom se : • opisuje način adresiranja; • ukazuje o dodatnim uslovima koji se odnose na pristup podacima ili na način izvršenja operacije.

  8. Faktori koji imaju direktan uticaj na dužinu polja za adresiranje su: • broj adresnih načina rada • broj operanada • specifikacija internih registara u odnosu na memoriju • adresni opseg • adresna granularnost • OPERACIONI DEO INSTRUKCIJE • Neka instrukciju čine (n+k)-bitova, od kojih se k-bitova dodeljuje opkodu a n-bitova jedinstvenoj adresi. Sa k-bitova dobija se 2k različitih opkodova. Alternativno, istih (k+n) bitova je moguće podeliti tako da se (k-1) bit dodeli opkodu a (n+1) bit adresi, što znači da je broj instrukcija prepolovljen ali je broj memorijskih lokacija udvostručen, ili je za isti iznos memorije, rezolucija koja se odnosi na pristup memoriji, dva puta veća. Sa (k+1)-bitnim opkodom i (n-1)-bitnom adresom broj opkodova je dva puta veći, ali je broj dostupnih adresibilnih lokacija, prepolovljen. Tehnika kodiranja koja se bazira na proširenju broja bitova opkoda zove se kodiranje sa proširenjem.

  9. FORMAT INSTRUKCIJA DP32 je 32-bitni procesor sa jednostavnim skupom instrukcija. Skup instrukcija DP32 je podeljen na veliki broj kodiranih podataka koji uključuje: programsko-upravljačke, aritmetičke, logičke i prenos podataka instrukcije. ARITMETIČKE I LOGIČKE INSTRUKCIJE Sve aritmetičke i logičke instrukcije su dužine 32-bita.U konkretnom slučaju pojam reč se odnosi na obim podataka od 32-bita. gde je: op - op-kôd polje, r3 - adresa odredišnog registra, r1 i r2 - adrese izvorišnih registra, i8 - neposredna celobrojna vrednost u prezentaciji dvoičnog komplementa.

  10. Aritmetičke i logičke instrukcije

  11. LOAD I STORE INSTRUKCIJE PROCESORA DP32

  12. Instrukcije tipa Load i Store u zavisnosti od vrednosti razmeštaja imaju dva formata: Format naredbi Load i Store sa većim razmeštajem Format naredbi Load i Store sa manjim razmeštajem • gde je: • op - op-kôd, • r3- adresa registara za punjenje i pamćenje, • r1 - indeksni registar, • disp - veći neposredni razmeštaj, • i8 - manji neposredni razmeštaj, • ignore - polje čiji se sadržaj ignoriše

  13. BRANCH INSTRUKCIJE Postoje četiri Branch instrukcije.

  14. Format osnovnog Branch-a Format quickBranch-a

  15. Format indexed Branch-a Format quick indexed Branch-a • gde je : • op- op-kôd, • disp - veći neposredni razmeštaj • i8 - manji neposredni razmeštaj, • r1 - indeksni registar i • ivnz - stanje maske. Branch se izvršava ako je: cond = ((V & v) | (N & n) | (Z & z)) = i.

  16. KLASE INSTRUKCIJA • Instrukcije možemo podeliti u sledeće grupe: • prenos-podataka (Ld, Ldq, St, Stq) – pomoću ovih instrukcija vrši se kopiranje informacija iz jedne lokacije u drugu. Lokacije mogu pripadati registrima procesora ili memoriji • aritmetičke (Add, Sub, Mul, Div, Addq, Subq, Mulq, Divq) – obavljaju aritmetičke operacije nad numeričkim podacima, • logičke (OR, AND, XOR, MASK) – uključuju Booleove i druge nenumeričke operacije. • programsko-upravljačke (Br, Bi, Brq, Biq) – menjaju sekvencu programskog izvršenja.

  17. STRUKTURA SISTEMA • ARHITEKTURA PROCESORA DP32 • DP32 je 32-bitni procesor sa jednostavnim skup instrukcija. On sadrži sledeće registre: • 256 registara opšte namene (R0 - R255), • programski brojač ( Program Counter - PC) • registar marker-uslova ( Condition Code - CC). • Registrima opšte namene se pristupa programski. Sadržaju registra PC se pristupa instrukcijama grananja. Naredbe za postavljanje i brisanje bitova registra CC Set bit_i Resetbit_i ne postoje. • Obim memorije i obim adrese je 32-bitni. Instrukcije su multipli 32-bitnih reči. Instrukcije su smeštene u memoriji. • Bitovi trobitnog CC registra se ažuriraju nakon izvršenja svake aritmetičke ili logičke instrukcije. Registri procesora DP32

  18. ARHITEKTURA MAGISTRALE • Procesor DP32 komunicira sa memorijom preko sinhrone 32-bitne sistemske magistrale. Talasni oblik taktnihimpulsa phi1 i phi2 procesora DP32 Globalni dijagram procesora DP32 na nivou ulazno-izlaznih signala Pomoću taktnih impulsa, phi1 i phi2 obezbeđeno je dvofazno taktno pobuđivanje procesora bez preklapanja. Izlaz (tzv. port) A_bus-a je 32-bitna adresna magistrala. Port D_bus je 32-bitna dvosmerna magistrala podataka. Portovi READ i WRITE definišu transakcije tipa čitanje (read) i upisa (write) na magistrali . Port FETCH je statusni signal, koji ukazuje da je u toku transakcija čitanja na magistrali, a odnosi se na fazu pribavljanje instrukcije. Stanje na ulazu READY definiše memorija sa ciljem da ukaže da je pročitani podatak dostupan, ili da će se on korektno upisati.

  19. Svaka perioda taktnog impulsa phi1 definiše jedno od stanja na magistrali. Magistrala se može naći u stanju Ti (pasivno-idle), T1 ili T2. Transakcije na magistrali čine: stanje T1, iza koga sledi jedno ili više stanja T2, sa umetnutim Ti stanjima između transakcija. Vremenski dijagram transakcije tipa readna magistrali: Transakcija read magistrale DP32

  20. Vremenski dijagram transakcije tipa write na magistrali: Transakcija write magistrale DP32

  21. Tipovi i entity Konstanta unit_delay se koristi kao inicijalno vremensko kašnjenje (default-na vrednost). Konstanta bool_to_bit predstavlja tabelu pretraživanja koja se koristi za konverziju između boolean uslova i podataka tipa bit. Konstanta je deferredtipa, a njena vrednost je zadata u telu package-a. Funkcija resolve_bit_32 je funkcija koja se odnosi na rezoluciju, a koristi se da odredi vrednost na 32-bitnoj magistrali koja ima veći broj drajverskih stepena. Ovakva magistrala je deklarisana sa podtipom bus_bit_32 tipom podataka. Podtip bit_8 je deo 32-bitne reči koji se koristi kao op-kôd ili adresni registar. CC_bit je tip za markere uslova, dok cm_bit je tip za masku uslova kod branch op-kôda. Sledeći skup dekleracije konstanti definiše oblik op-kod bitova za validne op-kodove. Na kraju, definisan je skup funkcija za konverziju vrednosti bit-vektor-a u numeričke vrednosti. Deklaracija package za dp32_types

  22. U telupackage-adp32_type data je vrednost za deferred konstantu bool_to_bit: uslov false se prevodi u '0', a true se prevodi u '1' Definisano je telo resolution funkcije za 32-bitnu magistralu. Funkcija prihvata kao parametar jedno neograničeno polje vrednosti bit_32, i kao rezultat generiše promenljivu obima bitkoja se dobija kao logička OR operacija svih vrednosti. Funkcija pretpostavlja da je dužina polja veća od jedan. Ako driveri magistrale nisu aktivni, prazno polje se predaje funkciji rezolucije. U ovom slučaju kao rezultat se koristi, default-na vednost za sve bitove čija je vrednost '0' (float_value) Telopackage-a za dp32_types

  23. Funkcija bits_to_int konvertuje bit vektor predstavljen kao označena vrednost u dvojičnom komplementu u vrednost tipa integer. Lokalna promenljiva temp je deklarisana kao bit vektor iste vrednosti i indeksnog opsega kao parametarski bitovi. Rezultat tipa variable se inicijalizura na nulu kada se poziva funkcija, a nakon toga se koristi da akumulira ponderisane bitske vrednosti u petlji tipa for. Funkcija bits_to_natural obavlja sličnu funkciju kao bits_to_int, ali ne obavlja specijalno procesiranje kada su u pitanju negativni brojevi. Funkcija int_to_bits obavlja suprotnu funkciju od funkcije bits_to_int. Telopackage-a za dp32_types

  24. Entitysadrži generičku konstantu Tpd koja se koristi da specificira propagaciona kašnjenja između ulaznih događaja i promene na izlaznim signalima. Default-na vrednost je jedinično kašnjenje specificirano u packagedp32_types. Portovi reset,clock i upravljački signali magistrale predstavljeni su vrednostima tipa bit. Izlaz adresne magistrale je tip bit-vektor, jer je procesor jedini modul koji pobuđuje ovu magistralu. Magistrala podataka je resolved tip bit-vektor, jer može biti pobuđivana kako od strane procesora tako i od memorijskog modula. Reč busu port dekleraciji ukazuje da svi drajveri na magistrali podataka moraju istovremeno da se deaktiviraju (nijedan od njih ne pobuđuje magistralu). Deklaracija entity-ja za dp32

  25. Opis behaviour Model se koristi za izvršenje test programa koji sadrži skup instrukcija procesora DP32 kada je on poveže na memoriju. Deklaracioni deo u telu arhitekture sadrži deklaraciju tipa registrskog polja (RF polje) procesora DP32. RF polje čine 256 32-bitna registra koji se adresiraju prirodnim brojevima u opsegu 0-255. Ovaj proces deklariše veći broj promenljivih koje odslikavaju interno stanje procesora, a to su : RF (Register File) polje (reg), programski brojač (Program Counter - PC) i registar tekuće instrukcije (current_instr.). Veći broj radnih promenljivih i alijaza je takođe deklarisan. Telo arhitekture behaviour za dp32

  26. Procedura memory_read • Parametri su memorijska adresa sa čije se lokacije čita, marker koji ukazuje da li se operacija čitanje odnosi na pribavljanje instrukcije i rezultantni parametar koji vraćapročitani podatak. • Procedura memory_read: • aktiviranje adrese i priprema bit portova • čekanje na narednu rastuću ivicu ulaznog signala phi1, ukazujući na početak sledećeg taktnog intervala • proveravanje stanja na reset ulaznom portu i ako je on postavljen vraćanje na početak bez dalje akcije • ako je reset neaktivan model počinje od stanja T1, tako da nakon rastuće ivice impulsa phi1 aktivira propagaciono kašnjenje read bit porta • čekanje sve do sledeće rastuće ivice ulaznog signalaphi1 označavajući start sledećeg taktnog intervala • ponovno proveravanjereset-a i prekidanje rada ako je reset postavljen • startovanje petlje izvršavajući stanja T2, čekanje sve dok se ulazni signal phi2 ne promeni sa '1' na '0’ i proveravanjereset-a, resetujući se ako je postavljen Telo arhitekture behaviour za dp32

  27. Procedura memory_read • U drugom slučaju • proveravanje stanjaready bit ulaznog porta, i ako je postavljen prihvatanje podataka sa porta za magistralu podataka i napuštanje petlje. • ako ready ulazni port nije postavljen, petlja se ponavlja, dodajući još jedno stanje T2 u transakciji. • nakon petlje, čekanje na sledeću rastuću ivicu ulaznog signala, označavajući start stanja Ti na kraju transakcije. • posle ponovnog proveravanja reset-a, l deaktiviranjeready-ja kako bi se završila transakcija Telo arhitekture behaviour za dp32

  28. Procedura memory_write Procedura memory_write je slična, ona implementira model transakcije upisa u memoriju. Parametri su memorijka adresa i podaci koje treba upisati. Na sličan način ovaj model proverava stanje reset-a posle svake tačke čekanja. Jedina razlika je ta što se kraju transakcije portu magistrale podataka dodeljuje null signal. Ovim se modelira ponašanje deaktiviranja procesora sa magistralom podataka tj. to je trenutak kada on ne pobuđuje više port. Telo arhitekture behaviour za dp32

  29. Procedure add isubtract Procedure add isubtract, implementiraju aritmetičke operacije na celobrojnim 32 bit-nim vrednostima predstavljenim dvojičnim komplementom. Svaka procedura prihvata dva celobrojna (integer) operanda, generiše 32 bit-nu reč i postavlja markere uslova V, N, i Z. Rezultanti parametar je tipa inout jer test koji se odnosi na rezultate negative i zero čita rezultat nakon što je on bio upisan. Procedure add i subtract, u slučaju da se javi premašaj, koriste tehniku wrap arround.

  30. Procedure multiply idivide Procedure multiply idivide, implementiraju aritmetičke operacije na celobrojnim 32 bit-nim vrednostima predstavljenim dvojičnim komplementom. Svaka procedura prihvata dva celobrojna (integer) operanda, generiše 32 bit-nu reč i postavlja markere uslova V, N, i Z. Rezultanti parametar je tipa inout jer test koji se odnosi na rezultate negative i zero čita rezultat nakon što je on bio upisan. Procedure multiply idivide, u slučaju da se javi premašaj, vraćaju najveću ili najmanju celobrojnu vrednost.

  31. Model ponašanja procesora DP32, koji se aktivira u toku faze inicijalizacije simulacije, se sastoji od tri sekcije koje se ponavljaju sekvencijalno: • procesiranje reset-a: kada se aktivira ulaz reset, svi upravljački portovi se postavljaju u inicijalna stanja, drajveri magistrale podataka se deaktiviraju, a registar PC se postavlja na nulu. Model zatim čeka sve dok se signal reset ne promeni. • pribavljanje instrukcija: predstavlja jednostavno poziv procedure za čitanje memorije. Adresu generiše registar PC, fetch marker je true, a rezultat (opkôd instrukcije) se smešta u instrukcioni registar. Registar PC se nakon toga inkrementira koristeći prethodno opisanu aritmetičku proceduru. • izvršenje instrukcija: pribavljena instrukcija se nakon toga dekodira na sledeće delove: op-kôd, adrese izvorišnog i odredišnog registra, i polje neposredna konstanta. Telo arhitekture behaviour za dp32

  32. Op-kôd se koristi kao selektor iskaza case, koji kodira izvršnje instrukcije. Kod aritmetičkih instrukcija (uključujući i quick forme) pozivaju se aritmetičke procedure, prethodno definisane. Kod logičkih instrukcija registarske bit-vektor vrednosti se koriste kod VHDL logičkih izraza sa ciljem da odrede rezultantni bit-vektori. Marker uslova Z se postavlja ako je rezultat bit-vektor kod koga su svi bitovi postavljeni na 0. Model izvršava instrukciju Load tako što prvo čita razmeštaj iz memorije a nakon toga inkrementira sadrđaj regitara PC-a. Razmeštaj se dodaje vrednosti index-nog registra pa se na taj način formira efektivna adresa. Dobijena vrednost se zatim koristi kao adresa kod operacije memoryread, a pročitani podatak se smešta u rezultantni (specificirani) registar. Operacija quick Load se izvršava slično sa izuzetkom da ne postoji potreba za čitanjem memorije; promenljiva i8 se pribavlja iz op-kôda instrukcija. Kod instrukcijaStore i quick Store umesto operacije memory read obavlja se operacija memory write. Telo arhitekture behaviour za dp32

  33. Izvršenje instrukcijeBranch počinje tako što se čita memorija radi pribavljanja razmeštaja, a nakon toga sledi inkrementiranje PC registra za jedan. Razmeštaj se dodaje vrednosti PC registra da bi se formirala efektivna adresa. Procenjuje se uslov grananja, upoređujući bitove markera uslova sa maskom uslova koja je specificirana instrukcijom, kako bi se odredilo da li će do grananja doći ili ne. Ako do grananja dolazi u PC registar se upisuje vrednost efektivne adrese. Izvršenje Branch indexed instrukcije je slično sa izuzetkom što se vrednost indeksnog regista upisuje u PC pa se na taj način formira efektivna adresa. Forme quick Branch-a su takođe slične, ali se neposredna konstanta koristi kao razmeštaj a ne kao vrednost koja se pribavlja iz memorije. Telo arhitekture behaviour za dp32

  34. SIMULATOR DP32 TEST KOLO Testiranje ponašanja modela procesora DP32 vrši se njegovim povezivanjem na kolo za testiranje: Kolo test bench-a za DP32

  35. Entitet CLOCK_GEN čine dve formalne generic konstante: • vremenski period Tpw odgovara širini taktnog impulsa za svaki od signala PHI1 i PHI2 • vremenski period Tps je impuls razdvajanja • Na osnovu ovih vrednosti taktna perioda odgovara dvostrukom zbiru vremena kada su impulsi aktivni i kada postoji razdvajanje (Tclk=2 Tpw +2 Tps) • Arhiktekturu taktnog genereratora, opisanu u VHDL-u, čine dva konkurentna iskaza: • Drajver reset signala generiše vrednost '1' kada je signal RESET aktiviran, a zatim se ovaj signal postavlja na vrednost '0' nakon nešto više od dva taktna perioda. • Proces drajvera takta trenutno generiše impuls PHI1, nakon čega sledi impuls PHI2. • Ovaj proces je repetitivan.

  36. Deklaracija entity kao i behaviour arhitektura memorijskog modula: • Telo arhitekture sastoji se od jednog procesa koji implementira behaviour: • postavaljanje izalaznih portova u inicijalno stanje • nakon toga čeka se na komandu read ili write • Kod komande write, nakon određenog kašnjenja aktivira se signal ready. Kašnjenje odgovara vremenu pristupa kod operacije upisa u memoriju. Nakon toga model čeka sve dok se ne završi ciklus write, i u tom periodu, vrednost na magistrali za podatke se uzorkuje i upisuje u memorijsko polje. • Kod komande read, pristupa se podatku iz memorijskog polja, a nakon određenog kašnjenja podatak se postavalja na magistrali za podatake. Ovo kašnjenje se odnosi na vreme pristupa memoriji kod operacije čitanja. Bit ready se postavlja nakon isteka kašnjenja. Na kraju memorijskog ciklusa, proces se ponavlja, ostavljajući drajvere magistrale podataka i bita ready u inicijalno stanje, a nakon toga čeka na narednu komandu.

  37. Opis kola test bench-a za DP32 Entity ne sadrži portove, s obzirom da ne postoje spoljne veze sa test bench-om. Telo arhitekture sadrži deklaraciju komponenata za taktovanje, memoriju i procesor. Portovi kod deklarisanih komponenata u potpunosti odgovaraju onim kod deklaracija entity-ja. Ne postoje formalne generic konstante, tako da aktuelni parametri za generic-e kod entity deklaracije su specificirane u konfiguraciji. Telo arhitekture nakon toga deklariše signale koji se koriste za povezivanje komponenata. Ovi signali, u toku izvršenja simulacije, mogu se trasirati od strane simulacionog monitora.

  38. Konfiguracija za test bench, koja koristi behaviour opis procesora DP32: Konfiguracijom se specificira da svaka od komponenata arhitekture test bench-a treba da koristi behaviour arhitekturu odgovarajućeg entity-ja. Aktuelne generic konstante se specificiraju za generator takta, pri čemu je taktna perioda 20 ns. Pri ovome se koristi default-na vrednost za generic konstante i default-ne vrednosti za ostale entity-je.

  39. Prva kolona prikazuje broj linija za unos programa koji generiše editor programa. U okviru druge, treće i četvrte kolone prikazuje se adresa memorijske lokacije odgovarajuće instrukcije ili makro naredbe. U petoj, šestoj, sedmoj i osmoj koloni je izvršivi kod u heksadecimalnom obliku svake od instrukcija ili makro naredbe, op-kôdovi obima jedne reči (kakav je slučaj linija 13) ili dve reči (linija 12). Kolona devet je dodeljena direktivama (include, begin i end) i labelama instrukcije (start, loop, counter). Kolona deset odgovara mnemoniku naredbe ili makro instrukcije. Kolone 11-15 specificiraju izvorne i odredišne operande ili adresu grananja. Npr. u liniji 13 su izvorni i odredišni operand, a u liniji 15 adresa grananja. Kolona 16 označava komentar koji počinje znakom '!' i važi do kraja linije. Linije 3, 4 i 5 rezervisane za komentar, a linije 2, 6, 17 su prazne.

  40. 32 24 23 16 15 8 7 0 • 07000000 32 24 23 16 15 8 7 0 • 10020000 32 24 23 16 15 8 7 0 • 21020000 • 00000008 32 24 23 16 15 8 7 0 • 10020201 32 24 23 16 15 8 7 0 • 1101020A

  41. 32 24 23 20 19 16 15 8 7 0 • 500900FA i=1, v=0, n=o, z=1 Branch se izvršava ako je: cond = ((V & v) | (N & n) | (Z & z)) = i. 32 24 23 20 19 16 15 8 7 0 • 500000FA i=0, v=0, n=o, z=0 bezuslovni branch

  42. SOFTVERSKI PAKETI KORIŠĆENI PRI IZRADI PROJEKTA: • Active-HDL v5.1 • Windows Notepad • Microsoft Word • Corel CAPTURE 8 • Adobbe Photoshop 7.0 POTREBNAKONFIGURACIJA RAČUNARA : • PC računar u klasi Pentium II procesora • Windows 95/98/ME, Windows2000/NT, WindowsXP • 1024x768 rezolucija / 16bitna paleta boja • 128 MB RAM memorije • 1 GB memorije na hard disku

  43. Korak 1 • Početno usvajamo da je program za sintezu DP32 procesora prethodno instaliran u memoriju računara. Hardverska sinteza procesora DP32 i simulacija njegovog rada se obavlja pokretanjem programa Active HDL. • Za pokretanje programa Active HDL potrebno je obaviti sledeće aktivnosti: • izabrati programsku ikonu My Computer lociranu na Desktop-u. • aktivirati My Computer – aktiviranje se izvodi dvostrukim klikom levog tastera miša na odabranu ikonu • na C: particiji aktivirati My _Designs, gde se nalazi folder proc • otvoriti folder i aktivirati ikonu proc.adf (Active HDL.Design) • Startovanjem ikone pojavljuje se aplikacioni prozor. Crvenom bojom je uokviren folder proc u polju Design Browser

  44. U ovom prozoru može se posmatrati: a) program kreiran za potrebe simulacije, b) listanje sadržaja memorije i c) tok simulacije (tj.generisane vrednosti i vremenski dijagram izabrane simulacije).

  45. Selektovati i kliknuti levim tasterom miša na confing.txt da bi otvorili sekciju pomoću koje biramo zadati primer U izabranoj simulaciji prikazano je izvršenje programa counter. Ovim smo završili učitavanje zahtevane simulacije programa counter.

  46. Korak 2 • Ovaj korak se odnosi na fazu pripreme izvršenja simulacije koja uključuje sledeće aktivnosti: • Kompajliranje: aktivira se klikom na ikonicu Compile All koji je locirana u Tool Bar-u. Izveštaj da je kompajliranje uspešno završeno ili nije, broj sintaksnih grešaka detektovanih u toku kompajliranja, i vreme potrebno za analizu prikazuje se u sekciji Console

  47. Inicijalizacija simulacije: Nakon što je utvrđeno da je kompajliranje uspešno završeno i da nema grešaka u programu aktivira se komanda Initialize Simulation. U konkretnom slučaju prvo se selektuje Simulation na Menu Bar-u,a nakon otvaranja padajućeg menija bira se Initialize Simulation.

  48. Korak 3 • Nakon inicijalizacije simulacije sledi pokretanje koje uključuje sledeću aktivnost. • Izborom Simulation na Menu Bar-u otvara se padajući meni koji sadrži opciju Run. Selekcijom i aktiviranjem opcije Run startuje se simulacija. U prozoru koji je markiran kao No simulation, može se pratiti vreme trajanja simulacije. Istovremeno u sekciji Console promenjen je sadržaj, odnosno sekcija sada daje izveštaj da je u toku proces simulacije.

  49. Korak 4 • Proces simulacije se može zaustaviti sa ciljem da se proveri stanje internih registara procesora i memorije. Na osnovu pročitanih stanja internih registara i memorije može se proveriti da li program ispravno funkciniše ili ne. Aktivnost koja prati ovaj korak je sledeća • Zaustavljanje simulacije: selekcijom polja Simulation na Menu Bar-uotvara se padajući meni koji sadrži opciju Stop. Aktiviranjem opcije Stop zaustavlja se simulacija.

  50. Izgled prozora nakon zaustavljanja simulacije U sekciji Console treba uočiti izveštaj o vremenu trajanja simulacije do trenutka zaustavljanja. Takođe treba uočiti i vrste V=reg I V=mem u polju Tree. Klikom na simbol ‘+’ koji prethodi V=reg prikazuje se listing sadržaja registara procesora DP32, a klikom na simbol ‘+’ koji prethodi V=mem prikazuje se listing sadržaja memorije.

More Related