4. Opis dizajna
4.1 Zabeleške uz dizajn
Kodovanje instrukcija i načina adresiranja zadato je sledećom tabelom
naziv | 15..12 | 11..8 | 7..4 | 3..0 | reči |
NOOP | 0000 | 0000 | 0000 | 0000 | 1 |
Store | 0001 | rezultat | xxxx | adresa | 1 |
Mov | 0010 | ureg | Izreg | rotiranje | 1 |
Add | 0011 | rezultat | prviop | Drugiop | 1 |
Sub | 0100 | reultat | prviop | drugiop | 1 |
And | 0101 | rezultat | prviop | drugiop | 1 |
Or | 0110 | rezultat | prviop | drugiop | 1 |
Xor | 0111 | rezultat | prviop | drugiop | 1 |
Not | 1000 | rezultat | prviop | XXXX | 1 |
Jgt | 1001 | adresa | prviop | drugiop | 1 |
Jge | 1010 | adresa | prviop | drugiop | 1 |
Je | 1011 | adresa | prviop | drugiop | 1 |
Jsr | 1100 | treba | nesto | mozda | 1 |
Rti | 0000 | 1111 | 1111 | 1111 | 1 |
Push | 1110 | pom | eraj | registar | 1 |
Pop | 1111 | registar | Pom | eraj | 1 |
Load | 1101 | registar | xxxx | Adresa | 1 |
Pipeline procesor sa 5 stepeni protočne obrade (DLX)
4.2 Dijagrami toka
Sve instrukcije prolaze kroz 5 stepeni protočne obrade u kojima se na osnovu instrukcije odlučuje kojim tokom će se instrukcija izvršavati. Ne postoji jedinstvena upravljavčka jedinica, već je sve realizovano direktnim vezama i logičkim ili sekvencijalnim kolima. Hazardi se utvrđuju u među blokovima. Postoji stall jedinica koja upravlja utvrđivanjem hazarda, i koja kao ulaze prima IR iz svih međublokova i ako ima potrebe zaustavlja ili briše međublok. Hazard se događa ukoliko u IF/ID se nalazi instrukcija koja treba da pročita neki od registara koji se menja u nekoj od ranijih instrukcija. Do brisanja međublokova dolazi ukoliko je naišla instrucija skoka, pa treba obrisati ranije instrukcije, jer je predikcija skoka urađena po sistemu branch not taken. Ranije je objašnjen sled izvršavanja instukcija.
5. Testiranje i verifikacija
5.1 Simulacija i test benčevi
Simulacija je izvršena pomoću aplikacije Quartus II 8.1 Web Edition. Ova aplikacija je izabrana jer vrši projekciju za direktnu izradu na štampanoj ploči, tako da koristi realna kašnjenja koja se javljaju u izabranom FCPGA čipu. Test primer je izabran tako da obuhati što više situacija koje se mogu dogoditi u procesoru.
Testiranje je odrađeno i na sintetizovanom modelu u qaurtusovom waveformu.
Uz ovu dokumentaciju su priloženi print-skrinovi sa testiranja sintetizovanog modela.
5.2 Verifikacione tehnike i algoritmi
Prilikom verifikacije su prvo uzeti u obzir zahtevi koje komponenta treba da zadovolji. Na osnovu tih zahteva su kreirani testovi svake jedinice pojedinačno u wave formu, koje bi simulirale rad dređene komponente. Proverene komponente čiji testovi nisu pali su nastvavili da se integrišu u veće celine, dok su se one koje nisu mogli da prođu verifikaciju vraćale u razvoj, da bi se nepravilnosti u njihovom radu otklonile. Pravljene su jedinice koje se sastojeod nekoliko komponenata i one se ponovo testirale. Takođe komponente koje bi u ovakvom slučaju pokazale neke nepavilnosti u funkcionisanju su vraćane u razvoj. Na kraju je ceo procesor izložen test programima karakterističnim za njegovo korišćenje.
5.3 Planovi testiranja
– testiranje pojedinačnih komponenata
– testiranje rada blokova koji se sastoje od nekoliko blokova
– test program za ceo procesor:
LOAD R1, [R0]
ADD R2,R1,R1
PUSH R2
SUB R3,R2,R1
POP R4
STORE R3,[R4]
STORE R2, [R1]
6. Implementacija
Procesor treba da bude inplementiran za FPGA chip. Implementacija je urađena uz pomoć programa Quartus II 8.1 Web Edition. Izabrani programski jezik je bio VHDL jer je najpogodniji za opis hardverskih komponenata i predstavlja moćan alat za pisanje kako u programerskoj paradimi tako i u u paradigmi vezanoj za konkurentno izvršavanje kakvo se javlja u hardverskim elementima.
6.2 Konvencije dizajna i stil kodiranja
Korišćena je konvencija da ne postoje trostatički bufferi na FPGA čipovima.
8. Literatura
Spisak literature korišćen u izradi domaćeg zadatka u IEEE formatu:
[1] |
www.altera.com , USA, 2010 |
[2] |
http://kondor.etf.rs/~vm/os/vlsi/index.html, Serbia, 2010 |
[3] |
http://tams-www.informatik.uni-hamburg.de/vhdl/vhdl.html, Germany, 2010
|
[4] |
http://ghdl.free.fr/dlx/ , France, 2010 |
[5] |
http://www.cse.lehigh.edu/~caar/lou/dlx.html, USA, 2010 |
[6] |
http://lsdis.cs.uga.edu/~kaarthik/projects/dlx.html, USA, 2010 |
Kompletan VLSI kod se moze naći na sledećoj adresi: http://cid-4b45ba21e0eded68.skydrive.live.com/self.aspx/.Public/VLSI/DLXprocessor.rar
Moguće su greške u implementaciji.