Main Content

浮動小数点 IP 構成のカスタマイズ

Simulink® モデルを浮動小数点ターゲット ライブラリにマッピングするとき、独自のカスタム IP 構成を行った浮動小数点ターゲット設定を作成できます。IP 構成をカスタマイズするために、IP 構成テーブルを使用して IP 名とデータ型のさまざまな組み合わせから選択できます。テーブルには IP 型と追加の列のリストが含まれていて、独自のカスタム レイテンシ値とその他の IP 設定を選択するために使用できます。

IP 構成は、ライブラリの設定によって異なります。ライブラリ設定は、選択した浮動小数点ライブラリに固有です。ターゲット周波数またはレイテンシ手法の設定を使用して、IP レイテンシをカスタマイズできます。

ターゲット周波数を使用した IP レイテンシのカスタマイズ

IP が実現するターゲット周波数を指定するには、[Altera Megafunctions (ALTERA FP Functions)] ライブラリを使用します。HDL Coder™ は、ターゲット周波数の値に基づいて IP のレイテンシを推定します。ターゲット周波数を指定しない場合、HDL Coder はターゲット周波数を 200 MHz に設定します。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [ターゲット周波数 (MHz)] パラメーターまたはコマンド ラインの TargetFrequency プロパティを使用して IP レイテンシをカスタマイズできます。

[コンフィギュレーション パラメーター] ウィンドウでの IP レイテンシのカスタマイズ

[ターゲット周波数 (MHz)] パラメーターを使用して IP レイテンシをカスタマイズするには、次の手順に従います。

  1. ベンダー固有の浮動小数点ライブラリを指定します。

    1. [アプリ] タブで、[HDL Coder] を選択します。[HDL コード] タブで、[設定] をクリックします。

    2. [HDL コード生成][ターゲット] ペインで、[合成ツール] を任意の合成ツールに設定します。Altera Megafunctions (ALTERA FP Functions) ライブラリを使用するには、[合成ツール][Altera Quartus II] または [Intel Quartus Pro] に設定します。合成ツールの詳細については、ツールの設定を参照してください。

    3. [HDL コード生成][浮動小数点] ペインで、[浮動小数点の使用] を選択します。

    4. [ベンダー固有の浮動小数点ライブラリ][ALTERAFPFUNCTIONS] に設定します。

  2. ターゲット周波数を指定します。[ターゲット] ペインで、[ターゲット周波数 (MHz)] を浮動小数点 IP で実現するターゲット周波数に設定します。ターゲット周波数を指定しない場合、HDL Coder はターゲット周波数を 200 MHz に設定します。[OK] をクリックします。

  3. ベンダー固有のライブラリの設定を指定するには、次のコマンドを使用してモデルの浮動小数点ターゲット構成オブジェクト hdlcoder.FloatingPointTargetConfig を取得します。

    fpconfig = hdlget_param(gcs, 'FloatingPointTargetConfiguration')

  4. ベンダー固有の浮動小数点ライブラリの設定を指定します。浮動小数点ターゲット構成オブジェクト fpconfig を使用して、IP のパイプライン レジスタをゼロに初期化するかどうかを指定する InitializeIPPipelinesToZero プロパティを設定します。HDL シミュレーションでの潜在的な数値の不一致を回避するには、InitializeIPPipelinesToZero オプションを true に設定したままにすることを推奨します。

  5. IP 設定を指定します。fpconfig オブジェクトの VendorIPConfig プロパティを使用して、カスタム レイテンシと IP に固有の設定を指定します。VendorIPConfig テーブルを確認するには、次のコマンドを使用します。

    fpconfig.VendorIPConfig

    • [Latency] 列の既定のレイテンシ値 –1 は、IP がターゲット周波数からレイテンシ値を継承していることを指します。レイテンシ値を指定すると、HDL Coder は、レイテンシ値に対応するターゲット周波数の IP への Simulink モデルのマッピングを試みます。

    • [ExtraArgs] 列で、IP に固有の追加設定を指定できます。

  6. コードを生成します。Simulink で、[HDL Coder] タブの [HDL コードの生成] をクリックします。

