www.wikidata.de-de.nina.az
Als PicoBlaze wird eine ausschliesslich 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 verfugbar was ihre Erweiterung durch Hinzufugen 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 Beschrankungen PicoBlaze Prozessoren nur auf FPGAs und CPLDs der Firma Xilinx verwendet werden konnen und durfen Die Starke 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 Zustande stark grossenabhangig 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 leistungsfahigere Prozessoren bzw Mikrocontroller wie der ebenfalls von Xilinx fur FPGAs als Softcore verfugbare MicroBlaze verwendet werden PicoBlaze Prozessoren hiessen ursprunglich KCPSM was eine Abkurzung fur Constant k Coded Programmable State Machine ist Oft wird angenommen KCPSM sei eine Abkurzung fur Ken Chapman s Programmable State Machine Ken Chapman der Entwickler der PicoBlaze Prozessoren bei Xilinx dementiert dies allerdings mit Augenzwinkern Inhaltsverzeichnis 1 PicoBlaze Familie 2 Hardware Merkmale 3 Befehlssatz 4 Programmierung 5 Fehlersuche 6 WeblinksPicoBlaze Familie Bearbeiten nbsp PicoBlaze 3Die PicoBlaze Prozessorfamilie umfasst die folgenden Derivate PicoBlaze CPLD optimiert fur Xilinx CoolRunner II CPLDs PicoBlaze optimiert fur Xilinx Virtex E and Spartan II IIE FPGAs PicoBlaze II optimiert fur Xilinx Virtex II FPGAs PicoBlaze 3 optimiert fur Xilinx Spartan 3 und neuere Spartan Virtex II Virtex II Pro Virtex 4 und neuere Virtex FPGAs PicoBlaze 6 optimiert fur Xilinx Spartan 6 und neuere Spartan Virtex 6 und neuere Virtex FPGAs Hardware Merkmale BearbeitenPicoBlaze Prozessoren basieren auf einer 8 Bit RISC Architektur Die Geschwindigkeit variiert stark mit der eingesetzten Hardware kann jedoch weit uber 100 MIPS erreichen Fur die Ausfuhrung einer Instruktion werden jeweils zwei Taktzyklen benotigt Merkmal PicoBlaze PicoBlaze II PicoBlaze 3 PicoBlaze 6 PicoBlaze CPLDAnzahl IO Portadressen 256 256 256 256 256Anzahl Register 16 32 16 2 16 8Scratchpad Grosse in Byte 64 64 128 256 Callstack Grosse 15 31 31 30 4Max Programmgrosse in Befehlen 256 1024 1024 1024 2048 4096 256IO Ports PicoBlaze Prozessoren besitzen je einen 8 Bit breiten Ein und Ausgabeport die uber 8 Bit Port IDs adressiert werden konnen woraus sich theoretisch 256 Ein und Ausgabeports ergeben Praktisch wird die tatsachlich mogliche Anzahl von Portadressen jedoch von der durch die Beschaltung entstehenden Signallaufzeit sowie die verwendete Taktfrequenz eingeschrankt Register Die PicoBlaze Prozessoren verfugen uber eine unterschiedliche Anzahl von 8 Bit Registern Die Register sind funktional identisch und konnen mit allen Register Befehlen gleichermassen verwendet werden Der PicoBlaze 6 verfugt uber zwei Registerbanke welche jeweils 16 Register enthalten Scratchpad Das Scratchpad ist ein RAM Speicher in welchen mit den Befehlen STORE und FETCH Registerwerte gespeichert oder zuruckgelesen werden konnen Zum Teil kann die Scratchpad Grosse uber Parameter festgelegt werden Callstack Der Callstack samtlicher PicoBlaze Prozessoren wird sowohl fur CALL Aufrufe als auch fur Interrupts gemeinsam verwendet Befehlssatz BearbeitenDer PicoBlaze besitzt einen kleinen Befehlssatz der auf die wichtigsten Befehle begrenzt ist Befehl PicoBlaze PicoBlazeII PicoBlaze3 PicoBlaze6 PicoBlazeCPLDProgrammflussJUMP ja ja ja ja jaCALL ja ja ja ja jaRET ja ja ja ja jaInterruptRETI ja ja ja ja jaEINT ja ja ja ja jaDINT ja ja ja ja jaLogikAND ja ja ja ja jaOR ja ja ja ja jaXOR ja ja ja ja jaCOMP nein nein ja ja neinCOMPC nein nein nein ja neinTEST nein nein ja ja neinTESTC nein nein nein ja neinArithmetikADD ja ja ja ja jaADDC ja ja ja ja 1 jaSUB ja ja ja ja jaSUBC ja ja ja ja 1 ja Befehl PicoBlaze PicoBlazeII PicoBlaze3 PicoBlaze6 PicoBlazeCPLDSchiebe und RotationsbefehleSR0 ja ja ja ja jaSR1 ja ja ja ja jaSRX ja ja ja ja jaSRA ja ja ja ja jaRR ja ja ja ja jaSL0 ja ja ja ja jaSL1 ja ja ja ja jaSLX ja ja ja ja jaSLA ja ja ja ja jaRL ja ja ja ja jaEin Ausgabe Daten bewegenREGBANK nein nein nein ja neinLOAD ja ja ja ja jaLOADRET nein nein nein ja neinIN ja ja ja ja jaOUT ja ja ja ja jaFETCH nein nein ja ja neinSTORE nein nein ja ja neinSTAR nein nein nein ja neinNOP ja ja ja ja ja 1 Die Implementierung des Befehls weicht hinsichtlich des Zero Flags von den vorhergehenden Prozessoren ab Fur weitere Details zu den Befehlen konnen die Application Notes zu Rate gezogen werden siehe Weblinks Programmierung BearbeitenDie PicoBlaze Prozessoren werden ihrer Einfachheit wegen praktisch ausschliesslich in Assembler programmiert Da es von Xilinx lediglich DOS Compiler gibt wurden von der Community verschiedene Integrierte Entwicklungsumgebungen hervorgebracht welche sowohl Editoren als auch Compiler und Simulatoren zur Verfugung stellen PicoBlaze Prozessoren werden ublicherweise nicht wie herkommliche Prozessoren oder Mikrocontroller direkt programmiert da der Zugriff auf den Programmspeicher von ausserhalb des FPGAs CPLDs nur bedingt moglich 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 erganzt wird So ist es moglich auf den Programmspeichertyp Einfluss zu nehmen was die Verwendung von Dual Port Speicherblocken als Programmspeicher ermoglicht Bei Verwendung von Dual Port Speicherblocken als Programmspeicher konnen optional zwei PicoBlaze Prozessoren mit demselben Speicher Programm arbeiten oder der Programmspeicher unter Verwendung zusatzlicher Logik zur Laufzeit verandert werden Fehlersuche BearbeitenDa der Zugriff auf die interne Prozessorhardware im FPGA CPLD nicht moglich ist konnen PicoBlaze Prozessoren nicht wie herkommliche 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 Fur die abstrakte Betrachtung des Prozessorcodes stehen verschiedene PicoBlaze Simulatoren zur Verfugung Weblinks BearbeitenXilinx Links PicoBlaze for Extended Spartan 3A Family Virtex 4 Virtex II and Virtex II Pro FPGAs Memento vom 1 September 2010 im Internet Archive Download PicoBlaze von der Xilinx Website Dokumentation PicoBlaze auf der Xilinx WebseiteCommunity Links MDS eine PicoBlaze IDE mit MacroAssembler fur Linux und Windows FIDEx eine PicoBlaze Assembler IDE fur Linux Mac und Windows PicoBlaze Familie und weitere Soft Core Prozessoren kpicosim eine PicoBlaze Assembler IDE fur Linux PicoBlaze 3 seit 2006 nicht mehr weiterentwickelt pBlazXYZ verschiedene Tools fur Linux und Windows PauloBlaze eine vollstandig zum PicoBlaze 6 kompatible VHDL ImplementierungProgrammierbare LogikKonzepte ASIC SoC FPGA CLB CPLD EPLD PLA PAL GAL PSoC Reconfigurable Computing Xputer Soft microprocessor Circuit underutilization High level synthesis HardwarebeschleunigungProgrammiertechnik Masken programmiert Antifuse EPROM E PROM Flash SRAMProgrammiersprachen Verilog A AMS VHDL AMS VITAL SystemVerilog DPI SystemC AHDL Handel C PSL UPF PALASM ABEL CUPL OpenVera C to HDL Flow to HDL MyHDL JHDL ELLAHersteller Accellera Actel Achronix AMD Aldec Atmel Cadence Cypress Duolog Forte Intel Altera Lattice National Mentor Graphics Microsemi Signetics Synopsys Magma Virage Logic Texas Instruments Tabula XilinxProdukte Hardware iCE Stratix Cyclone Arria Max Kintex Zynq VirtexSoftware Intel Quartus Prime Xilinx ISE Xilinx Vivado ModelSim VTRIP Proprietar ARC ARM Cortex M PowerPC LEON LatticeMico8 MicroBlaze PicoBlaze Nios Nios IIOpen Source JOP LatticeMico32 OpenCores OpenRISC RISC V Zet Abgerufen von https de wikipedia org w index php title PicoBlaze amp oldid 218562018