YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

1. Uvod Ogromna ekspanzija na polju razvoja, usavršavanja i primene poluprovodničkih tehnologija je prisutna u poslednjih pedesetak godina. Broj tranzistora po kvadratnom centimetru silikonskog čipa je iz godinu u godinu rasato, da bi danas težio broju od nekoliko stotina miliona tranzistora. Sa povećanjem broja tranzistora i usložnjavanjem čipova dolazi i do razvoja i promena tehnika i alata, koje se koriste pri projektovanju. U procesu projektovanja koristimo dve osnovne grupe alata. Prvu grupu čine hardverski, a drugu softverski alati. Kao primer hardverskih alata možemo navesti radne stanice za projektovanje hardvera, emulatore, logičke analizatore, instrumente itd. Alati koji se koriste pri projektovanju, a spadaju u grupu softverskih alata su bazirani na skupu različitih softverskih paketa. Softverski paketi se razvijaju i nadograđuju godinama, i sadrže grupu kompleksnih programa koji se koriste u svim fazama opisivanja, simulacije, sinteze i implementacije sistema. Jezici za opis hardvera se danas uveliko proučavaju na svim elektrotehničkim fakultetima i pri tom se sam opis može bazirati na strukturnom nivou ili na nivou ponašanja. Oba načina opisivanja se koriste kombinovano na datom projektu u zavisnosti od potreba i ideje samog projektanta. Kao primere paketa za opis hardvera možemo navesti: VHDL ( Very-High-Speed-Integrated-Circuit Hadrware Description Language), zatim njemu slični VERYLOG, itd. Pored funkcije opisivanja, ovim paketima je data i moćunost simulacije opisanog sistema i prikaz talasnih oblika simulacije u odgovarajućem grafičkom editoru. U okviru ovog rada će se koristiti VHDL kao alat koji će se upotrebiti za opis hardvera jednostavnog procesora. Korišćenje alata ovog tipa omogućava sledeće prednosti u oblasti projektovanja:

- preglednost pri projektovanju koja je izuzetno važna kada se radi o projektovanju kompleksnih sistema; - efikasnost pri projektovanju; - kraće vreme obučavanja budućih projektanata; - jeftina proizvodnja, koja je jedna od najbitnijih faktora na današnjem sve konkurentnijem tržištu.

Predmet proučavanja u ovom diplomskom radu je: - generisanje opisa jednostavnog procesora sa mikroprogramskim upravljanjem korišćenjem

VHDL-a, - simulacija opisanog hardvera i prikaz talasnih oblika koji se dobijaju kao rezultat

simulacije, - sinteza procesora na osnovu formiranog opisa, - implementacija sintetisanog procesora na odgovarajućem čipu.

Sam rad je podeljen na osam poglavlja. Prvo poglavlje predstavlja uvod. Drugo poglavlje se bavi opisom strukture procesora na opštem nivou, u cilju prikaza osnovnih gradivnih jedinica svakog procesora i načina funcionisanja svake od njih. Treće poglavlje konkretno opisuje strukturu zadatog jednostavnog procesora na hardverskom nivou i skup naredbi koje procesor može izvršavati. Kod opisa strukture na hardverskom nivou imamo dva podpoglavlja koja se bave opisivanjem kontrolne i izvršne jedinice. Proces izvršenja instrukcija koji je opisan na nivou mikrooperacija je pregledno dat u četvrtom poglavlju. Putem tabela su jasno prikazane mikrooperacije i aktivni kontrolni signali za svaku od mikrooperacija. U petom poglavlju je dat

Page 2: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

VHDL opis procesora. Uz odgovarajući kod su data i objašnjenja svakog koda. Pored koda opisa imamo i kod koji omogućava testiranje i simulaciju tzv. test – bench. Kao ulazni fajl za sintezu i kasniju implementaciju mikroprocesora koristimo VHDL kod. Rezultati sinteze i implementacije su dati u šestom poglavlju. Radi omogućavanja lakšeg pristupa predmetu proučavanja i rezultatima ovog rada studentima, u sedmom poglavlju je prezentovana i detaljno objašnjeno izvođenje laboratorijske vežbe. Ona daje niz neophodnih instrukcija i koraka kada je u pitanju simulacija procesora kao i promena sadržaja mikroprogramske memorije. Osmo poglavlje je rezervisano za sumiranje rezultata i izvođenje zaključaka.

Page 3: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

2. Opis strukture procesora – opšti pristup

Struktura procesora predstavlja skup gradivnih blokova koji: ulaze u sastav procesora, hijerarhiski su organizovani i omogućavaju izvršavanje skupa instrukcija, koji je definisan za posmatrani procesor. Obzirom na širok spektar procesora koji danas postoje zaočekivati je veliku raznolikost u pogledu strukture. Međutim, neki od primarnih blokova koji ulaze u sastav procesora su karakterisični za većinu današnjih procesora, tako da ovi blokovi trebaju biti navedeni kada je u pitanju opšti pristup. Kao dve osnovne gradivne jedinice svakog procesora na najvišem hijerarhiskom nivou javljaju se:

-upravljačka jedinica (eng. control unit ), -izvršna jedinica (execute unit ) ili staza podataka (data path). Ove dve osnovne jedinice su međusobno povezane preko odgovarajuće interne magistrale. Tu možemo razlikovati deo interne magistrale koji se koristi za prenos upravljačkih signala od upravljačke jedinice ka izvršnoj, kao i deo kojim se prenose ulazni podaci iz izvršne jedinice ka upravljačkoj. Osnovni princip funkcionisanja procesora se zasniva na sekvencijanom učitavanju instrukcija iz glavne memorije u procesor, posle čega sledi niz mikrooperacija u samom procesoru u cilju obavljanja zadatka koji je specificiran instrukcijom. Broj i tip mikroopracija koje se izvršavaju za učitanu instrukciju određene su odgovarajućim bitovima u okviru same instrukcije. Prikaz strukture procesora na ovom nivou je dat na slici 1. Nadalje će biti opisana i predstavljena svaka od ovih jedinica posebno.

slika 1 – Osnovna struktura procesora

2.1 Izvršna jedinica – execute unit

Izvršna jedinica je gradivni blok u kome se obavljaju sve aritmetičke operacije, logičke operacije, operacije generisanja adresa itd. Izvršavanje svake od pomenutih operacija se obavlja na osnovu specificiranih upravljačkih signala, koji se generišu u upravljačkoj jedinici. Neki od najčešćih blokova koji ulaze u sastav izvršne jedinice su: -ALU, pomerači, sabirači, množači itd.;

- generator adresa; -registri koji se koriste u različite svrhe npr. čuvanje podataka, čuvanje adresa, smeštaj

instrukcije;

procesor

upravljačka jedinica

- control unit

staza podataka -

data path

Page 4: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

-odgovarajuće veze između gore pomenutih blokova. U zavisnosti od hardverske opremljenosti množačima, brojačima, jedinicama za obavljanje različitih aritmetičko-logičkih operacija, procesor je u stanju da korisniku pruži brže ili sporije izvršavanje složenijih operacija. Naime, ako deo izvršne jedinice ne obiluje hardverskim potencijalom složenije operacije će se izvršavati sporo. Opet složeniji hardver zahteva i veću cenu tako da se treba tražiti neki kompromis. Što se tiče registara koji ulaze u sastav izvršne jedinice možemo ih podeliti na: - korisnički vidljive registre tj. one koji su vidljivi programeru na mašinskom i asemblerskom nivou; - upravljačke i statusne registre tj. one koji nisu vidljivi programeru i imaju specificiranu funkciju u procesu izvršavanja instrukcija. Nadalje ćemo posebno ukazati na svaku od pomenutih grupa registara i predstaviti njihovu funkciju. U korisničko vidljive registre spadaju: - registri opšte namene, kojima sam programer dodeljuje različite funkcije; - registri za podatke, koji se mogu koristiti za čuvanje podataka, ali ne i adresa; - adresni registri, koji se koriste za specificiranje određenog adresnog načina rada; - marker registri, koji su delimično vidljivi korisniku i u kojima hardver CPU-a postavlja sam vrednosti na osnovu obavljanja različitih operacija. Obim korisničko vidljivih registara i njihov broj predstavljaju neke od osnovnih atributa na koje projektant treba obratiti pažnju. Tako, na osnovu obima korisničkih registara razlikujmo 8 - bitne, 16 – bitne, 32 – bitne, 64 – bitne, 128 - bitne procesore. Dalje, broj dostupnih registra utiče na performanse procesora kod konkurentnog izvršavanja instrukcija. Kao upravljačke i statusne registre nožemo navesti sledeće registre: - programski brojač (PC – Program Counter), koji čuva adresu naredne instrukcije; - registar naredbi ( IR – Instruction Register), koji čuva kod instrukcije koja se trenutno izvršava; - memorijsko adresni registar (MAR – Memory Address Register), koji čuva adresu memorijske lokacije koja se adresira; - memorijsko baferski registar ( MBR – Memory Buffer Register), koji sadrži podatak koji je poslednji upisan ili poslednji pročitan iz memorije; - CCR ( Condition Code Register) služi da čuvanje markera uslova. U markere uslova spadaju prenos – carry, znak – sign, bit parnosti – parity bit, nula bit – zero, preoračenje – overflow, supervizor bit, koji ukazuje da se izvršava naredbe u supervizorskom načinu rada itd. Na slici 2 su prikazani jedan od načina organizacije izvršne jedinice.

Page 5: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 2 – Organizacija izvršne jedinice

2.2 Upravljačka jedinica – control path

Upravljačka jedinica služi za generisanje upravljačkih signala. Upravljački signali koje

generiše upravljačka jedinica se mogu podeliti u dve osnovne grupe: - interni upravljački signali, koji se vode na izvršnu jedinicu; - spoljni upravljački signali, uz pomoć kojih se upravlja radom spoljnih komponenata kao što su memorija ( čitanje i upis), U/I uređaji itd.

Vrednosti upravljačkih signala na izlazu upravljačke jedinice zavise od: - bitova na ulazu upravljačke jedinice koji specificiraju instrukciju koja se trenutno izvršava; - spoljnih ulaznih upravljčkih signala, koji ukazuju na stanje spoljnih uređaja, npr. Reset signal, Ready signal itd; - bitova koji specificiraju rezultat predhodne operacije (CCR).

Na slici 3 je prikazana strategija upravljanja.

Page 6: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 3 – Osnovna strategija upravljanja Postoje dva osnovna koncepta realizacije upravljačke jedinice. To su:

- koncept upravljačke jedinice sa direktnim upravljanjem – hardwired control; - koncept upravljačke jedinice sa mikroprogramskim upravljanjem – microprogrammed control. Ako se opredelimo za upravljačku jedinicu sa direktnim upravljanjem, upravljačka jedinica će biti realizovana kao sekvencijalno logičko kolo. Glavna prednost ovakve upravljačke jedinice je velika brzina rada sa minimalnim hardverom, a nedostatak u tome što kada se jednom isprojektuje, ne dozvoljava dodatne izmene. Zato se ovaj tip upravljačke jedinice često sreće kod RISC procesora i neprogramabilnih kontrolera. Prihvatanje koncepta procesorske jedinice sa mikroprogramskim upravljanjem u konkretnom slučaju zahteva realizaciju upravljačke jedinice na bazi ROM ili RAM memorije u kojoj se smeštaju vrednosti upravljačkih signala, koji će biti aktivirani u odgovarajućem trenutku. Glavne prednosti ovakvog načina realizacije upravljačke jedinice su: - lako uvođenje dodatnih instrukcija; - greške se brže i lakše otklanjaju; - ukupno projektovanje procesora je pojednostavljeno; - korišćenjem mikroprogramske emulacije moguće je ostvarivanje kompatibilnosti sa drugom mašinom. Glavni nedostatak ovog pristupa je manja brzina rada u odnosu na direktno upravljanje. Ipak je ovaj način realizacije upravljačke jedinice široko rasprostranjen, gotovo u svim slučajevima kada brzina rad nije od presudnog značaja. Kod upravljačkih jedinica ovog tipa, pri projektovanju se često pravi kompromis između nivoa dekodiranja i kapaciteta memorije koji je upotrebljen za pamćenje upravljačkih signala. Najekstremniji slučaj po pitanju zauzeća memorije je kada nema kodiranja, tj. kada se upravljački signali direktno pamte u memoriji. U slučaju složenih procesora broj upravljačkih signala može biti veliki tako da bi bio potreban popriličan RAM u okviru procesora. Zato se koristi kodiranje kombinacija upravljačkih signala. To dodatno usložnjava kontrolnu jedinicu, ali štedi mikroprogramsku memoriju.

Page 7: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Maksimalno kodiranje takođe utiče negativno na aspekt uvođenja novih instrukcija, jer uvođenje novih instrukcija zahteva potpuni redizajn dekodera. Tipovi arhitektura sa aspekta izvršenja U okviru razmatranja jednog opšteg pogleda na strukturu procesora, treba napomenuti raspoložive arhitekture procesora kada govorimo o izvršenju instrukcija. Tu se pre svega misli na specifikaciju operanada pri izvršavanju instrukcija. U tom pogledu razlikujemo: - L/S (Load –Store) arhitekturu; - R/M ( Register – Memory) arhitekturu; - R+M ( Register plus Memory) arhitekturu. Kod L/S arhitekture imamo da svi operandi pri izvršavanju instrukcije moraju da se nađu u registrima procesora. Kod R/M arhitekture jedan od izvornih operanada mora da se nađe u nekom od registru procesora, dok drugi može biti specificiran preko memorije. I na kraju, R+M arhitektura procesora se odlikuje time da se operandi nalaze i u memoriji i u registrima procesora. Konačno treba napomenuti da u širokom spektru različitih arhitektura procesora na osnovu broja operanada koji se specificiraju direktno ili indirektno u okviru same instrukcije imamo: nulto–adresne, jedno–adresne, dvo–adresne i tro–adresne procesore. Kod tro-adresnih se u samoj instrukciji specificira adresa dva izvorna operanda i adresa odredišnog operanda. Kod dvo-adresnih procesora se u samoj instrukciji specificira adresa oba izvorišna operanda eksplicitno, a adresa odredišnog se implicitno podrazumeva kao adresa jednog od izvornih operanada. Kod jedno-adresnih mašina se specificira eksplicitno adresa jednog od izvornih operanada dok se rezultat i drugi izvorni nalaze u specificiranom registru koji se često naziva akumulator (ACC). Nulto-adresne mašine podrazumevaju rad sa magacinom pri čemu se vidi samo jedna adresa i za operande i za rezultat, a to je vrh magacina (TOS-Top Of Stack).

Page 8: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

3. Opis jednostavnog 16 – bitnog CPU-a sa mikroprogramskim upravljanjem

U ovom poglavlju biće najpre opisani načini adresiranja koji su dostupni za rad sa ovim procesorom, onda će biti predstavljen skup naredbi za jednostavni 16 – bitni procesor sa mikroprogramskim upravljanjem, i na kraju će biti opisana struktura CPU-a. 3.1 Opis načina adresiranja Ovde možemo reći da se radi o jednoadresnoj mašini sa mikroprogramskim upravljanjem koji podržava četiri načina adresiranja: - neposredno adresiranje; - direktno adresiranje; - indirektno adresiranje; - registarsko adresiranje. Kod neposrednog adresiranja imamo da je sam operand koji se koristi sadržan u samoj instrukciji. Dobra osobina ovog načina adresiranja je značajno smanjenje broja obraćanja memoriji, dok je nedostatak jako mali broj bitova koji se koristi za prenos operanada, što uzrokuje jako uzak opseg. Na slici 4 je da prikaz formata instrukcije kod neposrednog adresiranja. Ovde opkod specificira tip operacije, a modifikator način adresiranja.

opkod modifik. operand

X X X X X X 0 0 Y Y Y Y Y Y Y Y

Slika 4 – Format instrukcije kod neposrednog adresiranja Osnovna karakteristika diriktenog načina adresiranja je da se u okviru instrukcije pored opkoda i modifikatora nalazi još i memorijska adresa operanda. Na ovaj način povećavamo broj obraćanja memoriji s jedne strane, dok s druge omogućavamo korišćenje 16 – bitnog operanda. Format instrukcije za ovaj način adresiranja je prikazan na slici 5.

Opkod modifik. neiskorišćeni bitovi X X X X X X 0 1 - - - - - - - - A A A A A A A A A A A A A A A A

