xyの積を演算します。

この関数は、固定小数点 データタイプです。


icon

ダイアログボックスオプション

パラメータ 説明
固定小数点の構成

を指定します。この関数の入力端子と出力端子の エンコーディング、ワード長、整数ワード長 です。指定する構成によって、端子の 値の範囲 です。

  • xタイプ

    x入力端子の固定小数点構成を指定します。

    この端子に固定小数点データタイプを配線すると、このセクションは淡色表示となり、ワイヤからの情報が使用されます。

    • 符号付き―この端子が符号付きであることを指定します。
    • 符号なし―この端子が符号なしであることを指定します。
    • ワード長―この端子のワード長を指定します。
    • 整数ワード長―この端子の整数ワード長を指定します。
  • yタイプ

    y入力端子の固定小数点構成を指定します。

    この端子に固定小数点データタイプを配線すると、このセクションは淡色表示となり、ワイヤからの情報が使用されます。

    • 符号付き―この端子が符号付きであることを指定します。
    • 符号なし―この端子が符号なしであることを指定します。
    • ワード長―この端子のワード長を指定します。
    • 整数ワード長―この端子の整数ワード長を指定します。
  • x*yタイプ

    x*y出力端子の固定小数点構成を指定します。

    • ソースに適応―回避するために、出力データタイプの固定小数点構成を自動的に調整するかLabVIEWかを指定します。オーバーフローと丸め誤差。デフォルトでは、このチェックボックスはオンに設定され、以下のオプションが淡色表示になっています。
      メモ LabVIEWは、64ビットの最大ワード長および2047ビットの最大整数ワード長をサポートします。このチェックボックスをオンにすると、これらの最大値を超えるワード長を必要とする出力データタイプに対してオーバーフローや丸め誤差が発生する可能性があります。
    • 符号付き―この端子が符号付きであることを指定します。
    • 符号なし―この端子が符号なしであることを指定します。
    • ワード長―この端子のワード長を指定します。
    • 整数ワード長―この端子の整数ワード長を指定します。
    • オーバーフローステータスを含む―出力端子にオーバーフローステータスを含めるかどうかを指定します。LabVIEWはこのステータスを後続ノードに伝達します。このステータスを追加するには、より多くのFPGAリソースが必要となります。このチェックボックスは、デフォルトでオフになっています。

      このチェックボックスをオンにすると、以下のいずれかの状況でオーバーフローステータスがTRUEになります。

      • 入力端子のオーバーフローステータスがTRUEの場合。
      • この関数の実行中にオーバーフローが発生した場合。

      ソースに適応チェックボックスをオンにすると、入力端子にこのステータスが含まれるかどうかに応じてオーバーフローステータスを含むが設定されます。

  • オーバーフローモード

    この関数の処理方法を指定します。オーバーフローです。折り返し (デフォルト) または 飽和のいずれかを選択できます。

    メモ 飽和オプションは、 ラップ オプションよりも多くのFPGAリソースと長い組み合わせパスを必要とします。このような場合、飽和を選択すると、この関数がコンパイルできる最大クロックレートが低くなる可能性があります。
  • 丸め込みモード

    この関数がどのように機能するかを指定します。丸め込みが必要な場合、出力データを 丸め ます。切り下げ (デフォルト)、四捨五入 - 中間値は切り上げ四捨五入-最下位ビットを特定のいずれかを選択できます。丸め込みが発生する場合、選択するオプションはこの関数が必要とするリソースの量に影響します

実行モード

この関数の実行方法を指定します。

  • シングルサイクルタイミングループの外側

    このExpress VIをaの外で実行するように構成します。シングルサイクルタイミングループ

    このオプションを選択し、このExpress VIをシングルサイクルタイミングループの内側に配置すると、FPGA VIをコンパイルすると、 コード生成エラー ウィンドウにエラーが表示されます。

  • シングルサイクルタイミングループの内側

    このExpress VIをシングルサイクルタイミングループ内で実行するよう構成します。

    このオプションを選択してこのExpress VIをシングルサイクルタイミングループの外側に配置すると、FPGA VIのコンパイル時にコード生成エラーウィンドウにエラーが表示されます。

パイプラインオプション

のオプションを指定します。この関数を内部的に パイプライン処理 します。これらのオプションは関数の最大クロックレートに影響します。を参照してください。この関係については、このトピックの 「パイプラインを使用して関数のパフォーマンスを向上させる」 セクションを参照してください。

  • パイプラインのステージ数―この関数が内部で使用するパイプラインのステージ数を指定します。ステージ数を増加させると、この関数がコンパイルできるクロックレートが向上しますが、必要となるFPGAリソースの量も増加します。デフォルトは0ステージで、パイプラインの指定なしです。最大12ステージまで設定できます。12ステージ以上追加しても関数がコンパイルできる最大クロックレートは向上しません。
  • 実装リソース―乗算器の実装方法を指定します。このオプションを有効にするには、パイプラインのステージ数を0より大きい値に設定します。

