PicoBlaze

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 15. května 2018; kontroly vyžadují 3 úpravy .

PicoBlaze  je obecný název pro řadu volně distribuovaných jader soft-procesorů vytvořených společností Xilinx pro její FPGA ( FPGA a CPLD ). PicoBlaze je založen na 8bitové architektuře RISC procesoru ; rychlost práce na FPGA rodiny Virtex 4 může dosáhnout 100 MIPS . Pro přístup k periferiím má procesor 8bitovou sběrnici, pomocí které lze samostatně číst a zapisovat až 256 portů.

PicoBlaze je distribuován jako zdrojový kód ve VHDL a Verilog [1] pro bezplatné použití na produktech Xilinx. Architektonické vlastnosti zaručují nejlepší výkon pro FPGA Spartan a Virtex. Xilinx navrhuje použít speciální software pro překlad zdrojového kódu v jazyce Assembly. Syntaxe zdrojového jazyka je záměrně zjednodušena kvůli jednoduchosti a rychlosti. Existuje také speciální nástrojový software vytvořený třetími stranami (Mediatronix a další). Alternativně existuje PacoBlaze  , upravené jádro PicoBlaze distribuované pod licencí BSD .

Původně se projekt PicoBlaze jmenoval KCPSM, což znamená "Constant (K) Coded Programmable State Machine" - programovatelný konečný stroj s konstantním programem. Tvůrcem projektu je Ken Chapman, inženýr Xilinx, který vyvinul a implementoval PicoBlaze [2] (alternativní dekódování zkratky KCPSM je „Ken Chapman's PSM“).

Při vkládání PicoBlaze do projektu VHDL je nutné použít příslušný název komponenty KCPSM [3] . Například pro PicoBlaze3:

komponenta kcpsm3 je port ( adresa : out std_logic_vector ( 9 downto 0 ) ; instrukce : in std_logic_vector ( 17 downto 0 ) ; port_id : out std_logic_vector ( 7 downto 0 ) ; write_strobe : out std_logic ; out_port logic : out_vector 7 _ read_strobe : out std_logic , in_port : v std_logic_vector ( 7 downto 0 ), přerušení : v std_logic , interrupt_ack : out std_logic , reset : v std_logic , clk : v std_logic ); koncová složka ;

Klíčové vlastnosti

Jádro KCPSM3 pro PicoBlaze podporuje:

  • přístup k 18bitovým mikroinstrukcím;
  • provedení mikroinstrukce v jednom cyklu, dvou cyklech;
  • 10bitový počítač mikroinstrukcí;
  • operace jednosměrového vysílání a dvouadresových bajtů;
  • 16 vestavěných registrů;
  • ALU aritmetických a logických operací, jednobitový posun;
  • dva operační příznaky: CARRY a ZERRO;
  • 64 bajtů vestavěná paměť strachpad RAM v prostoru 256 bajtů;
  • přístup k 256 nezávislým portům pro čtení a zápis;
  • vestavěný zásobník volání pro 31 buněk (zásobník CALL/RETURN);
  • jednoúrovňové přerušení .

Jádro KCPSM6 pro PicoBlaze podporuje:

  • přístup k 18bitovým mikroinstrukcím;
  • provedení mikroinstrukce v jednom cyklu, dvou cyklech (existují výjimky);
  • 12bitové PC mikroinstrukční programové počítadlo;
  • další možnost větvení programu podle obsahu registru;
  • další možnost návratu z podprogramů a současná identifikace bodu návratu;
  • jednoadresové a dvouadresové bajtové operace, příkazový systém rozšířený ve vztahu ke KCPSM3;
  • dvě softwarově přepínatelné banky vestavěných registrů, každá po 16 registrech;
  • ALU aritmetických a logických operací, jednobitový posun;
  • dva operační příznaky: CARRY a ZERRO;
  • vestavěná RAM strachpad v prostoru 256 bytů konfigurovatelné velikosti;
  • přístup k 256 nezávislým portům pro čtení a zápis;
  • další prostor 256 portů pro speciální konstantní vstup;
  • vestavěný zásobník volání pro 30 buněk (zásobník CALL/RETURN);
  • jednoúrovňové konfigurovatelné přerušení ;
  • přístupné z ID hardwaru softwaru.

Kromě toho jádro PicoBlaze:

  • vykonává příkazy převážně ve dvou cyklech (v KCPSM6 některé příkazy ve 4 cyklech), přičemž taktovací frekvence může dosahovat několika stovek MHz;
  • rychle reaguje na přerušení (v nejhorším případě v 5 cyklech);
  • ve verzi KCPSM-3 je optimalizován pro architekturu Xilinx Spartan-3: potřebuje pouze 96 buněk (slices) a 1 blok RAM;
  • optimalizováno pro Xilinx Spartan-6, Virtex®-6 a architekturu FPGA řady 7 v KCPSM-6: zabírá pouze 26 buněk;

Programy PicoBlaze musí být napsány v jazyce symbolických instrukcí . Programy napsané pro KCPSM3 vyžadují retranslaci, když je třeba je spustit na KCPSM6, ale ani v tomto případě neexistuje úplná kompatibilita pro řadu běžných příkazů. Pro ladění existuje softwarový simulátor.

Přístupnost

Pomocí speciálních softwarových nástrojů lze program pro PicoBlaze nahradit přímo v souboru firmwaru FPGA (s příponou bit). Pomocí speciálních softwarových nástrojů si můžete stáhnout program PicoBlaze přímo do FPGA přes rozhraní JTAG .

Poznámky

  1. 8bitový mikrokontrolér PicoBlaze . www.xilinx.com. Získáno 13. listopadu 2018. Archivováno z originálu 14. listopadu 2018.
  2. 8bitový mikrokontrolér PicoBlaze (nedostupný odkaz) . Xilinx, Inc. Získáno 25. června 2007. Archivováno z originálu 22. listopadu 2007. 
  3. PicoBlaze 8bitová uživatelská příručka vestavěného mikrokontroléru (odkaz není k dispozici) . Xilinx, Inc. Získáno 25. června 2007. Archivováno z originálu 6. října 2008. 

Odkazy