MicroBlaze

MicroBlaze is een softcoreprocessor van Xilinx gemaakt voor het gebruik in Xilinx FPGA's (Field Programmable Arrays). Een softcoreprocessor is beschreven in een hardware description language (HDL), die zich bevindt in het deel configureerbare logica in de FPGA's. In 2001 kwam de eerste versie van MicroBlaze uit. De huidige versie is versie 5.

Voorbeeld VHDL-broncode

Voorbeeld van VHDL-code

Architectuur

De MicroBlaze-architectuur is gebaseerd op een 32 bit-RISC-architectuur met een aparte data- en adresbus. Het is vergelijkbaar met de DLX-architectuur. De basis architectuur bestaat uit 32 registers, een Arithmetic Logic Unit (ALU), schuifregister en 2 soorten interrupts. De laatste MicroBlaze bezit een 5 stage-pipeline. Hij slaagt er ook in om de meeste instructies in één enkele cyclus uit te voeren. Zowel de instructies als de data invoer zijn 32 bits lang.

Prestaties

De prestaties van de MicroBlaze hangen sterk af van de configuratie die gebruikt wordt. Zowel de FPGA-structuur als de manier van implementatie spelen een rol. De nieuwste versie van de MicroBlaze haalt snelheden tot 200 MHz. De juiste metingen in verband met prestaties gebeuren door middel van de Dhrystone, een benchmarkprogramma. De prestatie is uitgedrukt in aantal Dhrystone-instructies per seconde. (DMIPS). De tabel geeft een vergelijking tussen de maximum MicroBlaze Dhrystone-prestaties voor Virtex-5 en Spartan-3 FPGA’s.

Vergelijkingstabel

FPGA Grootte
(LUTs)
Klokfrequentie
(MHz)
Dhrystone 2,1
(DMIPS)
Prestatie
(DMIPS/MHz)
Virtex-5 960 210 240 1,15
Virtex-4 Pro 1700 160 184 1,15
Spartan-3 1230 100 92 0,92

Software

Xilinx levert bij het hele MicroBlaze ontwikkelingskit een beperkte hoeveelheid software. Waaronder de GNU Compiler Collection die het mogelijk maakt om de programmeertaal C te gebruiken om programma's te schrijven voor deze architectuur.

Het is op zich niet mogelijk om een compleet besturingssysteem te draaien op een MicroBlaze-processor door het ontbreken van een Memory Management Unit. Er bestaan echter een paar opensource-besturingssystemen die zijn aangepast om te kunnen functioneren op een MicroBlaze zoals µClinux en FreeRTOS.

Periferie

De MicroBlaze heeft verschillende componenten waarmee kan gecommuniceerd worden via onder andere controllers. Volgende controllers zijn terug te vinden in de omgeving van de MicroBlaze

De MicroBlaze kan ook verbinding op de OPB (On-Chip Peripheral Bus) maken voor een brede toegang tot verschillende modules. Het kan ook nog communiceren via de LMB (Local Memory Bus) voor snelle toegang tot het lokale geheugen in de FPGA.

Compatibiliteit

MicroBlaze werkt alleen op volgende componenten van Xilinx

  • Virtex-5 LX
  • Virtex-5 FX
  • Virtex-5 SX
  • Virtex-4 FX
  • Virtex-4 LX
  • Virtex-4 SX
  • Virtex-II Pro
  • Virtex-II
  • Virtex-E
  • Spartan-3E
  • Spartan-3
  • Spartan-IIE
  • Spartan-II