Mit dem Begriff Soft-Core-Prozessor bezeichnet man heute Prozessoren, die in einer Hardware-Beschreibungssprache wie VHDL oder Verilog modelliert und für den Einsatz in programmierbaren Logikbausteinen vom Typ FPGA oder CPLD vorgesehen sind. Solche Prozessoren lassen...
Mit dem Begriff Soft-Core-Prozessor bezeichnet man heute Prozessoren, die in einer Hardware-Beschreibungssprache wie VHDL oder Verilog modelliert und für den Einsatz in programmierbaren Logikbausteinen vom Typ FPGA oder CPLD vorgesehen sind. Solche Prozessoren lassen sich vollständig – also einschließlich der Daten- und Programmspeicher – in einem FPGA/CPLD integrieren. Als Gegenbegriff zu Soft-Core-Prozessor wird heute auch der Begriff Hard-Core-Prozessor verwendet, mit dem man Prozessoren bezeichnet, die in einem programmierbaren Logikbaustein bereits als Hardware-Module eingebettet sind, wie z.B. der PowerPC in dem FPGA-Baustein Virtex-4 FX von Xilinx.
Heutzutage steht dem Anwender ein breites Spektrum an Soft-Core-Prozessoren zur Verfügung. Eine Gruppe bilden technologie-unabhängige Beschreibungen von Prozessoren. Als Beispiele sind hier 8-bit-CPUs wie 6502, 8051 und HC11 nennen, oder auch leistungsstarke 32-bit-CPUs wie SPARC und DLX. Die Beschreibungen dieser Prozessoren sind in der Regel als Verhaltens- oder Register-Transfer-Beschreibungen verfügbar und können in verschiedenen FPGAs/CPLDs eingesetzt werden, sofern die Prozessorkomplexität die vorhandenen FPGA/ CPLD-Ressourcen nicht übersteigt. Eine andere Gruppe bilden Soft-Core-Prozessoren, die von den jeweiligen FPGA/CPLD-Herstellern für eigene Produktlinien entwickelt wurden und sich durch eine starke Technologiebindung auszeichnen. Deren Beschreibungen sind in der Regel als Netz-/Komponentenlisten verfügbar und auf die jeweilige FPGA/CPLDArchitektur gezielt optimiert worden. Eine Portierung der Beschreibungen auf andere Architekturen ist deshalb kaum möglich. Zu diesen Produkten gehören beispielsweise 32-bit-CPUs wie Nios von Altera, MicroBlaze von Xilinx und LEON von Actel, oder auch 8-bit-CPUs wie Micro8 von Lattice, PicoBlaze von Xilinx und Core8051 von Actel.
Der Einsatz eines Soft-Core-Prozessors in einem FPGA/CPLD ist häufig eine interessante Alternative zu den herkömmlichen Implementierungen von Algorithmen als Zustandsmaschinen.
Dies ist vor allem dann der Fall, wenn damit Submodule mit überwiegend sequenziellen Folgen von Operationen realisiert werden, die nicht die hohe Rechenleistung eines FPGA erfordern und partiell durch eine Taktunterteilung langsamer arbeiten als andere Komponenten.
Der PicoBlaze, der in der Fachliteratur auch unter dem Namen KCPSM (Constant Coded Programmable State Machine) bekannt ist, wird in Abhängigkeit von der Zieltechnologie in vier Versionen angeboten Tabelle 1). In den folgenden Abschnitten wird vor allem auf den PicoBlaze für die FPGA-Familien Spartan-3, Virtex-II/Pro und Virtex-4 ausführlicher eingegangen.
Der PicoBlaze ist ein laufzeit- und ressourcen-optimierter 8-bit-embedded-Mikrocontroller mit folgenden, für RISC-Prozessoren typischen Eigenschaften: