メインコンテンツ

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

FILウィザードによるブロック生成

R2024a

手順 1: FPGA設計ソフトウェアツールのセットアップ

関数 hdlsetuptoolpath を使用して MATLAB® から Xilinx® ツールにアクセスするためのシステム環境を設定します。この関数は、指定されたインストール フォルダーを MATLAB 検索パスに追加します。

  • Xilinx ISE —

    hdlsetuptoolpath('ToolName','Xilinx ISE','ToolPath','C:\Xilinx\14.2\ISE_DS\ISE\bin\nt64')
    この例では、Xilinx ISE デザイン スイートが C:\Xilinx\14.2\ISE_DS\ISE\bin\nt64 にインストールされていることを前提としています。

  • Xilinx Vivado® —

    hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','C:\apps\Vivado\2013.4-mw-0\Win\bin\vivado')
    この例では、Xilinx Vivado が C:\apps\Vivado\2013.4-mw-0\Win\bin\vivado にインストールされていることを前提としています。

関数 hdlsetuptoolpath を使用して MATLAB から Intel® ツールにアクセスするためのシステム環境を設定します。この関数は、指定されたインストール フォルダーを MATLAB 検索パスに追加します。次に例を示します。

hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\Altera\12.0\quartus\bin64')

この例では、Intel FPGA 設計ソフトウェアが C:\Altera\12.0\quartus\bin64 にインストールされていることを前提としています。

関数 hdlsetuptoolpath を使用して、MATLAB から Microchip ツールにアクセスするためのシステム環境を設定します。この関数は、指定されたインストール フォルダーを MATLAB 検索パスに追加します。次に例を示します。

hdlsetuptoolpath('ToolName','Microchip Libero SoC','ToolPath','C:\Microsemi\Libero_SoC_v12.0\Designer\bin\libero.exe')

この例では、Microchip FPGA 設計ソフトウェアが C:\Microsemi\Libero_SoC_v12.0\Designer\bin にインストールされていることを前提としています。

手順 2: FILウィザードを起動

次のいずれかの呼び出し方法を選択して、FPGA インザループ ウィザードを開きます。

  • MATLAB コマンド ウィンドウで、次のように入力します。

    >> filWizard
  • Simulink® ツールストリップの Apps タブで、Code Verification, Validation and Test の下の FIL Wizard をクリックします。

以前のセッションを復元するには、次のコマンドを使用します。

filWizard('./Subsystem_fil/Subsystem_fil.mat')

手順 3: FILブロックのFILオプションを設定する

FIL Options ページ内:

  1. FIL Simulation:Simulinkを選択します。

  2. Board Name: FPGA 開発ボードを選択します。HDL Verifier™ FPGA ボード サポート パッケージをまだダウンロードしていない場合は、FPGAボードサポートパッケージをダウンロード を参照してください。(ボードがリストに表示されない場合は、サポート パッケージをまだダウンロードしていません)。自分でカスタムボードを定義する予定の場合は、FPGA ボードのカスタマイズ を参照してください。

  3. FPGA-in-the-Loop Connection:FILシミュレーションの接続方法。ドロップダウン メニューのオプションは、選択したターゲット ボードでサポートされている接続方法に応じて更新されます。ターゲット ボードと HDL Verifier が接続をサポートしている場合は、Ethernet、JTAG、PCI Express、または USB Ethernet を選択できます。

  4. Advanced Options:

    イーサネット接続を選択すると、必要に応じてボードの IP アドレスと MAC アドレスを調整できます。

    オプション手順
    ボード IP アドレス

    ボードの IP アドレスがデフォルトの IP アドレス (192.168.0.2) でない場合は、このオプションを使用して IP アドレスを設定します。

    デフォルトのボード IP アドレス (192.168.0.2) が別のデバイスで使用されている場合、または別のサブネットが必要な場合は、次のガイドラインに従ってボード IP アドレスを変更します。

    • サブネット アドレス (通常はボード IP アドレスの最初の 3 バイト) は、ホスト IP アドレスのサブネットと同じである必要があります。

    • ボード IP アドレスの最後のバイトは、ホスト IP アドレスの最後のバイトと異なる必要があります。

    • ボードの IP アドレスは、他のコンピューターの IP アドレスと競合しないものを使用しなければなりません。

      たとえば、ホスト IP アドレスが 192.168.8.2 の場合、192.168.8.3 が使用可能であれば、使用できます。

    ボード MAC アドレス

    ほとんどの場合、ボードの MAC アドレスを変更する必要はありません。複数の FPGA 開発ボードを 1 台のホスト コンピューターに接続する場合は、追加ボードのボード MAC アドレスを変更して、各アドレスが一意になるようにします。ボードごとに個別の NIC が必要です。

    ボードの MAC アドレスを変更するには、[ボード MAC アドレス] フィールドをクリックします。コンピューターに接続されている他のデバイスに属しているアドレスとは異なるアドレスを指定します。特定の FPGA 開発ボードのボード MAC アドレスを取得するには、ボードに貼られているラベルを参照するか、製品ドキュメンテーションを参照してください。

    FPGA system clock frequency (MHz):ターゲットクロック周波数を入力します。Intel ボードおよび Xilinx ISE 対応ボードの場合、filWizard は要求された周波数を要求されたボードで可能な周波数と比較します。要求された周波数がこのボードで利用できない場合は、filWizard はエラーを返し、別の周波数を提案します。Xilinx Vivado 対応ボード、または PCI Express® 対応ボードの場合、filWizard は周波数をチェックできません。合成ツールは要求された周波数で最善の努力をしますが、指定された周波数が達成できなかった場合は別の周波数を選択することがあります。デフォルトは 25 MHz です。

    Enable data buffering on FPGA:シミュレーションのパフォーマンスを向上させるには、このオプションを選択します。選択すると、FIL は FPGA 上の BRAM を使用して、フレームベースの処理モードでイーサネット パケットをバッファリングします。設計で BRAM リソースが不足している場合は、このパラメータをクリアします。イーサネット接続のみ使用可能です。

  5. [Next] をクリックします。

