Main Content

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

FIL ウィザードによるシステム オブジェクトの生成

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

 Xilinxソフトウェア

 Intelソフトウェア

 マイクロチップ ソフトウェア

手順 2: FILウィザードの開始

FPGA インザループ ウィザードを開きます。

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

>> filWizard

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

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

手順 3: System object の FIL オプションを設定する

(このページは FIL System object™用です。Simulink®ブロック FIL オプションについては、 手順 3: FIL ブロックの FIL オプションを設定するを参照してください。)

FIL Optionsページ:

  1. FIL Simulation with:MATLAB System Object を選択します。

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

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

  4. Advanced Options:

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

    オプション説明
    Board IP address

    ボードの 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 が使用可能であれば、使用できます。

    Board MAC address

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

    ボードの MAC アドレスを変更するには、 Board MAC addressフィールドをクリックします。コンピューターに接続されている他のデバイスに属しているアドレスとは異なるアドレスを指定します。特定の 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: System object の HDL ソース ファイルを追加する

(このページは FIL System object用です。Simulinkブロック HDL ソース ファイルについては、 手順 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 ファイルを含むファイルを指定します。

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

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

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

手順 5: システム オブジェクトの DUT I/O ポートを検証する

(このページはSystem objectの FIL 用です。Simulinkについては、 手順 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: System object の出力タイプの指定

(このページは FIL System object用です。Simulinkブロックの出力タイプについては、 手順 6: FIL ブロックの出力タイプの指定を参照してください。)

Output Typesページ:

  1. 出力データ型を指定します。ウィザードはデータ型を割り当てます。出力データ型が期待したものでない場合は、手動で型を変更します。

    以下から選択します:

    • Fixedpoint

    • Integer

    • Logical

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

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

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

手順 7: System object のビルド オプションの指定

(このページは FIL System object用です。Simulinkについては、 手順 7: FIL ブロックのビルド オプションを指定するを参照してください。)

Build Options ページ:

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

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

手順 8: ビルドの開始

Build」をクリックして、FIL System objectの生成を開始します。

  1. FIL ウィザードは次のファイルを生成します。

    • ./toplevel_fil/フォルダー内に、 MATLABという名前のtoplevel_programFPGA.m関数があります。ここで、 toplevelは関数の名前です。 HDLのトップレベル。このファイルには、FPGA プログラミング ファイルを FPGA にダウンロードするためのコードが含まれています。

      function toplevel_programFPGA
      
        %Load the bitstream in the FPGA
        filProgramFPGA('Xilinx', '/dir/mybitstream.bit', 1);
      end

    • MATLABtoplevel_fil.m ファイル。 toplevelは HDL トップレベルの名前です。このファイルには、 hdlverifier.FILSimulationから派生したクラス定義が含まれており、プライベート プロパティを初期化します。このファイルは現在のフォルダーにあります。

      以下は、FIL ウィザードを使用してfft8という名前の DUT から生成されたクラス定義ファイルのサンプルです。

      classdef fft8_fil <  hdlverifier.FILSimulation
      % fft8_fil is a filWizard generated class used for FPGA-In-the-Loop
      %   simulation with the 'fft8' DUT.
      %   fft8_fil connects MATLAB with a FPGA and cosimulate with it by 
      %   writing inputs in the FPGA and reading outputs from the FPGA.
      %
      %   MYFIL = fft8_fil
      %
      %   FIL syntax:
      %
      %   [out1, out2, ...] = MYFIL(in1, in2, ...) connect to the FPGA,
      %   write in1, in2, ... to the FPGA and read out1, out2, ... from 
      %   the FPGA
      %
      %   fft8_fil methods:
      %
      %   release     - Allow property value and input characteristics changes, and
      %                 release connection to FPGA board
      %   clone       - Create fft8_fil object with same property values
      %   isLocked    - Locked status (logical)
      %   programFPGA - Load the programming file in the FPGA
      %
      %   fft8_fil properties:
      %
      %   DUTName                  - DUT top level name
      %   InputSignals             - Input paths in the HDL code
      %   InputBitWidths           - Width in bit of the inputs
      %   OutputSignals            - Output paths in the HDL code
      %   OutputBitWidths          - Width in bit of the outputs
      %   OutputDataTypes          - Data type of the outputs
      %   OutputSigned             - Sign of the outputs
      %   OutputFractionLengths    - Fraction lengths of the outputs
      %   OutputDownsampling       - Downsampling factor and phase of the outputs
      %   OverclockingFactor       - Overclocking factor of the hardware
      %   SourceFrameSize          - Frame size of the source (only for HDL source block) 
      %   Connection               - Parameters for the connection with the board
      %   FPGAVendor               - Name of the FPGA chip vendor
      %   FPGABoard                - Name of the FPGA board
      %   FPGAProgrammingFile      - Path of the Programming file for the FPGA
      %   ScanChainPosition        - Position of the FPGA in the JTAG scan chain
      %
      %   File Name: fft8_fil.m
      %   Created: 26-Apr-2012 18:18:06
      % 
      %   Generated by FIL Wizard
      
          properties (Nontunable)
              DUTName = 'fft8';
          end
          
          methods
              function obj = fft8_fil
                  
                  %THE FOLLOWING PROTECTED PROPERTIES ARE SPECIFIC TO THE HW DUT
                  %AND MUST NOT BE EDITED (RERUN THE FIL WIZARD TO CHANGE THEM)
                  obj.InputSignals = char('Xin_re','Xin_im');
                  obj.InputBitWidths = [10,10];
                  obj.OutputSignals = char('Xout_re','Xout_im');
                  obj.OutputBitWidths = [13,13];
                  obj.Connection = char('UDP','192.168.0.2','00-0A-35-02-21-8A'); 
                  obj.FPGAVendor = 'Xilinx';
                  obj.FPGABoard = 'XUP Atlys Spartan-6 development board';
                  obj.ScanChainPosition = 1 ;
                  
                  %THE FOLLOWING PUBLIC PROPERTIES ARE RELATED TO THE SIMULATION
                  %AND CAN BE EDITED WITHOUT RERUNING THE FIL WIZARD
                  obj.OutputSigned = [true,true];
                  obj.OutputDataTypes = char('fixedpoint','fixedpoint');
                  obj.OutputFractionLengths = [9,9];
                  obj.OutputDownsampling = [1,0];
                  obj.OverclockingFactor = 1;
                  obj.SourceFramieSize = 1;
                  obj.FPGAProgrammingFile = 'S:\MATLAB\demo\fft8_fil\fft8_fil.bit';
              end
          end
      end
      
  2. FIL ウィザードによりコマンド ウィンドウが開きます。

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

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

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

システムオブジェクトの作成

FIL ウィザードを使用して派生したクラス定義ファイルからカスタムFILSimulation System objectを作成します。このコード スニペットは、クラスのインスタンスを作成し、すべてのプロパティを初期化します。

MYFIL = toplevel_fil

HDL ワークフロー アドバイザーから FIL System objectを生成した場合は、設定を調整する必要はほとんどありません。FIL ウィザードを使用して FIL System objectを生成した場合は、いくつかの設定を調整する必要があるかもしれません。次のいずれかの方法を使用して、書き込み可能なプロパティを調整できます。

  • set メソッドを使用してプロパティを変更します。

    MYFIL.set('FPGAProgrammingFile','c:\work\filfiles')
  • プロパティを直接設定します。

    MYFIL.FPGAProgrammingFile='c:\work\filfiles'
  • toplevel_fil.mを直接編集します。.mファイルを編集する場合は、ワークスペースでオブジェクトを再度インスタンス化します (以前にインスタンス化していれば)。

オブジェクトのプロパティの詳細については、 hdlverifier.FILSimulationを参照してください。

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

FPGA は、 programFPGA関数、または FIL System object のprogramFPGAメソッドを使用してプログラムできます。ガイド付きハードウェアセットアップをまだ実行していない場合は、プログラミング ファイルをロードする前に実行してください。

  • 関数 programFPGA:

    ./toplevel_fil/toplevel_programFPGA
  • programFPGA メソッド:

    MYFIL.programFPGA

    MYFIL は、 FILSimulationオブジェクトのインスタンスです。

シミュレーションの実行

  1. System object MATLAB を呼び出します。

  2. 通常どおり、 MATLABコードを実行します。始める前に、 ガイド付きハードウェアセットアップを実行していることを確認してください。

    オブジェクトへの最初の呼び出しにより、FPGA ボードとの通信が確立されます。

関連するトピック