PicoBlaze

PicoBlaze

Als PicoBlaze wird eine ausschließlich in FPGAs und CPLDs der Firma Xilinx verwendbare Prozessorfamilie bezeichnet. Die Prozessoren existieren nicht als physische Hardware, sondern sind in den Hardwarebeschreibungssprachen VHDL und Verilog als sogenannte Softcores verfügbar, was ihre Erweiterung durch Hinzufügen von Peripherie zu kleinen Mikrocontrollern sehr einfach macht.

Durch die spezielle Optimierung auf die Besonderheiten bestimmter FPGA/CPLD-Bausteine der Firma Xilinx ist der Logikbedarf der Prozessoren sehr gering. Nachteilig ist, dass durch die Optimierung und durch rechtliche Beschränkungen PicoBlaze-Prozessoren nur auf FPGAs und CPLDs der Firma Xilinx verwendet werden können und dürfen.

Die Stärke der PicoBlaze-Prozessoren liegt im Einsatz als Finite State Machine, wobei diese aber nicht besonders zeitkritisch sein sollte. Implementierung von Finite State Machines direkt in der Hardwarebeschreibungssprache sind je nach Umfang der Zustände stark größenabhängig, was durch den Einsatz eines PicoBlaze-Prozessors vermieden werden kann. Dadurch vereinfacht sich die Entwicklung der restlichen Hardware. Aufgrund eines vergleichsweise eher geringen Leistungsumfangs von PicoBlaze-Prozessoren sollten bei komplexeren Aufgaben andere, leistungsfähigere Prozessoren bzw. Mikrocontroller wie der ebenfalls von Xilinx für FPGAs als Softcore verfügbare MicroBlaze verwendet werden.

PicoBlaze-Prozessoren hießen ursprünglich KCPSM, was eine Abkürzung für "Constant(k) Coded Programmable State Machine" ist. Fälschlicherweise wird oft angenommen, KCPSM sei eine Abkürzung für "Ken Chapman's Programmable State Machine".[1] Ken Chapman ist der Entwickler der PicoBlaze-Prozessoren bei Xilinx.

Inhaltsverzeichnis

PicoBlaze-Familie

Die PicoBlaze-Prozessorfamilie umfasst die folgenden Derivate:

  • PicoBlaze CPLD (optimiert für Xilinx CoolRunner-II CPLDs)
  • PicoBlaze (optimiert für Xilinx Virtex-E and Spartan-II/IIE FPGAs)
  • PicoBlaze II (optimiert für Xilinx Virtex-II FPGAs)
  • PicoBlaze 3 (optimiert für Xilinx Spartan-3 und neuere Spartan, Virtex-II, Virtex-II Pro, Virtex 4 und neuere Virtex FPGAs)
  • PicoBlaze 6 (optimiert für Xilinx Spartan-6 und neuere Spartan, Virtex-6 und neuere Virtex FPGAs)

Hardware-Merkmale

PicoBlaze-Prozessoren basieren auf einer 8-Bit RISC-Architektur. Die Geschwindigkeit variiert stark mit der eingesetzten Hardware, kann jedoch weit über 100 MIPS erreichen. Für die Ausführung einer Instruktion werden jeweils zwei Taktzyklen benötigt.

Merkmal PicoBlaze PicoBlaze II PicoBlaze 3 PicoBlaze 6 PicoBlaze CPLD
Anzahl IO-Portadressen 256 256 256 256 256
Anzahl Register 16 32 16 2 x 16 8
Scratchpad Nein Nein 64 Bytes 64/128/256 Bytes Nein
Callstack-Größe 15 31 31 31 4
Max. Programmgröße 256 Instruktionen 1024 Instruktionen 1024 Instruktionen 1024/2048/4096 Instruktionen 256 Instruktionen

IO-Ports

PicoBlaze-Prozessoren besitzen je einen 8-Bit breiten Ein- und Ausgabeport, die über 8-Bit-Port-IDs adressiert werden können, woraus sich theoretisch 256 Ein- und Ausgabeports ergeben. Praktisch wird die tatsächlich mögliche Anzahl von Portadressen jedoch durch die durch die Beschaltung entstehende Signallaufzeit sowie die verwendete Taktfrequenz eingeschränkt.