adresa operanda

Slika 5 –Format instrukcije kod direktnog adresiranja

Kada se radi o indirektnom adresiranju, imamo da je u okviru instrukcije data memorijska adresa na kojoj se nalazi memorijska adresa operanda. Postiže se na ovaj način progresija u kapacitetu memorije koja se može adresirati, dok se gubi na brzini izvršavanja instrukcije, jer

Page 9: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

se obavlja višestruko obraćanje memoriji. Format instrukcije za ovaj način adresiranja dat je na slici 6.

Opkod modifik. neiskorišćeni bitovi

X X X X X X 1 0 - - - - - - - - A A A A A A A A A A A A A A A A

adresa na kojoj se nalazi adresa operanda

Slika 6 – Format instrukcije kod indirektnog adresiranja

Na kraju, kod registarskog adresiranja u okviru instrukcije je specificiran registar opšte namene u kome se nalazi operand nad kojim se izvršava odgovarajuća operacija. Ovaj procesor raspolaže sa 16 registara opšte manene, što zanči da se za adresiranje registra koristi 4 bitova. Ostali bitovi u samoj instrukciji su neiskorišćeni. Format za ovaj način adresiranja je prikazan na slici 7. Treba još reći da se za adresiranje registra koriste LS bitovi instrukcije.

Opkod modifik. adresa registra X X X X X X 1 1 - - - - Y Y Y Y

Slika 7 – Format instrukcije kod registarskog adresiranja

3.2 Skup instrukcija CPU-a Ovaj jednostavni procesor je struktuiran tako da može da obavlja više tipova instrukcija. Shodno tome, sve instrukcije možemo podeliti u sledeće grupe: - instrukcije za obavljanje osnovnih aritmetičkih operacija; - instrukcije za obavljanje osnovnih logičkih operacija; - instrukcije prenos podataka; -instrukcije za promenu toka izvršenja programa. Svaka od ovih instrukcija se realizuje preko četri načina adresiranja, tako da se ukupan broj instrukcija može odrediti kao četvorostruka vrednost broja instrukcija koje obavljaju različite operacije. Treba naravno naglasiti da je ovaj skup instrukcija moguće i proširiti, jer se radi o mikroprogramskom upravljanju. Postupak proširavanja biće kasnije dat. U tabeli na slici 8 je prikazan skup instrukcija koje će biti posmatrane nadalje kroz sva četiri moda adresiranja.

Page 10: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

instrukcija kod instrukcije

opis instrukcije tip instrukcije

- operacija OR 000001 OR operacija logička AND 000010 AND operacija logička NOT 000011 NOT operacija logička XOR 000100 ExOR operacija logička ADD 000101 operacija sabiranja aritmetička SUB 000110 aritmetička operacija oduzimanja aritmetička NEG 000111 izračunavanje negativne vrednosti aritmetička LD 001000 kopiranje iz memorije u akumulator prenos podataka JMP 001001 bezuslovno grananje (skok) grananje JZ 001010 grananje ako je nula grananje JNZ 001011 gananje ako nije nula grananje MOV 001100 kopiranje iz akumulatora u registar Rx prenos podataka ST 001101 kopiranje iz akumulatora u memoriju prenos podataka INC 001110 inkrementiranje sadržaja operanda aritmetička SETC 001111 setovanje bita prenosa RESC 010000 resetovanje bita prenosa NOP 111111 operacija bez efekta

Slika 8 – Tabela instrukcija

3.3 Opis hardvera jednostavnog 16 – bitnog procesora

U ovom podpoglavlju će biti opisan hardver jednostavnog 16 – bitnog procesora na onom nivou koji može obezbediti dovoljnu preglednost strukture hardvera radi razumevanja njegovog funkcionisanja. Najpre, naglasimo da sam procesor možemo podeliti na dva esencijalna dela tj. jedinice: - upravljačka jedinica; - izvršna jedinica. Funkcije ovoh jedinica smo opisali u predhodnom poglavlju tako da ih ovde nećemo ponavljati. Radi preglednosti sada ćemo navesti neke bazične osobine konkretno proučavanog procesora, sa napomenom da smo ih već u predhodnim poglavljima spomenuli i objasnili.

- Procesor je 16 – bitni. - Procesor ima mikroprogramsko upravljalnje. - Radimo sa 4 načina adresiranja. - Proučavamo skup od 15 instrukcija u svim modovima adresiranja. - Procesor predstavlja jedno – adresnu mašinu.

3.3.1 Struktura hardvera izvršne jedinice Opisu strukture hradvera ćemo pristupiti preko slike na kojoj je prikazana struktura na nivou registara. Nadalje će biti opisana funkcija svakog od njih u procesu izvršenja instrukcija. Blok ”registarsko polje i dekoder”, kao i blok ”logika za proširenje” biće kasnije detaljnije prikazani. Slika koja nam prezentuje strukturu izvršne jedinice označena je brojem 9.

Page 11: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 9 – Struktura izvršne jedinice procesora

Svi registri i gradivni blokovi komuniciraju preko zajedničke 16 – bitne magistrale. Vidimo da ova jedinica procesora sadrži adresni registar – AR, programski brojač – PC, registar podataka – DR, logiku za proširenje, akumulatorski registar – AC, aritmetičko – logičku

Page 12: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

jedinicu koja izvršava operacije specificirane opkodom – ALU, instrukcioni registar – IR, registarsko polje sa šesnaest 16 – bitnih registara i dekoderom, PSW – registar i bafere koji kontrolišu pristup magistrali. Adresni registar služi da čuva adresu memorijske lokacije koja se adresira i obima je 16 bitova. Programski brojač sadrži adresu naredne instrukcije koja će se izvršavati i poseduje port za inkrementiranje, a obima je 16 bitova. Registar podataka se koristi kao registar u kome se privremeno smeštaju željeni podaci pri izvršavanju instrukcija, kako što su adrese ili operandi (obim 16 bitova). Akumulatorski registar služi za storiranje operanda nad kojim se vrši neka operacija kao i za storiranje rezultata te operacije (obim 16 bitova). Instrukcioni registar je jedini obima 8 bitova i sadrži opkod i modifikator instrukcije čije je izvršavanje u toku. Osam ulaznih bit portova ovog registra su povezani na osam MS bitova 16 – bitne magistrale. PSW registar je 4 – bitni i sadrži bit prenosa (carry bit), bit znaka (sign bit), bit nule (zero bit) i bit parnosti (parity bit). Ovi bitovi se koriste za procenu uslova grananja pri izvršavanju instrukcije grananja , a postavljaju se od strane ALU – a. Na slici 11 je prikazana logika koja nam omogućava da kod neposrednog adresiranja operand koji je dat sa 8 bitova proširimo na 16 bitova nulama ili bitom znaka u zavisnosti od željenog slučaja. Upravljačim signalom zn,koji se postavlja iz upravljačke jedinice, se određuje tip proširavanja. Ako je postavljen na nulu proširuje se znakom, ako je postavljen na 1 proširuje se nulom. Drugi kontrolni signal je označen sa pr i on određuje dali se radi o 8- bitnom operandu i treba proširavalje, ili se radi o 16 – bitnom operandu te se samo preslikava operand na izlaz ove logike.

Slika 10 – Struktura logike za proširenje

Struktura dekodera i registarskog polja je data na slici 10. Putem dekodera koji prihvata adresu selektuje se registar u koji će se upisati, a putem multipleksera iz kojeg će se isčitati određeni sadržaj registra. Ovo polje sadrži 16 registrara opšte namene koji se koriste za privremeno smeštanje rezultata i operanada i koji su vidljivi programeru na asemblerskom i mašinskom nivou. Prikazani drajveri omogućavaju da opterećenje logičkim kolima odgovarajućih ulaza ne bude veće od 5.

Page 13: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

and1

and2

and3

and4

and5

and6

and7

and8

and9

an10

and11

and12

and13

and14

and15

and16

DEKODER 4 u 16

4adresa

registra -AdrReg

RegLd

in Ld clk out Registar 1

in Ld clk out Registar 2

in Ld clk out Registar 3

in Ld clk out Registar 4

in Ld clk out Registar 5

in Ld clk out Registar 6

in Ld clk out Registar 7

in Ld clk out Registar 8

in Ld clk out Registar 9

in Ld clk out Registar 10

in Ld clk out Registar 11

in Ld clk out Registar 12

in Ld clk out Registar 13

in Ld clk out Registar 14

in Ld clk out Registar 15

in Ld clk out Registar 16

16

InputReg

MUX 16x16bits -

1x16bits

4

adresa registra -AdrReg

16

izlaz adresiranog

registra

Slika 11 – Struktura registarskog polja

Page 14: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Na kraju prikažimo strukturu aritmetičko – logičke jedinice. Ova jedinica, kao što i samo ime kaže, sadrži kombinacionu logiku koja omogućava da se izvrše specificirane aritmetičko-logičke operacije. Ova jedinica je u stanju da obavi 8 operacija: NOT – logička operacija invertovanja operanda, AND – logička I operacija, OR – logička ILI operacija, XOR – logička isključivo ILI operacija, NEG – aritmetička operacija promene znaka operanda, ADD – aritmetička operacija sabiranja, , SUB – aritmetička operacija oduzimanja, LD – operacija preslikavalja operanda sa magistrale na ulaz akumulatora u cilju upisivanja u akumulator. Pored ovih osnovnih funkcija, ALU služi i za generisanje bitova parnosti, znaka, prenosa i nula bita. Odgovarajući blokovi su formirani za generisanje ovih bitova, koji se kasnije upisuju u PSW registar. Struktura ALU-a je data na slici 13.

Slika 12 – Struktura aritmetičko-logičke jedinice

3.3.2 Struktura hardvera upravljačke jedinice Druga osnovna jedinica svakog procesora pa i ovog je upravljačka jedinica. Njena funkcija je da generisanje upravljačkih signala koji omogućavaju izvršavanje instrukcije kao niz mikrooperacija. Za svaku mikrooperaciju je karakterističan skup upravljačkih signala koji trebaju biti aktivni u cilju njenog izvršenja. Ova jedinica se može realizovati hardverski ili preko mikroprogramske memorije. U ovom konkretnom slučaju ćemo se baviti procesorom sa mikroprogramskim upravljanjem. Osnovna tehnika ovog načina upravljanja je opisana u poglavlju 2, ali ćemo tehniku detaljnije proučiti na ovom primeru.

Page 15: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Na slici 12 je prikazana blok šema ovog tipa upravljačke jedinice koji se u slučaju našeg jednostavnog procesora primenjuje. Kao osnovne gradivne blokove ove upravljačke jedinice izdvajamo: - MAP – logiku koja na osnovu opkoda instrukcije generiše početnu adresu rutine koja treba biti izvršena radi obavljanja operacije specificirane opkodom. - Multiplekser 3 u 1 koji na osnovu kontrolnih signala s0 i s1 kanališe jednu od dostupnih adresa na ulazu multipleksera ka izlazu multipleksera. - Registar tekuće adrese sadrži adresu lolacije u samoj mikroprogramskoj memoriji koja je trenutno adresirana. - Mikroprogramsku memoriju, koja sadrži skup nizova vrednosti upravljačkih signala od kojih svaki niz odgovara jednoj mikrooperaciji. Nizovi su dalje organizovani u rutine, gde svaka rutina odgovara jednoj instrukciji. Poslednji niz svake rutine adresira rutinu pribavljanja instrukcija (fetch rutine).

Slika 13 – Struktura upravljačke jedinice - Multiplekser 16 u 1 na osnovu kontrolnih signala iz mikroprpgramske reči (niza) određuje koji će kontrolni bit uticati na izbor naredne adrese. Postojeći skup instrukcija me iscrpljuje sve mogućnosti za formiranje instrukcija na osnovu kontrolnih signala (kao i njihovih kombinacija) na ulazu ovog bloka. Na taj način je dat prostor za proširenje postojećeg skupa instrukcija. - Blok inkrementer (” + 1”) inkrementira tekuću mikroprogramsku adresu za jedan radi pristupa narednoj mikroprogramskoj reči u rutini.

Page 16: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Naredna adresa mikroprogramske memorije je određena: - sadržajem bitova uslova (condition bits - cond) tekuće mikroprogramske reči, - vrednošću bita koji označava tip skoka ( branch type – BT), - tekućim vrednstima kontrolnih bitova, - adresom naredne mikroprogramske reči koja je sadržana u tekućoj mikroprogramskoj reči

(address – add).

Page 17: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

4. Izvršavanje instrukcija Kada se radi o procesu izvršavanja insrtukcija, treba reći da se izvršavanje svake instrukcije može posmatrati kao niz mikrooperacija tj. rutina. Svaka mikrooperacija se odvija na RTL nivou tj. na nivou prenosa podataka među registrima (register transfer level). Svakoj instrukciji odgovara posebna rutina, a predhodi rutina pribavljanja instrukcije tj. fetch rutina. Fetch rutina obuhvata tri mikrooperacije. Ove mikrooperacije omogućavaju smeštanje opkoda i modifikatora u instrukcioni registar, a samim tim i adresiranje prve mikrooperacije odgovarajuće rutine. Na osnovu rečenog možemo zaključiti da se sadržaj mikroprogramske memorije može posmatrati kao skup sekvencijano raspoređenih rutina, od kojih svaka odogovara određenoj instrukciji i određenom načinu adresiranja. Da bi formirali sadržaj mikroprogramske memorije neophodno je izvršiti analizu svake od instrukcija na nivou mikrooperacija i utvrditi koje upravljačke signale treba aktivirati za svaku mikrooperaciju. Radi preglednosti ova analiza biće predstavljena tabelarnim putem. 4.1 Analiza skupa instrukcija u slučaju neposrednog adresiranja Pre nego što krenemo sa analizom instrukcija prikazaćemo skup svih upravljačkih signala kojima se specificira vrednost pri izvršenju bilo koje mikrooperacije. Skup upravljačkih signala je dat putem tabele koja je data na slici 13.

Upravljački signal Funkcija upravljačkog signala

SRCarry 1-setuje carry bit, 0-resetuje carry bit ARLd Kada je na 1 dozvoljava upis u adresni registar ARBus Kada je na 1 dozvoljava pristup AR-a magistrali PCLd Kada je na 1 dozvoljava upis u programski brojač PCInc Uzlazna ivica ovog signala inkrementira PC PCBus Kada je na 1 dozvoljava pristup PC-a magistrali DRLd Kada je na 1 dozvoljava upis u registar podataka DRBus Kada je na 1 dozvoljava pristup DR-a magistrali

zn 0 – proširuje se znakom, 1 – proširuje se nulom pr 1 – ima proširenja, 0 – nema proširenja

ACInc 1 dozvoljava inkrementiranje sadržaja AC-a ACLd Kada je na 1 dozvoljava upis u akumulator ACBus Kada je na 1 dozvoljava pristup AC-a magistrali IRLd Kada je na 1 dozvoljava upis u instrukcioni registar IRBus Kada je na 1 dozvoljava pristup IR-a magistrali

ALUSel – 3 bita Određuje operaciju u okviru ALU-a RegLd Kada je na 1 dozvoljava upis u adresirani registar RegBus Kada je na 1 dozvoljava pristup registra magistrali PSWLd Kada je na 1 dozvoljava upis u PSW registar

MR 1 dozvoljava pristup memorije internoj magistrali pri čitanju MW 1 dozvoljava pristup memorije internoj magistrali pri upisu RD Kada je na 1 dozvoljava čitanje iz memorije WR Kada je na 1 dozvoljava upis u memoriju

Slika 14 – Tabela upravljačkih signala jednostavnog procesora

Page 18: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Nadalje su tabelarnim putem pikazani rezultati analize za slučaj neposrednog adresiranja, koje je u predhodnom poglavlju detaljno objašnjeno. Svaka tabela sadrži tri kolone. Prva kolona odgovara oznaci tj. mnemoniku mikrooperacije, druga kolona odgovara mikrooperaciji na RTL-u, a treća kolona prikazuje koji od upravljačkih signala trebaju biti aktivirani da bi se izvršila mikrooperacija. Svaka od tabele odgovara izvršavanju jedne instrukcije.

Mnemonik

mikrooperacije Mikrooperacija

na RTL-u Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

OR1N AC← AC or DRp pr,zn,DRBus,ALUSel=000,ACLd,PSWLd Slika 15 – Tabela mikrooperacija za instrukciju OR za neposredno adresiranje

