MicroBlaze
Designer | Xilinx |
---|---|
Bits | 32-Bit/64-Bit (32 → 64) |
Ausführung | 11.0 |
Entwurf | RISC |
Codierung | Fest |
Endiangess | Klein groß) |
Offen | Nein |
Register | |
32 × 32 Bit |
Das Microblaze ist ein weicher Mikroprozessor Kern entwickelt für Xilinx Feldprogrammierbare Gate-Arrays (FPGA). Als Soft-Core-Prozessor wird Microblaze vollständig im allgemeinen Speicher und logischen Gewebe von Xilinx FPGAs implementiert.
Microblaze wurde 2002 eingeführt.[1]
Überblick
In Bezug auf die Architektur für den Anweisungssatz ähnelt Microblaze der RISC-basierend DLX Architektur beschrieben in einem beliebten Computerarchitekturbuch von Patterson und Hennessy. Mit wenigen Ausnahmen kann der Microblaze einen neuen Anweisungen in jedem Zyklus erteilen und unter den meisten Umständen den Einzelzyklus-Durchsatz beibehalten.
Der Microblaze verfügt über ein vielseitiges Verbindungssystem, um eine Vielzahl von eingebetteten Anwendungen zu unterstützen. Der primäre E/A -Bus von Microblaze, der Axi -Interconnect, ist ein System-Memory-kartierter Transaktionsbus mit Master-Slave-Fähigkeit. Ältere Versionen des Mikroblases verwendeten die Coreconnect PLB -Bus. Die Mehrheit der IP-Schnittstelle von Herstellern und Drittanbietern zu AXI (oder über eine AXI-Interconnect) zu AXI. Für den Zugang zu lokalem Memory (FPGA RAM), Microblaze, verwendet einen dedizierten LMB-Bus, der einen schnellen On-Chip-Speicher bietet. Benutzerdefinierte Coprozessoren werden durch dedizierte AXI4-Stream-Verbindungen unterstützt. Die Coprozessor-Schnittstelle kann rechnerisch intensive Algorithmen beschleunigen, indem Teile oder die gesamte Berechnung zu einem von Benutzer gestalteten Hardwaremodul abgeladen werden.
Viele Aspekte des Microblaze können Benutzer konfiguriert sein: Cache-Größe, Pipeline-Tiefe (3-Stufe, 5-Stufe oder 8 Stufe), eingebettete Peripheriegeräte, Speicherverwaltungseinheitund Bus-Interfaces können angepasst werden. Die flächenoptimierte Version von Microblaze, die eine 3-stufige Pipeline verwendet, opfert die Taktfrequenz für reduzierte Logikfläche. Die leistungsoptimierte Version erweitert die Ausführungspipeline auf 5 Stufen und ermöglicht Höchstgeschwindigkeiten von mehr als 700 MHz (auf Virtex Ultrascale+ FPGA Familie). Auch Schlüssel Prozessoranweisungen die selten verwendet werden, aber in Hardware teurer, kann selektiv hinzugefügt/entfernt werden (z. B. Multiplizieren, Teilen und Gleitkommaoperationen). Diese Anpassung ermöglicht es einem Entwickler, die entsprechenden Design-Kompromisse für einen bestimmten Satz von Hosthardware- und Anwendungssoftwareanforderungen zu erstellen.
Mit der Speicherverwaltungseinheit ist Microblaze in der Lage, Betriebssysteme zu veranstalten, die Hardware-basierte Paging und Schutz benötigen, wie die Linux Kernel. Andernfalls ist es auf Betriebssysteme mit einem vereinfachten Schutz und einem virtuellen Speichermodell beschränkt, z. Freertos oder Linux ohne MMU -Unterstützung. Der Gesamtdurchsatz von Microblaze ist wesentlich weniger als ein vergleichbarer harter CPU -Kern (wie der Arm Cortex-A9 in dem Zynq).
Vivado
Xilinx Vivado Design Suite ist die Entwicklungsumgebung zum Aufbau aktueller Mikroblaze (oder ARM - Siehe Zynq) Eingebettete Prozessorsysteme in Xilinx fpgas. Ältere Versionen verwendeten das EDK -Entwicklungspaket von Xilinx (Embedded Development Kit).
Designer verwenden den Vivado IP-Integrator, um die Hardware-Spezifikation seines eingebetteten Systems (Prozessorkern, Speicherkontroller, E/A-Peripheriegeräte usw.) zu konfigurieren und zu erstellen RTL Bezeichnung (Verilog oder VHDL) und automatisiert die Implementierung des eingebetteten Systems (von RTL bis zur Bitstream-Datei). Für den Microblaze-Kern erzeugt Vivado eine verschlüsselte (nicht menschlich lesbare) Netzliste.
Der SDK behandelt die Software, die auf dem eingebetteten System ausgeführt wird. Angetrieben von der GNU Toolchain (GNU Compiler -Sammlung, GNU -Debugger) Mit dem SDK können Programmierer C/C ++ - Anwendungen für ihr eingebettetes System schreiben, kompilieren und debuggen. Die Tools von Xilinx bieten die Möglichkeit, Software in Simulation auszuführen oder ein geeignetes FPGA-Board zum Herunterladen und Ausführen des tatsächlichen Systems zu verwenden.
Die Käufer von Vivado erhalten eine ewige Lizenz zur Verwendung von Microblaze in Xilinx FPGAs ohne wiederkehrende Lizenzgebühren. Die Lizenz gewährt nicht das Recht, Microblaze außerhalb der Geräte von Xilinx zu verwenden.
Alternative Compiler und Entwicklungswerkzeuge wurden zur Verfügung gestellt Altium Eine EDK -Installation und -lizenz ist jedoch noch erforderlich.
Open Source
Im Juni 2009 war Microblaze die erste Soft-CPU-Architektur, die in den Mainline Linux-Kernel-Quellbaum zusammengefasst wurde. Diese Arbeit wurde von Michal Simek durchgeführt und von Petalogix und Xilinx unterstützt.
Seit September 2009 wird auch die Unterstützung von Microblaze GNU Tools zur Haupttriebwerke der Free Software Foundation beigetragen. Die Unterstützung für Microblaze ist in GCC -Releases enthalten, beginnend mit Version 4.6[2]
Unterstützung wurde hinzugefügt zu Llvm im April 2010,[3] aber später im Juli 2013 entfernt[4] Aufgrund des Mangels an Wartung.
Klone
- AEMB, implementiert in Verilog, LGPL -Lizenz
- OpenFire -Untergruppe, implementiert in Verilog, MIT -Lizenz
- MB-Lite, implementiert in VHDL, LGPL-Lizenz
- MB-Lite+, implementiert in VHDL, LGPL-Lizenz
- myblaze, implementiert in Myhdl, LGPL -Lizenz
- SecretBlaze, implementiert in VHDL, GPL -Lizenz
Andere weiche Prozessoren
- NIOS II
- TSK3000
- XTensa
- Latticemico32
- BOGEN
- Risc-v (Eine Reihe von Open -Source -Softkernen ist verfügbar. Mindestens einer ist Für Vivado verpackt.))
- ARM_CORTEX-M (Cortex-M1- und Cortex-M3-Weichkerne sind in Vivado erhältlich)
Siehe auch
- OpenCores - Ein Zuhause für viele Open Source weicher Prozessor Projekte
- Pikoblaze
- Erweiterte Mikrocontroller -Busarchitektur § Advanced Extensible Grenzfläche (AXI)
Verweise
- ^ Xilinx (21. August 2002). "Microblaze RISC 32-Bit Soft Processor Datablatt" (PDF).
- ^ "GCC 4.6 Release -Serienänderungen, neue Funktionen und Korrekturen". 2011-03-15. Abgerufen 2011-03-15.
Für das eingebettete Ziel des Xilinx Microblaze Softcore Processor (Microblaze-Elf) wurde die Unterstützung hinzugefügt.
- ^ "LLVM 2.7 Versionsnotizen". Releases.llvm.org. Abgerufen 2019-04-07.
- ^ Christopher, Eric (2013-07-24). "[LLVMDEV] das Mblaze -Backend abbildet und entfernen". Abgerufen 2019-04-07.