PicoBlaze

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. május 15-én felülvizsgált verziótól ; az ellenőrzések 3 szerkesztést igényelnek .

A PicoBlaze a Xilinx által az FPGA -khoz ( FPGA és CPLD ) létrehozott , szabadon terjesztett lágy processzormagok  sorozatának általános neve . A PicoBlaze 8 bites RISC processzorarchitektúrán alapul ; a Virtex 4 család FPGA-ján végzett munka sebessége elérheti a 100 MIPS -t . A perifériák eléréséhez a processzor 8 bites busszal rendelkezik, melynek segítségével akár 256 portot is lehet külön olvasni és írni.

A PicoBlaze forráskódként VHDL -ben és Verilogban [1] terjesztve ingyenesen használható Xilinx termékeken. Az építészeti jellemzők garantálják a legjobb teljesítményt a Spartan és Virtex FPGA-k számára. A Xilinx speciális szoftver használatát javasolja a forráskód Assembly nyelvre történő lefordításához. A forrásnyelv szintaxisát az egyszerűség és a gyorsaság érdekében szándékosan egyszerűsítették. Léteznek harmadik felek (Mediatronix és mások) által készített speciális eszközszoftverek is. Alternatív megoldásként létezik a PacoBlaze  , egy módosított PicoBlaze kernel, amelyet a BSD licenc alatt terjesztenek .

Kezdetben a PicoBlaze projektet KCPSM-nek hívták, ami azt jelenti, hogy "Constant (K) Coded Programmable State Machine" - programozható véges állapotú gép, állandó programmal. A projekt megalkotója Ken Chapman, a Xilinx mérnöke, aki kifejlesztette és megvalósította a PicoBlaze-t [2] (a KCPSM rövidítés alternatív dekódolása a "Ken Chapman's PSM").

A PicoBlaze VHDL projektbe való beillesztésekor a megfelelő KCPSM [3] komponensnevet kell használni . Például a PicoBlaze3 esetében:

A kcpsm3 komponens egy port ( cím : out std_logic_vector ( 9 downto 0 ) ; utasítás : in std_logic_vector ( 17 downto 0 ) ; port_id : out std_logic_vector ( 7 downto 0 ) ; write_strobe : out std_logic ; outstd_logic ; outstd_logic ; outstd_logic ; read_strobe : out std_logic ; in_port : in std_logic_vector ( 7 downto 0 ); interrupt : in std_logic ; interrupt_ack : out std_logic ; reset : in std_logic ; clk : in std_logic ); végkomponens ; _

Főbb jellemzők

A PicoBlaze KCPSM3 kernelje a következőket támogatja:

  • hozzáférés a 18 bites mikroutasításokhoz;
  • mikroutasítás végrehajtása egy ciklusban, két ciklusban;
  • 10 bites PC mikroutasítás számláló;
  • unicast és dupla cím byte műveletek;
  • 16 beépített regiszter;
  • Aritmetikai és logikai műveletek ALU -ja, egybites eltolás;
  • két műveletjelző: CARRY és ZERRO;
  • 64 bájt beépített strachpad RAM 256 bájtos területen;
  • hozzáférés 256 független porthoz olvasáshoz és íráshoz;
  • beépített hívási verem 31 cellához (CALL/RETURN verem);
  • egyszintű megszakítás .

A PicoBlaze KCPSM6 kernelje a következőket támogatja:

  • hozzáférés a 18 bites mikroutasításokhoz;
  • mikroutasítás végrehajtása egy ciklusban, két ciklusban (vannak kivételek);
  • 12 bites PC mikroutasítás programszámláló;
  • további lehetőség a program elágazására a nyilvántartás tartalma szerint;
  • további lehetőség a szubrutinokból való visszatérésre és a visszatérési pont egyidejű azonosítására;
  • egycímes és kétcímes bájtos műveletek, a KCPSM3-hoz képest kibővített parancsrendszer;
  • két szoftverrel kapcsolható beépített regiszter bank, egyenként 16 regiszter;
  • Aritmetikai és logikai műveletek ALU -ja, egybites eltolás;
  • két műveletjelző: CARRY és ZERRO;
  • beépített RAM strachpad 256 bájt konfigurálható méretű területen;
  • hozzáférés 256 független porthoz olvasáshoz és íráshoz;
  • további hely 256 port egy speciális állandó belépéshez;
  • beépített hívási verem 30 cellához (CALL/RETURN verem);
  • egyszintű konfigurálható megszakítás ;
  • szoftver hardverazonosítójáról érhető el.

Ezenkívül a PicoBlaze mag:

  • főként két ciklusban hajtja végre a parancsokat (a KCPSM6-ban néhány parancsot 4 ciklusban), miközben az órajel frekvencia elérheti a több száz MHz-et;
  • gyorsan reagál a megszakításokra (legrosszabb esetben 5 ciklus alatt);
  • a KCPSM-3 változatban a Xilinx Spartan-3 architektúrára van optimalizálva: mindössze 96 cellát (szeletet) és 1 RAM blokkot vesz igénybe;
  • Xilinx Spartan-6, Virtex®-6 és 7-sorozatú FPGA architektúrára optimalizálva a KCPSM-6-ban: csak 26 cellát foglal el;

A PicoBlaze programokat assembly nyelven kell megírni . A KCPSM3-hoz írt programok újrafordítást igényelnek, ha a KCPSM6-on kell végrehajtani őket, de még ebben az esetben sincs teljes kompatibilitás számos gyakori parancshoz. Van egy szoftverszimulátor a hibakereséshez.

Kisegítő lehetőségek

Speciális szoftvereszközök segítségével a PicoBlaze program közvetlenül lecserélhető az FPGA firmware fájlban (bit kiterjesztéssel). Speciális szoftvereszközök segítségével a JTAG interfészen keresztül közvetlenül letöltheti a PicoBlaze programot az FPGA-ra .

Jegyzetek

  1. PicoBlaze 8 bites mikrokontroller . www.xilinx.com. Letöltve: 2018. november 13. Az eredetiből archiválva : 2018. november 14.
  2. PicoBlaze 8 bites mikrovezérlő (nem elérhető link) . Xilinx, Inc. Letöltve : 2007. június 25. Az eredetiből archiválva : 2007. november 22.. 
  3. PicoBlaze 8 bites beágyazott mikrovezérlő felhasználói kézikönyv (a hivatkozás nem elérhető) . Xilinx, Inc. Letöltve : 2007. június 25. Az eredetiből archiválva : 2008. október 6.. 

Linkek