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 に設定します。

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

UI を使用する場合

ターゲット周波数設定を使用して IP レイテンシをカスタマイズするには、次の手順に従います。

  1. ライブラリを指定します。

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

    2. [HDL コード生成][浮動小数点のターゲット] ペインで、[ライブラリ] に対して、[Altera Megafunction (ALTERA FP FUNCTIONS)] を選択します。

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

  3. ライブラリの設定を指定します。[IP パイプラインをゼロに初期化] オプションを使用して、IP のパイプライン レジスタをゼロに初期化するかどうかを指定できます。HDL シミュレーションでの潜在的な数値の不一致を回避するには、[IP パイプラインをゼロに初期化] オプションを true に設定したままにすることを推奨します。

  4. IP 設定を指定します。IP 構成テーブルで、カスタム レイテンシおよび IP に固有の追加設定をオプションで指定できます。

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

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

  5. コードを生成します。[適用] をクリックします。Simulink ツールストリップで、[HDL コードを生成] をクリックします。

コマンド ラインの入力

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

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

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

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

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

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

  3. ライブラリの設定を指定します。IP のパイプライン レジスタをゼロに初期化するかどうかを指定します。関数 fpconfig.LibrarySettingsInitializeIPPipelinesToZero プロパティを使用します。

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

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

  4. IP 設定を指定します。IPConfig メソッドでは、Latency および ExtraArgs を使用して、IP のレイテンシをカスタマイズして、IP に固有の追加設定を指定します。

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

    fpconfig.IPConfig.customize('ADDSUB', 'SINGLE', 'Latency', 8);
    
    適用した IP 設定を確認するには、「fpconfig.IPConfig」と入力します。
    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 レイテンシをカスタマイズできます。

UI を使用する場合

レイテンシ手法設定を使用して IP レイテンシをカスタマイズするには、次の手順に従います。

  1. ライブラリを指定します。[コンフィギュレーション パラメーター] ダイアログ ボックスの [HDL コード生成][浮動小数点のターゲット] ペインで、[ライブラリ] に対して、[ALTERA MEGAFUNCTION (ALTFP)] または [XILINX LOGICORE] を選択します。

  2. ライブラリの設定を指定します。[レイテンシ手法] には、Simulink モデルを IP の最小または最大レイテンシにマッピングするかどうかを指定します。[目的] には、速度または面積のどちらに対して最適化するかどうかを指定します。

  3. IP 設定を指定します。IP の種類と最大および最小レイテンシを含む IP 構成テーブルが表示されます。テーブルで、カスタム レイテンシおよび IP に固有の追加設定をオプションで指定できます。

    • テーブルの [レイテンシ] 列の、–1 の既定のレイテンシ値は、IP がライブラリ設定からレイテンシ値を継承していることを指します。Simulink ブロックがマッピングされている IP のレイテンシをカスタマイズするには、レイテンシの値を入力します。

      たとえば、[ADDSUB] IP に Xilinx LogiCORE をマッピングする場合にレイテンシを 8 に指定すると、IP のレイテンシは既定値の 12 ではなく 8 に変わります。

    • テーブルの [ExtraArgs] 列で、IP に固有の追加設定を指定します。

      たとえば、Xilinx LogiCORE IP にマッピングする場合、[ExtraArgs] には、パラメーター c_mult_usage を指定して使用する DSP リソースを制御できます。パラメーターの使用法と構文の詳細については、IP ライブラリのドキュメンテーションを参照してください。

  4. コードを生成します。[適用] をクリックします。Simulink ツールストリップで、[HDL コードを生成] をクリックします。

コマンド ラインから

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

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

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

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

  2. ライブラリの設定を指定します。関数 fpconfig.LibrarySettingsObjective および LatencyStrategy を使用してライブラリ設定をカスタマイズします。

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

    fpconfig.LibrarySettings.Objective = 'AREA';
    fpconfig.LibrarySettings.LatencyStrategy = 'MAX';
    
    適用したライブラリ設定を確認するには、「fpconfig.LibrarySettings」と入力します。
    
    ans = 
    
      LatencyDrivenMode with properties:
    
        LatencyStrategy: 'MAX'
              Objective: 'AREA'
    
    	fpconfig is a variable of type hdlcoder.FloatingPointTargetConfig.
    
    
    

  3. IP 設定を指定します。IPConfig メソッドでは、Latency および ExtraArgs を使用して、IP のレイテンシをカスタマイズして、IP に固有の追加設定を指定します。

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

    fpconfig.IPConfig.customize('ADDSUB', 'SINGLE', 'Latency', 8, 'ExtraArgs', 'CSET c_mult_usage=Full_usage');
    
    適用した IP 設定を確認するには、「fpconfig.IPConfig」と入力します。
    
    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 を使用します。

関連する例

詳細