手順 4: FILブロックのHDLソースファイルを追加する

Source Files ページ内:

  1. FPGA でコシミュレーションする HDL 設計を指定します。これらのファイルは、FPGA ボード上で検証される HDL 設計ファイルです。

    Add をクリックしてソース ファイルを指定します。ファイル選択ダイアログボックスを使用してファイルを選択します。

    FIL ウィザードはソース ファイルの種類を識別しようとします。ファイルの種類が期待したものと異なる場合は、File Type ドロップダウン リストから選択して変更できます。許容されるファイルの種類は次のとおりです:

    • VHDL®

    • Verilog®

    • ネットリスト

    • Tcl スクリプト

    • 制約

    • その他

      「その他」とは、以下のものを指します。

      • Intel の場合、Other として指定されたファイルは FPGA プロジェクトに追加されますが、生成されたブロックには影響しません。たとえば、readme ファイルにコメントをいくつか入れて、このファイル リストに含めることができます。

      • Xilinx の場合、Other として指定されたファイルは、Xilinx ISE で受け入れられる任意のファイルになります。ISE はファイル拡張子を見て、このファイルの使用方法を決定します。たとえば、リストに foo.vhd を追加し、それを Other として指定すると、ISE はファイルを VHDL ファイルとして扱います。

  2. 最上位 HDL ファイルが含まれるファイルを指定します。

    Top-level というタイトルの列にある最上位 HDL モジュールを含む HDL ファイルの行のボックスをオンにします。FIL ウィザードは、選択した HDL ファイルの名前を Top-level module name フィールドに自動的に入力します。トップレベル モジュール名とファイル名が一致しない場合は、このダイアログ ボックスでトップレベル モジュール名を手動で変更できます。続行する前に、最上位モジュール名を指定します。

  3. (オプション) ソース ファイルへの完全なパスを表示するには、Show full paths to source files というタイトルのボックスをオンにします。

  4. [Next] をクリックします。

手順 5: FILブロックのDUT I/Oポートを検証する

DUT I/O Ports ページ内:

  1. ポートリストを確認します。FIL ウィザードは、トップレベルの HDL モジュールを解析してすべての I/O ポートを取得し、それらを DUT I/O ポート テーブルに表示します。パーサーはポート名からポート タイプを判別しようとします。ウィザードは、これらの信号を「ポート タイプ」の下に表示されます。

    すべての入力/出力/リセット ポート/クロックが期待どおりにマッピングされていることを確認します。パーサーがポートに誤ったポート タイプを割り当てた場合は、手動で信号を変更できます。同期設計の場合は、クロック、リセット、または必要に応じてクロック有効化信号を指定します。このテーブルで指定されるポート タイプは、HDL コードと同じである必要があります。少なくとも 1 つの出力ポートが必要です。

    信号を追加または削除するには、Manually enter port information を選択します。

    Regenerate をクリックすると、元のポート定義 (HDL コードから) を含むテーブルが再ロードされます。

  2. [Next] をクリックします。

手順 6: FILブロックの出力タイプを指定する

Output Types ページ内:

  1. 出力データ型を指定します。ウィザードはデータ型を割り当てます。出力データ型が予想と異なる場合は、手動で型を変更します。

    選択:

    • Fixedpoint

    • 整数

    • Logical

    データ型は指定されたビット幅によって異なります。

    出力タイプを Signed、Unsigned、または Fraction Length に指定できます。

  2. [Next] をクリックします。

手順 7: FILブロックのビルドオプションを指定する

Build Options ページ内:

  • 出力ファイルのフォルダーを指定します。デフォルトのオプションを使用できます。通常、デフォルトは、現在のフォルダーの下にある、最上位モジュールにちなんで名付けられたサブフォルダーです。

  • Summary は、ISE プロジェクト ファイルと FPGA プログラミング ファイルの場所を表示します。FIL ブロック マスクの高度な操作には、これら 2 つのファイルが必要になる場合があります。