以下のオプションから選択できます。

  • 自動(デフォルト)―コンパイラ は、組込ブロック乗算器を使用するか、ルックアップテーブル (LUT) を使用して乗算器を実装するかを決定します。
  • ルックアップテーブル―関数がLUTを使用して乗算器を実装するよう指定します。このオプションを選択すると、関数がコンパイルできる最大クロックレートが向上します。
レジスタ

するかどうかを指定します。関数出力端子の 内部レジスタを追加 します。このセクションは、 シングルサイクルタイミングループの内側を選択した場合にのみ使用できます。

メモ レジスタを追加すると、これにより、長い組み合わせ パスによるコンパイルエラーを防ぐことができます。ただし、レジスタの追加によって関数のレイテンシが増加するため、有効な結果を返すために余分なクロックサイクルが必要となることになります。
  • レジスタ入力―この関数の入力の後に内部レジスタを追加します。このオプションを選択すると、関数のレイテンシが1サイクル分増加します。
  • レジスタ出力―この関数の出力の前に内部レジスタを追加します。このオプションを選択すると、関数のレイテンシが1サイクル分増加します。
オプション端子

オプションのブロックダイアグラム端子の表示設定を指定します。

  • 演算オーバーフロー―この関数がブロックダイアグラムに 演算オーバーフロー 出力端子を表示するように指定します。この端子は、この関数の実行中にオーバーフローが発生してかどうかを示します。
構成フィードバック

この関数の実行方法に関する情報を示します。この情報は、ユーザが指定する構成オプションに基づいています。

入力/出力

  • cunkn.png x

    被乗数を指定します。

  • cunkn.png y

    被乗数を指定します。

  • 入力有効

    次の処理データポイントを受信したかどうかを示します。先行ノードからこのノードにデータを渡すには、先行ノードの出力有効出力をこの入力に配線します。

    これを表示するにはハンドシェイク 端子で シングルサイクルタイミングループの内側 オプションを選択し、以下のいずれかの操作を実行します。
    • 入力後にレジスタを追加または出力前にレジスタを追加チェックボックスのいずれかをオンにします。
    • パイプラインのステージ数を1以上に設定します。
    これらのオプションは、構成ダイアログボックスにあります。
  • 出力準備完了

    後続ノードがこのノードから返される新しい値を受信できる状態かどうかを示します。デフォルトはTRUEです。を使用フィードバックノード は、後続ノード の入力準備完了 出力を現在のノードのこの入力に配線します。

    メモ 特定のサイクルでこの端子がFALSEの場合、 出力有効 端子はそのサイクル中にFALSEを返します。
    この端子を表示するには、シングルサイクルタイミングループの内側オプションを選択して、以下のいずれかの操作を実行します。
    • 入力後にレジスタを追加または出力前にレジスタを追加チェックボックスのいずれかをオンにします。
    • パイプラインのステージ数を1以上に設定します。
    これらのオプションは、構成ダイアログボックスにあります。
  • iunkn.png x*y

    xyの積を返します。

  • 演算オーバーフロー

    理論上の演算値が出力データタイプの有効な範囲を超える場合、TRUEを返します。演算オーバーフローからTRUEが返された場合、関数が返す値はオーバーフローモードオプションによって決定されます。

    演算オーバーフロー端子は、演算オーバーフローチェックボックスをオンにした場合にのみ表示されます。このチェックボックスは、構成ダイアログボックスのオプション端子セクションに表示されます。

  • 出力有効

    ノードが後続ノードで使用できる結果を計算済みの場合、TRUEを返します。ノードのデータを後続ノードに送信するには、この出力を後続の入力有効入力に配線します。

    この端子を表示するには、シングルサイクルタイミングループの内側オプションを選択して、以下のいずれかの操作を実行します。
    • 入力後にレジスタを追加または出力前にレジスタを追加チェックボックスのいずれかをオンにします。
    • パイプラインのステージ数を1以上に設定します。
    これらのオプションは、構成ダイアログボックスにあります。
  • 入力準備完了

    このノードが新しい入力データを受信できる状態になるとTRUEを返します。この出力を先行ノードの出力準備完了入力に配線するには、フィードバックノードを使用します。

    メモ あるサイクルでこの端子がFALSEを返した場合、次のサイクルで他のノードがこのノードに送信するデータはLabVIEWされます。LabVIEWは、次のサイクルで入力有効端子がTRUEである場合もこのデータを破棄します。
    この端子を表示するには、シングルサイクルタイミングループの内側オプションを選択して、以下のいずれかの操作を実行します。
    • 入力後にレジスタを追加または出力前にレジスタを追加チェックボックスのいずれかをオンにします。
    • パイプラインのステージ数を1以上に設定します。
    これらのオプションは、構成ダイアログボックスにあります。
  • この関数は、出力有効から最初の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