Proiectarea unui Procesor în Limbajul Descriptiv Verilog

Proiect
8/10 (1 vot)
Domeniu: Electronică
Conține 1 fișier: docx
Pagini : 16 în total
Cuvinte : 4275
Mărime: 277.69KB (arhivat)
Publicat de: Dorel Demeter
Puncte necesare: 7
Profesor îndrumător / Prezentat Profesorului: A. Bragarenco
Universitatea Tehnică a Moldovei Facultatea Calculatoare Informatică şi Microelectronică Catedra Microelectronica şi Dispozitive cu Semiconductori

Cuprins

  1. Cuprins
  2. Noţiuni teoretice pag. 3
  3. Procesorul elementar pag. 3
  4. Structura de CROM pag. 5
  5. RALU pag. 7
  6. Procesorul intrepretor cu program counter pag. 9
  7. Descrierea procesorului pag. 12
  8. Modulul de simulare a procesorului pag.15
  9. Rezultatele obtinute pag. 16
  10. Concluzie pag. 17

Extras din proiect

Noţiuni teoretice

Procesoare

Ce se întâmplă atunci când cuplăm în buclă două automate pentru a realiza cea de a treia categorie de SO-3? Depinde ce fel de automate cuplăm.

Cazul cel mai complex este acela al cuplării a două automate finite, AF. Nu-l vom studia pentru că nu oferă structuri tipice. Nu înseamnă că astfel de structuri de ordinul trei nu sunt interesante. Ele apar în aplicaţii concrete cu efecte de optimizare foarte spectaculoase.

Structuri tipice, cu aplicaţii tipice, apar atunci când cel puţin unul din automate este unul de tip funcţional, simplu. Vom folosi, astfel, automate simple de tipul numărătorului, al memoriei de tip stivă sau al unităţii de tip RALU. Ele vor fi cuplate, spre a fi controlate, cu automate finite sau cu unităţi de tip CROM. De regulă, bucla ce se închide peste două automate este o buclă de control. Vom studia pe rând configuraţii de forma:

AF & NUM : automatul cu numărător ce apare în procesul de segregare a unor structuri simple de automat (numărător), dintr-una complexă de automat finit

AF & LIFO : automatul cu stivă ce apare prin segregarea unei structuri simple cu o funcţionalitate mai complexă - memoria de tip stivă.

AF&RALU : procesorul elementar, ce este un procesor ce realizează o singură operaţie complexă de prelucrare a şirului de date recepţionat

RALU & NUM : procesorul RISC, care este o structură ce execută secvenţe de instrucţiuni

CROM & RALU : procesorul microprogramat, care este o structură ce interpretează secvenţe de instrucţiuni.

Procesorul elementar

Termenul de procesor se referă la o clasă foarte largă de circuite, cu structuri şi funcţii foarte diverse. Diversitatea structurală şi funcţională rezultă din modul foarte flexibil în care această componentă se adaptează aplicaţiilor. Tipic pentru utilizarea procesorului este faptul că integrarea lui într-o aplicaţie nu se face direct, ci prin intermediul unei structuri simbolice numită, de regulă, program. Orice procesor execută sau interpretează o secvenţă de instrucţiuni. Flexibilitatea cu care această secvenţă de instrucţiuni este concepută poate adapta structura oricărui procesor la orice aplicaţie, modulo performanţă.

Pentru a satisface şi restricţii legate de performanţă şi cost dispunem de o gamă largă de modalităţi în care un procesor poate fi definit şi proiectat. Acesta este motivul pentru care această componentă se produce într-o gamă foarte extinsă de variante. La o suplimentară diversificare a contribuit şi evoluţia tehnologiilor de realizare. Vom încerca să definim totuşi conceptul de procesor prin ceea ce toate structurile ce poartă acest nume au în comun.

Un procesor este un SO-3 la care unul din automate este de tip RALU iar celălalt îndeplineşte funcţia de automat de control.

Un procesor elementar, PE, este un procesor al cărui automat de control este strict iniţial.

Vom numi microinstrucţiuni elementele produsului Y x Q ale unui automat de control.

Un procesor elementar va fi format, conform definiţiilor anterioare, dintr-un circuit de tip RALU şi un automat de control strict iniţial. Acest procesor se va iniţializa prin resetare şi va executa o singură funcţie, cea definită de secvenţa de comandă pentru care a fost proiectat automatul de control. Altfel spus, PE este procesorul cu o singură instrucţiune pe care o interpretează continuu.

Exemplul:

Fie PE din Figura 10.12, format din CR0M1, în calitate de automat de control, definit de următorul format al microinstrucţiunii pe care o generează:

<microinstructiune>::= <com. ralu> <com. i/o> <mod>

<test> <jump>

<com. i/o>::= READ | WRITE | -

<Mod>::= JMP | CJMP | -

<Test>::= CR | WAITJR. | WAIT.W | -

<Jump>::= <o eticheta formata dintr-un sir, nefolosit ca

mnemonica, de cel mult 6 caractere>

şi RALU1 definit prin următoarea structură a comenzii:

