Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

FIL ソース ブロックを使用したアルゴリズムの検証

この例では、FPGA インザループ (FIL) を使用して HDL デザインを迅速かつ効率的に検証する方法を示します。テストベンチはテスト対象デザイン (DUT) とともに合成され、結果は FPGA ボードにダウンロードされ、FIL を使用してテストが実行されます。このプロセスに FIL を使用すると、テスト スティミュラスの高速生成と処理が可能になり、結果は解析のためにSimulinkに返されます。この例では、画像処理のユースケースに対してこれらのタスクを実行します。

要件

この例に必要なツール:

  • Signal Processing Toolbox

  • FPGA設計ソフトウェア

  • サポートされている FPGA 開発ボードおよびアクセサリの 1 つ (この例では、ML403 ボードはサポートされていません)。サポートされているハードウェアの詳細については、 「 FPGA検証用にサポートされているFPGAデバイス 」を参照してください。

  • イーサネットを使用した接続の場合:ホスト コンピュータにインストールされたギガビット イーサネット アダプタ、ギガビット イーサネット クロスオーバー ケーブル

  • JTAGを使用した接続の場合:Intel FPGA ボード用の USB Blaster I または II ケーブルおよびドライバー。Digilent® JTAG ケーブルおよびザイリンクス FPGA ボード用ドライバー。

  • PCI Express®を使用した接続の場合:FPGA ボードはホスト コンピューターの PCI Express スロットに取り付けられます。

ソーベルエッジ検出

sobel_edge_hardware サブシステムは、FPGA に合成されるアルゴリズムです。刺激は、画像 (一時停止標識) を含む gif ファイルです。この例では、イメージがアルゴリズムとともに FPGA 内で移動され、その FPGA デザインに対して FIL ブロックが作成されます。

この手法を実装するために必要な手順は、モデルfil_sobel_modelに示されています。このモデルでは、GIF ファイルはルックアップ テーブルに含まれており、カウンタを使用して画像内のラインをスキャンしてアルゴリズムに送信します。FIL ブロックは動作ブロックと並行してモデルに追加され、結果分析の簡単な例として FPGA の出力を動作モデルに対して直接チェックできるようになります。ボタンをクリックしてモデルを開きます。

HDL コードの生成

HDL Coderをお持ちの場合は、HDL ワークフロー アドバイザーまたはコンフィギュレーションパラメーターUI を使用して、「SobelEdge_FPGA」サブシステムのコードを生成できます (詳細については、 HDL Coder のドキュメントを参照してください)。

HDL Coderがない場合は、現在のディレクトリにある事前に生成された HDL ファイルを使用できます。

FPGA設計ソフトウェアのセットアップ

FPGA インザループを使用する前に、FPGA 設計ソフトウェアにアクセスできるようにシステム環境が適切に設定されていることを確認してください。関数hdlsetuptoolpathを使用して、現在のMATLABセッションのシステムパスにFPGA設計ソフトウェアを追加できます。

FPGAインザループの構成と構築

FIL ウィザードは、FPGA インザループの構築に必要な設定の構成をガイドします。次のコマンドを使用してウィザードを起動します。

filWizard;

1. [ハードウェア オプション] で、ホスト コンピューターに接続されている FPGA 開発ボードを選択します。必要に応じて、[詳細オプション] でボード IP と MAC アドレスをカスタマイズすることもできます。「次へ」をクリックして続行します。

2.[ソース ファイル] で、参照 を使用して、デザイン用に生成された次の HDL ファイルをソース ファイル テーブルに追加します。

SobelEdge_FPGA.vhd,
DualPortRAM_128x9b.vhd
DualPortRAM_128x9b_block.vhd
sobel_edge_eml.vhd
sobel_edge_hardware.vhd
SobelEdge_FPGA_pkg.vhd
u_d_ram.vhd
u_d_ram_block.vhd

SobelEdge_FPGAの横にある最上位のチェックボックスをオンにします。「次へ」をクリックして続行します。

3.DUT I/O ポートでは、ポート名、方向、幅、ポート タイプなどの入出力ポート情報が HDL ファイルから自動的に生成されます。クロックやデータなどのポート タイプは、ポート名に基づいて生成されます。必要に応じて選択を変更できます。この例では、生成されたポート タイプは正しいため、次へ をクリックできます。

4.[ビルド オプション] で、FIL 出力ファイルのフォルダーを指定します。この例ではデフォルト値を使用できます。「ビルド」をクリックします。「Build」をクリックすると、FIL ウィザードが FPGA-in-the-Loop シミュレーションに必要なすべてのファイルを生成し、次のアクションを実行します。

  • 新しいSimulink®モデルで FIL ブロックを生成します

  • コマンドライン ウィンドウを開き、FPGA プロジェクトをコンパイルし、FPGA プログラミング ファイルを生成します。

FPGA プロジェクトのコンパイル プロセスには数分かかります。プロセスが完了すると、コマンド ライン ウィンドウを閉じるように求められます。このウィンドウを今すぐ閉じてください。

FIL ブロックの構成

FPGA インザループ シミュレーションの準備をするには、以下の手順に従って FIL ブロックを構成します。

1. テストベンチ モデルfil_sobel_modelを開き、生成された FIL ブロックをモデルにコピーします。

2.FIL ブロックをダブルクリックしてブロック マスクを開きます。「ロード」をクリックして、生成されたプログラミング ファイルを使用して FPGA をプログラムします。

3.実行時オプションで、オーバークロック係数 を 1 に変更します。これは、入力値が変更される前に、各入力値が FPGA クロックによって 1 回サンプリングされることを指定します。

4.出力フレーム サイズを 20000 に設定します。

5.FIL ブロック マスクで、[信号属性] タブをクリックします。out1 のデータ型をbooleanに変更して、動作 Sobel ブロッ​​クのデータ型と一致させます。

5.「OK」をクリックしてブロックマスクを閉じます。

結果

この例で提供されるモデルは、動作ブロックから得られた結果と FPGA から得られた結果を比較します。そのモデルを実行して等価性を観察できます。また、動作パスのみを含む新しいモデルと FIL ブロックを含むパスのみを含む別のモデルを作成することで、動作シミュレーションと FIL シミュレーションの相対的なシミュレーション パフォーマンスを観察することもできます。以下を使用して、これらの各モデルを個別に実行します。

tic;
sim(your_model_name);
toc

FIL が高速であることがわかります。この速度の向上は、動作モデルがすべてのデータを処理するために 20,000 回の関数呼び出しを必要とするのに対し、20,000 サンプルに対して FIL 関数呼び出しが 1 回しかないためです。したがって、画像のサイズが大きいほどパフォーマンスが向上します。このステップでこの例は終了です。