- 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 verfügbar. Durch die spezielle Optimierung auf die Besonderheiten bestimmter FPGA-Bausteine der Firma Xilinx ist der Logikbedarf dieses Mikrocontrollers sehr gering. Nachteilig ist, dass durch die Optimierung und durch rechtliche Beschränkungen PicoBlaze nur auf FPGAs der Firma Xilinx verwendet werden kann bzw. darf.
Der PicoBlaze basiert auf einer 8-Bit RISC-Architektur und arbeitet mit einer Geschwindigkeit von bis zu 100 MIPS. Der PicoBlaze besitzt je einen 8-Bit breiten Ein- und Ausgabeport, die über eine 8-Bit-Port-ID adressiert werden können, woraus sich 256 Ein- und Ausgabeports ergeben. Seine Stärke ist der 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 von PicoBlaze vermieden werden kann. Dadurch vereinfacht sich die Entwicklung der restlichen Hardware.
Dieser Prozessor wird seiner Einfachheit wegen praktisch ausschließlich in Assembler programmiert, und Programme umfassen selten mehr als 1000 Zeilen Programmcode. Bei komplexeren Aufgaben sollten andere, leistungsfähigere Mikrocontroller wie der ebenfalls von Xilinx für FPGAs als Softcore verfügbare MicroBlaze verwendet werden.
Der PicoBlaze hieß 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 des PicoBlaze bei Xilinx.
Befehlssatz
Der PicoBlaze besitzt einen kleinen Befehlssatz, der auf die wichtigsten Befehle begrenzt ist.
Programmfluss
- JUMP
- CALL
- RETURN
Logik
- AND
- COMPARE
- LOAD
- OR
- TEST
- XOR
Arithmetik
- ADD
- ADDCY
- SUB
- SUBCY
Schiebe- und Rotationsbefehle
- SR0
- SR1
- SRX
- SRA
- RR
- SL0
- SL1
- SLX
- SLA
- RL
Ein-/Ausgabe
- FETCH
- INPUT
- OUTPUT
- STORE
Interrupt
- RETURNI
- ENABLE
- DISABLE
Fast alle Befehle sind auf die 16 Register (s0-sF) und Konstanten anwendbar. Für weitere Details zu den Befehlen können die Application Notes zu Rate gezogen werden (siehe Weblinks).
Einzelnachweise
Weblinks
Wikimedia Foundation.