MicroBlaze ist ein in FPGAs der Firma Xilinx verwendbarer Mikrocontroller. Dieser Mikrocontroller existiert nicht als physische Hardware, sondern ist nur als in Hardwarebeschreibungssprachen wie VHDL und Verilog verfasster Softcore verfügbar. Durch die spezielle Optimierung auf die Besonderheiten bestimmter FPGA-Bausteine ist der Logikbedarf dieses Mikrocontrollers gering und bewegt sich je nach Ausbaustufe und Version zwischen rund 700 und über 2000 Slices.
Übersicht
Microblaze ist ein 32-Bit-RISC-Mikrocontroller, der in der Architektur von dem DLX-Mikroprozessor motiviert ist. Er hat eine konfigurierbare drei- bis fünfstufige Pipeline, internen Cache, einen Interrupt Controller, einen hardwarebasierten Multiplizierer und optional eine hardwarebasierende Divisionseinheit, eine Gleitkommaeinheit und spezielle Schieberegistereinheiten. Er besitzt mehrere unterschiedliche Busse, welche für den Anschluss von umfangreicher Peripherie und Speicher in einem FPGA vorgesehen sind.
Der Prozessor hängt primär an einem FPGA-internen CoreConnect-Bus (auch bekannt als PLB). Zusammen mit optionalem externem Speicher und weiteren Peripherieeinheiten am PLB oder On-Chip Peripheral Bus entsteht ein System-on-a-Chip.
Als Entwicklungssystem kommt die GNU Compiler Collection zur Anwendung, die von Xilinx um eine grafische Oberfläche mit der Bezeichnung EDK ergänzt wurde und die Integration in die FPGA-Hardware erleichtern soll. Daneben gibt es noch eine auf Eclipse basierende Entwicklungsumgebung. Als Betriebssysteme können bei Bedarf µClinux, Linux[1] oder FreeRTOS eingesetzt werden.
Microblaze Micro Controller System (MCS)
Beginnend mit der Entwicklungsumgebung ISE 13.4. liefert Xilinx eine kostenfrei verwendbare Variante aus. Der Core wird nicht mit dem weiterhin lizenzpflichtigen „Platform Studio“ generiert, sondern mit dem Coregenerator in der kostenlos verfügbaren WebPack Lizenz. Es fehlt die umfangreiche Auswahl an vorgefertigten Peripheriemodulen aus dem „Platform Studio“ wie SPI-Controller, selbst entwickelte Module können aber weiterhin über den FPGA internen Bus an den Soft-Core angeschlossen werden.[2]
Alternativen von Dritt-Anbietern
Neben der kostenpflichtigen Version des Microblaze, welche durch vertragliche Beschränkungen nur auf FPGA-Bausteinen der Firma Xilinx eingesetzt werden darf, existieren diverse Nachbauten, welche quelloffen und binärkompatibel sind und auch auf FPGAs anderer Hersteller eingesetzt werden dürfen, beispielsweise der aeMB und der OpenFire. Der aeMB-MicroBlaze-Clone steht unter der LGP-Lizenz und hat, im Gegensatz zu seinem Vorbild, einen bei OpenCores[3] üblichen Wishbone-Bus, der den Anschluss vieler fertiger und meist ebenfalls quelloffener FPGA-IO-Module ermöglicht.[4] Xilinx stellt außerdem einen weniger leistungsstarken „Softcore“ zur Verfügung, den PicoBlaze.
Weblinks
- Webseite von Xilinx zum MicroBlaze
- http://www.opencores.org/project,aemb – Eine binärkompatible, quelloffene Implementierung in Verilog, unter der LGP-Lizenz
- git-SCM MicroBlaze-Sektion im Linux-Kernel ab 2.6.30
Einzelnachweise
- ↑ kernelnewbies 2.6.30 Support Microblaze CPU architecture
- ↑ Archivierte Kopie ( des vom 2. April 2015 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. Xilinx – Microblaze Micro Controller System (MCS)
- ↑ Opencores IP-Cores, die unter einer Open-Source-Lizenz veröffentlicht wurden
- ↑ Wishbone-Spezifikation (engl.)