プログラムによる IP レイテンシのカスタマイズ

コマンド ラインから IP レイテンシをカスタマイズするには、次の手順に従います。

  1. ライブラリを指定します。関数 hdlcoder.createFloatingPointTargetConfig を使用して、浮動小数点ライブラリのための hdlcoder.FloatingPointTargetConfig オブジェクトを作成します。次に、hdlset_param を使用して、モデルで構成を保存します。

    たとえば、モデル sfir_single について、[Altera Megafunctions (ALTERA FP FUNCTIONS)] ライブラリの浮動小数点ターゲット構成を既定の設定で作成するには、次を入力します。

    fpconfig = hdlcoder.createFloatingPointTargetConfig("NativeFloatingPoint",...
       VendorFloatingPointLibrary="ALTERAFPFUNCTIONS");
    hdlset_param('sfir_single', 'FloatingPointTargetConfiguration', fpconfig);
    浮動小数点 IP の既定の設定を表示するには、「fpconfig」と入力します。
    fpconfig = 
    
      FloatingPointTargetConfig with properties:
    
                      Library: 'NATIVEFLOATINGPOINT'
              LibrarySettings: [1×1 fpconfig.NFPLatencyDrivenMode]
                     IPConfig: [1×1 hdlcoder.FloatingPointTargetConfig.IPConfig]
                VendorLibrary: 'ALTERAFPFUNCTIONS'
        VendorLibrarySettings: [1×1 fpconfig.FrequencyDrivenMode]
               VendorIPConfig: [1×1 hdlcoder.FloatingPointTargetConfig.IPConfig]
    
    

  2. ターゲット周波数を指定します。[ALTERA MEGAFUNCTION (ALTERA FP FUNCTIONS)] をベンダー固有の浮動小数点ライブラリとして選択する場合、カスタムのターゲット周波数を使用して浮動小数点構成を作成できます。実現する IP のターゲット周波数を指定するには、TargetFrequency プロパティを使用します。以下に例を示します。

    hdlset_param('sfir_single', 'TargetFrequency', 300);
    

  3. ベンダー固有の浮動小数点ライブラリの設定を指定します。IP のパイプライン レジスタをゼロに初期化するかどうかを指定します。fpconfig.VendorLibrarySettings プロパティの InitializeIPPipelinesToZero プロパティを使用します。

    たとえば、InitializeIPPipelinesToZero プロパティを false に設定するには、次を入力します。

    fpconfig.VendorLibrarySettings.InitializeIPPipelinesToZero = false;
    
    ライブラリ設定を確認するには、「fpconfig.VendorLibrarySettings」と入力します。
    
    ans = 
    
      FrequencyDrivenMode with properties:
    
        InitializeIPPipelinesToZero: 0
    
    
    
    HDL シミュレーションでの潜在的な数値の不一致を回避するには、InitializeIPPipelinesToZerotrue に設定することを推奨します。

  4. IP 設定を指定します。VendorIPConfig.customize メソッドの入力引数 LatencyExtraArgs を使用して、IP のレイテンシをカスタマイズし、IP に固有の追加設定を指定します。

    たとえば、ADDSUB IP に Xilinx® LogiCORE ライブラリをマッピングする場合、カスタム レイテンシを 8 に指定するには次のようにします。

    fpconfig.VendorIPConfig.customize('ADDSUB', 'SINGLE', 'Latency', 8);
    
    IP 設定を確認するには、「fpconfig.VendorIPConfig」と入力します。
    ans = 
    
          Name              DataType            Latency    ExtraArgs
        _________    _______________________    _______    _________
    
        'ABS'        'DOUBLE'                   -1         ''       
        'ABS'        'SINGLE'                   -1         ''       
        'ADDSUB'     'DOUBLE'                   -1         ''       
        'ADDSUB'     'SINGLE'                    8         ''       
        'CONVERT'    'DOUBLE_TO_NUMERICTYPE'    -1         ''       
        'CONVERT'    'NUMERICTYPE_TO_DOUBLE'    -1         ''       
        'CONVERT'    'NUMERICTYPE_TO_SINGLE'    -1         ''       
        'CONVERT'    'SINGLE_TO_NUMERICTYPE'    -1         ''       
    
    
    

  5. HDL コードを生成します。サブシステムからコードを生成するには、makehdl を使用します。