Mnemonik

mikrooperacije Mikrooperacija

na RTL-u Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd AND1N AC← AC and DRp pr,zn,DRBus,ALUSel=001,ACLd,PSWLd

Slika 16 – Tabela mikrooperacija za instrukciju AND za neposredno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd NOT1N AC← Not(DRp) pr,zn,DRBus,ALUSel=010,ACLd,PSWLd

Slika 17 – Tabela mikrooperacija za instrukciju NOT za neposredno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd XOR1N AC← AC xor DRp pr,zn,DRBus,ALUSel=011,ACLd,PSWLd

Slika 18 – Tabela mikrooperacija za instrukciju EXOR za neposredno adresiranje

Napomena: DRp ukazuje da je izvršeno proširenje nulom ili znakom, dok npr. XOR1N predstavlja: XOR-operaciju, 1-redni broj mikroinstrukcije, N- Neprsredno adresiranje.( za ostale načine adresiranja: direktno –D, za indirektno – I, za registarsko – R).

Page 19: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd ADD1N AC← AC + DRp pr,zn,DRBus,ALUSel=100,ACLd,PSWLd

Slika 19 – Tabela mikrooperacija za instrukciju ADD za neposredno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd SUB1N AC← AC - DRp pr,zn,DRBus,ALUSel=101,ACLd,PSWLd

Slika 20 – Tabela mikrooperacija za instrukciju SUB za neposredno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd NEG1N AC← -DRp pr,zn,DRBus,ALUSel=110,ACLd,PSWLd

Slika 21 – Tabela mikrooperacija za instrukciju NEG za neposredno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

LD1N AC← DRp pr,zn,DRBus, ALUSel=111,ACLd Slika 22 – Tabela mikrooperacija za instrukciju LD za neposredno adresiranje

Mnemonik

mikrooperacije Mikrooperacija

na RTL-u Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

ST1N AR← DRp pr,zn,DRBus,ARLd ST2N M← AC ACBus,WR, MW

Slika 23 – Tabela mikrooperacija za instrukciju ST za neposredno adresiranje

Page 20: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 24 – Tabela mikrooperacija za instrukciju JMP za neposredno adresiranje

Slika 25 – Tabela mikrooperacija za instrukciju JZ za neposredno adresiranje kada nije ispunjen uslov (n-neispunjen uslov)

Slika 26 – Tabela mikrooperacija za instrukciju JZ za neposredno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

Slika 27 – Tabela mikrooperacija za instrukciju JNZ za neposredno adresiranje kada nije ispunjen uslov (n-neispunjen uslov)

Slika 28 – Tabela mikrooperacija za instrukciju JNZ za neposredno adresiranje(i-ispunjen)

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JMP1N PC←DRp pr,zn,PCLd,DRBus

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JZ1Nn Nema promene Nema aktivnih signala

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JMP1Ni PC←DRp pr,zn,PCLd,DRBus

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JNZ1Nn Nema promene Nema aktivnih signala

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JNZ1Ni PC←DRp pr,zn,PCLd,DRBus

Page 21: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 29 – Tabela mikrooperacija za instrukciju NOP

Slika 30 – Tabela mikrooperacija za instrukciju INC

Slika 31 – Tabela mikrooperacija za instrukciju SETC

Slika 32 – Tabela mikrooperacija za instrukciju RESC Instrukcije uslovnog i bezuslovnog skoka nećemo formirati kroz neposredni mod adresiranja zbog toga što se isti efekat postiže sa direktnim načinom adresiranja. Razlika koja se uočava je da se kod direktnog adresiranja memorija može cela adresirati, dok kod neposrednog ne može, jer su na raspolaganju samo 8 bitova za adresu instrukcije na koju se skače. Ovde treba još napomenuti da kada je upravljački signal pr na jedinici imamo proširenje, a kada je na nuli nemamo, već se sadržaj iz registra podataka preslikava na izlaz logike za proširenje. Isto tako, kada je upravljački signal zn na jedinici proširavamo nulom, a kada je na nuli proširavamo znakom.

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

NOP Nema promene Nema aktivnih signala

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

INC AC←AC+1 ACInc

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

SETC Carry←1 SRCarry=1

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

RESC Carry←1 SRCarry=0

Page 22: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

4.2 Analiza skupa instrukcija u slučaju direktnog adresiranja Kod direktnog načina adresiranja imamo da se zbog šesnestobitne adrese, instrukcija pribavlja u dva koraka. U prvom se pribavlja opkod i modifikator (8 bitova), kao i 8 neiskorišćenih bitova. U drugom koraku se pribavlja 16-bitna adresa koja adresira operand. Način prezentacije analize instrukcije u ovom modu adresiranja će biti prikazan na isti način kao i kod neposrednog adresiranja, putem tabela.

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

OR1D AR ← PC PCBus, ARLd OR2D DR←M,PC←PC+1 RD,MR,PCInc,DRLd OR3D AR ← DR DRBus, ARLd OR4D DR←M RD,MR,DRLd OR5D AC← AC or DR DRBus,PSWLd ALUSel=000, ACLd

Slika 33 – Tabela mikrooperacija za instrukciju OR za direktno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd AND1D AR ← PC PCBus, ARLd AND2D DR←M,PC←PC+1 RD,MR,PCInc,DRLd AND3D AR ← DR DRBus, ARLd AND4D DR←M RD,MR,DRLd AND5D AC← AC and DR DRBus,PSWLdALUSel=001,ACLd

Slika 34 – Tabela mikrooperacija za instrukciju AND za direktno adresiranje

Page 23: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd NOT1D AR ← PC PCBus, ARLd NOT2D DR←M,PC←PC+1 RD,MR,PCInc,DRLd NOT3D AR ← DR DRBus, ARLd NOT4D DR←M RD,MR, DRLd NOT5D AC← notDR DRBus,PSWLd ALUSel=010,ACLd

Slika 35 – Tabela mikrooperacija za instrukciju NOT za direktno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd XOR1D AR ← PC PCBus, ARLd XOR2D DR←M,PC←PC+1 RD,MR,PCInc,DRLd XOR3D AR ← DR DRBus, ARLd XOR4D DR←M RD,MR, DRLd XOR5D AC← AC xor DR DRBus,PSWLd ALUSel=011,ACLd

Slika 36 – Tabela mikrooperacija za instrukciju XOR za direktno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd ADD1D AR ← PC PCBus, ARLd ADD2D DR←M,PC←PC+1 RD,MR,PCInc,DRLd ADD3D AR ← DR DRBus, ARLd ADD4D DR←M RD,MR, DRLd ADD5D AC← AC + DR DRBus,PSWLd ALUSel=100,ACLd

Slika 37 – Tabela mikrooperacija za instrukciju ADD za direktno adresiranje

Page 24: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik

mikrooperacije Mikrooperacija

na RTL-u Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd SUB1D AR ← PC PCBus, ARLd SUB2D DR←M,PC←PC+1 RD,MR,PCInc,DRLd SUB3D AR ← DR DRBus, ARLd SUB4D DR←M RD,MR,DRLd SUB5D AC← AC - DR DRBus,PSWLd ALUSel=101,ACLd Slika 38 – Tabela mikrooperacija za instrukciju SUB za direktno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd NEG1D AR ← PC PCBus, ARLd NEG2D DR←M, PC=PC+1 RD,MR,PCInc,DRLd NEG3D AR ← DR DRBus, ARLd NEG4D DR←M RD,MR,DRLd NEG5D AC← -DR DRBus,PSWLd ALUSel=110,ACLd Slika 39 – Tabela mikrooperacija za instrukciju INC za direktno adresiranje

Mnemonik

mikrooperacije Mikrooperacija

na RTL-u Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

LD1D AR ← PC PCBus, ARLd LD2D DR←M,PC←PC+1 RD,MR,PCInc,DRLd LD3D AR ← DR DRBus, ARLd LD4D DR←M RD,MR,DRLd LD5D AR ← DR DRBus, ARLd LD6D AC←M RD,MR,DRLd,PSWLd,ALUSel=111,ACLd

Slika 40 – Tabela mikrooperacija za instrukciju LD za direktno adresiranje

Page 25: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

ST1D AR ← PC PCBus, ARLd ST2D DR←M,PC←PC+1 RD,MR,PCInc,DRLd ST3D AR← DR DRBus, ARLd ST4D DR←M RD,MR,DRLd ST5D AR ← DR DRBus, ARLd ST4D M←AC ACBus,MW,WR

Slika 41 – Tabela mikrooperacija za instrukciju ST za direktno adresiranje

Nadalje će biti analizirane instrukcije grananja. Već smo napomenuli da razlikujemo instrukcije uslovnog i bezuslovnog grananja. Za instrukciju bezuslovnog grananja imamo jednu rutinu u okviru mikroprogramske memorije. Kd instrukcija JZ i JNZ pri izvršavanju odgovarajuće rutine postoji dva načina kojima mikrooperacijama iz rutine pristupa. Koji će se način upotrebiti u konkretnom slučaju zavisi od stanja markera uslova. Za slučaj instrukcija JZ i JNZ posmatra se marker zero bit u okviru PSW registra, čija se vrednost ispituje u okviru upravljačke jedinice. Naniže su prikazane odgovrajuće rutine.

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JMP1D AR ← PC PCBus, ARLd JMP2D DR←M RD,MR,DRLd JMP3D AR← DR DRBus, ARLd JMP4D PC←M ACLd,MR,RD,PCLd

Slika 42 – Tabela mikrooperacija za instrukciju JMP za direktno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

JZ1Di AR ← PC PCBus, ARLd JZ2Di DR←M RD,MR,DRLd JZ3Di AR← DR DRBus, ARLd JZ4Di PC←M ACLd,MR,RD,PCLd

Slika 43 – Tabela mikrooperacija za instrukciju JZ za direktno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

Page 26: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik

mikrooperacije Mikrooperacija

na RTL-u Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JZ1Dn PC←PC+1 PCInc

Slika 44 – Tabela mikrooperacija za instrukciju JZ za direktno adresiranje kada nije ispunjen uslov (n-neispunjen uslov)

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JNZ1Di AR ← PC PCBus, ARLd JNZ2Di DR←M RD,MR,DRLd JNZ3Di AR← DR DRBus, ARLd JNZ4Di PC←M ACLd,MR,RD,PCLd

Slika 45 – Tabela mikrooperacija za instrukciju JNZ za direktno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JNZ1Dn PC←PC+1 PCInc

Slika 46 – Tabela mikrooperacija za instrukciju JNZ za direktno adresiranje kada nije ispunjen uslov (n-neispunjen uslov)

Page 27: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

4.3 Analiza skupa instrukcija u slučaju indirektnog adresiranja Kod indirektnog adresiranja imamo slučaj da se u okviru instrukcije nalazi adresa koja ukazuje na memorijsku lokaciju na kojoj se nalazi adresa operanda. Ovaj način adresiranja povećava broj obraćanja memoriji, ali povećeva kapacitet memorije kojoj se može izvršiti obraćanje. Slede tabele koje daju analizu izvršavanja instrukcija na nivou mikrooperacija.

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

OR1I AR ← PC PCBus, ARLd OR2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd OR3I AR ← DR DRBus, ARLd OR4I DR←M RD,MR,DRLd OR5I AR ← DR DRBus, ARLd OR6I DR←M RD,MR,DRLd OR7I AC← AC or DR DRBus,PSWLd, ALUSel=000,ACLd

Slika 47 – Tabela mikrooperacija za instrukciju OR za indirektno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd AND1I AR ← PC PCBus, ARLd AND2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd AND3I AR ← DR DRBus, ARLd AND4I DR←M RD,MR,DRLd AND5I AR ← DR DRBus, ARLd AND6I DR←M RD,MR,DRLd AND7I AC← AC and DR DRBus,PSWLd, ALUSel=001,ACLd

Slika 48 – Tabela mikrooperacija za instrukciju AND za indirektno adresiranje

Page 28: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd NOT1I AR ← PC PCBus, ARLd NOT2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd NOT3I AR ← DR DRBus, ARLd NOT4I DR←M RD,MR,DRLd NOT5I AR ← DR DRBus, ARLd NOT6I DR←M RD,MR,DRLd NOT7I AC← not(DR) DRBus,PSWLd, ALUSel=010, ACLd

Slika 49 – Tabela mikrooperacija za instrukciju NOT za indirektno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd XOR1I AR ← PC PCBus, ARLd XOR2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd XOR3I AR ← DR DRBus, ARLd XOR4I DR←M RD,MR,DRLd XOR5I AR ← DR DRBus, ARLd XOR6I DR←M RD,MR,DRLd XOR7I AC← AC xor DR DRBus,PSWLd, ALUSel=011,ACLd

Slika 50 – Tabela mikrooperacija za instrukciju XOR za indirektno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd ADD1I AR ← PC PCBus, ARLd ADD2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd ADD3I AR ← DR DRBus, ARLd ADD4I DR←M RD,MR,DRLd ADD5I AR ← DR DRBus, ARLd ADD6I DR←M RD,MR,DRLd ADD7I AC← AC + DR DRBus,PSWLd, ALUSel=100,ACLd

Slika 51 – Tabela mikrooperacija za instrukciju ADD za indirektno adresiranje

Page 29: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

SUB1I AR ← PC PCBus, ARLd SUB2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd SUB3I AR ← DR DRBus, ARLd SUB4I DR←M RD,MR,DRLd SUB5I AR ← DR DRBus, ARLd SUB6I DR←M RD,MR,DRLd SUB7I AC← AC - DR DRBus,PSWLd, ALUSel=101, ACLd

Slika 52 – Tabela mikrooperacija za instrukciju SUB za indirektno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd NEG1I AR ← PC PCBus, ARLd NEG2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd NEG3I AR ← DR DRBus, ARLd NEG4I DR←M RD,MR,DRLd NEG5I AR ← DR DRBus, ARLd NEG6I DR←M RD,MR,DRLd NEG7I AC←-DR DRBus,PSWLd, ALUSel=110, ACLd

Slika 53 – Tabela mikrooperacija za instrukciju INC za indirektno adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

LD1I AR ← PC PCBus, ARLd LD2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd LD3I AR ← DR DRBus, ARLd LD4I DR←M RD,MR,DRLd LD5I AR ← DR DRBus, ARLd LD6I AC← M MR,RD,PSWLd, ALUSel=111,ACLd

Slika 54 – Tabela mikrooperacija za instrukciju LD za indirektno adresiranje

Page 30: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JMP1I AR ← PC PCBus, ARLd JMP2I DR←M RD,MR,DRLd JMP3I AR← DR DRBus, ARLd JMP4I DR←M RD,MR,DRLd JMP5I AR← DR DRBus, ARLd JMP6I PC←M ACLd,MR,RD,PCLd

Slika 55 – Tabela mikrooperacija za instrukciju JMP za indirektno adresiranje

Kao i kod direktnog adresiranja, tako i ovde kada se radi sa instrukcijama uslovnog grananja dva načina pristupanja mikroperacijama rutine koje se odnose na konkretno stanje markera zero. Jedna se odnosi na slučaj kada je uslov ispunjen, a druga se odnosi na slučaj kada uslov nije ispunjen.

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

JZ1Ii AR ← PC PCBus, ARLd JZ2Ii DR←M RD,MR,DRLd JZ3Ii AR← DR DRBus, ARLd JZ4Ii DR←M RD,MR,DRLd JZ5Ii AR← DR DRBus, ARLd JZ6Ii PC←M ACLd,MR,RD,PCLd

Slika 56 – Tabela mikrooperacija za instrukciju JZ za indirektno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

JZ1In PC←PC+1 PCInc Slika 57 – Tabela mikrooperacija za instrukciju JZ za indirektno adresiranje

kada nije ispunjen uslov (n-neispunjen uslov)

Page 31: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik

mikrooperacije Mikrooperacija

na RTL-u Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd JNZ1Ii AR ← PC PCBus, ARLd JNZ2Ii DR←M RD,MR,DRLd JNZ3Ii AR← DR DRBus, ARLd JNZ4Ii DR←M RD,MR,DRLd JNZ5Ii AR← DR DRBus, ARLd JNZ6Ii PC←M ACLd,MR,RD,PCLd

Slika 58 – Tabela mikrooperacija za instrukciju JNZ za indirektno adresiranje kada je ispunjen uslov (i-ispunjen uslov)

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

