Altera Nios
NIOS ist der Produktname eines eingebetteten Prozessors des Chipherstellers Altera in Form eines sogenannten Soft Core Prozessors. Mit diesem kann eine synthetische CPU in einen FPGA oder ASIC implementiert werden.
Anwendung
Die aktuelle Prozessorversion heißt vollständig Nios II und ist seit 2005 aktuell – von der Verwendung der ursprünglichen ersten Version wird abgeraten.
Praktisch handelt es sich beim Nios um eine umfangreiche Sammlung von Designanweisungen in Form von Dateien, welche in einer Hardwarebeschreibungssprache die Funktionen elektrischer Schaltungen festlegen. Diese Designs können von speziellen HDL-Compilern gelesen und zu einer Schaltung übersetzt werden, die als Konfiguration in einen programmierbaren Logikbaustein eingeschrieben wird. Damit enthält dieser Baustein dann den voll funktionsfähigen Prozessor.
Altera unterstützt Hardware-Software-Co-Design, indem verschiedene Versionen von Nios angeboten werden, welche sich in der Hardwarearchitektur unterscheiden, jedoch softwarekompatibel sind. Dies ermöglicht zum Beispiel, zwischen einem schnelleren oder einem kompakteren Design zu wählen. Zudem kann man den Prozessor mit weiteren Modulen, wie zum Beispiel einer Floating Point Unit, konfigurieren, um die Leistungsfähigkeit für eine bestimmte Aufgabenstellung zu optimieren.
Zusammen mit anderen, anwendungsspezifischen Schaltungsteilen wie RAM oder IO-Interfaces, welche üblicherweise auf demselben Chip implementiert werden, agiert dieser Prozessor dann als spezifische Hardware und kann wie ein normaler Prozessor mit Software (z. B. in C oder C++) beladen und betrieben werden. So können vorhandene, auch ursprünglich rein hardwarebasierte Systeme einfach erweitert und existierende Software wiederverwendet werden.
Das NIOS-System wird über den SOPC-Builder (System-On-a-Programmable-Chip) zusammengestellt. Ein SOPC-Projekt besteht aus einzelnen Logikblöcken, die Senken oder Quellen für Daten bilden. Die einzelnen Logikblöcke werden mittels einer Avalon Switch Fabric miteinander verbunden. Der SOPC-Builder bietet eine grafische Benutzeroberfläche, um das Zielsystem graphisch zu beschreiben. Das konfigurierte System aus Prozessor und Hardware wird dann in einen Satz von VHDL oder Verilog-Dateien exportiert, mit denen dann z. B. ein FPGA der Firma Altera als System on a Chip konfiguriert werden kann. Darüber hinaus, kann der so gewonnene FPGA-Code verwendet werden, um ASICs zu generieren.
Maturität
Der Reife- und Zertifizierungsgrad der Nios CPU eignet sich inzwischen auch zur Realisierung sicherheitskritischer Anwendungen.