手順 8: ビルドを開始

FIL ブロックの生成を開始するには、Build をクリックします。

  1. FIL ウィザードは、最上位モジュールにちなんで名付けられた FIL ブロックを生成し、それを新しいモデルに配置します。

  2. FIL ウィザードはコマンド ウィンドウを開きます。

    • このウィンドウでは、FPGA 設計ソフトウェアが合成、フィット、PAR、FPGA プログラミング ファイルの生成を実行します。

    • プロセスが完了すると、コマンド ウィンドウにウィンドウを閉じるように求めるメッセージが表示されます。

ステップ9:統合とシミュレーション

モデルに FIL ブロックを挿入する

モデル内で、DUT サブシステムを新しいモデルで生成された FIL ブロックに置き換えます。モデルに名前を付けて保存します。その後、元のモデルを参照モデルとして使用できます。

HDL ワークフロー アドバイザーから FIL ブロックを生成した場合、FIL ブロックの設定を調整する必要はほとんどありません。FIL ウィザードを使用して FIL ブロックを生成した場合は、いくつかの設定を調整する必要がある場合があります。FIL ブロック設定を調整する手順については、FIL Simulation を参照してください。

プログラミングファイルをFPGAにロードする

Linux® ホストでは、多くの場合、Intel ボードにビット ファイルをプログラムするにはスーパーユーザーである必要があります。この要件により、これらのボードでのテストが制限される可能性があります。ただし、スーパーユーザー要件を回避する方法があります。

ルール ファイルを作成または変更して、Debian® 5 での Intel ビットストリーム プログラミングのデバイス権限の問題を修正します。このソリューションは、SUPERUSER 権限を必要とする 1 回限りのファイル変更です。

  • オプション1:/etc/udev/rules.d/ の下に次の内容のルール ファイル (例: 92-altera.rules) を作成します。

    # Altera USB-Blaster
    
    ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", GROUP="users"
    
  • オプション2:/etc/udev/rules.d/ の下にある既存のルールファイルに次の行を追加します。

    # Altera USB-Blaster 
    
    ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", GROUP="users" 
    

FPGA 開発ボードがセットアップされ、電源がオンになっており、JTAG ケーブルを使用してマシンに接続されていることを確認します。シミュレーションに別の接続を選択した場合でも、プログラミングでは JTAG インターフェイスが使用されます。

FPGA をプログラムするには、次の手順を実行します。

  1. Simulink モデル内の FIL ブロックをダブルクリックして、ブロック マスクを開きます。

  2. Main タブで Load をクリックし、JTAG ケーブル経由でプログラミング ファイルを FPGA にダウンロードします。

    サブシステムの大きさに応じて、ロード プロセスには数分から数分以上かかる場合があります。場合によっては、大規模なサブシステムの場合、このプロセスに 1 時間半以上かかることがあります。

  3. FPGA プログラミング ファイルが期待どおりにロードされると、メッセージ ウィンドウが表示されます。[OK] をクリックします。

    イーサネット接続を使用している場合は、ping テストを通じて FPGA ボードがホスト コンピューターに接続されているかどうかをテストできます。コマンドライン ウィンドウを開き、次のコマンドを入力します。

    > ping 192.168.0.2

    ネットワーク アダプターのセットアップ時にボードの IP アドレスを変更した場合は、192.168.0.2 をボードの IP アドレスに置き換えます。ギガビット イーサネット接続が設定されている場合は、FPGA 開発ボードから ping 応答を受信します。

    PCI Express 接続を使用している場合は、FPGA をプログラムした後、ホスト コンピューターを再起動します。ホスト コンピューターは、再起動しないと新しい PCI Express デバイスを検出できません。

    Intel ボードで PCI Express 接続を使用している場合、ボードはホスト コンピューターから電力を受け取ります。ホスト コンピューターの電源がオフになると、FPGA はプログラムされた設計を失います。ボードの電源を切らずに再起動するには、Start メニューから Restart を選択します。長時間のシミュレーションが中断されないようにするには、ホスト コンピューターの Sleep 設定を無効にします。

    再起動後、Windows® の Device Manager を確認します。新しい FPGA インザループ デバイスがリストに表示されます。

シミュレーションの実行

Simulink で、FIL Simulation ブロックを含むモデルを実行します。FIL シミュレーションの結果は、Simulink 参照モデルまたは元の HDL コードの結果と一致する必要があります。

メモ

RAM の初期化: Simulink は毎回時間 0 から開始します。つまり、Simulink モデル内の RAM は実行ごとにゼロに初期化されます。ただし、この仮定はハードウェアでは当てはまりません。FPGA 内の RAM は、1 つのシミュレーションの終了から次のシミュレーションの開始までその値を保持します。設計に RAM がある場合、最初のシミュレーションは Simulink と一致しますが、その後の実行は一致しない可能性があります。回避策としては、シミュレーションを再実行する前に FPGA ビットストリームを再ロードします。ビットストリームを再ロードするには、FIL ブロック マスクの Load をクリックします。

参考

トピック