<com.ralu>::= <Left> <Right> <Dest> <Sel> <Func> <Write>

<Left::= L0 | L1 | L2 | - ,

<Right>::= R0 | Rl | R2 | - ,

<Dest>::= DO | Dl | D2 | - ,

<Sel>::= DIN |- ,

<Func>::= XOR | NOT | ADD | LEFT | SHR,

<Write>::= W | - .

CROM1 comandă în exteriorul PE1, citirea unor configuraţii binare prin ieşirea READ, scrierea prin WRITE. Va recepţiona, în consecinţă indicatorii WAIT_R şi WAIT.W prin care este sincronizată recepţia pe intrarea DIN şi emiterea pe ieşirea DOUT. Indicatorul CR este recepţionat pe buclă de la ieşirea ALU din RALUl. CROM1 posedă şi o intrare sincronă de reset, RST, prin acţiunea căreia se iniţializează pentru generarea primei microinstructiuni din secvenţa pentru care a fost proiectat. Comanda implicită în câmpul <Mod> este INC.

Procesorul elementar PE1 definit prin interconectarea celor două automate (RALUl ŞI CROM1) va putea folosi următorul limbaj de microprogramare:

<microinstructiune>::= <com. ralu> <com. i/o> <mod>

<test> <jump>

<com.ralu>::= <Left> <Right> <Dest> <Sel> <Func> <Write>

<Left>::= L0 | L1 | L2 | - ,

<Right>::= R0 | Rl | R2 | - ,

<Dest>::= DO | Dl | D2 | - ,

<Sel>::= DIN | - ,

<Func>::= XOR | NOT | ADD | LEFT | SHR,

<Write>::= W | - .

<com. i/o>::= READ | WRITE | -

Fig. 1 Procesor elementar

<Mod>::= INC | JMP | CJMP

<Test>::= CR | WAIT„R | WAIT_W | -

<Jump>::= <o eticheta formata dintr-un sir, nefolosit ca

mnemonica, de cel mult 6 caractere>.

Exemplul:

Să se scrie pentru PE1 microprogramul care recepţionează pozitivi întregi şi emite 00...0 pentru fiecare număr mai mic decât 100...0, sau 11...1 dacă numărul recepţionat este mai mare sau egal decât sau cu 100...0. Folosind limbajul definit în exemplul anterior se poate scrie următorul microprogram unic asociat controlerului CROM1:

0 L0 R0 DO X0R W // regO <- 00...0 //

1 L0 Dl NOT W // regi *- 11...1 //

2 LI Dl SHR W // regi <- 011...1 //

3 LI Dl NOT W // regi «- 100...0 //

4 BUBU READ DIN D2 LEFT W CJMP WAIT_RBUBU

// reg2 <- DIN, când WAIT_R devine 1 //

5 L2 Rl SUB CJMP CR MUMU

// compara reg2 cu 100... 0 //

6 CUCU WRITE L0 LEFT CJMP WAIT.WCUCU

// emite 00...0 pentru ca reg2 < 100...0 //

7 JMP BUBU // salt la inceput //

8 MUMU WRITE LO NOT CJMP WAIT.WCUCU // emite 11...1 //

9 JMP BUBU

Liniile de microprogram au fost numerotate pentru că ele sunt realmente poziţionate începând cu locaţia 0 în ROM-ul din CROM 1. în acest caz valoarea etichetelor este cunos¬cută: BUBU = 4, CUCU = 6, MUMU = 8. Prin comanda RST CROM 1 începe execuţia de la adresa 0, intrând într-o buclă "infinită".

Dacă şirul de numere recepţionat reprezintă forma digitizată a unui semnal, atunci şirul de numere emis de PE1 reprezintă transformarea semnalului într-un semnal dreptunghiular, raportat la pragul reprezentat de numărul 100...0.

Foarte puţin din structura concretă a PE1 ne spune ceva despre funcţia pe care o execută. Cu structura PE1 se pot efectua şi alte funcţii (nu oricare) prin scrierea altui

microprogram. Configuraţia random de biţi din ROM-ul CROM-ului este cea care defineşte funcţioal sistemul. Structura fizică simplă a maşinii este este folosită pentru a executa structura simbolocă complexă "stocată" în ROM.

Procesoarele elementare sunt maşini în care aproape toată complexitatea este segregată în structura simbolică ce defineşte secvenţa de control.

Preview document

Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 1
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 2
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 3
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 4
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 5
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 6
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 7
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 8
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 9
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 10
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 11
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 12
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 13
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 14
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 15
Proiectarea unui Procesor în Limbajul Descriptiv Verilog - Pagina 16

Conținut arhivă zip

  • Proiectarea unui Procesor in Limbajul Descriptiv Verilog.docx

Te-ar putea interesa și

Descrierea și Simularea unui Procesor cu Ajutorul Limbajului Verilog

Introducere În prezent dezvoltarea tehnico-ştiinţifică se bazează pe progresele electronicii digitale de calcul şi procesare a datelor şi mai mult...

Ai nevoie de altceva?