PicoBlaze は、ザイリンクスのFPGAおよびCPLD製品で使用するための 3 つの無料ソフト プロセッサコアシリーズの名称です。8 ビットRISCアーキテクチャをベースとし、 Virtex 4 FPGAファミリで最大 100 MIPS の速度を実現できます。プロセッサには、さまざまな周辺機器にアクセスするための 8 ビットのアドレス ポートとデータ ポートがあります。コアのライセンスにより、ザイリンクス デバイスのみでの無料使用が許可され、開発ツールが付属しています。サードパーティ ツールは、Mediatronix などから入手できます。また、コアの動作およびデバイスに依存しない実装であるPacoBlazeも存在し、 BSD ライセンスの下でリリースされています。PauloBlaze は、 Apache ライセンスの下でのオープン ソースの VHDL 実装です。
PicoBlazeの設計は当初KCPSMと名付けられていました。これは「Constant(K) Coded Programmable State Machine」(以前は「Ken Chapman's PSM」)の略です。Ken Chapmanはザイリンクスのシステム設計者であり、このマイクロコントローラを考案・実装しました。[ 1 ]
VHDLでPicoBlazeマイクロプロセッサをインスタンス化する場合、それぞれのKCPSMコンポーネント名を使用する必要があります。[ 2 ]たとえば、PicoBlaze3プロセッサの場合:
コンポーネントkcpsm3はport ( address : out std_logic_vector ( 9 downto 0 ); instruction : in std_logic_vector ( 17 downto 0 ); port_id : out std_logic_vector ( 7 downto 0 ); write_strobe : out std_logic ; out_port : out std_logic_vector ( 7 downto 0 ); 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 ); end component ;すべての命令は2クロックサイクルで実行されるため、コア命令セットのパフォーマンスは確定的です。割り込み応答は5クロックサイクル以内です。リソース最適化のため、Xilinx FPGAにおけるこのブロックのデュアルポート実装を活用し、2つのPicoBlazeコアで同じ1k x 18命令PROMを共有することが可能です。
XilinxはPicoBlazeに必要なFPGAスライスはわずか96個であると説明しています。実装サイズが小さいのは、命令シーケンス側(プログラムカウンタ、コールリターンスタック、暗黙のスタックポインタ、割り込みイネーブルビット)と実行側(ALU、レジスタファイル、スクラッチパッドRAM、Z/Cステータスビット)を厳密に分離することで実現されています。演算側からシーケンス側に流れる情報は、条件付きJUMP命令とCALL命令でテストされるALUのゼロステータスビットとキャリービットのみです。演算ジャンプや関数ポインタは実装できません。シーケンス側から実行側に流れる情報は、オペランドフィールド(デスティネーションレジスタ(4ビット)、ALUオペコード(6ビット)、オプションのソースレジスタ(4ビット)、オプションの8ビット即値/ポートアドレス、オプションの6ビットスクラッチパッドアドレス)のみです。スタックポインタの値、31エントリスタックの内容、割り込みイネーブルビット、プログラムメモリの内容を調べるメカニズムはありません。
命令シーケンス側には加算器がないため、相対分岐や位置非依存コードは実行できません。ジャンプアドレスと呼び出しアドレスはすべて絶対アドレスです。
PicoBlazeはC言語などのコンパイル言語でのプログラミングには適していません。[ 3 ] 関数ポインタのサポートが不足していることに加え、スタックベースの呼び出し規約を高速化するための命令やアドレッシングモードも存在しません。PicoBlazeでは、PUSHまたはPOPを実装するのに2命令、ソフトウェアで指定されたスタックポインタからの相対アドレッシングを実装するのに2命令が必要です。PicoBlazeは、手動で最適化されたレジスタベースの呼び出し規約に適しています。これはForthのようなデータスタックの使用を妨げるものではなく、実際、64バイトのスクラッチパッドメモリに十分なスペースがある場合、PicoBlazeはこのアプローチに適しています。
プロセッサおよび派生製品:
ツール: