Title: ELEKTRONSKI FAKULTET U NIU
1- ELEKTRONSKI FAKULTET U NIU
- KATEDRA ZA ELEKTRONIKU
- SEMINARSKI RAD
- VHDL OPIS SAYEH PROCESORA
- Predmet Mikroprocesorski sistemi
- Profesor Prof.dr. Mile Stojcev
- Studenti Nikola Sekulovic (10963)
- Lazar Velimirovic (11017)
-
- Ni, jul 2007.
2SAYEH
- U delu koji sledi prikazacemo dizajn i opis
procesora. - CPU je SAYEH ( Simple Architecture, Yet
Enough Hardware - jednostavna arhitektura, ali sa
dovoljno hardvera) koji je dizajniran za svrhe
ucenja i testiranja.
3 Detalji funkcionalnosti procesora
- Jednostavan CPU primer koji je ovde razmatran
ima registarsko polje koje se koristi za
instrukcije za obradu podataka. - CPU ima 16-bitnu magistralu podataka i
16-bitnu adresnu magistralu.
4 Slika prikazuje signale SAYEH interfejsa
5Komponente CPU-a
- SAYEH komponente koje se koriste za
instrukcije ukljucuju standardne registre kao to
su - 1. programski brojac
- 2. instrukcioni registar
- 3. aritmeticko-logicka jedinica i
- 4. statusni registar.
6Komponenete CPU-a
-
- Ovaj procesor ima registre koji cine polje
registara R0,R1, R2, R3, kao i pokazivac
prozora (Window Pointer) koji definie R0, R1,
R2, R3 unutar polja registara
7Komponenete CPU-a
- CPU komponente i kratak opis svake
- - PC Programski brojac, 16 bitova
-
- - R0, R1, R2, R3 registri opte namene koji su
deo polja registara, 16 bita -
- -RegFile Registri opte namene koji cine
prozor od 4 registra u registarskom polju od 8
registara
8 Komponenete CPU-a
-
- - WP Pokazivac prozora ukazuje polju
registara da definie RO, R1, R2, R3, 3 bita - - IR Instrukcijski registar u koji se smeta
instrukcija, 16 bita
9 Komponenete CPU-a
- - ALU ALU moe da obavlja sledece aritmeticke i
logicke operacije nad svojim 16-bitnim
operandima - 1.sabiranje
- 2.oduzimanje
- 3.mnoenje
- 4. AND
- 5. OR
- 6. NOT
- 7. Shiftleft
- 8. Shiftright i
- 9.uporedivanje
10 Komponenete CPU-a
- - Z flag Postaje 1 kada je izlaz iz ALU 0
- - C flag Postaje 1 kada ALU ima izlaz sa
prenosom
11Skup instrukcija SAYEH procesora
12 Skup instrukcija SAYEH procesora
13 Skup instrukcija SAYEH procesora
14 Skup instrukcija SAYEH procesora
15 Skup instrukcija SAYEH procesora
16 SAYEH instrukcije
- Opti format 8-bitnih i 16-bitnih SAYEH
instrukcija je prikazan na slici
17 SAYEH instrukcije
- - OPCODE polje je 4-bitni kod koji odredjuje tip
instrukcije. - - Polja Left (levo) i Right (desno) su 2-bitni
kodovi koji biraju registre R0 do R3 za izvor
i/ili odredite instrukcije. Obicno, Left se
koristi za odredite, a Right za izvor. - - Immediate polje se koristi za trenutne
podatke, ili ako su dve 8-bitne instrukcije
zapakovane koristi se za drugu instrukciju.
18 SAYEH instrukcije
- - Na procesor ima ukupno 29 instrukcija
- - Instrukcije sa I trenutnim poljem su 16-bitne
instrukcije a ostale su 8-bitne instrukcije - - Instrukcije koje koriste polja Destination
(odredite) i Source (izvor) (oznaceni sa D i S u
tabeli seta instrukcija) imaju OPCODE koji je
ogranicen na 4 bita - - Instrukcije koje ne zahtevaju specifikaciju
izvornih i odredinih registara korise ova polja
kao OPCODE ekstenzije -
19 SAYEH staza podataka
- Glavne komponente SAYEH procesora su
Addressing Unit(adresna jedinica) koja se sastoji
od PC (Program Counter-programski brojac) i
Address Logic (adresna logika), IR (instrukcioni
registar), WP (Window Pointer), Register File
koji se sastoji od Left Decoder 1 i Right Decoder
2, ALU (aritmeticko-logicka jedinica) i Flags
(zastavice).
20SAYEH staza podataka
21 Komponente staze podataka
- Slika pokazuje hijerarhijsku strukturu SAYEH
komponenti.
22 Komponente staze podataka
- - Addressing Unit se dalje deli na PC i
Address Logic. - - Addressing Logic(adresna logika) je
kombinaciono kolo koje je sposobno dodavati svoje
ulaze u cilju generisanja 16-bitnog izlaza koji
formira adresu za memoriju procesora. - - Program Counter i Instruction Register su
16-bitni registri. -
- - Register File je dvoportna memorija i polje
od 8 esnaestobitnih registara. -
23 Komponente staze podataka
- - Window Pointer je trobitni registar koji se
koristi kao osnova Register File. - - Specificni registri za citanje i upis (R0,
R1, R2 ili R3) u Register File su odredeni svojim
4-bitnim magistralama koje dolaze iz Instruction
Registera. 2 bita se koriste za izbor izvornog
registra, a druga 2 bita biraju odredini
registar.
24 Komponente staze podataka
- Kada je Window Pointer aktivan, dodaje svoj
trobitni ulaz na svoje trenutne podatke. - Flags registar je dvobitni registar koji cuva
flag izlaze iz Aritmetic Unit. - Aritmetic Unit je 16-bitna aritmeticka i logicka
jedinica koja ima odredjene funkcije. 9-bitni
ulaz bira funkciju ALU-a prikazanu u ovoj
tabeli. Ovaj kod je obezbedjen od strane
kontrolera procesora.
25 ALU operacije
26 ALU operacije
27Blok IR (instrukcioni registar)
- Blok IR predstavlja 16-bitni registar koji se
u - okviru izvrne jedinice koristi kao instrukcioni
- registar.
- Blok IR ima sledece portove
- Clk ulaz taktnog signala (kad je 1 registar
pamti sadraj na ulazu), - Load ulaz za dozvolu izlaza podataka (kada je
0 registar je otkacen sa magistrale, a kada je
1 memorisani sadraj registra se pojavljuje na
izlazu), - 16-bitni ulaz Data ulaz na koji se dovodi
instrukcija, - 16-bitni izlaz Q izlaz iz instrukcionog
registra usmeren ka upravljackoj jednici
(kontroleru), - 8-bitni izlaz Q1 izlaz koji predstavlja gornjih
8 bitova iz 16-bitnog ulaza Data.
28Blok PC (programski brojac)
- PC predstavlja blok koji odreduje adresu
naredne instrukcije koju treba izvriti. - Blok PC ima sledece portove
- Clk ulaz taktnog signala (kad je 1 registar
pamti sadraj na ulazu), - PC -16-bitni ulaz
- 16-bitni ulaz RSide ulaz koji se dovodi iz
registarskog polja, - 8-bitni ulaz IR ulaz koji se dovodi iz
instrukcionog registra, - Izl 16-bitni izlaz koji se vodi na memoriju i na
ulaz PC-a, - Reset PC ulaz koji postavlja izlaz na nula
vektor, - PCplus1 kontrolni signal (ako je 1 sadraj
brojaca se uvecava za 1) , - PCplusI kontrolni signal (ako je 1 sadraj
brojaca se uvecava za vrednost IR), - R0plusI kontrolni signal (ako je 1 na izlazu
brojaca je zbir ulaza RSide i ulaza IR ), - R0plus0 kontrolni signal (ako je 1 na izlazu
brojaca je ulaz RSide ), - Jmp kontrolni signal (ako je 1 ulaz PC se samo
prosleduje na izlaz Izl).
29Blok WP (pokazivac prozora)
- WP je 3-bitni registar koji ukazuje na jedan
od osam registara u polju Register File. - Blok WP ima sledece portove
- Clk ulaz taktnog signala (kad je 1 registar
pamti sadraj na ulazu), - Data trobitni ulaz
- Q trobitni izlaz koji definie registar u
registarskom polju, - WPreset kontrolni ulaz (ako je 1 izlaz Q je
nula vektor), - WPadd kontrolni ulaz (ako je 1 ulaz se dodaje
na trenutno stanje WP-a).
30Blok FR
- FR je 2-bitni registar koji opisuje stanje
aritmeticko-logicke jedinice. - Blok FR ima sledece portove
- Clk ulaz taktnog signala (kad je 1 registar
pamti sadraj na ulazu), - Cout, Zout 1-bitni ulazi,
- C,Z 1-bitni izlazi,
- Cset kontrolni ulaz (ako je 1 izlaz C se
postavlja na 1), - Creset kontrolni ulaz (ako je 1 izlaz C se
postavlja na 0), - Zset kontrolni ulaz (ako je 1 izlaz Z se
postavlja na 1), - Zreset kontrolni ulaz (ako je 1 izlaz Z se
postavlja na 0).
31Blok RF (registarsko polje)
- Register File predstavlja polje od osam
16-bitnih registara. - Blok Register File ima sledece portove
- Clk ulaz taktnog signala (kad je 1 registar
pamti sadraj na ulazu), - Data -16-bitni ulaz
- Rd, Rs 16-bitni izlazi koji predstavljaju
operande za aritmeticko-logicku jedinicu, - WP 3-bitni kontrolni signal koji definie
registar, - Sel 4-bitni kontrolni signal (donja dva bita se
koriste za definisanje izvora(source), a gornja
dva za definisanje odredita (destination) ), - WEL kontrolni signal (ako je 1 na mestu osam
niih bitova u registru koji je definisan
kontrolnim signalom WP upisace se niih osam
bitova sa ulaza DATA), - WEH kontrolni signal (ako je 1 na mestu osam
viih bitova u registru koji je definisan
kontrolnim signalom WP upisace se osam viih
bitova sa ulaza DATA). -
32Aritmeticko-logicka jedinica
- U sledecoj tabeli prikazane su operacije
koje izvrava aritmeticko-logicka jedinica
procesora SAYEH.
33Aritmeticko-logicka jedinica
- Aritmeticko-logicka jedinica ima sledece
portove - Clk ulaz taktnog signala,
- B15to0 ulazni kontrolni signal (ako je 1 ulaz
B se propusti na izlaz ALUout), - AandB ulazni kontrolni signal (ako je 1
izvrava se logicka operacija 'i' ), - AorB ulazni kontrolni signal (ako je 1
izvrava se logicka operacija 'ili' ), - NotB ulazni kontrolni signal (ako je 1 vri se
komplementiranje ulaza B), - AaddB ulazni kontrolni signal (ako je 1
izvrava se sabiranje nad ulaznim operandima), - AsubB ulazni kontrolni signal (ako je 1 ALU
jedinica od operanda na ulazu A oduzima operand
na ulazu B), - AmulB ulazni kontrolni signal (ako je 1
izvrava se mnoenje ulaznih operanada), - AcmpB ulazni kontrolni signal (ako je 1 ulaz A
se poredi sa ulazom B), - ShrB ulazni kontrolni signal (ako je 1 sadraj
ulaza B se pomera za jedno mesto ulevo), - ShlB ulazni kontrolni signal (ako je 1 sadraj
ulaza B se pomera za jedno mesto udesno), - 16-bitni ulaz A ulaz podataka,
- 16-bitni ulaz B ulaz podataka,
- 16-bitni izlaz ALUout izlaz rezultata
operacije, - jednobitni izlazi Cout, Zout izlazi statusnih
markera.
34Blok memorija
- Blok memorije ima sledece portove
- 16-bitni ulaz Addr adresni ulaz memorije,
- jednobitni ulaz RE kontrolni signal (ako je 1
dozvoljeno je icitavanje podataka iz memorije), - jednobitni ulaz WE kontrolni signal (ako je 1
dozvoljeno je upisivanje podataka u memoriju), - Data 16-bitni ulaz podataka,
- Q 16-bitni izlaz podataka.
35Multiplekser
- Multiplekser SAYEH procesora ima sledece
portove - I0 i I1 4-bitni ulazi,
- O - 4-bitni izlaz,
- Shadow kontrolni signal (ako je 1 na izlaz se
vodi I0, a ako je 0 na izlaz se vodi I1).
36Trostaticki bafer 1
- Bafer 1 SAYEH procesora ima sledece portove
- I 8-bitni ulaz,
- O - 8-bitni izlaz,
- IR_on_LOpndBus kontrolni signal (ako je 1 ulaz
I se vodi na izlaz O koji se dalje upisuje na
mesto niih 8 bitova operanda Rs).
37Trostaticki bafer 2
- Bafer 2 SAYEH procesora ima sledece portove
- I 8-bitni ulaz,
- O - 8-bitni izlaz,
- IR_on_HOpndBus kontrolni signal (ako je 1 ulaz
I se vodi na izlaz O koji se dalje upisuje na
mesto viih 8 bitova operanda Rs).
38Trostaticki bafer 3
- Bafer 3 SAYEH procesora ima sledece portove
- I 16-bitni ulaz,
- O - 16-bitni izlaz,
- RFright_on_OpndBus kontrolni signal (ako je 1
ulaz I se vodi na izlaz O koji se dalje vodi na
ulaz B aritmeticko-logicke jedinice).
39Trostaticki bafer 4
- Bafer 4 SAYEH procesora ima sledece portove
- I 16-bitni ulaz,
- O - 16-bitni izlaz,
- Rs_on_AddressUnitRside kontrolni signal (ako je
1 ulaz I (odnosno operand Rs) se vodi na izlaz O
koji se dalje vodi na ulaz Rside bloka PC).
40Trostaticki bafer 5
- Bafer 5 SAYEH procesora ima sledece portove
- I 16-bitni ulaz,
- O - 16-bitni izlaz,
- Rd_on_AddressUnitRside kontrolni signal (ako je
1 ulaz I (odnosno operand Rd) se vodi na izlaz O
koji se dalje vodi na ulaz Rside bloka PC).
41Trostaticki bafer 6
- Bafer 6 SAYEH procesora ima sledece portove
- I 16-bitni ulaz,
- O - 16-bitni izlaz,
- ALUout_on_Databus kontrolni signal (ako je 1
ulaz I (odnosno izlaz iz aritmeticko-logicke
jedinice) se vodi na izlaz O tj. na magistralu
podataka).
42Trostaticki bafer 7
- Bafer 7 SAYEH procesora ima sledece
portove - I 16-bitni ulaz,
- O - 16-bitni izlaz,
- Address_on_Databus kontrolni signal (ako je 1
ulaz I (odnosno adresa koju generie blok PC) se
vodi na magistralu podataka).
43Kontroler
-
- Upravljacka jedinica slui da na
osnovu trenutne instrukcije izvri generisanje - upravljackih signala. Upravljacka jednica
procesora SAYEH je realizovana kao upravljacka
jedinica sa direktnim upravljanjem (eng.
hardwired control).
44Kontroler
- Blok CU ima sledece portove
- Clock taktni signal procesora,
- IR tekuca instrukcija,
- External Reset signal kojim se resetuje stanje
procesora, - MemDataReady signali dozvole (ako je 1 moguce
je citanje podataka iz memorije ili upis podataka
u memoriju), - jednobitni ulazi C, Z statusni markeri ALU-a,
- ReadIO, WriteIO signali koji se alju
ulazno-izlaznim jedinicama, - 36-bitni izlaz Control upravljacki signali
izvrne jedinice.
Control
45Procesor SAYEH
- Blokovi koji su do sada opisani povezani su na
sledeci nacin
46Testiranje sintetizovanog procesora
- Programskom sekvencom od est naredbi
testiracemo korektnost rada sintetizovanog
procesora SAYEH. - Add R1, R6 R1 ? R1 R6
- Shl R7 R0 ? Shl R7
- Or R3, R7 R3 ? R3 Or R7
- Not R5 R0 ? Not R5
- Sub R1, R6 R1 ? R1 R6
- Sta (R3), R4 mem(R3) ? R4
47Definisanje inicijalnih vrednosti memorijskih
lokacija
- Sadraj programske memorije za odgovarajucu
programsku sekvencu treba da bude sledeceg
oblika - Memory01011011000000000B600 Add R1,R6
- Memory110010011000000009300 Shl R7
- Memory201111111000000007F00 Or R3,R7
- Memory310000001000000008100 Not R5
- Memory41100011000000000C600 Sub R1,R6
- Memory500111100000000003C00 Sta
(R3),R4 -
- Napomena Mainski kod, cetiri MS bita
instrukcije, oznacen je crvenom bojom, naredna
cetiri bita oznacena plavom bojom specificiraju
izvorini i odredini operand instrukcije,
zadnjih osam bitova specificiraju neposrednu
vrednost opkoda instrukcije, tj. polje koje se
naziva imm. Kada se opkodom ne specificira
koricenje polja imm tada je njegova vrednost
00h.
48Definisanje sadraja registara registarskog polja
- Sadraj registara registarskog polja pre pocetka
izvrenja programske sekvence treba biti sledeci - Reg_file000000000000000000000
- Reg_file100000000000000010001
- Reg_file20000000000001010000A
- Reg_file300000000000000110003
- Reg_file400000000000001000004
- Reg_file500000000000001010005
- Reg_file600000000000001100006
- Reg_file700000000000001110007
49Sadraj registara pre izvrenja programske
sekvence
50Sadraj registara nakon prve instrukcije ( Add
R1,R6 R1 ? R1 R6 )
51Sadraj registara nakon druge instrukcije (Shl
R7 R0 ? Shl R7)
52Sadraj registara nakon trece instrukcije (Or
R3,R7 R3 ? R3 Or R7 )
53Sadraj registara nakon cetvrte instrukcije(Not
R5 R0 ? Not R5 )
54Sadraj registara nakon pete instrukcije (Sub
R1,R6 R1 ? R1 R6)
55Sadraj registara i memorije nakon este
instrukcije (Sta (R3),R4 mem(R3) ? R4)
56Zakljucak
- VHDL je jedan od najcece koricenih jezika za
opis hardware-a - Prednosti upotrebe VHDL-a
- jednostavna i efikasna implementacija
- skraceno vreme dizajniranja
- laka detekcija greaka
- jednostavno testiranje
- visok nivo apstrakcije
- maksimalno tacan i pouzdan dizajn uz najmanju
cenu u najkracem roku razvijanja - Zbog navedenih prednosti VHDL se cesto koristi u
procesima dizajniranja komponenti i razvoja
sloenih sistema
57 Autori
- Ime i prezime Nikola Sekulovic
- Rodjen 27.04.1983.
- Mesto Ni
- kola Elektronski fakultet
, Ni - Smer
telekomunikacije - Broj indeksa 10963
- Kontakt sekulani_at_bankerinter.net
- Ime i prezime Lazar Velimirovic
- Rodjen 17.05.1983.
- Mesto Prokuplje
- kola Elektronski fakultet ,
Ni - Smer
telekomunikacije - Broj indeksa 11017
- Kontakt lami_at_bankerinter.net