JZ1In PC←PC+1 PCInc Slika 59 – Tabela mikrooperacija za instrukciju JNZ za indirektno adresiranje

kada nije ispunjen uslov (n-neispunjen uslov)

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

ST1I AR ← PC PCBus, ARLd ST2I DR←M,PC←PC+1 RD,MR,PCInc,DRLd ST3I AR← DR DRBus, ARLd ST2I DR←M RD,MR, DRLd ST3I AR← DR DRBus, ARLd ST4I M←AC ACBus,MW,WR

Slika 60 – Tabela mikrooperacija za instrukciju ST za Indirektno adresiranje

Page 32: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

4.4 Analiza skupa instrukcija u slučaju registarskog adresiranja Registarski način adresiranja karakteriše se time što je broj obraćanja memoriji minimalan, jer se adresirani operand nalazi u jednom od registara opšte namene, u samom procesoru. Obraćanje memoriji se vrši samo pri pribavljanju instrukcije. Mali broj adresabilnih registara opšte namene je nedostatak ovog načina adresiranja. Nadalje će biti prikazana analiza instrukcija na nivou mikroinstrukcija putem tabela.

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

OR1R AR ← DR DRBus, ARLd, pr,zn OR2R DR←Ri DRLd,RegBus,AdrReg OR3R AC← AC or DR DRBus,PSWLd,ALUSel=000,ACLd

Slika 61 – Tabela mikrooperacija za instrukciju OR za registarsko adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd AND1R AR ← DR DRBus, ARLd, pr,zn AND2R DR←Ri DRLd,RegBus,AdrReg AND3R AC← AC and DR DRBus,PSWLd,ALUSel=001, ACLd

Slika 62 – Tabela mikrooperacija za instrukciju AND za registarsko adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd NOT1R AR ← DR DRBus, ARLd, pr,zn NOT2R DR←Ri DRLd,RegBus,AdrReg NOT3R AC← not(DR) DRBus,PSWLd, ALUSel=010, ACLd

Slika 63 – Tabela mikrooperacija za instrukciju NOT za registarsko adresiranje

Page 33: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik

mikrooperacije Mikrooperacija

na RTL-u Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd XOR1R AR ← DR DRBus, ARLd, pr,zn XOR2R DR←Ri DRLd,RegBus,AdrReg XOR3R AC← AC xor DR DRBus,PSWLd,ALUSel=011, ACLd

Slika 64 – Tabela mikrooperacija za instrukciju XOR za registarsko adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd ADD1R AR ← DR DRBus, ARLd, pr,zn ADD2R DR←Ri DRLd,RegBus,AdrReg ADD3R AC← AC + DR DRBus,PSWLd,ALUSel=100,ACLd

Slika 65 – Tabela mikrooperacija za instrukciju ADD za registarsko adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd SUB1R AR ← DR DRBus, ARLd, pr,zn SUB2R DR←Ri DRLd,RegBus,AdrReg SUB3R AC← AC - DR DRBus,PSWLd,ALUSel=101, ACLd

Slika 66 – Tabela mikrooperacija za instrukciju SUB za registarsko adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd NEG1R AR ← DR DRBus, ARLd, pr,zn NEG2R DR←Ri DRLd,RegBus,AdrReg NEG3R AC← -DR DRBus,PSWLd, ALUSel=110, ACLd

Slika 67 – Tabela mikrooperacija za instrukciju INC za registarsko adresiranje

Page 34: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd

LD1R AR ← DR DRBus, ARLd, pr,zn LD2R AC← Ri RegBus,PSWLd,AdrReg,ALUSel=111,ACLd Slika 68 –Tabela mikrooperacija za instrukciju LD za registarsko adresiranje

Mnemonik mikrooperacije

Mikrooperacija na RTL-u

Aktivni (na *1*) kontrolni signali

FETCH1 AR ← PC PCBus, ARLd FETCH2 DR←M,PC←PC+1 RD,MR,PCInc,DRLd FETCH3 IR ← DR[15:8] DRBus, IRLd MOV1R AR ← DR DRBus, ARLd, pr,zn MOV2R Ri ← AC RegLd, AdrReg,ACBus

Slika 69 –Tabela mikrooperacija za instrukciju MOV za registarsko adresiranje

4.5 Sadržaj mikroprogramske memorije Izvršenju svake instrukcije odgovara rutina u mikroprogramskoj memoriji koja predstavlja skup nizova kontrolnih signala, od kojih svaki niz odgovara izvršenju jedne mikrooperacije. Na slici 70 je predstavljena format niza koji odgovara jednoj mikrooperaciji. condition branch target-BT control signals address

Slika 70 – Format mikroinstrukcije

condition – određuje da li će se naredna adresa mikroinstrukcije biti uzeta sa ulaza 0 ( tekuća adresa + 1) ili će biti uzeta sa ulaza 1 ( addr) multipleksera u okviru mikrosekvencera. Sadrži 2 bita. branch target (BT) – određuje da li se adresa naredne mikroinstrukcije uzima sa ulaza 2 ( koji se snabdeva adresom iz mapera) ili ne. Sadrži 1 bit. control signals –predstavlja kontrolne signale koji se direktno vode na hardver izvršne jedinice. address – ovo polje specificira prvu adresu naredne rutine. Sadrži 11 bitova jer se adresira 2KB mikroprogramske memorije. Ovo polje se koristi na kraju svake rutine kako bi se adresirala fetch rutina. Nadalje će biti prikazan sadržaj mikroprogramske memorije. Pritom će biti ukazano na sve rutine koje su tabelarno opisane.

Page 35: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 71 – Tabela upravljačkih signala za slučaj direktnog adresiranja -1. deo tabele

Mne

mon

ic

adre

sa

mik

roin

s.

(hex

)

cond

ition

BT

SRC

arry

A

CIn

c A

RLd

A

RBu

s PC

Ld

PCBu

s PC

Inc

DR

Ld

DR

Bus

pr

zn

AC

Ld

AC

Bus

IRL

d IR

Bus

R

egLd

R

egBu

s PS

WL

d M

R

MW

W

R

RD

ALU

Sel

addr

ess

(h

ex)

OR1D 028 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx OR2D 029 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx OR3D 02A 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx OR4D 02B 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx OR5D 02C 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 000 AND1D 048 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx AND2D 049 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx AND3D 04A 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx AND4D 04B 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx AND5D 04C 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 000 NOT1D 068 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NOT2D 069 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NOT3D 06A 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NOT4D 06B 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NOT5D 06C 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 000 XOR1D 088 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx XOR2D 089 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx XOR3D 08A 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx XOR4D 08B 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx XOR5D 08C 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 000 ADD1D 0A8 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ADD2D 0A9 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ADD3D 0AA 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ADD4D 0AB 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ADD5D 0AC 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 000 SUB1D 0C8 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx SUB2D 0C9 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx SUB3D 0CA 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx SUB4D 0CB 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx SUB5D 0CC 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 000 NEG1D 0E8 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NEG2D 0E9 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NEG3D 0EA 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NEG4D 0EB 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NEG5D 0EC 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 000 LD1D 108 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx LD2D 109 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx LD3D 10A 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx LD4D 10B 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx LD5D 10C 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx LD6D 10D 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 000 JMP1D 128 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JMP2D 129 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JMP3D 12A 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JMP4D 12B 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 000

Page 36: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 72 – Tabela upravljačkih signala za slučaj direktnog adresiranja-nastavak tabele

Mne

mon

ic

adre

sa

mik

roin

s. (h

ex)-

11 b

cond

ition

BT

SRC

arry

A

CIn

c A

RLd

A

RBu

s PC

Ld

PCBu

s PC

Inc

DR

Ld

DR

Bus

pr

zn

AC

Ld

AC

Bus

IRL

d IR

Bus

R

egLd

R

egBu

s PS

WL

d M

R

MW

W

R

RD

ALU

Sel

addr

ess

(hex

)-11

Fetch1 000 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx Fetch2 001 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx Fetch3 002 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 xxx OR1N 020 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 000

AND1N 040 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 000 NOT1N 060 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 000 XOR1N 080 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 000 ADD1N 0A0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 000 SUB1N 0C0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 000 NEG1N 0E0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 000 LD1N 100 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 000 ST1N 1A0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ST2N 1A1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 000 JMPN 120 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JZN1 140 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142

JZN1n 141 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JZNi 142 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000

JNZN1 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 162 JNZN1n 161 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JNZNi 162 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 INC1N 1C0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000

Slika 73 – Tabela upravljačkih signala za slučaj neposrednog adresiranja

Mne

mon

ic

adre

sa

mik

roin

s.

(hex

)

cond

ition

BT

SRC

arry

A

CIn

c A

RLd

A

RBu

s PC

Ld

PCBu

s PC

Inc

DR

Ld

DR

Bus

pr

zn

AC

Ld

AC

Bus

IRL

d IR

Bus

R

egLd

R

egBu

s PS

WL

d M

R

MW

W

R

RD

ALU

Sel

addr

ess

(h

ex)

JZ1D 148 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14A JZ1Dn 149 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JZ1Di 14A 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JZ2Di 14B 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JZ3Di 14C 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JZ4Di 14D 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 000 JNZ1D 168 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16A JNZ1Dn 169 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JNZ1Di 16A 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JNZ2Di 16B 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JNZ3Di 16C 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JNZ4Di 16D 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 000 ST1D 1A8 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ST2D 1A9 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ST3D 1AA 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ST4D 1AB 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ST5D 1AC 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ST6D 1AD 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 000

Page 37: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mne

mon

ic

adre

sa

mik

roin

s.

(hex

)

cond

ition

BT

SRC

arry

A

CIn

c A

RLd

A

RBu

s PC

Ld

PCBu

s PC

Inc

DR

Ld

DR

Bus

pr

zn

AC

Ld

AC

Bus

IRL

d IR

Bus

R

egLd

R

egBu

s PS

WL

d M

R

MW

W

R

RD

ALU

Sel

addr

ess

(h

ex)

OR1I 030 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx OR2I 031 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx OR3I 032 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx OR4I 033 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx OR5I 034 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 xxx OR6I 035 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx OR7I 036 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 000

AND1I 050 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx AND2I 051 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx AND3I 052 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx AND4I 053 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx AND5I 054 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 xxx ANDI6 055 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ANDI7 056 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 000 NOT1I 070 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NOT2I 071 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NOT3I 072 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NOT4I 073 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NOT5I 074 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NOT6I 075 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NOT7I 076 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 000 XOR1I 090 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx XOR2I 091 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx XOR3I 092 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx XOR4I 093 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx XOR5I 094 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx XOR6I 095 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx XOR7I 096 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 000 ADD1I 0B0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ADD2I 0B1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ADD3I 0B2 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ADD4I 0B3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ADD5I 0B4 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ADD6I 0B5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ADD7I 0B6 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 000 SUB1I 0D0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx SUB2I 0D1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx SUB3I 0D2 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx SUB4I 0D3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx SUB5I 0D4 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx SUB6I 0D5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx SUB7I 0D6 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 000 NEG1I 0F0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NEG2I 0F1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NEG3I 0F2 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NEG4I 0F3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NEG5I 0F4 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NEG6I 0F5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx NEG7I 0F6 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 000

Page 38: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 74 – Tabela upravljačkih signala za slučaj indirektnog adresiranja

Mne

mon

ic

adre

sa

mik

roin

s. (h

ex)-

11 b

cond

ition

BT

SRC

arry

A

CIn

c A

RLd

A

RBu

s PC

Ld

PCBu

s PC

Inc

DR

Ld

DR

Bus

pr

zn

AC

Ld

AC

Bus

IRL

d IR

Bus

R

egLd

R

egBu

s PS

WL

d M

R

MW

W

R

RD

ALU

Sel

addr

ess

(hex

)-11

b

SETC 1E0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 RESC 200 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 NOP 7FF 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000

Slika 75 – Tabela upravljačkih signala za instrukcije SETC,RESC i NOP

LD1I 110 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx LD2I 111 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx LD3I 112 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx LD4I 113 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx LD5I 114 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx LD6I 115 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx LD7I 116 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx LD8I 117 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 000

JMP1I 130 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JMP2I 131 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JMP3I 132 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JMP4I 133 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JMP5I 134 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JMP6I 135 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 000 JZ1I 150 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152

JZ1In 151 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JZ1Ii 152 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JZ2Ii 153 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JZ3Ii 154 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JZ4Ii 155 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JZ5Ii 156 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JZ6Ii 157 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 000 JNZ1I 170 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 JNZ1In 171 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 JNZ1Ii 172 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JNZ2Ii 173 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JNZ3Ii 174 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JNZ4Ii 175 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx JNZ5Ii 176 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx JNZ6Ii 177 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 000 ST1I 1B0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ST2I 1B1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ST3I 1B2 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ST4I 1B3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ST5I 1B4 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ST6I 1B5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 xxx ST7I 1B6 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ST8I 1B7 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 000

Page 39: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 76 – Tabela upravljačkih signala za slučaj registarskog adresiranja

Mne

mon

ic

adre

sa

mik

roin

s. (h

ex)-

11 b

cond

ition

BT

SRC

arry

A

CIn

c A

RLd

A

RBu

s PC

Ld

PCBu

s PC

Inc

DR

Ld

DR

Bus

pr

zn

AC

Ld

AC

Bus

IRL

d IR

Bus

R

egLd

R

egBu

s PS

WL

d M

R

MW

W

R

RD

ALU

Sel

addr

ess

(hex

)-11

b

OR1R 038 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx OR2R 039 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 xxx OR3R 03A 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 000

AND1R 058 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx AND2R 059 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 xxx AND3R 05A 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 000 NOT1R 078 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NOT2R 079 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 xxx NOT3R 07A 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 000 XOR1R 098 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx XOR2R 099 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 xxx XOR3R 09A 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 000 ADD1R 0B8 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx ADD2R 0B9 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 xxx ADD3R 0BA 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 000 SUB1R 0D8 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx SUB2R 0D9 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 xxx SUB3R 0DA 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 000 NEG1R 0F8 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx NEG2R 0F9 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 xxx NEG3R 0FA 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 000 LD1R 118 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx LD2R 119 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 000

MoV3R 198 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xxx MoV2R 199 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 000

Page 40: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5. VHDL opis jednostavnog 16-bitnog procesora sa mikroprogramskim upravljanjem U ovom poglavlju su prikazani VHDL opisi svih komponenata koji formiraju arhitekturu jednostavnog 16-bitnog procesora čiju smo analizu predhodno izvršili. Opisi komponenata su hijerarhiski prikazani, počev od VHDL opisa osnovnih komponenata (registri, multiplekseri, drajveri, memorija), preko VHDL opisa složenijih celina (upravljačka jedinica, izvršna jedinica, programska memorijam, ALU, registarsko polje), do VHDL opisa celog procesorskog sistema. Uz svaki opis objašnjena je funkcija posmatrene komponente u sistemu i data blok šema komponente sa naznačenim signalima. 5.1 VHDL opis osnovnih komponenata 5.1.1 VHDL opis bloka reg1 Blok reg1 predstavlja 16-bitni registar, koji se koristi u okviru izvršne jedinice kao: - adresni registar (AR), - registar podataka (DR), - registar opšte namene u okviru registarskog polja procesora. Sadrži 16-bitni ulazni port (ul_reg), 16-bitni izlazni port (iz_reg), jednobitni ulazni port za taktovanje(clk) i jednobitni ulazni port za dozvolu upisa u registar (reg_ld). Upis se vrši na uzlaznu ivicu takta. Ulazni portovi adresnog registra (AR) i registra podataka (DR) su direktno povezani na internu magistralu procesora. Izlazni port AR-a je povezan sa internom magistralom preko izlaznog drajvera koji je kontrolisan upravljačkim signalom ARBus. Izlazni port DR-a je povezan na ulazni port logike za proširenje. Na ulazne portove reg_ld oba registra su dovedeni upravljački signali ARLd i DRLd sa izlaznih portova upravljačke jedinice, dok se na portove za taktovanje dovodi signal takta sa izlaznog porta bloka za taktovanje (clk1). Dat VHDL opis i blok šema sa naznačenim signalima na slici 77.

signalAR_iz

signaldata_bus

signalARLd

signalclk1

signaldata_bus

signalDRLd

signalclk1

signalDR_iz

Slika 77 – AR i DR registri sa signalima