Register

Die PicoBlaze-Prozessoren verfügen über eine unterschiedliche Anzahl von 8-Bit-Registern. Die Register sind funktional identisch und können mit allen Register-Befehlen gleichermaßen verwendet werden. Der PicoBlaze 6 verfügt über zwei Registerbänke, welche jeweils 16 Register enthalten.

Scratchpad

Das Scratchpad ist ein RAM-Speicher, in welchen mit den Befehlen STORE und FETCH Registerwerte gespeichert oder zurückgelesen werden können. Zum Teil kann die Scratchpad-Größe über Parameter werden.

Callstack

Der Callstack sämtlicher PicoBlaze-Prozessoren wird sowohl für CALL-Aufrufe als auch für Interrupts gemeinsam verwendet.

Befehlssatz

Der PicoBlaze besitzt einen kleinen Befehlssatz, der auf die wichtigsten Befehle begrenzt ist.

Befehl PicoBlaze PicoBlaze II PicoBlaze 3 PicoBlaze 6 PicoBlaze CPLD
Programmfluss
JUMP Ja Ja Ja Ja Ja
CALL Ja Ja Ja Ja Ja
RET Ja Ja Ja Ja Ja
Logik
AND Ja Ja Ja Ja Ja
OR Ja Ja Ja Ja Ja
XOR Ja Ja Ja Ja Ja
COMP Nein Nein Ja Ja Nein
COMPC Nein Nein Nein Ja Nein
TEST Nein Nein Ja Ja Nein
TESTC Nein Nein Nein Ja Nein
Arithmetik
ADD Ja Ja Ja Ja Ja
ADDC Ja Ja Ja Ja Ja
SUB Ja Ja Ja Ja Ja
SUBC Ja Ja Ja Ja Ja
Schiebe- und Rotationsbefehle
SR0 Ja Ja Ja Ja Ja
SR1 Ja Ja Ja Ja Ja
SRX Ja Ja Ja Ja Ja
SRA Ja Ja Ja Ja Ja
RR Ja Ja Ja Ja Ja
SL0 Ja Ja Ja Ja Ja
SL1 Ja Ja Ja Ja Ja
SLX Ja Ja Ja Ja Ja
SLA Ja Ja Ja Ja Ja
RL Ja Ja Ja Ja Ja
Ein-/Ausgabe, Daten bewegen
REGBANK Nein Nein Nein Ja Nein
LOAD Ja Ja Ja Ja Ja
LOADRET Nein Nein Nein Ja Nein
IN Ja Ja Ja Ja Ja
OUT Ja Ja Ja Ja Ja
FETCH Nein Nein Ja Ja Nein
STORE Nein Nein Ja Ja Nein
STAR Nein Nein Nein Ja Nein
Interrupt
RETI Ja Ja Ja Ja Ja
EINT Ja Ja Ja Ja Ja
DINT Ja Ja Ja Ja Ja

Für weitere Details zu den Befehlen können die Application Notes zu Rate gezogen werden (siehe Weblinks).

Programmierung

Die PicoBlaze-Prozessoren werden ihrer Einfachheit wegen praktisch ausschließlich in Assembler programmiert. Da es von seitens Xilinx lediglich DOS-Compiler gibt, wurden von der Community verschiedene Integrierte Entwicklungsumgebungen hervorgebracht, welche sowohl Editoren als auch Compiler und Simulatoren zur Verfügung stellen.

PicoBlaze-Prozessoren werden üblicherweise nicht wie herkömmliche Prozessoren oder Mikrocontroller direkt programmiert, da der Zugriff auf den Programmspeicher von außerhalb des FPGAs/CPLDs nur bedingt möglich ist. Stattdessen wird mit einem der zahlreichen Compiler eine vorinitialisierte VHDL/Verilog-Programmspeicherinstanz erzeugt, welche mit der Prozessorinstanz zusammen in die eigene Schaltung eingebunden werden kann. Die Compiler verwenden hierzu eine VHDL/Verilog-Vorlage, welche eingelesen und ergänzt wird. So ist es möglich, auf den Programmspeichertyp Einfluss zu nehmen, was die Verwendung von Dual-Port-Speicherblöcken als Programmspeicher ermöglicht.

