浮動小数点 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 レイテンシをカスタマイズするには、次の手順に従います。
ベンダー固有の浮動小数点ライブラリを指定します。
[アプリ] タブで、[HDL Coder] を選択します。[HDL コード] タブで、[設定] をクリックします。
[HDL コード生成] 、 [ターゲット] ペインで、[合成ツール] を任意の合成ツールに設定します。Altera Megafunctions (ALTERA FP Functions) ライブラリを使用するには、[合成ツール] を
[Altera Quartus II]
または[Intel Quartus Pro]
に設定します。合成ツールの詳細については、ツールの設定を参照してください。[HDL コード生成] 、 [浮動小数点] ペインで、[浮動小数点の使用] を選択します。
[ベンダー固有の浮動小数点ライブラリ] を
[ALTERAFPFUNCTIONS]
に設定します。
ターゲット周波数を指定します。[ターゲット] ペインで、[ターゲット周波数 (MHz)] を浮動小数点 IP で実現するターゲット周波数に設定します。ターゲット周波数を指定しない場合、HDL Coder はターゲット周波数を
200 MHz
に設定します。[OK] をクリックします。ベンダー固有のライブラリの設定を指定するには、次のコマンドを使用してモデルの浮動小数点ターゲット構成オブジェクト
hdlcoder.FloatingPointTargetConfig
を取得します。fpconfig = hdlget_param(gcs, 'FloatingPointTargetConfiguration')
ベンダー固有の浮動小数点ライブラリの設定を指定します。浮動小数点ターゲット構成オブジェクト
fpconfig
を使用して、IP のパイプライン レジスタをゼロに初期化するかどうかを指定するInitializeIPPipelinesToZero
プロパティを設定します。HDL シミュレーションでの潜在的な数値の不一致を回避するには、InitializeIPPipelinesToZero
オプションをtrue
に設定したままにすることを推奨します。IP 設定を指定します。
fpconfig
オブジェクトのVendorIPConfig
プロパティを使用して、カスタム レイテンシと IP に固有の設定を指定します。VendorIPConfig
テーブルを確認するには、次のコマンドを使用します。fpconfig.VendorIPConfig
[Latency] 列の既定のレイテンシ値
–1
は、IP がターゲット周波数からレイテンシ値を継承していることを指します。レイテンシ値を指定すると、HDL Coder は、レイテンシ値に対応するターゲット周波数の IP への Simulink モデルのマッピングを試みます。[ExtraArgs] 列で、IP に固有の追加設定を指定できます。
コードを生成します。Simulink で、[HDL Coder] タブの [HDL コードの生成] をクリックします。
プログラムによる IP レイテンシのカスタマイズ
コマンド ラインから IP レイテンシをカスタマイズするには、次の手順に従います。
ライブラリを指定します。関数
hdlcoder.createFloatingPointTargetConfig
を使用して、浮動小数点ライブラリのためのhdlcoder.FloatingPointTargetConfig
オブジェクトを作成します。次に、hdlset_param
を使用して、モデルで構成を保存します。たとえば、モデル
sfir_single
について、[Altera Megafunctions (ALTERA FP FUNCTIONS)]
ライブラリの浮動小数点ターゲット構成を既定の設定で作成するには、次を入力します。浮動小数点 IP の既定の設定を表示するには、「fpconfig = hdlcoder.createFloatingPointTargetConfig("NativeFloatingPoint",... VendorFloatingPointLibrary="ALTERAFPFUNCTIONS"); hdlset_param('sfir_single', 'FloatingPointTargetConfiguration', fpconfig);
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]
ターゲット周波数を指定します。
[ALTERA MEGAFUNCTION (ALTERA FP FUNCTIONS)]
をベンダー固有の浮動小数点ライブラリとして選択する場合、カスタムのターゲット周波数を使用して浮動小数点構成を作成できます。実現する IP のターゲット周波数を指定するには、TargetFrequency
プロパティを使用します。以下に例を示します。hdlset_param('sfir_single', 'TargetFrequency', 300);
ベンダー固有の浮動小数点ライブラリの設定を指定します。IP のパイプライン レジスタをゼロに初期化するかどうかを指定します。
fpconfig.VendorLibrarySettings
プロパティのInitializeIPPipelinesToZero
プロパティを使用します。たとえば、
InitializeIPPipelinesToZero
プロパティを false に設定するには、次を入力します。ライブラリ設定を確認するには、「fpconfig.VendorLibrarySettings.InitializeIPPipelinesToZero = false;
fpconfig.VendorLibrarySettings
」と入力します。HDL シミュレーションでの潜在的な数値の不一致を回避するには、ans = FrequencyDrivenMode with properties: InitializeIPPipelinesToZero: 0
InitializeIPPipelinesToZero
をtrue
に設定することを推奨します。IP 設定を指定します。
VendorIPConfig.customize
メソッドの入力引数Latency
とExtraArgs
を使用して、IP のレイテンシをカスタマイズし、IP に固有の追加設定を指定します。たとえば、
ADDSUB
IP に Xilinx® LogiCORE ライブラリをマッピングする場合、カスタム レイテンシを 8 に指定するには次のようにします。IP 設定を確認するには、「fpconfig.VendorIPConfig.customize('ADDSUB', 'SINGLE', 'Latency', 8);
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 ''
HDL コードを生成します。サブシステムからコードを生成するには、
makehdl
を使用します。
レイテンシ手法を使用した IP レイテンシのカスタマイズ
レイテンシ手法設定を使用して IP レイテンシをカスタマイズするには、[ALTERA MEGAFUNCTION (ALTFP)]
または [XILINX LOGICORE]
ライブラリを使用します。Simulink モデルを最大または最小レイテンシにマッピングするかどうかを指定します。HDL Coder は、レイテンシ手法の設定から IP のレイテンシを推定します。
コマンド ラインから IP レイテンシをカスタマイズするには、次の手順に従います。
ライブラリを指定します。関数
hdlcoder.createFloatingPointTargetConfig
を使用して、浮動小数点ライブラリのためのhdlcoder.FloatingPointTargetConfig
オブジェクトを作成します。次に、hdlset_param
を使用して、モデルで構成を保存します。たとえば、モデル
sfir_single
について、[ALTERA MEGAFUNCTION (ALTFP)]
ライブラリの浮動小数点ターゲット構成を既定の設定で作成するには、次を入力します。既定では、ライブラリは浮動小数点 IP の最小レイテンシおよび速度の目的を使用します。fpconfig = hdlcoder.createFloatingPointTargetConfig("NativeFloatingPoint",... VendorFloatingPointLibrary="ALTFP"); hdlset_param('sfir_single', 'FloatingPointTargetConfiguration', fpconfig);
ライブラリの設定を指定します。
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'
IP 設定を指定します。
VendorIPConfig.customize
メソッドの入力引数Latency
とExtraArgs
を使用して、IP のレイテンシをカスタマイズし、IP に固有の追加設定を指定します。たとえば、
ADDSUB
IP に Xilinx LogiCORE ライブラリをマッピングする場合、カスタム レイテンシ 8 を使用し、DSP リソース使用率をcmultusage
パラメーターを使用して指定するには、次のように入力します。IP 設定を確認するには、「fpconfig.VendorIPConfig.customize('ADDSUB', 'SINGLE',... 'Latency', 8, 'ExtraArgs', 'CSET c_mult_usage=Full_usage');
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 ''
HDL コードを生成します。サブシステムからコードを生成するには、
makehdl
を使用します。
参考
hdlcoder.FloatingPointTargetConfig
| createFloatingPointTargetConfig
| hdlcoder.FloatingPointTargetConfig.IPConfig
| customize
関連する例
- FPGA 浮動小数点ライブラリ IP マッピング
- Design Model by Using HDL Coder Native Floating Point and Intel Hard Floating Point