VLSI izvjestaj

14
Računarski VLSI sistemi - projektni zadatak - Darović Signar Jovan Malasić Beograd 16.01.2012.

description

Prmer izvestaja. Nista posebno

Transcript of VLSI izvjestaj

Page 1: VLSI izvjestaj

Računarski VLSI sistemi- projektni zadatak -

Darović Signar Jovan Malasić

Beograd16.01.2012.

Page 2: VLSI izvjestaj

Računarski VLSI sistemi

32-bitni PROCESOR OPŠTE NAMENE BEZ PROTOČNE OBRADEDarović SignarJova Malesić

1. DEFINISANJE PROJEKTA

1.1 Uvod

Projekat je urađen kao domaći zadatak iz predmeta Računarski VLSI sistemi na 4. godini studija IR odseka, Elektrotehničkog fakulteta Univerziteta u Beogradu.

1.2 Ciljevi projekta

Cilj projekta je upoznavanje studenata sa jezikom VHDL za opis hardvera, kao i sticanje praktičnih iskustava u dizajniranju hardvera korišćenjem alata Quatrus II i ModelSim firme Altera. Projekat je korišćen kao priprema za realizaciju sistema na Cyclon II čipu.

2. OPIS DIZAJNA

2.1 Zabeleške uz dizajn

Ovde navesti sve pretpostavke koje su uzete u obzir u projektovanju i opšte zabeleške.

2.2 Faze dizajna

Dizajn celokupnog sistema podeljen je u vise faza. Prvo su modelovani i testirana ispravnost osnovnih elemenata, registrara, multipleksera, dekodera itd.Potom smo pristupili izradi blokova, npr. GPR registracionog fajla, Alu jedinice, hardverskog steka, memorije, mar i mbr registara sa multiplekserima itd.Sledeci korak je bio povezivanje i testiranje celokupnog procesora u CPU entitet.I na kraju smo napravili System kao finalni entitet koji sadrzi procesor, memoriju i magistralu.

2.2.1 Interfejs između procesora i memorije

Memorija i procesor vrse komunikaciju putem dve 32-bitne magistrale, odnosno adresne i magistrale podataka. Dodatno postoje jos 2 kontrolne linije za signalizaciju citanja (read) i upisa (write). CPU je povezan na adresnu i magistralu podataka preko trostatickihbafera. Na istinacinpovezana jeimemorijanaadresnumagistraluprekotrostatickogbafera.

Slika 1 - Magistrala

2.2.2 Faze izvršavanja instrukcije

U prvoj fazi vrsi se dohvatanje instrukcije iz memorije i upisuje u IR registar. U drugoj fazi se vrsi dekodovanje instrukcije na osnovu odgovarajucih bita IR registra. Dalje se ide na izvrsavanje konkretne instrukcije i eventualnu obradu prekida ukoliko je do istog doslo.Nakon zavrsetka izvrsavanja instrukcije ucitava se nova instrukcija.

2.2.2.1 LOAD

Istrukcija LOAD dohvata iz memorije reč sa adrese Rs1 + Imm(1), gde je Imm(1) neposredna označena vrednost od 16 bita, i smešta je u registar Rd.Prekoračenje prilikom računjanja adrese generiše prekid.

- 1 -

Page 3: VLSI izvjestaj

Računarski VLSI sistemi

Slika 2 – Instrukcija LOAD

2.2.2.2 STORE

Instrukcija STORE iz registra Rs2 smešta reč u memoriju na adresu Rs1 + Imm, gde je Imm neposredna označena vrednost od 16 bita.Prekoračenje prilikom računjanja adrese generiše prekid.

Slika 3 - Instrukcija STORE

2.2.2.3 ADD

InstrukcijaADD uzima operande iz registara Rs1 i Rs2, vrši operaciju sabiranja i smešta rezultat u registar Rd.

Slika 4 - Instrukcija ADD

2.2.2.4SUB, AND, OR, XOR

InstrukcijaSUB, AND, OR, XOR uzima operande iz registara Rs1 i Rs2, vrši operaciju oduzimanja, logickog i, logickog ili, ekskluzivnog ili i smešta rezultat u registar Rd.

- 2 -