レイテンシ手法を使用した IP レイテンシのカスタマイズ

レイテンシ手法設定を使用して IP レイテンシをカスタマイズするには、[ALTERA MEGAFUNCTION (ALTFP)] または [XILINX LOGICORE] ライブラリを使用します。Simulink モデルを最大または最小レイテンシにマッピングするかどうかを指定します。HDL Coder は、レイテンシ手法の設定から IP のレイテンシを推定します。

コマンド ラインから IP レイテンシをカスタマイズするには、次の手順に従います。

  1. ライブラリを指定します。関数 hdlcoder.createFloatingPointTargetConfig を使用して、浮動小数点ライブラリのための hdlcoder.FloatingPointTargetConfig オブジェクトを作成します。次に、hdlset_param を使用して、モデルで構成を保存します。

    たとえば、モデル sfir_single について、[ALTERA MEGAFUNCTION (ALTFP)] ライブラリの浮動小数点ターゲット構成を既定の設定で作成するには、次を入力します。

    fpconfig = hdlcoder.createFloatingPointTargetConfig("NativeFloatingPoint",...
       VendorFloatingPointLibrary="ALTFP");
    hdlset_param('sfir_single', 'FloatingPointTargetConfiguration', fpconfig);
    既定では、ライブラリは浮動小数点 IP の最小レイテンシおよび速度の目的を使用します。

  2. ライブラリの設定を指定します。fpconfig.VendorLibrarySettings オブジェクトの Objective プロパティと LatencyStrategy プロパティを設定してライブラリ設定をカスタマイズします。

    たとえば、最大レイテンシおよび目的を面積として使用するように [ALTERA MEGAFUNCTION (ALTFP)] ライブラリをカスタマイズするには、次を入力します。

    fpconfig.VendorLibrarySettings.Objective = 'AREA';
    fpconfig.VendorLibrarySettings.LatencyStrategy = 'MAX';
    
    ライブラリ設定を確認するには、「fpconfig.VendorLibrarySettings」と入力します。
    ans = 
    
      LatencyDrivenMode with properties:
    
        LatencyStrategy: 'MAX'
              Objective: 'AREA'

  3. IP 設定を指定します。VendorIPConfig.customize メソッドの入力引数 LatencyExtraArgs を使用して、IP のレイテンシをカスタマイズし、IP に固有の追加設定を指定します。

    たとえば、ADDSUB IP に Xilinx LogiCORE ライブラリをマッピングする場合、カスタム レイテンシ 8 を使用し、DSP リソース使用率を cmultusage パラメーターを使用して指定するには、次のように入力します。

    fpconfig.VendorIPConfig.customize('ADDSUB', 'SINGLE',...
       'Latency', 8, 'ExtraArgs', 'CSET c_mult_usage=Full_usage');
    
    IP 設定を確認するには、「fpconfig.VendorIPConfig」と入力します。
    
    ans = 
    
          Name              DataType            MinLatency    MaxLatency    Latency              ExtraArgs           
        _________    _______________________    __________    __________    _______    ______________________________
    
        'ADDSUB'     'DOUBLE'                    7            14            -1         ''                            
        'ADDSUB'     'SINGLE'                    7            14             8         'CSET c_mult_usage=Full_usage'
        'CONVERT'    'DOUBLE_TO_NUMERICTYPE'     6             6            -1         ''                            
        'CONVERT'    'NUMERICTYPE_TO_DOUBLE'     6             6            -1         ''                            
        'CONVERT'    'NUMERICTYPE_TO_SINGLE'     6             6            -1         ''                            
    
    
    

  4. HDL コードを生成します。サブシステムからコードを生成するには、makehdl を使用します。

参考

| | |

関連する例

詳細