ソフト・マクロのCPUを使おう! ――FPGAによるシステムLSI設計の意味
CPUコアをFPGAに内蔵するもう一つの手法は,ソフト・マクロのCPUの活用です.表3にFPGAベンダが提供しているソフト・マクロのCPUを示します.これらはいずれもロイヤリティ(各チップに対する使用料)が不要です.EDAベンダやIPベンダが提供するCPUコアもありますが,コスト的に少量
生産品には向かないので,今回は挙げていません.
Altera社のNiosには32ビットと16ビットの2種類があります.Xilinx社のMicroBlazeは32ビット,PicoBlazeは8ビットです.筆者としては64ビット版など,さらにバリエーションが増えることを希望しています.
ハード・マクロとソフト・マクロを比較すると,見た目にはCPUコアの実装形態の違いしかありません.しかしハードウェア設計時の検討事項を考えると,大きな差が出てきます.ソフト・マクロのCPUを使うときには,次のようなフローになります.
- CPUコアの動作パラメータの設定
- メモリ容量とリソース(FPGA内蔵/外部)の選択
- 必要な周辺I/Oの組み込み,アドレスおよび割り込みレベルの設定
- ピン・アサインの設定
FPGA+ソフト・マクロCPUの組み合わせの特徴をひと言で言うと,不必要な論理をいっさい組み込まなくてもよいということです.また,ピン・アサインもすべて自由なので,組み込んだ機能を100%動作させるシステムを構築できます.また,最近は大規模なメモリを内蔵したデバイスも出てきているので,欲しい機能のすべてをFPGA内部のリソースで実現可能なケースも出てきました.つまりユーザがまったく自由にカスタマイズできる1チップ・マイコンをミニマム・オーダ1個からでも開発できるということになるのです(図6).
〔表3〕 FPGA用ソフト・マクロCPU
開発元
|
名 称
|
動作
周波数 |
適用
デバイス |
提供される
周辺機能モジュール |
開発キットの
価格 |
Altera社 | Nios (32ビット,16ビット) |
125MHz | Stratix Cyclone APEX(II) ACEX FLEX |
DMAコントローラ UART SPI PIO メモリ・コントローラ タイマ ほか |
995ドル (評価ボード込み) |
Xilinx社 | MicroBlaze (32ビット) |
125MHz | Spartan-3 Spartan-II(E) Vertex(-E) Vertex-II Vertex-II Pro |
UART GPIO メモリ・コントローラ タイマ アービタ ほか |
995ドル |
PicoBlaze (8ビット) |
116MHz | Spartan-II(E) Vertex(-E) CoolRunner-II |
GPIOほか | 無償 |
Altera社の情報 (http://www.altera.co.jp/products/devices/nios/nio-index_j.html)
Xilinx社の情報 (http://www.xilinx.co.jp/xlnx/ xil_prodcat_landingpage.jsp?title=Processor+Central)
〔図6〕FPGAにソフト・マクロのCPUコアを実装して実現した1チップ・マイコン
不要な論理はいっさい組み込まない設計が可能.