Bei Verwendung von Dual-Port-Speicherblöcken als Programmspeicher können optional zwei PicoBlaze-Prozessoren mit demselben Speicher/Programm arbeiten oder der Programmspeicher unter Verwendung zusätzlicher Logik zur Laufzeit verändert werden.

Fehlersuche

Da der Zugriff auf die interne Prozessorhardware im FPGA/CPLD nicht möglich ist, können PicoBlaze-Prozessoren nicht wie herkömmliche Prozessoren oder Mikrocontroller direkt zur Laufzeit diagnostiziert werden. PicoBlaze-Prozessoren sind in der Regel nahtlos in den eigenen VHDL/Verilog-Code integriert, weshalb dieser Umstand keinen Verlust bedeutet, da generell der gesamte Code (VHDL/Verilog, PicoBlaze-Programm) mit einem VHDL/Verilog-Simulator diagnostiziert werden sollte, denn eine Fehlfunktion des FPGAs/CPLDs kann sowohl durch den VHDL/Verilog- als auch durch den Prozessorcode hervorgerufen werden.

Für die abstrakte Betrachtung des Prozessorcodes stehen verschiedene PicoBlaze-Simulatoren zur Verfügung.

Einzelnachweise

  1. http://forums.xilinx.com/xlnx/board/message?board.id=PicoBlaze&message.id=61

Weblinks

Xilinx-Links

Community-Links


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • PicoBlaze — PicoBlaze  общее название серии свободно распространяемых Soft процессорных ядер, созданных фиромой Xilinx для своих ПЛИС (FPGA и CPLD). В основе PicoBlaze лежит архитектура 8 битного RISC процессора; скорость работы на ПЛИС семейства Virtex …   Википедия

  • PicoBlaze — is the designation of a series of three free soft processor cores from Xilinx for use in their FPGA and CPLD products. They are based on a RISC architecture of 8 bits and can reach speeds up to 100 MIPS on the Virtex 4 FPGA s family. The… …   Wikipedia

  • PicoBlaze — est la désignation d une série de trois processeurs softcore faits par Xilinx pour être utilisés sur leurs FPGA et CPLD. Ils sont basés sur une architecture RISC de 8 bits et peuvent atteindre une vitesse de 100 millions d instructions par… …   Wikipédia en Français

  • Picoblaze — Der PicoBlaze ist ein ausschließlich in FPGAs der Firma Xilinx verwendbarer Mikrocontroller. Dieses Mikrocontroller existiert nicht als physische Hardware, sondern ist in den Hardwarebeschreibungssprachen VHDL und Verilog als sogenannter Softcore …   Deutsch Wikipedia

  • PacoBlaze — Le PacoBlaze est une implémentation en Verilog synthétisable du processeur softcore PicoBlaze de Xilinx, disponible sous la licence BSD. Le design comprend la configuration des 3 PicoBlaze dans un unique jeu de fichiers configurable. Le cœur a… …   Wikipédia en Français

  • PacoBlaze — is a synthesizable and behavioral Verilog implementation of Xilinx s PicoBlaze soft microcontroller core, and is available through the BSD License. The design includes the three PicoBlaze configurations in a single configurable set of files.The… …   Wikipedia

  • Processeur softcore — Un processeur softcore est un processeur (CPU) implémenté sur un système reprogrammable comme un FPGA. On parle alors de système sur puce programmable (System on Programmable Chip ou SoPC). Sommaire 1 Présentation 2 Liste de processeurs softcore… …   Wikipédia en Français

  • Soft-микропроцессор — Необходимо проверить качество перевода и привести статью в соответствие со стилистическими правилами Википедии. Вы можете помочь улучшить эту стать …   Википедия

  • Nios II — For School level education board in India, see National Institute of Open Schooling. Nios II Designer Altera Bits 32 bit Design RISC Endianness Little Open No …   Wikipedia

  • MicroBlaze — Designer Xilinx Bits 32 bit Version 8.20 Design RISC Encoding Fixed Endianness Big/Little …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”