Page 4: VLSI izvjestaj

Računarski VLSI sistemi

Slika 5 - Instrukcija ADD

2.2.2.5ADDI

InstrukcijaADDI uzima operand iz registra Rs1 i neposrednu vrednost iz Imm, vrši operaciju sabiranja i smešta rezultat u registar Rd.

Slika 6 - Instrukcija ADDI

2.2.2.6 SUBI

InstrukcijaSUBI uzima operand iz registra Rs1 i neposrednu vrednost iz Imm, vrši operaciju oduzimanja i smešta rezultat u registar Rd.

Slika 7 - Instrukcija SUBI

2.2.2.7NOT

Operacija NOTvrsi operaciju negacije i smesta vrednost u registar Rd.

Slika 8 - Instrukcija NOT

2.2.2.8MOV

Operacija MOV premešta vrednost iz registra Rs1 u registar Rd.

- 3 -

Page 5: VLSI izvjestaj

Računarski VLSI sistemi

Slika 9 - Instrukcija MOV

2.2.2.9MOVI

Operacija MOVI smešta neposrednu označenu vrednost Imm dužine 16 bita u niža dva bajta registra Rd.

Slika 10 - Instrukcija MOVI

2.2.2.10JMP

Operacije JMP skače na adresu Rs1 + Imm, gde je Imm neposredna označena vrednost predstavljena na širini od 16 bita. Prekoračenje prilikom računjanja adrese generiše prekid.

Slika 11 - Instrukcija JMP

2.2.2.11JSR

Operacije JSR skače na adresu potprograma predstavljenu sa Rs1 + Imm, gde je Imm neposredna označena vrednost predstavljena na širini od 16 bita. Prekoračenje prilikom računjanja adrese generiše prekid.

Slika 12 - Instrukcija JSR

- 4 -

Page 6: VLSI izvjestaj

Računarski VLSI sistemi

2.2.2.12 RTS

Operacija RTS vrsi povratak iz potprograma. Adresa se nalazi na steku. Ukoliko je stek prazan dolazi do prekida.

Slika 13 - Instrukcija RTS

2.2.2.13BNQ, BLT, BGT, BLE, BGE

Svaka operacija poredi operande Rs1 i Rs2 i ako je uslov skoka zadovoljen skače na adresu PC + Imm, gde je Imm neposredna označena vrendnost, predstavljena na širini od 16 bita. Prekoračenje prilikom računjanja adrese generiše prekid.

Slika 14 - Instrukcija BNQ, BLT, BGT, BLE, BGE

2.2.2.14PUSH

Operacija PUSH stavlja na stek vrednost iz registra Rs1. Prekid se generise ukoliko je stek pun.

Slika 15 - Instrukcija PUSH

2.2.2.15 POP

Operacija POP skida sa steka vrednost i smesta je u registar Rd. Ukoliko je stek prazan, generise se prekid.

Slika 16 - Instrukcija POP

2.2.2.16 HALT

Operacija HALT zaustavlja rad procesora

Slika 17 - Instrukcija POP

- 5 -

Page 7: VLSI izvjestaj

Računarski VLSI sistemi

3. IMPLEMENTACIJA

Operaciona jedinica je modelovana prema uslovima zadatka, prateci navedena ogranicenja i strukturu instrukcija.

Operaciona jedinica – Prilog 7.1Registracioni fajl GPR – Prilog 7.2

Varijanta: Bez protočne obrade

3.1 Upravljacka jedinica

Za upravljacku jedinicu je koriscen model upravljacke jedinice sa horizontalnim kodiranjem i dva tipa mikroinstrukcija.

3.2 Implementacija upravljacke jedinice

Upravljacka jedinica sastoji se od 2 kombinacione mreze, multipleksera, mikroprogramskog brojaca, mikroprogramske memorije koja sadrzi mikroprogram, prihvatnog registra mikroinstrukcije i bloka za generisanje signala.

Kombinacionom mrezom KM_OPR generisu se vrednosti za realizaciju višestrukog uslovnog skoka prilikom odredjivanja instrukcije. U zavisnosti od toga koji od signala ima aktivnu vrednost zavisi koja će od vrednosti pojaviti na izlaznim linijama.

Kombinacionom mrezom KM_BR generisu se vrednosti za realizaciju bezuslovnih i uslovnih skokova.

Multiplekser MX vrsi selekciju odgovarajuce kombinacione mreze.

Mikroprogramski brojač mPCsvojom trenutnom vrednošću odredjuje adresu mikroprogramske memorije mMEM sa koje treba očitati mikroinstrukciju.

Mikroprogramska memorija mMEM služi za smeštanje mikroprograma.

Prihvatni registar mikroinstrukcije CWsluži za prihvatanje mikroinstrukcije očitane iz mikroprogramske memorije mMEM. CW sadrži kombinacione mreže koje na osnovu mikroinstrukcije generišu upravljačke signale operacione i upravljacke jedinice.

Upravljacka jedinica - Prilog 7.3Format mikroinstrukcije upravljacke jedinice – Prilog 7.4

4. TESTIRANJE I VERIFIKACIJA

Za simulaciju i testiranje je koristen programski paket Altera ModelSim Starter Edition 10.0c (Revision 2011.09). Test bench-evi su samostalno radjeni u programskom paketu Sigasi HDT 1.0.

Za osnovno testiranje posluzio je zvanican test primer sa sajta predmeta.

Dodatno, samostalno je napravljeno jos nekoliko test primera koji bi proverili funkcionalnost preostalih instrukcija koje nisu testirane u zvanicnom test primeru.

4.1 Sintetizovan model

Slika 18 – Tabela sintetizovanog modela

5. ZAKLJUČAK

Smatramo da nam je izrada projekta u mnogome pomogla da blize shvatimo sam proces projektovanja procesora i upotpunimo nasa znanja u vezi njegovog detaljnijeg funkcionisanja. Mislimo da bi od neizmerne vrednosti bila mogucnost prakticne izrade istog ili jednostavnijeg modela procesora i nadamo se da ce buduce generacije imati tu priliku.

6. LITERATURA

Spisak literature korišćen u izradi domaćeg zadatka u IEEE formatu, npr:

[1] VolneiA. Pedroni, Circuit Design with VHDL, MIT Press, London, England, 2005.

[2] Jovan Đorđević, Arhitektura i organizacija računara, Beograd, 2004.

[3] Živojin Šuštran,Materijali za vežbe iz predmeta VLSI , ETF, Beograd, 2011.

[4] Weijun Zhang,VHDL Tutorial: Learn by Example,http://esd.cs.ucr.edu/labs/tutorial/

[5] Jan Van der Spiegel, University of Pennsylvania,http://www.seas.upenn.edu/~ese171/vhdl/vhdl_primer.html

- 6 -

Page 8: VLSI izvjestaj

Računarski VLSI sistemi

7. PRILOZI

7.1 Operaciona jedinica

- 7 -

Page 9: VLSI izvjestaj

Računarski VLSI sistemi

7.2 Registracioni fajl GPR

- 8 -

Page 10: VLSI izvjestaj

Računarski VLSI sistemi

- 9 -

Page 11: VLSI izvjestaj

Računarski VLSI sistemi

7.3 Upravljacka jedinica

- 10 -

Page 12: VLSI izvjestaj

Računarski VLSI sistemi

7.4 Format mikroinstrukcije upravljacke jedinice

Operacioni signali

0 1 2 3 4 5

0 ldMAR incPC clu_read ldMBR ldIR

6 7 8 9 10 11

ldRSRC ldX ldY ldACC ldRSRC DC_GPR_ENABLE

12 13 14 15 16 17

mxIMM(0) mxIMM(1) mxRSRC(0) mxRSRC(1) mxMBR cpu_write

18 19 20 21 22 23

mxX mxY ldPC mxStek u_push u_pop

24 25 26 27 28 24

mxACC alu_add mxRDST(0) mxRDST(1) setPrekoracenje mxACC

25 26 27 28 29 30

alu_add mxRDST(0) mxRDST(1) setPrekoracenje setStekFull setStekEmpty

31 32 33

setHalt setErrorOPR mxMAR

Upravljacki sigmali

0 1 2 3 4 5 6

1 brOPR brPrekoracenje brStart brStekFull brStekEmpty brHalt

- 11 -