こんにちは。私はアルテラ社の組み込みアプリケーション エンジニア、Nathan Knightです。組み込み設計ではFPGAが一般的になりつつあります。 まだご覧になっていない方は、今後のプロジェクトでご覧になる可能性が高いです。 幸いなことに、FPGAプロセッサのソフトウェア開発プロトコルは、市販のプロセッサで慣れているものと似ています。 今日は、FPGAベースの組み込みシステム用のソフトウェアを開発するのがいかに簡単かを紹介します。 私はES2組み込み評価キットを使用してこれを実行します。 ES2は構成可能な32ビット プロセッサです。 構成可能なので、アプリケーションに必要なCPUとインターフェースの正確なセットを選択できます。 それでは始めましょう。 まず、ES2組み込み評価キットをオンにします。 このキットは、FPGAを初めて使用する開発者に最適です。 このキットには、ハードウェアおよびソフトウェア開発ツール、設計例、チュートリアル、および開始するために必要なすべてのドキュメントが含まれています。 箱の中に全て入っています。
キットの電源を入れると最初に表示されるのはアプリケーション セレクターです。 SDカードにプリロードされているすべてのアプリケーションが表示されます。 システム(デモ)を見てみましょう。
このキットのもう一つのユニークな機能は、アプリケーションのロード方法です。 ボードには、NIOS2プロセッサを搭載したFPGA、SDメモリ カード、フラッシュ メモリ デバイスが含まれています。 再構成するには、まずプロセッサがハードウェア イメージをSDカードからメモリ デバイスにコピーします。 ソフトウェア イメージに対しても同じ処理を実行し、その後、プロセスはFPGAにフラッシュ メモリから自身を再構成するように指示します。新しい構成にはnios2プロセッサが含まれており、フラッシュ メモリ デバイスから起動します。 アプリケーションが起動します。
このデモンストレーションでは、2つの方法を使用してマンデルブロ フラクタルを計算します。 まず、ハードウェア アクセラレータを使用します。 通常は、はるかに高速なプロセッサが必要になりますが、はるかに高速なアクセラレータを使用することで、NIOS2はわずか80MHzで実行するだけでこのパフォーマンスを実現できます。 この例のハードウェア アクセラレータは、Altera NIOS2 cetaHコンパイラによって作成されました。 これは、AnzCCコードをアクセラレータにコンパイルします。比較すると、アクセラレータを取り除いた場合のパフォーマンスは次のようになります。ご覧のとおり、はるかに遅くなります。 ここで、独自のアプリケーションを構築する方法を説明します。
ソフトウェア開発フローは、おそらく慣れ親しんだものと似ているでしょう。 まず、ハードウェア エンジニアがNIOS2システムの説明を含むファイルを渡します。 次に、NIOS2ソフトウェア開発ツールはこの入力からvspを自動的に生成します。 ハードウェア設計が変更された場合は、新しいvspを生成するだけで済みます。 アプリケーションソフトウェアを変更する必要はありません。 NIOS2ツールは、フラッシュ プログラムまたはユーティリティを提供することで、フラッシュ用の設計のプログラミングも容易にします。 このユーティリティは、システムをフラッシュから起動し、ソフトウェアをRAMにコピーするブート コピアも挿入します。 このフロー全体を示す例を提供します。このデモンストレーションでは、ハード デザインが作成され、VSPが生成されました。 これは私たちが構築している典型的なCコードです。 NIOS2 IDDから直接プロジェクトをビルドすることもできますが、このデモではコマンド ラインからビルドします。
コマンドラインからプロジェクトをビルドするには、「MAKE」と入力するだけです。 ビルドが完了すると、ボード用にダウンロードする実行可能ファイルであるelfファイルが作成されます。 ファイルの読み込みはいくつかの方法で行うことができます。 USBケーブルを使用します。 まず、ハードウェア設計に合わせてFPGAを構成します。 次に、ソフトウェア アプリケーションをRAMにダウンロードして実行します。 ボード上で回転キューブ アプリが実行されているのがわかります。 また、ハードウェア ファイルとソフトウェア ファイルをSDカードにコピーすると、次回ボードの電源を入れたときにアプリがアプリケーション セレクターに表示されるようになります。
詳細やキットの注文については、www.altera.com/nios2evalをご覧ください。