Page 41: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.2 VHDL opis bloka reg2 Blok reg2 predstavlja 16-bitni registar koji se koristi za realizaciju: - akumulatora (AC), - programskog brojača (PC). Sadrži 16-bitni ulazni port (ul_reg), 16-bitni izlazni port (iz_reg), jednobitni ulazni port za taktovanje (clk), jednobitni port za reset (reset), jednobitni port za inkrementiranje(reg_inc) sadržaja registra i jednobitni ulazni port za dozvolu upisa u registar (reg_ld). Na sve jednobitne ulazne portove (osim reset porta) se dovode upravljački signali iz upravljačke jedinice. To su sledeći signali: PCLd-dozvoljava upis u PC, ACLd-dozvoljava upis u AC, PCInc-dozvoljava inkrementiranje sadržaja PC-a i ACInc-dozvoljava inkrementiranje sadržaja AC-a. Upis se vrši na uzlaznu ivicu takta i postavljanjem porta reg_ld na jedinicu. Inkrementiranje se vrši postavljanjem porta za inkrementiranje na jedinicu i uzlaznom ivicom takta. I kod AC-a i kod PC-a 16-bitni ulazni port za podatke je povezan direktno na internu magistralu procesora, dok je 16-bitni izlazni port povezan na internu magistralu preko drajvera. Kao i kod registra 1 ovi drajveri su kontrolisani upravljačkim signalima ACBus i PCBus. Na slici 78 su preko blok šeme prikazani AC i PC, kao i odgovarajući signali.

5.1.3 VHDL opis bloka reg3 Komponenta koja nosi naziv reg3 je osmobitni registar i koristi se instrukcioni registar (IR) u izvršnoj jedinici za prihvatanje opkoda instrukcija. Pored osmobitnog ulaznog i izlaznog porta,

signaldata_bus

signal PCIncsignal PCLd

signal resetsignal clk1 signal

PC_izReg2

signalAC_izsignal clk1

‘0’signal ACLd

signal ACInc

signaldata_bus

Reg2

Slika 78 – PC I AC registri sa signalima

Page 42: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

poseduje i port za dozvolu upisa (reg_ld), jednobitni port za reset (reset) i port za taktovanje (clk). Kao i kod predhodnih registara upis se vrši na uzlaznu ivicu takta. Na port reg_ld se dovodi upravljački signal IRLd. Osmobitni ulaz je direktno povezan na 8 MS bitova interne magistrale, a osmobitni izlaz je povezan preko osmobitnog drajvera na internu magistralu, a preko još jednog drajvera na maper upravljačke jedinice. Blok koji pikazuje ovaj registar sa odgovarjućim signalima je prikazan na slici 79. Pored slike je priložen i odgovarajući VHDL opis ovog registra.

5.1.4 VHDL opis bloka PSW PSW blok služi kako bi se u njemu čuvala trenutna stanja markera, dakle to je registar. Obzirom da ovaj procesor raspolaže sa četri markera uslova (parity, zero, carry i sign), ovaj registar je četvorobitni. Na četvorobitni ulazni port ul_reg se dovode signali markera uslova iz aritmetičko-logičke jedinice reg_ul(3)-parity, reg_ul(2)-zero, reg_ul(1)-carry1, reg_ul(0)-sign. Port za dozvolu upisa u registar je kontrolisan upravljačkim signalom PSWLd, koji generiše upravljačka jedinica. Ovaj registar ima ulazni port za setovanje carry bita, koji je kontrolisan upravljačkim signalom SRCarry. Specifičnost ovog bloka ogleda se u dva jednobitna porta za taktovanje: clk, i clk_carry. Jednom se dovodi signal clk1 i on služi za taktovanje svih bitova sem carry bita, a drugom clk_carry koji služi za taktovanje carry bita, a dovodi se sa izlaznog porta bloka clk_carry1, koja će kasnije biti opisana. Ovo je urađeno da bi se obezbedilo da se carry upisuje samo kada se javljaju promene u njegovoj vrednosti. Na slici 80 je data blokovski prikaz ovog registra sa odgovarjućim signalima.

signaldata_bus

signal IRLdsignal reset

signal clk1 signalIR_iz

Reg3

Slika 79 – IR registar sa signalima

marker signali

signal PSWLdsignal clk_carry

signal clk1 markersignali

Slika 80 – PSW registar sa signalima

Page 43: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.5 VHDL opis bloka clk_carry1 Ovaj blok je već pomenut u predhodnom opisu. Kao ulazni port se javlja jednobitni port (clk) na koji se dovodi signal za taktovanje izvršne jedinice, zatim jednobitni port SRC na koji se dovodi signal SRCarry od čije vrednosti zavisi da li se vrši posatvljanje carry bita instrukcijama SETC ili RESC (SRCarry=1), ili se pak upisuje usled izvršenja neke aritmetičke operacije (SRCarry=0). Trobitni ulazni port sel prima signal selekcije operacije koja se izvršava u aritmetičko-logičkoj jedinici, i u slučaj da taj signal odgovara nekoj od operacija ADD, SUB ili NEG dozvoljava upis novog stanja carry bita. Dakle, ova logika omogućava da se upis novog stanja carry bita izvrši ili putem instrukcije ili putem izvršavanja neke od aritmetičkih operacija koje su gore navedene. Na slici 80 je dat ovaj blok sa signalima, kao i sam VHDL opis.

5.1.6 VHDL opis blokova diver,driver1 i driver8 Blokovi driver, driver1 i driver8 predstavljaju tri trostatički drajver. U strukturi procesora javljaju se više različitih vrsta trostatičkih drajvera. Razlika je samo u broju bitiva koje prenose, tako da imamo jednobitne, osmobitne i šesnestobitne drajvere. Šesnestobitni trostatički drajveri se koriste za povezivanje izlaznih portova svih registara u izvršnoj jedinici sa internom magistralom. Ovi drajveri su do sada pri opisu registara opisani, i pri tom je ukazano na upravljačke signale koji upravljaju njima. Dakle, oni imaju šesnestobitni ulazni ul i izlazni port iz, kao i jednobitni port dozvole en. Kada se na port en dovede jedinica drajver preslikava signal na portu ul na port iz, a kada je en na nuli na izlaznom portu iz se pojavlju stanje visoke impedanse. Na slici 82 je prikazan jedan od njih, sa odogvarjućim signalima. Drajveri sa 16 bitova i jednobitni drajveri su korišćeni u registarskom polju, čija je struktura prikazana u poglavlju 2.

Page 44: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.7 VHDL opis blokova parity_blok i zero_blok Blokovi parity_blok i zero_blok služe za generisanje zero i parity bita. Imaju šesnestobitni ulazni port i jednobitni izlazni port. Na ulaz ovih blokova se dovodi signal sa izlaza multipleksera ALU-a ALU_iz (biće kasnije opisan), koji rezultat operacije koja je izvršena u ALU-u. Na izlazu se generiše zero bit, odnosno parity bit. Siganli sa izlaznih portova se vode na odgovarajuće ulazne portove PSW registra. Ako je rezultat nula zero bit se postavlja na jedinicu, u ostalim slučajevima je se postavlja na nulu. Blok za generisanje parity bita generiše bit parne parnosti, što znači da ukupan broj jedinica zajedno sa bitom parnosti paran. Blok prikaz ovih entiteta sa signalima je dat na slici 83, uz prikazan VHDL opis.

signal data_bus

signal ACBus

signal AC_iz

‘1’

IR_izsignal opkod

‘1’RegLd

ul1_I

Slika 82– 16,8,1-bitni trostaticki drajver

Page 45: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.8 VHDL opis bloka proširenje Blok proširenje se nalazi odmah iza DR registra. Od portova poseduje šesnestobitni ulazni port ul_DR na koji se dovodi izlazni signal iz DR-a DR_iz, dva jenobitna porta zn i pr na koje se dovode upravljački signali zn i pr, respektivno. Kada je pr na nuli nema proširenja i signal sa šesnestobitnog ulaza DR_ul se prenosi na šesnestobitni izlaz DR_iz. Kada je pr na jedinici ima proširenja i to nulama na mesto 8 MS bitova kada je zn na jedinici ili jedinicama kada se na ulazni port zn dovede nula. Preko šesnestobitnog drajvera signal sa izlaza logike Pros_iz za proširenje se postavlja na internu magistralu procesora. Blok koji predstavlja ovu logiku je dat na slici 84.

Page 46: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.9 VHDL bloka mux3u1 Blok mux3u1 predstavlja multiplekser, koji sadrži tri jednobitna ulazna porta car_add, car_sub, car_neg, na koje se dovode signali prenosa (carry_add,carry_sub,carry_neg) pri izvršavanju operacija ADD, SUB i NEG. Na trobitni ulazni port sel se dovodi trobitni upravljački signal ALUSel, koji određuje koji će se od navedenih carry signala preneti na jednobitni izlazni port carry_bit. Signal carry sa ovog porta se dalje vodi u PSW registar na upis. Blok sa signalima ovog multipleksera je dat na slici 85, a pored i VHDL opis.

Page 47: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.10 VHDL opis bloka mux2u1 Blok mu2u1 je multiolekser se koristi kod postavljanja carry bita. Ima dva ulazna jednobitna porta ul1 i ul2, jedan jednobitni selektorski ulazni port sel i jedan jednobitni izlazni port iz. Na selektrorski port se dovodi upravljački signal SRCarry koji određuje da li će se postavljanje carry-a vršiti preko instrukcija SETC i RESC ( tada je SRCarry na 1) ili će se postavljati preko ALU-a( tada je SRCarry na 0). Na ulazni port ul1 se dovodi signal carry_bit iz ALU-a, a na ul2 se dovodi bit bit signal najmanje težine signala opkod. Ovaj bit opkoda je 1 za SETC i 0 za RESC tako da se pri izvršavanju ovih instrukcija carry postavlja na 1 odnosno 0. Blok koji predstavlja ovaj multiplekser dat je na slici 86 zajedno sa VHDL opisom.

5.1.11 VHDL opis bloka MUX_ALU Na slici 12 pikazana je struktura ALU-a. Kao jedna od komponenata javlja se i blok MUX_ALU koji je multiplekser 8*16 bitova u 16 bitova. Ovaj multiplekser ima pet 16-bitnih ulaznih portova ul_DR, ul_AC,ul_add, ul_sub, ul_inc. Selektorski ulazni port sel ima tri bita, dok izlazni port iz_MUX ima šestnaest bitova. Na svaki od ovih ulaznih portova dovode se DR_iz, AC_iz, rez_add, rez_sub, rez_neg signali respektivno. DR_iz je signal sa izlaza drajvera DR registra, AC_iz se dovodi direktno sa izlaza AC-a, rez_add je signal koji se dovodi sa izlaznog porta sabirača, rez_sub je signal koji se dovodi sa izlaznog porta oduzimača, rez_neg je signal koji se dovodi sa izlaznog porta kola za promenu znaka. Ova tri signala se na osnovu selektorskog signala ALUSel koji se dovodi na selektorski ulazni port sel prosleđuju na izlazni port iz_MUX. Ostalih pet kombinacija selektorskog signala odgovaraju prosleđivanju na izlazni port preostalih pet operacija koje izvršava ALU nad ulaznim signalima DR_iz i AC_iz. To su operacije OR, AND, NOT, XOR, LD. Nadalje je dat VHDL opis ovog bloka, a na slici 87 je data i blokovski prikaz sa signalima.

Page 48: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.12 VHDL opis bloka mux_eksterni Blok mux_eksterni je dobio ovaj naziv zbog toga što predstavlja multiplekser preko kojeg se distrubuira adresa prema eksternoj memoriji. Ona je u ovom slučaju podeljena na programsku ROM memoriju i RAM memoriju u koju se upisuju podaci iz procesora pomoću instrukcije ST (store). Zbog jednostavnosti testiranja procesora je uzeto da je opseg adresa za ROM od 0000(hex) do 7FFF(hex), dok se RAM adresira adresama iz opsega od 8000(hex) do FFFF(hex). Eksterni multiplekser ima šestnaestobitni ulazni port adresa na koji se dovodi signal AR_iz sa izlaznog porta AR-a. Ima dva šestnestobitna izlazna porta adresa_RAM i adresa_ROM na koje se preslikava signal sa ulaznog porta u zavisnosti od signala koji se

Page 49: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

dovodi na ulazni selektorski port sel. Signal koji se dovodi na ovaj port je bit najveće težine signala adrese AR_iz (AR_iz(15)). Kada je on nula adresa se prosleđuje programskoj ROM memoriji, a kada je na jedinici prosleđuje se RAM memoriji. Blokovski prikaz je dat na slici 88, aVHDL opis na sledećoj strani.

5.1.13 VHDL opis bloka clock_blok Ovaj blok služi da generiše fazno pomerene takt signale za taktovanje izvršne jedinice (clk1) i upravljačke jedinice(clk2) procesora, na osnovu takt signala koji se dovodi na jednobitni ulazni port procesora clk. Ovaj blok ima jedan jednobitni ulazni port clk na koji se dovodi signal takta clk i dva izlazna jednobitna porta clk1 i clk2 na kojima se javljaju signali clk1 i clk2. Radi se zapravo o jednom invertoru i jednom jednobitnom drajveru. Na slici 89 su dati portovi i signali ovog bloka, pored VHDL opisa.

Page 50: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.14 VHDL opis blokova I_kolo, NOT_kolo, XOR_kolo Pri realizaciji nekih složenijih celina u okviru ovog projekta, kao što su reistarsko polje, sabirač itd., korišćena su neka osnovna logička kola (AND kolo, NOT kolo, XOR kolo). Neka od njih su složenija jer na ulazima i izlazima imaju višebitne operande. Na slici 90 su dati portovi ovih kola, a o konkretna upotreba je naznačena u opisu složenijih blokova, gde se ova kola koriste.

Page 51: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.15 VHDL opis bloka CLAU Za realizaciju 16-bitnog sabirač upotrebljena su četvorobitni CLA (Carry Look Ahead) sabirači. Blok CLAU predstavlja jedan od njih. Ovaj sabirač ima dva četvorobitna ulazna porta P i G i četvorobitni izlazni port CO. Dalje, ima jedna ulazni jednobitni port CI za prenos iz predhodnog sabirača, i dva jednobitna izlazna porta GG i GP. Ovaj sabirač je realizovan uz pomoć I i ILI logičkih kola, što se može i zaključiti na osnovu priložene VHDL arhitekture. Na slici 91 je data blok šema sa signalima jednog od sabirača koji je upotrebljen za realizaciju 16-bitnog sabirača.

5.1.16 VHDL opis bloka FAPG Ovaj entitet nosi naziv FAPG. Ovde je prikazan VHDL opis i na slici 92 prikaz portova. Realizovan je od osnovnih logičkih kola, kao što se može primetiti iz opisa Koristi se zajedno sa blokom CLAU za struktuiranje šesnestobitnog sabirača (blok sabirac).

Page 52: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.17 VHDL opis bloka dekoder Blok dekoder se koristi za adresiranje registara u okviru registarskog polja. Ima četvorobitni ulazni port adr na koji se dovodi signal adrese registra AR_iz[3:0] sa izlaznog porta AR-a. Na izlazu dekodera imamo 16-bitni port iz_dek kog koga je samo jedan bit aktivan (na jedinici) za odgovarajuću adresu čime se adresira i dozvoljava upis ili čitanje iz jednog od registra. Aktivni signal na nekom od jednobitnih izlaznih portova d_iz(i) se vodi na jedan od ulaznih portova ul1 dvoulazno I kolo, čiji je drugi ulazni port ul2 pobuđen upravljačkim signalom RegLd, koji omogućava upis u adresirani registar opšte namene. Na slici 92 je su prikazani portovi i odgovarajući signali.

Page 53: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.18 VHDL opis bloka mux_rp Blok mux_rp je multiplekser registarskog polja koji se koristi kako bi na osnovu selektorskog signala koji predstavlja adresu registra prosledio na izlaz sadržaj adresiranog registra. Ovaj multiplekser ima šestnaest 16-bitnih ulaznih portova (iz_r0,iz_r2,...,iz_r15) na koje se dovode signali sa izlaznih portova registara registarskog polja (r_out0, r_out1,...,r_out15). Na ulazni četvorobitni selektorski port adr se dovodi signal adrese AR_iz registra sa izlaza AR-a. Šestnaestobitni izlazni port reg_bus je povezan na internu magistralu preko šesnaestobitnog drajvera koji je kontrolisan upravljačkim signalom RegBus. Blok šema koja je prikazana na slici 93 prikazuje pomenute portove i signale.

