高スループット積
- 更新日2025-01-28
- 13分で読める
xとyの積を演算します。
この関数は、固定小数点 データタイプです。

ダイアログボックスオプション
| パラメータ | 説明 |
|---|---|
| 固定小数点の構成 |
を指定します。この関数の入力端子と出力端子の エンコーディング、ワード長、整数ワード長 です。指定する構成によって、端子の 値の範囲 です。
|
| 実行モード |
この関数の実行方法を指定します。
|
| パイプラインオプション |
のオプションを指定します。この関数を内部的に パイプライン処理 します。これらのオプションは関数の最大クロックレートに影響します。を参照してください。この関係については、このトピックの 「パイプラインを使用して関数のパフォーマンスを向上させる」 セクションを参照してください。
以下のオプションから選択できます。
|
| レジスタ |
するかどうかを指定します。関数出力端子の 内部レジスタを追加 します。このセクションは、 シングルサイクルタイミングループの内側を選択した場合にのみ使用できます。 メモ レジスタを追加すると、これにより、長い組み合わせ パスによるコンパイルエラーを防ぐことができます。ただし、レジスタの追加によって関数のレイテンシが増加するため、有効な結果を返すために余分なクロックサイクルが必要となることになります。
|
| オプション端子 |
オプションのブロックダイアグラム端子の表示設定を指定します。
|
| 構成フィードバック |
この関数の実行方法に関する情報を示します。この情報は、ユーザが指定する構成オプションに基づいています。 |
入力/出力
x
—
被乗数を指定します。
y
—
被乗数を指定します。 次の処理データポイントを受信したかどうかを示します。先行ノードからこのノードにデータを渡すには、先行ノードの出力有効出力をこの入力に配線します。 これを表示するにはハンドシェイク 端子で シングルサイクルタイミングループの内側 オプションを選択し、以下のいずれかの操作を実行します。
後続ノードがこのノードから返される新しい値を受信できる状態かどうかを示します。デフォルトはTRUEです。を使用フィードバックノード は、後続ノード の入力準備完了 出力を現在のノードのこの入力に配線します。 メモ 特定のサイクルでこの端子がFALSEの場合、 出力有効 端子はそのサイクル中にFALSEを返します。
この端子を表示するには、シングルサイクルタイミングループの内側オプションを選択して、以下のいずれかの操作を実行します。
x*y
—
xとyの積を返します。 理論上の演算値が出力データタイプの有効な範囲を超える場合、TRUEを返します。演算オーバーフローからTRUEが返された場合、関数が返す値はオーバーフローモードオプションによって決定されます。 演算オーバーフロー端子は、演算オーバーフローチェックボックスをオンにした場合にのみ表示されます。このチェックボックスは、構成ダイアログボックスのオプション端子セクションに表示されます。 ノードが後続ノードで使用できる結果を計算済みの場合、TRUEを返します。ノードのデータを後続ノードに送信するには、この出力を後続の入力有効入力に配線します。 この端子を表示するには、シングルサイクルタイミングループの内側オプションを選択して、以下のいずれかの操作を実行します。
このノードが新しい入力データを受信できる状態になるとTRUEを返します。この出力を先行ノードの出力準備完了入力に配線するには、フィードバックノードを使用します。 メモ あるサイクルでこの端子がFALSEを返した場合、次のサイクルで他のノードがこのノードに送信するデータはLabVIEWされます。LabVIEWは、次のサイクルで入力有効端子がTRUEである場合もこのデータを破棄します。
この端子を表示するには、シングルサイクルタイミングループの内側オプションを選択して、以下のいずれかの操作を実行します。
|
この関数は、出力有効から最初のTRUEが返される前のサイクル中にFPGAターゲットとホストコンピュータで異なる結果を返す場合があります。出力有効から初めてTRUEが返された後は、結果は同一になります。
パイプラインによって関数のパフォーマンスを向上させる
パイプラインのステージ数を調整することで、FPGAターゲットでの関数のタイミングパフォーマンスを向上させることができます。の機能パイプライン 型乗算器は、特定の数でカスケードされた非パイプライン型乗算器と同等レジスタレジスタの数はパイプラインのステージ数に相当します。
一般に、パイプラインのステージ数を増やすことで、この関数の最大クロックレートを高めることができます。ただし実際のクロックレートは、以下をはじめとするさまざまな要素によって決定されます。
- 使用するFPGAターゲット
- 乗算器のサイズ
- 使用する丸め込みモードとオーバーフローモード
- 使用する実装リソース
- 乗算器以外のFPGA論理
以下のグラフは、パイプラインのステージ数とXilinx Virtex-II、Virtex-5、Spartan-3 FPGAの各予想最大クロックレートの関係を示しています。
上の図では、各ラインは特定の実装リソースを使用する一定のサイズの乗算器を表します。たとえば、I32*I32ブロックラインは組込ブロック乗算器を使用して2つの符号付き32ビット整数を乗算する乗算器です。このラインでは、符号付き64ビット整数である<+/–,32,32>*<+/–,32,32> = <+/–,64,64>が得られます。Virtex-II FPGAターゲットでパイプラインのステージを1つ使用する場合、このタイプの乗算器によって約51 MHzの最大クロックレートを得られます。パイプラインのステージを3つ使用する場合、最大クロックレートは約76 MHzになります。
以下の図は、その他のFPGAターゲットにおける情報を示しています。

サンプルプログラム
LabVIEW FPGAモジュールに含まれている以下のサンプルファイルを参照してください。
- labview\examples\CompactRIO\FPGA Fundamentals\FPGA Math and Analysis\High-Throughput Math\Vector Normalization\Vector Normalization.lvproj
- labview\examples\R Series\FPGA Fundamentals\FPGA Math and Analysis\High-Throughput Math\Vector Normalization\Vector Normalization.lvproj
x
—
x*y
—