LatticeMico32は、ラティスセミコンダクターによって開発された、
FPGA(Field Programmable Gate Array)に最適化された
32ビットマイクロプロセッサのソフトコアです。このプロセッサは、オープンなIPコアライセンスの下で提供されており、その最大の特長は、ラティスの
FPGAに限定されず、どのようなホストアーキテクチャ、例えば
FPGA、ASIC(Application Specific Integrated Circuit)、さらには仮想エミュレーション環境においても、法的に利用可能である点です。
CPUコアとそれに関連する開発ツールチェインは、ソースコード形式で提供されており、これによりサードパーティはプロセッサアーキテクチャに対して柔軟な変更を加えることが可能です。このオープンな性質が、LatticeMico32の大きな魅力の一つです。
アーキテクチャの特徴:
RISCロード・ストアアーキテクチャ: 効率的なデータ処理を実現するRISC(Reduced Instruction Set Computing)ベースの設計で、ロード命令とストア命令によってメモリとのデータ転送を行います。
32ビットデータバス: 32ビット幅のデータバスにより、効率的なデータ転送を可能にします。
32ビット命令長: 32ビットの固定長命令を使用し、効率的な命令フェッチと実行を促進します。
32個の汎用レジスタ: 32個の汎用レジスタにより、多様なデータ処理に対応できます。
最大32本の外部割り込み: 最大32本の外部割り込みに対応し、リアルタイム処理や周辺機器との連携をスムーズに行います。
変更可能な命令セット: ユーザーが命令セットをカスタマイズできる柔軟性があります。
オプションのキャッシュ: キャッシュをオプションで実装でき、パフォーマンスの向上が可能です。
オプションのパイプラインメモリ: パイプラインメモリをオプションで実装でき、メモリアクセスを効率化できます。
2つのWISHBONEメモリインタフェース: 複数のメモリや周辺機器との接続をサポートするWISHBONEインタフェースを備えています。
メモリマップドI/O|メモリマップドI_O: メモリ空間にマッピングされたI/Oデバイスとの通信を容易に行えます。
6ステージ命令パイプライン: 6段階の命令パイプラインにより、命令の並列処理を効率化し、高速な実行を実現します。
開発ツールチェイン:
LatticeMico32の開発をサポートするツールチェインは、以下の主要なコンポーネントから構成されています。
GCC: C/C++言語コンパイラであり、アプリケーション開発の基盤となります。
GNU Binutils: アセンブラ、リンカ、バイナリユーティリティなど、バイナリ処理に必要なツールを提供します。
GDB: ソースレベルでのデバッグを可能にするデバッガです。
Eclipse: 統合開発環境(IDE)として、開発プロセス全体をサポートします。
Newlib: C言語ライブラリであり、標準的なC言語関数を提供します。
uCos-II と μITRON: リアルタイムオペレーティングシステム(RTOS)として、組み込みシステム開発を支援します。
μClinux: Linux
カーネルの組み込み版であり、より高度なシステム開発を可能にします。
関連事項:
LatticeMico8: LatticeMico32の8ビット版プロセッサです。
MicroBlaze: Xilinx社製のソフトコアプロセッサです。
Nios, Nios II: Intel(旧Altera)社製のソフトコアプロセッサです。
OpenRISC: オープンソースの
RISCプロセッサアーキテクチャです。
外部リンク:
ラティスによるLatticeMico32のウェブサイト
Theobroma Systems による、LatticeMico32へのuCLinuxの移植
これらのリソースを通じて、LatticeMico32に関する詳細な情報を得ることができます。