Page 54: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.19 VHDL opis bloka maper Blok maper predstavlja ekstender upravljačke jedinice ima funkciju da na osnovu signala opkoda generiše početnu adresu rutine u mikroprogramskoj memoriji koja sadrži upravljačke signale potrebne za izvršenje instrukcije specificirane opkodom. Ulazni port mapera MAP_ul je osmobitni, jer je i opkod dužine osam bitova. Signal sa izlaza registra IR opkod se dovodi na ovaj ulazni port. Maper na jedanaestobitnom izlazni portu MAP_iz, na osnovu opkoda, generiše izlazni signal MAP_out koji se vodi na ulaz multipleksera upravljačke jedinice. Blok šema sa portovima i signalima je data na slici 94.

5.1.20 VHDL opis bloka MUL_16u1 Blok MUL_16u1 je multiplekser upravljačke jedinice i ima ulogu da generiše signal koji se ispituje od strane logike upravljačke jedinice sa ciljem da se ukaže na narednu adresu mikroinstrukcije u mikroprogramskoj memoriji. Ovaj multiplekser ima četri jednobitna ulazna porta (sign, parity_P,carry, zero) na koje se dovode signali sa izlaznih portova PSW registra. Ovi signali predstavljaju trenutne vrednosti markera uslova i to su parity_P1, sign1, zero1 i carry1. Multiplekser upravljačke jedinice poseduje četvorobitni selektorski port cond na koji se dovode signali sa izlaznih portova mikroprogramske memorije cond[3:0] koji su deo svake mikroinstrukcije. Na osnovu vrednosti signala na selektorskim ulazima bira se koji će se od četrnaest kombinacija marakera uslova proslediti na jednobitni izlazni port MUL_out. Dve vrednosti selektorskog signala su rezervisane za prosleđivanje nule, odnosno jedinice na izlazni port. Arhitektura koja ukazuje na kombinacije markera uslova koje su moguće data je u VHDL opisu koji je dat. Prikaz signala i portova ovog multipleksera je dat na slici 95.

Page 55: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.21 VHDL opis bloka MUL_3u1 Blok MUL_3u1 je multiplekser adrese kod upravljačke jedinice i ima funciju da na osnovu selektorskih signala sel na njegovim ulaznim selektorskim portovima sel[1:0] preslika signal adrese naredne mikroinstrukcije sa jednog od tri jedanaestobitna porta (adr0, adr1, adr2) na jedanaestobitni izlazni port (adr). Na port adr0 se dovodi signal INC_out sa izlaznog porta inkrementera tekuće adrese iz_reg. Na port adr1 se dovodi signal REG_out sa izlaznog porta registra koji sadrži adresu na koju ukazuje tekuća instrukcija. Na port adr2 se dovodi signal MAP_out sa izlaznog porta mapera upravljačke jedinice MAP_iz. Signal reg_adr_in sa izlaznog porta multipleksera adrese adr se vodi na ulazni port registra adrese tekuće mikroinstrukcije ul_reg. Slika 96 daje prikaz signala i portova ovog multipleksera.

Page 56: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.22 VHDL opis bloka inkrementer Blok inkrementer je realizovan kao registar koji ima mogućnost inkrementiranja svog sadržaja. Ima ulogu da generiše na svom adresu koja je za jedan veća od tekuće adrese mikroinstrukcije. Ima jedanaestobitni ulazni port ul_reg na koji se dovodi signal Reg_adr_out sa izlaznog porta registra tekuće adrese reg_out. Poseduje i jednobitni port za taktovanje clk na koji se dovodi signal clk2 sa izlaznog porta bloka za taktovanje clk2. Jedanaestobitni izlazni port iz_reg šalje signal naredne adrese INC_out na ulzni port adresnog multipleksera adr0. Na slici 97 su pomenuti signali i portovi prikazani uz dat VHDL opis.

Page 57: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.23 VHDL opis bloka reg_adrese2 Kao što se i iz naslova može naslutiti ovaj blok je registar i koristi se za trenutno čuvanje adrese mikroinstrukcije. Sadrži jedanaestobitni ulazni port ul_reg i jedanaestobitni izlazni port iz_reg. Ovaj registar sadrži još i port za taktovanje clk. Javlja se u dva slučaja u upravljačkoj jedinici. U prvom slučaju se upis vrši na uzlaznu ivicu signala clk2 koji se dovodi na port clk. Služi za čuvanje adrese tekuće mikroinstrukcije. Na ulazni port ul_reg se dovodi signal Reg_adr_in sa izlaznog porta multipleksera adrese adr. Na izlaznom portu iz_reg se pojavljuje signal Reg_adr_out koji adresira mikroprogramsku memoriju, preko adresnog ulaznog porta mikroprogramske memorije adresa. U dugom slučaju se koristi za čuvanje naredne adrese mikroinstrukcije koja je specificirana u samoj mikroinstrukciji sa 11 bitova najmanje težine. U ovom slučaju se upis vrši na silaznu ivicu signala takta clk2 koji se dovodi na port za taktovanje registra clk. Na ulazni port ul_reg dolazi signal INC_out sa izlaznog porta inkrementera iz_reg. Na izlaznom portu ovog registra iz_reg se pojavljuje signal REG_out koji se vodi na ulazni port multipleksera adrese adr1. Na slici 98 je prikazan blok sa portovima i signalima koji su ovde opisani.

Page 58: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.1.24 VHDL opis bloka logika Blok logika ima zadatak da na osnovu izlaznog signala MUL_iz (sa izlaznog porta MUL_out multipleksera upravljačke jedinice koga smo opisali u poglavlju 5.1.20) i BT signala (koji dolazi sa izlaznog porta mikroprogramske memorije kao deo tekuće mikroinstrucije) generiše selektorski signal sel obima dva bita koji se vodi na selektorski ulazni port sel adresnog multipleksera upravljačke jedinice. Blok poseduje ulazni port reset, na koji uzlazna ivica signala postavlja izlazni dvobitni port sel na “10”. Signal MUL_iz se dovodi na ulazni port MUL_iz, a signal BT na ulazni port BT. Prikaz portova i signala je dat na slici 99, uz VHDL opis ove logike.

Page 59: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2 VHDL opis složenih jedinica U ovom poglavlju dat je opis složenijih komponenata koje ulaze u sastav procesorskog sistema, a koje su bazirane na osnovnim komponentama koje su date u predhodnom poglavlju. Za sve složene komponente prezentovano je objašnjenje o funkciji koju ima posmatrana komponenta, data je slika bloka komponente sa portovima i signalima, i dat je VHDL opis komponente. Dat je opis sledećih komponenata: 16-bitnog sabirača, 16-bitnog oduzimača, kola za promenu znaka, aritmetičko-logičke jedinice, registarskog polja, mikroprogramske memorije, izvršne jedinice i upravljačke jedinice. 5.2.1 VHDL opis bloka sabirac Blok sabirac predstavlja 16-bitni sabirač koji se koristi kod ovog procesora i realzovan je na bazi četvorobitnog CLA sabirača (opisanog u poglavlju 5.1.15) i kombinacione logike (opisane u poglavlju 5.1.16). Ova komponenta je sastavni deo ALU-a. Ulazni portovi ovog sabirača su šestnaestobitni A, B portovi i jednobitni port za ulazni prenos CI. Izlazni portovi su šestnaestobitni izlazni port sume S i jednobitni izlazni port prenosa CO. Na ulazni port A dolazi signal ul_AC sa ulaznog porta ALU-a ul_AC.Preko ovog porta se jedan od sabiraka dobija sa izlaza registra AC. Na ulazni port B dolazi signal ul_DR sa ulaznog porta ALU-a ul_DR. Preko ovog porta sabirač dobija drugu sabirak preko interne magistrale procesora iz registra DR. Na ulazni port CI se dovodi signal cin sa ulaznog porta cin ALU-a, preko kojeg se dobija vrednost trenutnog stanja carry bita sa izlaznog porta PSW registra. Signal rez_add se sa izlaznog porta sabirača S vodi na ulazni port multipleksera ALU-a (opisanog u poglavlju 5.1.11) ul_add. Na kraju, signal carry_add sa izlaznog porta CO sabirača se vodi na ulazni port car_add multipleksera 3 u 1 opisanog u poglavlju 5.1.9. VHDL opis opisuje arhitekturu ovog sabirača uz signale i portove ovog sabirača prikazanih na slici 100.

Page 60: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.2 VHDL opis bloka oduzimac Blok oduzimac predstavlja 16-bitni oduzimač koji je ovde realizovan korišćenjem 16-bitnog sabirača koji je predhodno opisan i logike za formiranje dvojičnog komplementa. Oduzimanje je organizovano tako da se od sadržaja registra AC oduzima sadržaj registra DR. Na ulazni port AC_ul dolazi signal ul_AC sa ulaznog porta ALU-a ul_AC. Preko ovog porta se umanjenik dobija sa izlaza registra AC. Na ulazni port DR_ul dolazi signal ul_DR sa ulaznog porta ALU-a ul_DR. Preko ovog porta oduzimač dobija umanjilac preko interne magistrale procesora iz registra DR. Signal rez_sub se sa izlaznog šestnaestobitnog porta raz vodi na ulazni port multipleksera ALU-a (opisanog u poglavlju 5.1.11) ul_sub. Na kraju, signal carry_sub sa izlaznog porta carry oduzimača se vodi na ulazni port car_add multipleksera 3 u 1 opisanog u poglavlju 5.1.9. VHDL opis opisuje arhitekturu ovog oduzimača uz signale i portove ovog sabirača prikazanih na slici 101.

Page 61: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.3 VHDL opis bloka promena_znaka Blok promena_znaka je kolo koje je takođe realizovano na bazi sabirača i logike za komplementiranje, na taj način što se operand komplementira (jedinični komplement) i sabira sa nulom, pri čemu je signal na portu za ulazni prenos sabirača postavljen stalno na jedinicu. Ovo kolo ima šestnaestobitni ulazni port DR_ul na koji se dovodi signal ul_DR sa ulaznog porta ALU-a ul_DR. Na šestnaestobitnom izlaznom portu neg generiše signal rez_neg koji se vodi na ulazni port ul_neg multipleksera ALU-a. Signal carry_neg sa izlaznog porta carry se vodi na ulazni port car_neg multipleksera 3 u 1 opisanog u poglavlju 5.1.9. Blok šema sa portovima i signalima kola za promenu znaka je data na slici 102.

Page 62: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.4 VHDL opis bloka ALU Blok ALU je jedna od složenijih jedinica ovog procesora obzirom da sadrži brojne komponente koje smo predhodno opisali, a koje su sada povezane u jednu celinu. U strukturu ALU-a ulaze sledeće komponente: 16-bitni sabirač (5.2.1), 16-bitni oduzimač (5.2.2), kolo za promenu znaka (5.2.3), multiplekser ALU-a ( 5.1.11), multiplekser 3 u 1 (5.1.9), multiplekser 2 u 1 (5.1.10), blokovi za generisanje parity i zero bita (5.1.7),drajver1 (5.1.6). Način međusobog povezivanja ovih komponenata je dat u okviru poglavlja koja opisuju ove komponente. Kada se radi o portovima, ALU ima dva ulazna 16-bitna porta ul_AC i ul_DR na koje se dovode signali AC_iz ( sa izlaznog porta iz_reg AC-a) i data_bus sa interne magistrale procesora.Preko ove magistrale ALU dobija operand iz DR-registra. Na ulazni selektorski trobitni port sel dovodi se upravljački signal ALUSel sa izlaznog porta up_sig[2:0] upravljačke jedinice. Ovaj signal određuje koja će se od operacija izvršiti nad operandima. Na ulaznom jednobitnom portu SRC1 se dovode signal SRCarry sa izlaznog porta upravljačke jedinice up_sig[24] koji određuje da li će se postavljane carry bita vršiti preko ALU-a ili putem instrukcija SEC i RESC. Na ulaznom jednobitnom portu SRC2 se dovodi signal opkod[2] sa izlaznog porta iz_reg IR registra koji određuje da li će se, pri postavljanju carry bita izvršenjem instrucija, carry bit setovati ili resetovati. Na jednobitnom ulaznom portu cin se dovodi signal carry1 sa izlaznog porta iz_reg(1) PSW registra. Na izlazni 16-bitni port iz_ALU se pojavljuje signal ALU_iz koji se vodi na ulazni port ul_reg AC-registra. ALU generiše na četvorobitnom izlaznom portu PSWul signale markera uslova ( parity_P, zero,carry, sign), koji se vode na ulzni port ul_reg PSW registra. Na slici 103 su prikazani signali i portovi ALU jedinice uz priložen VHDL opis.

Page 63: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti
Page 64: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.5 VHDL opis bloka reg_polje Registarsko polje kao složena jedinica, realizovana kao blok reg_polje, sadrži 16 registara tipa reg1 koji je opisan u 5.1.1, četiri 16-bitna drajvera i četiri jednobitna drajvera (5.1.6), 16 dvoulaznih I kola (5.1.14), dekoder registarskog polja (5.1.17) i multipleser registarskog polja (5.1.18). Struktura registarskog polja je prikazana na slici 11. Kao jedinstveni entitet registarsko polje sadrži 16-bitini ulazni port ul_bus na koji se dovodi signal sa interne magistrale data_bus. Na selektorski četvorobitni ulazni port adr dovodi se signal AR_iz[3:0] sa izlaznog porta iz_reg AR registra. Upravljački signal RegLd se dovodi na ulazni port reg_ld sa izlaznog porta upravljačke jedinice up_sig[9]. Na ulazni port takta clk se dovodi signal clk1 sa izlaznog porta clk1 bloka za taktovanje. Izlazni 16-bitni port iz_bus predaje signal RP_iz na internu magistralu preko 16-bitnog drajvera na čiji se port dizvole dovodi upravljački signal RegBus sa izlaznog porta upravljačke jedinice up_sig[8]. Na slici 104 je prikazana blok šema registarskog polja sa naznačenim signalima i portovima.

Page 65: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti
Page 66: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.6 VHDL opis bloka mikroprogramska_memorija Blok mikroprogramska_memorija se nalazi u okviru upravljačke jedinice i sadrži vrednosti upravljačkih signala organizovanih u obliku mikroinstrukcija. Ovi upravljački signali upravljaju radom izvršne jedinice pri obavljanju mikrooperacija na RTL nivou. Pored upravljačkih signala svaka mikroinstrukcija sadrži condition bita 4 bita, jedan bit za BT i adresu naredne instrukcije address. Format mikroinstrukcije je već objašnjen u uvodnom delu poglavlja 4.5 i prikazan na slici 70. Entitet mikroprogramske memorije sadrži 11-bitini ulazni port adresa na koga se dovodi adresni signal reg_adr_out sa izlaznog porta iz_reg registra tekuće adrese. Na izlaznom portu (obima 41 bit) podaci se za konkretnu adresu pojavljuje 41-bitni signal. Prvih četiri bitova najveće težine predstavljaju cond signal i vode se na ulazni selektorski port cond multipleksera upravljačke jedinice. Sledeći bit ovog signala predstavlja BT signal i on se vodi na ulazni port BT bloka logike upravljačke jedinice. Narednih 25 bitova ovog signala predstavljaju upravljačke signale, koji se vode na 25-bitni izlazni port up_sig upravljačke jedinice. Njihov raspored i vrednosti koje uzimaju za svaku mikrooperaciju su redom dati u tabelama na slikama od 71 do 76. Poslednjih 11 bitova najmanje težine ovog signala predstavljaju signal add tj. adresu naredne instrukcije i vode sa na ulazni port ul_reg registra naredne adrese. Na slici 105 su prikazani portovi i signali mikroprogramske memorije. Što se tiče VHDL opisa priložen je samo opis entiteta, obzirom da je sadržaj mikroprogramske memorije već u tabelama na slikama od 71 do 76. Na slikama 105.1 i 105.2 prikazana je tabela početnih adresa rutina sadržanih u mikroprogramskoj memoriji. Adrese su date heksadecimalno.

Page 67: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik instrukcije

Adresa prve mikroinstrukcije rutine

(HEX) OR1N 20 OR1D 28 OR1I 30 OR1R 38

AND1N 40 AND1D 48 AND1I 50 AND1R 58 NOT1N 60 NOT1D 68 NOT1I 70 NOT1R 78 XOR1N 80 XOR1D 88 XOR1I 90 XOR1R 98 ADD1N A0 ADD1D A8 ADD1I B0 ADD1R B8 SUB1N C0 SUB1D C8 SUB1I D0 SUB1R D8 NEG1N E0 NEG1D E8 NEG1I F0 NEG1R F8 LD1N 100 LD1D 108 LD1I 110 LD1R 118

JMP1N 120 JMP1D 128 JMP1I 130 JZ1N 140 JZ1D 148 JZ1I 150

JNZ1N 160 Slika 105.1 – Tabela adresa prvih mikroinstrukcija rutina – prvi deo tabele

Page 68: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Mnemonik instrukcije

Adresa prve mikroinstrukcije rutine

(HEX) JN1D 168 JNZ1I 170

MOV1R 198 ST1N 1A0 ST1D 1A8 ST1I 1B0 INC 1C0

SETC 1E0 RESC 200 NOP 7FF

Slika 105.2 – Tabela adresa prvih mikroinstrukcija rutina –drugi deo tabele

Page 69: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.7 VHDL opis bloka upravljačka_jedinica Blok upravljačka_jedinica zajedno sa blokom izvršna_jedinica predstavljaju najsloženije entitete ovog procesorskog sistema. U njenu strukturu ulaze sledeće komponente: maper (5.1.19), MUL_16u1 (5.1.20), MUL_3u1 (5.1.21), inkrementer (5.1.22), reg_adrese2 (5.1.23), logika (5.1.24) i mikroprogramska_memorija (5.2.6). Način na koji su povezane ove komponente dat je kroz opis svake od ovih komponenata pojedinačno u numerički označenim odeljcima. U ovom odeljku je ukazano na portove i signale preko kojih je upravljačka jedinica povezana ostalim delom procesorskog sistema, kao i na VHDL opis koji će biti priložen. Upravljačka jedinica ima osmobitni ulazni port opkod na koji se dovodi osmobitni signal sa izlaznog porta opkod izvršne jedinice. Ako pogledamo u unutrašnju strukturu izvršne jedinice videćemo da se ovaj signa dovodi sa izlaznog porta IR_iz instrukcionog registra (IR). Četri jednobitna ulazna porta upravljačke jedinice su parity, zero, carry i sign na koje se dovode signali sa četvorobitnog izlaznog porta izvršne jedinice PSW_bit. Opet ako pogledamo u unutrašnju strukturu izvršne jedinice videćemo da su to signali sa izlaznog porta iz_reg PSW registra. Na jednobitni ulazni port clk2 dovodi se signal takta clk2 sa izlaznog porta bloka za taktovanje clk2. Ulazni port reset prihvata spoljašnji asinhroni signal reset sa ulaznog porta procesora reset. Na izlaznom 25-bitnom portu upravljačke jedinice javljaju se upravljački siganli up_sig[24:0]. Svaki bit ovog sinala odgovara jednom upravljačkom signalu koji se vode na odgovarajuće portove izvršne jedinice. Na slici 106 su prikazani portovi ovog entiteta i odgovarajući signali na njima. Nadalje je priložen VHDL opis upravljačke jedinice.

Slika 106– Upravljačka jedinica

signal opkod

signal reset

upravljački signali

signal clk2

signal PSW_bit(3)signal PSW_bit(2)signal PSW_bit(1)signal PSW_bit(0)

Page 70: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti
Page 71: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.8 VHDL opis bloka izvršna_jedinica Struktura ove jedinice je data na slici 9. Upravo po toj blok šemi je izvršen VHDL opis ove jedinice, a na osnovu ranije opisanih komponenata koje ulaze u njenu strukturu. Komponente ranije opisane, a koje ulaze u sastav izvršne jedinice su: reg1 (5.1.1), reg2 (5.1.2), reg3 (5.1.3), PSW (5.1.4), blok clk_carry (5.1.5), drajver (5.1.6), reg_polje (5.2.5), blok proširenje (5.1.8), ALU (5.2.4). Izvršna_jedinica sadrži ulaznoizlazni port data_bus preko koga se prihvata signal podaci iz spoljašnje memorije. Preko jednobitnog porta clk se prihvata signal clk1 za taktovanje izvršne jedinice. Ovaj signal se dobija sa izlaznog porta clk1 bloka za taktovanje. Na jednobitni port reset se dovodi signal reset spolja radi postavljanja IR registra i PC registra u poznato stanje. Preko osmobitnog izlaznog porta opkod izvršna jedinica šalje signal opkod na ulazni osmobitni port opkod upravljačke jedinice. Na 21 ulaznih jednobitnih portova bloka izvršna_ jedinica se dovode upravljački signali sa sa 25-bitnog izlaznog porta up_sig bloka upravljačka_jedinica. Ostala 4 upravljačka signala se koriste za upravljanje spoljnjom magistralom i memorijom (WR, RD, MW, MR). Preko ulaznoizlaznog porta PSW_bit šalju se signali stanja markera na ulazne portove bloka upravljačka_jedinica (parity_P, zero, carry, sign). Na slici 107 su prikazani pomenuti portovi i signali, a na dalje je dat VHDL opis bloka izvršna_jedinica.

signal ALUSelACBus

PSW_bit(3:0)

ACInc

adr(15:0)

ACLd

data_bus(15:0)ALUSel(2:0)

opkod(7:0)

ARBusARLdDRBusDRLdIRBusIRLdPCBusPCIncPCLdPSWLdRegBusRegLdSRCarry

clk

pr

reset

zn

IZVRSNA_JEDINICA

izvrsna_jedinica

signal ACBussignal ACincsignal ACLdsignal ARBussignal ARLdsignal DRBussignal DRLdsignal IRBussignal IRLdsignal PCBussignal PCIncsignal PCLdsignal PSWLd

signal RegLdsignal RegBus

signal SRCarrysignal prsignal zn

signal clk1signal reset

signal adrsignal podaci

signal opkodsignali

parity_P,zero,carry,sign

Slika 107 - Izvršna jedinica

Page 72: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti
Page 73: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti
Page 74: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.9 VHDL opis bloka ROM Spoljašanja programska memorija je realizovana kao blok ROM u koju je upisana sekvenca instrukcija. Ovaj blok predstavlja ROM memoriju. U cilju testiranja procesorskog sistema ove instrukcije se učitavaju, a zatim i izvršavaju. Kao rezultat simulacije dobijaju se talasni oblici koji nam pokazuju stanje svih signala procesorskog sistema za vreme izvršenja svaka od mikrooperacija. Posmatranjem ovih talasnih oblika je moguće zaključiti da li se zadate instrukcije izvršavaju korektno. Ova memorija ima 16-bitni ulazni port adr na koji se dovodi adr signal sa izlaznog porta eksternog multipleksera adresa_ROM. Ova memorija se može adresirati adresama iz opsega od 0000(hex) do 7FFF(hex). Opseg od 8000(hex) do FFFF(hex) je rezervisan za RAM memoriju u koju se upisuju podaci iz procesora. Na izlaznom 16-bitnom portu podaci programske memorije 16-bitni signal podaci se šalje na internu magistralu procesora preko drajvera koji je upravljan upravljačkim signalom MR. Ovaj signal se generiše sa izlaznog porta up_sig[6] upravljačke jedinice. Na ulazne jednobitne portove RD i WR se dovode upravljački signali RD i WR sa izlaznih portova up_sig[3], up_sig[4] upravljačke jedinice. Na osnovu vrednosti ovih upravljačkih signala se omogućava čitanje iz programske memorije. Na slici 108 je prikazan blok programske memorije sa signalima. Na slici 109 je prikazana sekvenca instrukcija koja je sadržana u programskoj memoriji.

RD

podaci(15:0)

WRadr(15:0)

ROM

rom

signal RD

signal WR

signal adr

Slika 108 – Programska memorija

RESCLD #2 OR 10JMP 12MOV $3JNZ 13LD #2ADD @13JMP 20 ST 25#-neposredno adresiranje$-registarsko adresiranje@- indirektno adresiranjeBez oznake- direktno adresiranje

Slika 109 – Programska sekvenca sadržana u programskoj memoriji

Page 75: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti
Page 76: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.2.10 VHDL opis bloka memorija_prog Blok memorija_prog predstavlja RAM memoriju i uvedena je u sistem radi omogućavanja testiranja instrukcije ST za bilo koji vid adresiranja. Portovi ovog entiteta su istovetni sa onim kod programske memorije kao i signali, s tom razlikom što ovde adresiramo opsegom adresa od 8000(hex) do FFFF(hex) (tj. mora biti jedinica na bitu najveće težine adrese), signal adrese adr se uzima sa izlaznog porta adresa_RAM eksternog multipleksera. Na slici 110 je prikaz portova i signala, a zatim je priložen i VHDL opis ove memorije.

signal RD

signal WR

signal adr

Slika 110 – RAM memorija

RD

podaci(15:0)

WRadresa(15:0)

RAM

memorija

signal podaci

Page 77: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.3 VHDL opis bloka processor Blok processor kao entitet najveće složenosti je sastavljen i samo od takođe složenih entiteta. Od opisanih blokova za realizaciju procesora koristimo: blok clock_blok (5.1.13), blok izvršna_jedinica (5.2.8) i upravljačka_jedinica (5.2.9). Način na koji su povezani ovi entiteti je već opisan prilikom opisivanja svakog od pomenutih entiteta. Blok processor ima 16-bitni ulaznoizlazni port data_bus preko koga komunicira sa već opisanom RAM i ROM memorijom. Na jednobitni ulazni port reset se dovodi signal reset koji inicijalizira IR registar, PC registar i logiku upravljačke jedinice. Registri se resetuju na uzlaznu ivicu signala reset. Na jednobitni ulazni port clk se dovodi signal takta clk na osnovu koga blok za taktovanje generiše na svojim izlaznim portovima clk1 i clk2 takt signale za izvršnu (clk1) i upravljačku (clk2) jedinicu. Blok processor ima i 16-bitni izlazni adresni port adresa preko kojeg se šalju signali adrese spoljašnjoj memoriji. Na četiri izlazna porta procesora (WR,RD,MW,MR) se postavljaju signali WR,RD,MW,MR sa izlaznih portova upravljačke jedinice.Ovim signalima se upravlja memorijma (WR i RD) i drajverima za sprezanje memorije i procesora (MW i MR). Na slici 111 su dati portovi processora sa odgovarajućim signalima, posle čega je dat VHDL opis.

signal RD

Slika 111 – 16-bitni procesor

clk MRreset MW

RDWR

adresa(15:0)data_bus(15:0)

processor

signal WR

signal MR

signal MW

signal clk

signal reset

signal adr

signal podaci

Page 78: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti
Page 79: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.3 VHDL kod test bench-a procesora i prikaz rezultata simulacije Testiranje procesora se vrši za skup instrukcija koje su sadržane u programskoj memoriji, a koje su prikazane na slici 109. Procesoru se u procesu testiranja pridružuju i dodatne eksterne komponente. To su već opisane komponente: ROM (5.2.9), memorija_prog (5.2.10), mux_eksterni (5.1.12), drajver za sprezanje interne i eksterne magistrale (5.1.6). Ove komponente zajedno sa procesorom formiraju jedan procesorski sistem, koji učitava instrukcije iz programske memorije, izvršava ih, a zatim storira rezultate u RAM memoriju. Testiranje se obavlja na osnovu simulacije koja se vrši na osnovu VHDL koda procesorskog sistema. Na ulazni port reset procesora se najpre dovodi uzlazna ivica reset signala koja postavlja procesor u poznato stanje i omogućava učitavanje prve instrukcije iz programske memorije. Na ulazni port za taktovanje clk se dovodi signal takta, na osnovu koga se dalje taktuju izvršna i upravljačka jedinica. Najpre je dat prikaz VHDL koda test bench-a.

Page 80: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Simuliranjem procesora pomoću simulatora koji na raspolaganju u okviru Active-HDL paketa dobijaju se veliki broj signala. Nadalje su dati signali koji su najindikativniji u pogledu ispravnog rada procesora za posmatranu instrukciju. Sekvenca instrukcija je data na slici 109. Analiza rezultata similacije je izvršena tako što se za svaku instrukciju iz sekvence prikazuju najindikativniji signali za tu instrukciju. Posle prikaza talasnih oblika sledi komentar dobijenih rezultata. 5.4.1 Prikaz talasnih oblika signala za testnu sekvencu instrukcija Na slikama koji pored numeričke oznake imaju i slovo a su prikazani talasni oblici signala: - stanja registara izvršne jedinice, - interne magistrale, - takta, - adrese mikroinstrukcija, - vrednosti markera i - opkoda. Na slikama koji pored numeričke oznake imaju i slovo b su talasni oblici svih upravljačkih signala koje generiše upravljačka jedinica za određenu instrukciju. Nadalje su rezulati simulacije na ovaj način prikazani za svaku instrukciju iz testne sekvence. 5.4.1.1 Prikaz talasnih oblika za instrukciju RESC Ova instrukcija treba da postavi signal carry1 na nulu. U tabeli na slici 113 prikazani su u prvoj koloni vrednost očekivanih signala, dok su u drugoj koloni date vrednosti signala koje su očitane sa grafika dobijenih simulacijom.

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0000, data_bus=0000, opkod=00

PCBus, ARLd, PC_iz=0000, data_bus=0000, opkod=00

Fetch2 AR_iz=0000,MR,RD,DRLd,PCInc, PC_iz=0000

AR_iz=0000,MR,RD,DRLd,PCInc, PC_iz=0000

Fetch3 IRLd,DRBus,data_bus=4000 PC_iz=0001

IRLd,DRBus,data_bus=4000 PC_iz=0001

RESC SRCarry, PSWLd, data_bus=ZZZZ, opkod=40

SRCarry, PSWLd, data_bus=ZZZZ, opkod=40

Slika 113 – Tabela rezultata simulacije za instrukciju RESC

Page 81: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 112.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije RESC

Slika 112.b -Upravljački signali pri izvršavanju instrukcije RESC

Ako se pogleda slika 112.a može se uočiti da se s signal carry1 postavio na nulu tj. da je rezulta instrukcije korektan.

Page 82: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.4.1.2 Prikaz talasnih oblika za instrukciju LD #2 Ova instrukcija treba da upiše operand 2 specifiran u okviru instrukcije u akumulator. Kao rezultat očekujemo da se stanje AC-a promeni sa neodređenog na 0002(hex).

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0001, data_bus=2002, opkod=40

PCBus, ARLd, PC_iz=0001, data_bus=2002, opkod=40

Fetch2 AR_iz=0001,MR,RD,DRLd,PCInc, PC_iz=0001

AR_iz=0001,MR,RD,DRLd,PCInc, PC_iz=0001

Fetch3 IRLd,DRBus,data_bus=2002 PC_iz=0002

IRLd,DRBus,data_bus=2002 PC_iz=0002

LD1N pr,zn,DRBus,ALUSel=111,ACLd, opkod=20

pr,zn,DRBus, ALUSel=111,ACLd opkod=20

Slika 113 – Tabela rezultata simulacije za instrukciju LD #2

Slika 114.b -Upravljački signali pri izvršavanju instrukcije LD #2

Page 83: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 114.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije LD #2

5.4.1.3 Prikaz talasnih oblika za instrukciju OR 10 Ova instrukcija vrši logičku operaciju ILI nad operandom smeštenim na adresi koja se nalazi na adresi 10 i operandom koji se nalazi u AC-u.

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0002, data_bus=0002, opkod=20

PCBus, ARLd, PC_iz=0002, data_bus=0002, opkod=20

Fetch2 AR_iz=0002,MR,RD,DRLd,PCInc, PC_iz=0002

AR_iz=0002,MR,RD,DRLd,PCInc, PC_iz=0002

Fetch3 IRLd,DRBus,data_bus=0500 PC_iz=0003

IRLd,DRBus,data_bus=0500 PC_iz=0003

OR1D DRBus, IRLd,opkod=05 DRBus, IRLd, opkod=05 OR2D PCBus, ARLd PCBus, ARLd OR3D RD,MR,PCInc,DRLd,PC_iz=0003 RD,MR,PCInc,DRLd OR4D DRBus, ARLd, PC_iz=0004 DRBus, ARLd, PC_iz=0004 OR5D RD,MR,DRLd RD,MR,DRLd

Slika 115 – Tabela rezultata simulacije za instrukciju OR 10

Page 84: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 116.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije OR 10

Slika 116.b -Upravljački signali pri izvršavanju instrukcije OR 10

Page 85: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.4.1.4 Prikaz talasnih oblika za instrukciju JMP 12 Ova instrukcija vrši upis vrednosti sa lokacije čija se adresa nalazi nalokaciji 12 u PC.

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0004, data_bus=0004, opkod=05

PCBus, ARLd, PC_iz=0004, data_bus=0004, opkod=05

Fetch2 AR_iz=0004,MR,RD,DRLd,PCInc, PC_iz=0004

AR_iz=0004,MR,RD,DRLd,PCInc, PC_iz=0004

Fetch3 IRLd,DRBus,data_bus=2500 PC_iz=0005

IRLd,DRBus,data_bus=2500 PC_iz=0005

JMP1D PCBus, ARLd,opkod=25 PCBus, ARLd,opkod=25 JMP2D RD,MR,DRLd RD,MR,DRLd JMP3D DRBus, ARLd, PC_iz=0005 DRBus, ARLd,PC_iz=0005 JMP4D ACLd,MR,RD,PCLd,PC_iz=0007 ACLd,MR,RD,PCLd, PC_iz=0007

Slika 117 – Tabela rezultata simulacije za instrukciju JMP 12

Slika 118.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije JMP 12

Page 86: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 118.b -Upravljački signali pri izvršavanju instrukcije JMP 12

5.4.1.5 Prikaz talasnih oblika za instrukciju MOV $3 Ova instrukcija vrši upis vrednosti iz akumulatora u registar 3 registarskog polja.

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0007, data_bus=0007, opkod=025

PCBus, ARLd, PC_iz=0007, data_bus=0007, opkod=025

Fetch2 AR_iz=0007,MR,RD,DRLd,PCInc, PC_iz=0007

AR_iz=0007,MR,RD,DRLd,PCInc, PC_iz=0007

Fetch3 IRLd,DRBus,data_bus=3303 PC_iz=0008,

IRLd,DRBus,data_bus=3303 PC_iz=0008

MOV1R DRBus, ARLd, pr,zn, opkod=33 DRBus, ARLd, pr,zn, opkod=33 MOV2R RegLd, AdrReg,ACBus RegLd, AdrReg,ACBus

Slika 119 – Tabela rezultata simulacije za instrukciju MOV $3

Page 87: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 120.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije MOV $3

Slika 120.b -Upravljački signali pri izvršavanju instrukcije MOV $3

Page 88: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.4.1.6 Prikaz talasnih oblika za instrukciju JNZ 13 Ova instrukcija vrši upis vrednosti sa lokacije čija se adresa nalazi na lokaciji 13 u PC.

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0008, data_bus=0008, opkod=33

PCBus, ARLd, PC_iz=0008, data_bus=0008, opkod=33

Fetch2 AR_iz=0008,MR,RD,DRLd,PCInc, PC_iz=0008

AR_iz=0008,MR,RD,DRLd,PCInc, PC_iz=0008

Fetch3 IRLd,DRBus,data_bus=2D00 PC_iz=0009

IRLd,DRBus,data_bus=2D00 PC_iz=0009

JNZ1D PCBus, ARLd, opkod=2D PCBus, ARLd, opkod=2D JNZ2D RD,MR,DRLd RD,MR,DRLd JNZ3D DRBus, ARLd DRBus, ARLd JJNZ4D ACLd,MR,RD,PCLd, PC_iz=0010 ACLd,MR,RD,PCLd, PC_iz=0010

Slika 121 – Tabela rezultata simulacije za instrukciju JNZ 13

Slika 122.b -Upravljački signali pri izvršavanju instrukcije JNZ 13

Page 89: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 122.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije JNZ 13

5.4.1.7 Prikaz talasnih oblika za instrukciju ADD @13 Ova instrukcija vrši logičku operaciju ILI nad operandom smeštenim na adresi koja se nalazi na adresi 10 i operandom koji se nalazi u AC-u.

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0010, data_bus=0010, opkod=2D

PCBus, ARLd, PC_iz=0010, data_bus=0010, opkod=2D

Fetch2 AR_iz=0010,MR,RD,DRLd,PCInc, PC_iz=0010

AR_iz=0010,MR,RD,DRLd,PCInc, PC_iz=0010

Fetch3 IRLd,DRBus,data_bus=1600 PC_iz=0011

IRLd,DRBus,data_bus=1600 PC_iz=0010

ADD1I PCBus, ARLd,opkod=16 PCBus, ARLd,opkod=16 ADD2I RD,MR,PCInc,DRLd RD,MR,PCInc,DRLd ADD3I DRBus, ARLd,PC_iz=12 DRBus, ARLd,PC_iz=12 ADD4I RD,MR,DRLd RD,MR,DRLd ADD5I DRBus, ARLd DRBus, ARLd ADD6I RD,MR,DRLd RD,MR,DRLd ADD7I DRBus,PSWLd, ALUSel=100,ACLd DRBus,PSWLd,

ALUSel=100,ACLd Slika 123 – Tabela rezultata simulacije za instrukciju ADD @13

Page 90: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 124.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije ADD @ 13

Slika 124.b -Upravljački signali pri izvršavanju instrukcije ADD @13

Page 91: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

5.4.1.8 Prikaz talasnih oblika za instrukciju JMP 20 Ova instrukcija vrši upis vrednosti sa lokacije čija se adresa nalazi nalokaciji 20 u PC.

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0012, data_bus=0012, opkod=000

PCBus, ARLd, PC_iz=0012, data_bus=0012, opkod=000

Fetch2 AR_iz=0012,MR,RD,DRLd,PCInc, PC_iz=0012

AR_iz=0012,MR,RD,DRLd,PCInc, PC_iz=0012

Fetch3 IRLd,DRBus,data_bus=2500 PC_iz=0013

IRLd,DRBus,data_bus=2500 PC_iz=0013

JMP1D PCBus, ARLd,opkod=25 PCBus, ARLd,opkod=25 JMP2D RD,MR,DRLd RD,MR,DRLd JMP3D DRBus, ARLd, PC_iz=0013 DRBus, ARLd,PC_iz=0013 JMP4D ACLd,MR,RD,PCLd,PC_iz=0013 ACLd,MR,RD,PCLd, PC_iz=0013

Slika 125 – Tabela rezultata simulacije za instrukciju JMP 20

Slika 126.b -Upravljački signali pri izvršavanju instrukcije JMP 20

Page 92: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 126.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije JMP 20

5.4.1.9Prikaz talasnih oblika za instrukciju ST 25 Ova instrukcija vrši upis vrednosti sa lokacije čija se adresa nalazi nalokaciji 20 u PC.

Mnemonik mikrooperacije

Tačna vrednost signala Očitana vrednost signala

Fetch 1 PCBus, ARLd, PC_iz=0017, data_bus=0017, opkod=25

PCBus, ARLd, PC_iz=0017, data_bus=0017, opkod=25

Fetch2 AR_iz=0017,MR,RD,DRLd,PCInc, PC_iz=0017

AR_iz=0017,MR,RD,DRLd,PCInc, PC_iz=0017

Fetch3 IRLd,DRBus,data_bus=3500

IRLd,DRBus,data_bus=3500

ST1D PCBus, ARLd,opkod=35 PCBus, ARLd,opkod=35 ST2D RD,MR,PCInc,DRLd RD,MR,PCInc,DRLd ST3D DRBus, ARLd,PC_iz=0018 DRBus, ARLd ST4D RD,MR,DRLd RD,MR,DRLd,PC_iz=0018 ST5D DRBus, ARLd DRBus, ARLd ST6D ACBus,MW,WR ACBus,MW,WR

Slika 127 – Tabela rezultata simulacije za instrukciju JMP 20

Page 93: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 128.a - Signali u izvršnoj jedinici pri izvršavanju instrukcije ST 25

Slika 128.b -Upravljački signali pri izvršavanju instrukcije ST 25

Page 94: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

6. Prikaz rezultata sinteze i implementacije U ovom poglavlju biće dati rezultati koji su dobijeni u procesu sinteze i implementacije. Sinteza i implementacije su izvršene korišćenjem softverskog alata Xilinx ISE verzije 4.2 Proces sinteze je izvršen na osnovu unetog VHDL opisa procesora koji je prikazan u predhodnom poglavlju. 6.1 Prikaz rezultata sinteze Na osnovu unetog VHDL opisa svakog od blokva izvršena je sinteza svakog od njih pojedinačno, a zatim na osnovu untetog opisa bloka processor sintetizovan je ceo sistem. Rezultat sintetizovanog procesora je prezentova na slici 129, dok su ostali sintetizovani blokovi manje složenosti dati u elektronskom zapisu na disku koji je priložen uz ovaj rad.

Slika 129 – Blok processor sintetizovan softverskim alatom XilinX ISE 4.2

Page 95: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Pri vršenju sinteze i implementacije izabran je FPGA čip iz familije ’’’’’’’’ xc2s-50. Ovaj softverski alat pri završetku sinteze i implementacije pruža širok dijapazon osobina sintettizovanog i implementiranog bloka. Na slici 130 je dat isečak iz izveštaja sinteze koji nam daje informaciju o iskorišćenosti ćelija.

Slika 130 – Deo izveštaja implementacije i sinteze o iskorišćenosti ćelija

Iz izveštaja se može uočiti da je iskorišćenost ćelija polovična. Imajući u vidu da da se u mikroprogramskoj memoriji mogu upisivati još rutina, ostavilo se prostora za dopunjavanje. Na slici 131 je dat deo izveštaja koji daje informaciju o maksimalnoj frekvenciji na kojoj može sintetizovani čip da radi. U ovom delu su dati i drugi rezultati vremenske analize vezane za takt, kašnjenje itd.

Slika 131 – Deo izveštaja implementacije i sinteze o vremenskoj analizi

Pored ove forme, rezultati implementacije su dati i grafički na slikama 132 i 133. Na slici 132 je grafički prikazana iskorišćenost ćelija na čipu. Na slici 133 je dat prikaz svih veza uspostavljenih između ćelija, kao i između pinova i ćelija.

Page 96: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Slika 132 – Layout FPGA čipa projektovanog 16-bitnog procesora

Slika 133 – Layout FPGA čipa sa prikazanim vezama projektovanog 16-bitnog

procesora

Page 97: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

8. Laboratorijska vežba analize izvršavanja instrukcija jednostavnog 16-bitnog procesora Cilj ove vežbe je upoznavanje sa skupom instrukcija, načinima adresiranja i načinom izvršavanja instrukcija jednostavnog 16-bitnog procesora. Procesor koji se proučava spada u jednoadresne mašine sa 16-bitnom magistralom podataka i 16-bitnom adresnom magistralom. Zadatak studenta je da: - na osnovu datog skupa instrukcija i opkodova (slika 134) i tabele modifikatora (slika 135)

formira sadržaj programske memorije za zadatu programsku sekvencu; - formirani sadržaj upiše u programsku memoriju (entitet ROM) preko odgovarajućeg

VHDL opisa datog u VHDL fajlu ROM; - izvrši simulaciju na osnovu dostupnog simulatora u VHDL programskom paketu; - izvrši analizu rezultata simulacije upisivanjem aktivnih signala u odgovarajuću tabelu.

instrukcija

kod instrukcije

opis instrukcije

OR 000001 OR operacija AND 000010 AND operacija NOT 000011 NOT operacija XOR 000100 ExOR operacija ADD 000101 operacija sabiranja SUB 000110 aritmetička operacija oduzimanja NEG 000111 izračunavanje negativne vrednosti LD 001000 kopiranje iz memorije u akumulator JMP 001001 bezuslovno grananje (skok) JZ 001010 grananje ako je nula JNZ 001011 gananje ako nije nula MOV 001100 kopiranje iz akumulatora u registar Rx ST 001101 kopiranje iz akumulatora u memoriju INC 001110 inkrementiranje sadržaja operanda SETC 001111 setovanje bita prenosa RESC 010000 resetovanje bita prenosa NOP 111111 operacija bez efekta

Slika 134 – Tabela instrukcija i opkodova

Način adresiranja Modifikator Oznaka u instrukciji neposredno 00 #

direktno 01 nema oznake indirektno 10 @ registarsko 11 $

Slika 135 – Tabela modifikatora

Page 98: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Nadalje će biti dat skup od 16 sekvenci instrukcija koje trebaju da budu analizirane. Odgovarajuće rezultate trba upisati u polje tabele. Tabela 1 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali LD 2

SETC

ADD @3

MOV $15

JMP 1

Tabela 2 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali RESC

LD 5

SUB @3

ST 15

JNZ 1

Tabela 3 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali LD 7

AND #7

ADD @3

JZ 4

ST 5

Page 99: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Tabela 4 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali LD 4

NEG @3

ADD 2

INC

JZ 5

Tabela 5 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali INC

SETC

LD #3

INC

JNZ #4

Tabela 6 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali RESC

LD @3

XOR 2

INC

ST 5

Page 100: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Tabela 7 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali LD #15

ADD 5

SUB 2

JNZ 6

INC

Tabela 8 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali RESC

NOP

ADD @3

INC

JMP #5

Tabela 9 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali LD #12

XOR #4

ADD @3

JMP 3

SUB 5

Page 101: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Tabela 10 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali RESC

LD 11

NEG @3

SETC

JNZ #5

Tabela 11 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali LD 12

OR 4

NOT 3

INC

JNZ @12

Tabela 12 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali LD #6

XOR 5

MOV $5

INC

ST 6

Page 102: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Tabela 13 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali SETC

ADD 5

SUB 4

XOR #5

JMP @2

Tabela 14 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali RESC

JMP 3

NOP

LD 5

INC

Tabela 15 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali JMP 3

NOP

NEG 3

INC

ST 4

Page 103: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

Tabela 16 Instrukcija Opkod(6 bitova) Modifikator(2 bita) Operand(8/16) Aktivni signali LD 4

XOR 4

MOV $5

INC

MOV $6

Page 104: Procesor sa mikroprogramskim upravljanjem - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Papers/Procesor sa mikroprogramskim upravljanjem.pdf · koristiti VHDL kao alat koji će se upotrebiti

9. Zaključak Na kraju možemo pogledati unazad i pokušati sumirati rezultate koje će nas dovesti do interesantnih zaključaka. Sama postavka zadatka nametnula je potrebu za razumrvanjem celokupnog postupka projektovanja, upoznavanjem sa alatima softverskog tipa za projektovanje, simulaciju, sintezu i implementaciju. Ono što se ovde može reći u vezi sa alatima je da je rađeno sa veoma moćnim programskim paketima, koji pružaju mogućnost raznovrsnog pristupa projektovanju i rečavanju jednog te istog problema na više načina. Brzina generisanja rezultata o greškama, a istovremeno i mogućnost brze korekcije ukazuje kolika se ušteda na vremenu postiže upotrebom ovoh paketa u projektovanju. Jedan od glavnih nedostataka koji su se nemetnuli se sastoje u nekompatibilnosti alata međusobno. Tako za jedan te isti kod jedan sintettizator prijavljuje grešku, a drugi ne. Kao jedan od glavnih karakteristika procesa izrade ovog projekta je višefaznost i sveobuhvatnost. Višefaznost podrazumeva proces koji je krenuo sa teoretskim upoznavanjem sa osnovnom strukturom procesora i načinom izvršavanja instrukcija preko projektovanja jedne jednostavnije strukture procesora u VHDL-u do konačne sinteze i implementacije u okviru programskog paketa Xilinx 4.2. Sveobuhvatnost kao osobina je došla do izražaja jer se nije radilo sa samo jednim delom procesorskog sistema, već se morao formirati potpuno funkcionalna celina. Timski rad se još jednom pokazao kao neophodan kada je upitanju delovanje i rad jednog projektatna. Konsultacije sa mentorom i asistentima su otklanjali neke za pojedinca probleme koji bi mu oduzeli isuviše vremena pri projektovanju. Vreme ja danas jako važan faktor kada se radi sa jednim tržištem koga napadaju više različitih projektantskih kuća. To sada nije imalo uticaja, ali je za dalji rad projektanta od izuzetne važnosti da stvori osećaj za vremensku trku i timski rad.


Related Documents