Procesorul MicroBlaze a fost dezvoltat în 2002 pentru a integra mai multe caracteristici complicate pentru a satisface cererea nouă și în creștere a pieței. Așadar, procesorul MicroBlaze este un element esențial în portofoliul Low-End al Xilinx pentru a permite o dezvoltare mai rapidă a sistemului care conține Artix®-7 FPGA-uri , SoC-uri Spartan®-6, Zynq®-7000 AP. Acest procesor este extrem de configurabil, astfel încât poate fi folosit ca procesor sau microcontroler încorporat în cadrul FPGA-urilor și, de asemenea, folosit ca co-procesor în SoC-urile Zynq-7000 AP bazate pe ARM Cortex-A9. Acest articol oferă scurte informații despre procesor MicroBlaze – arhitectura si lucrul cu aplicatii.
Ce este procesorul Microblaze?
Microprocesorul moale care este proiectat în principal pentru FPGA-urile Xilinx este cunoscut sub numele de procesor MicroBlaze. Acest procesor este pur și simplu implementat în memoria de uz general și structura logică a FPGA-urilor Xilinx. Acest procesor este similar cu arhitectura DLX bazată pe RISC și are un sistem de interconectare flexibil, astfel încât să accepte diferite aplicații încorporate. Magistrala I/O principală și interconectarea AXI a MicroBlaze este o magistrală de tranzacții mapată în memorie cu o facilitate master-slave.
MicroBlaze utilizează o magistrală LMB dedicată pentru a accesa memoria locală și oferă stocare rapidă pe cip. Multe părți ale acestui procesor pot fi configurate de utilizator, cum ar fi dimensiunea cache-ului, adâncimea unității de gestionare a memoriei conductei, periferice încorporate și interfețe de magistrală.
Caracteristici Microblaze
The caracteristicile Microblaz e includ următoarele. Are 32 de registre de uz general.
- Are cuvinte de instrucțiuni de 32 de biți, inclusiv 2 moduri de adresare și 3 operanzi.
- Autobuzul de adrese este pe 32 de biți.
- Are o conductă în 3 trepte sau o conductă în 5 trepte.
- O unitate bloc ALU cu un schimbător.
- Arhitectura Harvard include date pe 32 de biți și magistrală de adrese.
- Interfață de date și instrucțiuni LMB sau magistrala de memorie locală.
- Interfețele de flux AX14 și AX14.
- Unitate în virgulă mobilă și unitate de gestionare a memoriei.
- Suportă lockstep.
- Interfață de depanare și urmărire.
Arhitectura Microbaze
Diagrama bloc a procesorului MicroBlaze este prezentată mai jos. Acest procesor MicroBlaze este extrem de personalizabil și acceptă peste 70 de opțiuni de design. Această arhitectură prezintă caracteristici hardware permanente, precum și opțiuni configurabile, cum ar fi cache de instrucțiuni sau date, unitatea de gestionare a memoriei, unitatea de virgulă mobilă etc.
Un sistem incorporat asamblat în jurul unui procesor MicroBlaze include în principal MicroBlaze Soft Processor Core, memorie locală pe cip, interconexiuni standard de magistrală și periferice OPB (On-chip Peripheral Bus). Un sistem de procesor MicroBlaze variază în principal de la un nucleu de procesor cu o memorie locală până la un sistem mare care include mai multe MicroBlaze procesoare , memorie externă și multe periferice OPB.
Miez de procesor moale
Miezul moale al procesorului MicroBlaze este esențial pentru sistemul încorporat MicroBlaze. Acesta este un procesor RISC pe 32 de biți foarte rapid și eficient, care are următoarele caracteristici.
- Setul de instrucțiuni este ortogonal.
- Autobuze separate de date și instrucțiuni.
- Registre de uz general pe 32 de biți.
- Are un schimbător complet opțional pe 32 de biți.
- Interfețe încorporate pentru OCM rapidă sau memorie pe cip și OPB (On-chip Peripheral Bus) standard industrial IBM.
Implementările în Virtex-II și dispozitivele ulterioare acceptă o mulțime de hardware.
Memorie locală pe cip
Memoria sincronă este o memorie locală care este utilizată în principal pentru a permite blocarea RAM pe cip.
Interconexiuni standard de autobuz
Interfețele de magistrală de pe partea de instrucțiuni și date includ o interfață cu memoria locală numită LMB (Local Memory Bus) și o interfață cu magistrala periferică On-chip a IBM. Așa că putem proiecta sisteme care se lipesc strict de arhitectura Harvard, altfel, pentru a partaja resurse, putem utiliza un singur OPB în combinație printr-un arbitru de autobuz.
Autobuzul de memorie local oferă o intrare asigurată într-un singur ciclu pentru RAM bloc pe cip. Acesta este un protocol de magistrală foarte eficient, simplu și cu un singur master și este perfect pentru interfațarea memoriei locale rapide. OPB sau On-chip Peripheral Bus este o magistrală multi-master lată de 32 de biți, care este perfectă pentru unirea perifericelor și memoriei exterioare la nucleul procesorului MicroBlaze.
Periferice de magistrală periferică pe cip
Sistemul hardware MicroBlaze este completat de periferice OPB pentru a oferi diferite funcții precum Watchdog Timer sau Timebase, General purpose Timer sau Counters, IC (Interrupt Controller), diferite controlere precum SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, I/O de uz general, UART 16450/550 și Ethernet 10/100 MAC. În plus, putem adăuga și defini periferice în principal pentru funcții personalizate, în caz contrar, o interfață la un design care există în FPGA.
Set de instrucțiuni Microblaze
Seturile de instrucțiuni Microblaze sunt aritmetice, logice, ramuri, încărcare/stocare și altele. Dimensiunea tuturor instrucțiunilor este fixă. Cel mult 3 registre pot fi date ca operanzi. Microblaze include două formate de instrucțiuni de tip A și de tip B, care sunt prezentate mai jos.
Formatul de instrucțiuni de tip A este utilizat în principal pentru instrucțiuni de înregistrare-registru. Deci include opcode, o singură destinație și două registre sursă. Formatul de instrucțiuni de tip B este utilizat în principal pentru instrucțiuni imediate de registru, care includ opcode, destinație unică și registre cu sursă unică și o sursă de valoare imediată de 16 biți.
În cele două formate de instrucțiuni de mai sus, opcode este un cod de operare, Rd este un registru de destinație care este codificat cu 5 biți, Ra și Rb sunt registre sursă în care fiecare codificat cu 5 biți și Imediat este o valoare de 16 biți.
Instructiuni aritmetice
Instrucțiunile aritmetice de tip A și de tip B sunt date mai jos.
Tip A
ADD Rd, Ra, Rb adăuga |
Rd = Ra+Rb, flag Carry afectat |
ADD K Rd, Ra, Rb Adăugați și păstrați transportul |
Rd = Ra+Rb, flag Carry nu este afectat |
RSUB Rd, Ra, Rb Scăderea inversă |
Rd = R-Rb, flag Carry nu este afectat |
Tip B
ADD I Rd, Ra, Imm adauga imediat |
Rd = Ra+signExtend32 (Imm) |
ADD IK Rd, Ra, Imm adăugați imediat și păstrați transportul |
Rd = Ra+ semnExtend32 (Imm) |
RSUBIK Rd, Ra, Imm scădere inversă cu imediată |
Rd = Ra+ semnExtend32 (Imm) -Ra |
SRA Rd, Ra deplasare aritmetică la dreapta |
Rd = (Ra>>1) |
Instrucțiuni logice
Instrucțiunile logice de tip A și de tip B sunt prezentate mai jos.
Tip A
SAU Rd, Ra, Rb logic sau |
Rd = Ra| Rb |
ȘI Rd,Ra,Rb Adăugarea logică |
Rd = Ra și Rb |
XOR Rd, Ra, Rb Logoical xor |
Rd = Rb ^ Rb |
ANDN Rd, Ra, Rb Logic și nu |
Rd = Ra și (Rb) |
Tip B
ORI Rd, Ra, Imm logic SAU cu imediat |
Rd = Ra | semnExtend32 (Imm) |
ANDI Rd, Ra, Imm logic ŞI cu imediată |
Rd = Ra și semnExtend32 (Imm) |
XORI Rd, Ra, Imm XOR logoic cu imediat |
Rd = Ra ^ signExtend32 (Imm) |
ANDNI Rd, Ra, Imm Logic ȘI NU cu imediată |
Rd = Ra & (semnExtend32 (Imm)) |
Instrucțiuni de filială - necondiționat
Modificați registrul Program Counter
MIREASA Imm ramificație imediată cu întârziere imediată |
PC = PC+ semnExtend32 (Imm) permite execuția slotului de întârziere |
BRLID Rd, Imm sucursală și legătură imediată cu întârziere imediată (apel de funcție) |
Rd = PC PC = PC+& signExtend32 (Imm) permite execuția slotului de întârziere |
RTSD Ra, Imm întoarcere din subrutină |
PC = Ra + semnExtend32 (Imm) permite execuția slotului de întârziere |
RTID Ra, Imm revenire de la întrerupere |
PC = Ra + semnExtend32 (Imm) permite execuția slotului de întârziere setați activarea întreruperii în MSR |
Instrucțiuni de filială - Necondiționat1
Schimbați registrul Program Counter când o condiție este îndeplinită
BEQI Ra, Imm ramură dacă este egală |
PC = PC+ semnExtend32 (Imm) Dacă Ra = = 0 |
MASH Ra, Imm ramură dacă nu este egală |
Rd = PC PC = PC+& signExtend32 (Imm) Dacă Ra! = 0 |
Instrucțiuni de filială- Necondiționat2
Schimbați registrul Program Counter când o condiție este îndeplinită
BLTI Ra, Imm ramură dacă este mai mică decât |
PC = PC+ semnExtend32 (Imm) Dacă Ra < 0 |
BLEI Ra, Imm ramură dacă mai mică este egală cu |
Rd = PC PC = PC+& signExtend32 (Imm) Dacă Ra!< = 0 |
BGTI Ra, Imm ramură dacă este mai mare decât |
PC = PC+ semnExtend32 (Imm) Dacă Ra!> 0 |
BGEI Ra, Imm ramură dacă mai mare egală decât |
PC = PC+semnExtend32 (Imm) Dacă Ra!>= 0 |
Instrucțiuni de încărcare/depozitare - tip A
LW Rd, Ra, Rb Încărcați cuvântul |
Adresa = Ra+Rb Rd = *Adresa |
SW Rd, Ra, Rb Păstrați cuvântul |
Adresa – Ra+Rb *Adresa = Rd |
Tip B
LWI Rd, Ra, Imn Încărcați cuvântul imediat |
Adresă = Ra + signExtend32 (Imm) Rd = *Adresa |
SW Rd, Ra, Imm Păstrați cuvântul imediat |
Adresă = Ra + signExtend32 (Imm) *Adresa = Rd |
Alte Instructiuni
IMM, Imm imediat |
Extindeți Imm-ul unei instrucțiuni precedente de tip B la 32 de biți. |
MFS Rd, Sa Treceți din registrul cu destinații speciale |
Rd = Sa Sa- registru cu scop special, operand sursa
|
MTS Sd, Ra Treceți la registrul cu destinații speciale |
Sd = Ra Sd – registru cu destinație specială, operand destinație |
Registrele
Arhitectura procesorului MicroBlaze este complet ortogonală, care include registre de uz general de 32 de biți și registre de scop special de 32 de biți, cum ar fi Program Counter și Machine Status Register.
Arhitectura conductelor
MicroBlaze utilizează o arhitectură de conducte în 3 etape, inclusiv etapele de preluare, decodare și completare. În mod automat, redirecționarea datelor, ramurile și blocarea conductei sunt determinate în hardware.
Încărcați sau stocați arhitectura
MicroBlaze acceptă memorie în trei dimensiuni de date 8 biți (octeți), 16 biți (jumătate de cuvânt) și 32 de biți (cuvânt). Deci, accesările la memorie sunt întotdeauna aliniate la dimensiunea datelor. Acesta este un procesor Big-Endian care folosește adresa adresei Big-Endian, precum și convențiile de etichetare odată ce accesează memoria.
întreruperi
Odată ce are loc o întrerupere, atunci acest procesor va încheia execuția actuală pentru a gestiona cererea de întrerupere prin ramificare pentru a întrerupe adresa vectorială și va stoca adresa instrucțiunii care trebuie executată. Acest procesor va opri întreruperile viitoare prin ștergerea steagului IE (Interrupt Enable) din MSR (Machine Status Register).
Cum funcționează Microblaze?
Procesorul MicroBlaze acceptă lățimea magistralei de 32 de biți, iar acest nucleu de procesor este un motor bazat pe RISC care include un fișier de registru bazat pe RAM LUT de 32 de biți prin instrucțiuni separate pentru acces la memorie și date.
Acest procesor acceptă pur și simplu atât BlockRAM pe cip, cât și memorie externă. Similar cu IBM PowerPC; toate perifericele utilizează magistrala similară CoreConnect OPB, deci; perifericele procesorului se potrivesc bine cu PowerPC pe Virtex-II Pro.
Procesorul MicroBlaze oferă o flexibilitate completă de a alege combinația de memorie, periferice și caracteristici de interfață care vă vor oferi sistemul precis de care aveți nevoie pentru un singur FPGA cu costuri mai mici.
Diferența B/N Microblaze vs Risc-V
The diferența dintre MicroBlaze și RISC v includ următoarele.
Microblaze |
Risc-V |
Este un nucleu de microprocesor moale conceput în principal pentru Xilinx FPGA.
|
RISC-V este o arhitectură de set de instrucțiuni bazată pe principiile RISC.
|
Utilizează arhitectura Harvard RISC. | Utilizează arhitectura setului de instrucțiuni. |
Licența sa este proprietară (Xilinx) | Licența sa este open source. |
Adâncimea conductei este de 3 sau 5. | Adâncimea conductei este de 5. |
Performanța sa este de 280 DMIP. | Performanța sa este de 250 DMIP. |
Viteza sa este de 235 MHz. | Viteza sa este de 250 MHz. |
Are 1027 LUT-uri. | Are 4125 LUT-uri. |
Implementarea tehnologiei utilizate este Xilinx FPGA. | Implementarea tehnologiei utilizate este FPGA/ASIC. |
Avantajele Microblaze
The avantajele MicroBlaze includ următoarele.
- Este economic.
- Este foarte configurabil.
- Performanța sa este ridicată în comparație cu ARM.
- Este susținut de un kit de dezvoltare încorporat.
- Este un moale microprocesor miez.
- Pentru a vă ajuta să vă aranjați rapid aplicația, acest procesor include trei configurații fixe care sunt legate de binecunoscutele clase de procesoare microcontroller, în timp real și procesor de aplicație.
Aplicații Microblaze
The aplicații ale MicroBlaze includ următoarele.
- Acest procesor îndeplinește multe cerințe diferite ale aplicațiilor, cum ar fi industriale, auto, medicale și de consum etc.
- Aplicațiile MicroBlaze variază de la simple mașini de stat bazate pe software până la controlere complexe utilizate în aplicații încorporate sau dispozitive bazate pe Internet.
- Este optimizat pentru aplicații încorporate, cum ar fi controlul industrial, automatizarea de birou și auto.
- MicroBlaze este capabil să comunice cu un set mare de periferice pentru a se potrivi în aplicații la scară medie.
- Natura moale a acestui procesor îl face personalizabil pentru diferite aplicații în care designerii pot schimba caracteristici cu dimensiune pentru a îndeplini obiectivele de preț și performanță pentru aplicații medicale, auto, industriale și de securitate.
Astfel, despre asta este vorba o privire de ansamblu asupra Microblaze procesor. Acesta este un nucleu de procesor soft RISC programabil pe 32 de biți cu caracteristici complete. Acest procesor îndeplinește diferite cerințe în diferite domenii, cum ar fi piețele de consum, medical, industrial, auto și infrastructurii de comunicații. Este extrem de configurabil, deci folosit ca procesor sau microcontroler încorporat în FPGA-uri, altfel ca un co-procesor pentru ARM. Iată o întrebare pentru tine, ce este FPGA?