Zum Inhalt springen

MicroBlaze

aus Wikipedia, der freien Enzyklopädie

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<ref>kernelnewbies 2.6.30 Support Microblaze CPU architecture</ref> 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.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20150402073636

      | {{#ifeq: 20150402073636 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.xilinx.com/tools/mb_mcs.htm}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20150402073636}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.xilinx.com/tools/mb_mcs.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-05-01 14:56:36 InternetArchiveBot | 2019-05-01 14:56:36 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20150402073636}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.xilinx.com/tools/mb_mcs.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-05-01 14:56:36 InternetArchiveBot | 2019-05-01 14:56:36 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.xilinx.com/tools/mb_mcs.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2019-05-01 14:56:36 InternetArchiveBot | 2019-05-01 14:56:36 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.xilinx.com/tools/mb_mcs.htm}} }} (Memento{{#if: {{#if: 2019-05-01 14:56:36 InternetArchiveBot | 2019-05-01 14:56:36 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://www.xilinx.com/tools/mb_mcs.htm}} }}  
                 }}}}}}}}{{#if:2019-05-01 14:56:36 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20150402073636|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.xilinx.com/tools/mb_mcs.htm}}
    || {{#if:  || }}
  }}{{#if: Archivierte Kopie
    | {{#if: {{#invoke:WLink|isBracketedLink|Archivierte Kopie}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.xilinx.com/tools/mb_mcs.htm%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.xilinx.com/tools/mb_mcs.htm%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.xilinx.com/tools/mb_mcs.htm }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}Xilinx – Microblaze Micro Controller System  (MCS)</ref>

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<ref>Opencores IP-Cores, die unter einer Open-Source-Lizenz veröffentlicht wurden</ref> üblichen Wishbone-Bus, der den Anschluss vieler fertiger und meist ebenfalls quelloffener FPGA-IO-Module ermöglicht.<ref>Wishbone-Spezifikation (engl.)</ref> Xilinx stellt außerdem einen weniger leistungsstarken „Softcore“ zur Verfügung, den PicoBlaze.

Weblinks

Einzelnachweise

<references />

Vorlage:Navigationsleiste programmierbare Logik