MicroBlaze - MicroBlaze
| Designer | Xilinx |
|---|---|
| Biți | 32-bit / 64-bit (32 → 64) |
| Versiune | 11.0 |
| Proiecta | RISC |
| Codificare | Fix |
| Endianitate | Mic (mare) |
| Deschis | Nu |
| Registrele | |
| 32 × 32 biți | |
MicroBlaze este un microprocesor moale miez proiectat pentru Xilinx matrice de porți programabile în câmp (FPGA). Ca procesor soft-core, MicroBlaze este implementat în întregime în memoria generală și țesătura logică a Xilinx FPGAs.
Prezentare generală
În ceea ce privește arhitectura setului de instrucțiuni, MicroBlaze este similar cu arhitectura DLX bazată pe RISC , descrisă într-o carte populară de arhitectură computerizată de Patterson și Hennessy . Cu puține excepții, MicroBlaze poate emite o nouă instrucțiune în fiecare ciclu, menținând randamentul cu un singur ciclu în majoritatea circumstanțelor.
MicroBlaze are un sistem de interconectare versatil pentru a sprijini o varietate de aplicații încorporate. Magistrala I / O primară a MicroBlaze, interconectarea AXI , este o magistrală de tranzacție mapată de sistem, cu capacitate master-slave. Versiunile mai vechi ale MicroBlaze foloseau magistrala CoreConnect PLB. Majoritatea interfeței IP furnizate de furnizor și terță parte către AXI direct (sau printr-o interconectare AXI). Pentru acces la memoria locală (FPGA RAM ), MicroBlaze folosește o magistrală LMB dedicată, care oferă stocare rapidă pe cip. Coprocesoarele definite de utilizator sunt acceptate prin conexiuni dedicate AXI4-Stream. Interfața coprocesorului (e) poate accelera algoritmi intensivi din punct de vedere al calculului prin descărcarea părților sau a întregii calcule către un modul hardware conceput de utilizator.
Multe aspecte ale MicroBlaze pot fi configurate de utilizator: dimensiunea cache-ului, adâncimea conductei (3 etape, 5 etape sau 8 etape), perifericele încorporate, unitatea de gestionare a memoriei și interfețele de magistrală pot fi personalizate. Versiunea optimizată pentru zonă a MicroBlaze, care utilizează o conductă în 3 trepte, sacrifică frecvența ceasului pentru o zonă logică redusă. Versiunea optimizată pentru performanță extinde conducta de execuție la 5 etape, permițând viteze maxime mai mari de 700 MHz (pe familia Virtex UltraScale + FPGA ). De asemenea, instrucțiunile procesorului de chei care sunt rareori folosite, dar mai scumpe de implementat în hardware pot fi adăugate / eliminate selectiv (de exemplu, operații de multiplicare, divizare și virgulă mobilă). Această personalizare permite unui dezvoltator să facă compromisurile de proiectare adecvate pentru un set specific de cerințe hardware și aplicații gazdă.
Cu unitatea de gestionare a memoriei, MicroBlaze este capabil să găzduiască sisteme de operare care necesită paginare și protecție bazate pe hardware, cum ar fi nucleul Linux . În caz contrar, este limitat la sistemele de operare cu o protecție simplificată și un model de memorie virtuală, de exemplu FreeRTOS sau Linux fără suport MMU . Debitul global al MicroBlaze este substanțial mai mic decât un nucleu CPU comparabil (cum ar fi ARM Cortex-A9 în Zynq ).
Vivado
Vivado Design Suite al Xilinx este mediul de dezvoltare pentru construirea sistemelor de procesor integrate integrate MicroBlaze (sau ARM - vezi Zynq) în FPGA-urile Xilinx. Versiunile mai vechi foloseau pachetul de dezvoltare EDK (Embedded Development Kit) al Xilinx.
Proiectanții folosesc Vivado IP Integrator pentru a configura și construi specificațiile hardware ale sistemului lor încorporat (nucleu procesor, controler de memorie, periferice I / O, etc.) Integratorul IP convertește designul blocului proiectantului într-o descriere RTL sintetizabilă ( Verilog sau VHDL ) și automatizează implementarea sistemului încorporat (de la RTL la fișierul bitstream.) Pentru nucleul MicroBlaze, Vivado generează o listă de criptare (care nu poate fi citită de om).
SDK gestionează software-ul care va fi executat pe sistemul încorporat. Alimentat de lanțul de instrumente GNU ( GNU Compiler Collection , GNU Debugger ), SDK permite programatorilor să scrie, să compileze și să depaneze aplicații C / C ++ pentru sistemul lor încorporat. Instrumentele Xilinx oferă posibilitatea de a rula software-ul în simulare sau de a utiliza o placă FPGA adecvată pentru a descărca și a executa pe sistemul actual.
Cumpărătorilor de Vivado li se acordă o licență perpetuă de utilizare a MicroBlaze în FPGA-urile Xilinx fără redevențe recurente. Licența nu acordă dreptul de a utiliza MicroBlaze în afara dispozitivelor Xilinx.
Compilatoare alternative și instrumente de dezvoltare au fost puse la dispoziție de la Altium, dar este necesară încă o instalare și o licență EDK.
Sursa deschisa
În iunie 2009, MicroBlaze a devenit prima arhitectură soft-CPU care a fost fuzionată în arborele sursă principal al kernel-ului Linux. Această lucrare a fost interpretată de Michal Simek și susținută de PetaLogix și Xilinx.
Începând din septembrie 2009, suportul pentru instrumentele MicroBlaze GNU este, de asemenea, contribuit la depozitele principale ale Free Software Foundation. Suportul pentru MicroBlaze este inclus în versiunile GCC începând cu versiunea 4.6
Suportul a fost adăugat la LLVM în aprilie 2010, dar ulterior a fost eliminat în iulie 2013 din cauza lipsei întreținătorului.
Clone
- aeMB, implementat în Verilog, licență LGPL
- Subset OpenFire, implementat în Verilog, licență MIT
- MB-Lite, implementat în licență VHDL, LGPL
- MB-Lite +, implementat în licență VHDL, LGPL
- myBlaze, implementat în licența MyHDL , LGPL
- SecretBlaze, implementat în licența VHDL, GPL
Alte procesoare soft
- Nios II
- TSK3000
- Xtensa
- LatticeMico32
- ARC
Vezi si
- OpenCores - o casă pentru multe proiecte open source de procesor soft
- PicoBlaze
- Advanced Microcontroller Bus Architecture § Advanced eXtensible Interface (AXI)
Referințe
-
^
"Modificări ale seriei de versiuni GCC 4.6, caracteristici noi și remedieri" . 15.03.2011 . Adus 15.03.2011 .
A fost adăugat suport pentru ținta încorporată a procesorului softcore Xilinx MicroBlaze (microblaze-elf).
- ^ "Note de lansare LLVM 2.7" . releases.llvm.org . Adus 07-04-2019 .
- ^ Christopher, Eric (24-07-2013). „[LLVMdev] Dezactivarea și eliminarea backend-ului MBlaze” . Adus 07-04-2019 .