高スループット平方根 (関数)

1つ上のパレット: 高スループット数学関数

インストールパッケージ: FPGAモジュール

xの平方根を計算します。 xのエンコーディングは符号なしである必要があります。

この関数は、固定小数点データタイプのスカラ値のみをサポートします。

詳細  サンプル

ダイアログボックスオプション
ブロックダイアグラム入力
ブロックダイアグラム出力

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

パラメータ説明
固定小数点の構成この関数の入力端子と出力端子のエンコーディング、ワード長、整数ワード長を指定します。 指定する構成によって端子の値の範囲が決定されます。
  • xタイプx入力端子の固定小数点構成を指定します。

    この端子に固定小数点データタイプを配線し、そのデータタイプがこの端子の規則に適合する場合は、このセクションは淡色表示となり、ワイヤからの情報が使用されます。 この端子に規則に適合しない固定小数点データタイプを配線すると、配線が壊れます。
    • 符号付き—この端子を符号付きに指定します。 LabVIEWは符号化を符号なしに指定し、このオプションを淡色表示にします。
    • 符号なし—この端子を符号なしに指定します。 LabVIEWは符号化を符号なしに指定し、このオプションを淡色表示にします。
    • ワード長—この端子のワード長を指定します。
    • 整数ワード長—この端子の整数ワード長を指定します。
  • sqrt(x)タイプsqrt(x)出力端子の固定小数点構成を指定します。
    • ソースに適応オーバーフローを回避するために出力データタイプの固定小数点構成を自動調整するかどうかを指定します。 デフォルトでは、このチェックボックスはオンに設定され、以下のオプションが淡色表示になっています。
      メモ  平方根の精度は無限になる可能性があるため、常に丸め込みエラーが発生します。
    • 符号付き—この端子を符号付きに指定します。 符号化を符号なしに設定してこのオプションを淡色表示にするために、sqrt(x)は必ず0以上になります。
    • 符号なし—この端子を符号なしに指定します。 符号化を符号なしに設定してこのオプションを淡色表示にするために、sqrt(x)は必ず0以上になります。
    • ワード長—この端子のワード長を指定します。
    • 整数ワード長—この端子の整数ワード長を指定します。 この値はxタイプセクションで指定された整数ワード長に基づいて設定され、このオプションは淡色表示となります。
    • オーバーフローステータスを含む—出力端子にオーバーフローステータスが含まれるかどうかを示します。 LabVIEWはこのステータスを後続ノードに伝達します。 このステータスを追加するには、より多くのFPGAリソースが必要となります。 このチェックボックスは、デフォルトでオフになっています。

      このチェックボックスをオンにすると、以下のいずれかの場合においてオーバーフローステータスがTRUEとなります。
      • 入力端子のオーバーフローステータスがTRUEの場合。
      • この関数の実行中にオーバーフローが発生した場合。


      ソースに適応チェックボックスをオンにすると、入力端子にこのステータスが含まれるかどうかに応じてオーバーフローステータスを含むが設定されます。
  • オーバーフローモード—この関数によるオーバーフローの処理方法を指定します。 切り捨て (デフォルト) または飽和を選択できます。
    メモ  飽和オプションは、より多くのFPGAリソースと切り捨てオプションより長い組み合わせパスを必要とします。 このような場合、飽和を選択すると、この関数がコンパイルできる最大クロックレートが低くなる可能性があります。
  • 丸め込みモード—この関数で出力データを丸め込むかどうかを指定します。 切り下げ (デフォルト)、四捨五入 - 中間値は切り上げ四捨五入-最下位ビットを特定のいずれかを選択できます。 ここで選択するオプションによって、この関数が必要とするリソースの量が影響を受ける可能性があります。
実行モードこの関数の実行方法を指定します。
  • シングルサイクルタイミングループの外側—このExpress VIをシングルサイクルタイミングループの外で実行するよう構成します。

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

    このオプションを選択してこのExpress VIをシングルサイクルタイミングループの外側に配置すると、FPGA VIのコンパイル時にコード生成エラーウィンドウにエラーが表示されます。
  • スループット—有効な入力データの連続する値の間の最小サイクル数を指定します。 この制御器に低値を入力すると、スループットレートが高くなります。 スループットの最大値は、出力端子のワード長によって決定されます。 シングルサイクルタイミングループの内側を選択した場合のみ、このオプションを使用できます。

    シングルサイクルタイミングループの外側を選択すると、関数は呼び出しの度に有効な結果を返します。 したがって、スループット制御器には1呼び出し/サンプルが表示されます。 構成フィードバック表示器には、この関数が有効な結果を返すまでに必要とするクロックサイクル数が表示されます。
レジスタ関数の入力、出力に内部レジスタを追加するかどうかを指定します。 これらのレジスタは、ブロック乗算器またはDSP48Eスライスなどの組込リソースの外側に配置されます。 このセクションはシングルサイクルタイミングループの内側を選択した場合のみ使用できます。
メモ  レジスタを追加すると組み合わせパスの長さが減少し、長い組み合わせパスが原因で起こるコンパイルエラーが回避できる場合があります。 ただし、レジスタの追加によって関数のレイテンシが増加するため、有効な結果を返すために余分なクロックサイクルが必要となることになります。
  • 入力後にレジスタを追加—この関数の入力の後に内部レジスタを追加します。 このオプションを選択すると、関数のレイテンシが1サイクル分増加します。
  • 出力前にレジスタを追加—この関数の出力の前に内部レジスタを追加します。 このオプションを選択すると、関数のレイテンシが1サイクル分増加します。
オプション端子オプションのブロックダイアグラム端子の表示設定を指定します。
  • 演算オーバーフロー—この関数のブロックダイアグラムに演算オーバーフロー出力端子を表示するかどうかを指定します。 この端子は、この関数の実行中にオーバーフローが発生してかどうかを示します。
構成フィードバックこの関数の実行方法に関する情報を示します。 この情報は、ユーザが指定する構成オプションに基づいています。

ブロックダイアグラム入力

パラメータ説明
xこの関数の入力を指定します。 xは、符号なしでなければなりません。
入力有効次の処理データポイントを受信したかどうかを示します。 先行ノードからこのExpress VIにデータを渡すには、先行ノードの出力有効入力有効に配線します。

ハンドシェイク端子を表示するには、構成ダイアログボックスでシングルサイクルタイミングループの内側を選択します。
出力準備完了後続ノードがこのExpress VIから返される新しい値を受信できる状態かどうかを示します。 デフォルトはTRUEです。 後続ノードの入力準備完了を現在のノードの出力準備完了に配線するには、フィードバックノードを使用します。
メモ あるサイクルで出力準備完了がFALSEの場合、同クロックサイクルで出力有効はFALSEを返します。
出力準備完了を表示するには、構成ダイアログボックスでシングルサイクルタイミングループの内側を選択します。

ブロックダイアグラム出力

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

演算オーバーフロー端子は、演算オーバーフローチェックボックスをオンにした場合にのみ表示されます。 このチェックボックスは、構成ダイアログボックスのオプション端子セクションに表示されます。
出力有効このExpress VIが後続ノードで使用できる結果を計算済みの場合、TRUEを返します。 他のFPGA VIと関数ではハンドシェイク出力有効を使用します。

出力有効を表示するには、構成ダイアログボックスでシングルサイクルタイミングループの内側を選択します。
入力準備完了このExpress VIが新しい入力データを受信できる状態になるとTRUEを返します。 入力準備完了に先行ノードの出力準備完了を配線するには、フィードバックノードを使用します。
メモ あるサイクルで入力準備完了がFALSEを返した場合、次の1サイクルでこのExpress VIに書き込まれるデータはすべて破棄されます。 LabVIEWは、次のサイクルで入力有効がTrueである場合もこのデータを破棄します。
入力準備完了を表示するには、構成ダイアログボックスでシングルサイクルタイミングループの内側を選択します。

高スループット平方根の詳細

以下のすべてに該当する場合、ソースに適応チェックボックスをオンにしても、sqrt(x)出力端子でオーバーフローが発生します。

  • 丸め込みモード四捨五入-入力値を切り上げまたは四捨五入-最下位ビットを特定の場合。
  • x整数ワード長が偶数の場合。
  • 以下の関係がTRUEの場合:

    fwlは端子の小数部分ワード長、iwl は端子の整数ワード長です。

この場合にオーバーフローを防ぐには、以下の手順に従ってください。

  1. ソースに適応チェックボックスをオフにします。
  2. sqrt(x)端子のワード長を増やします。

これらの手順の終了後に、sqrt(x)端子の固定小数点構成は自動的に調整されません。 x端子の固定小数点構成を変更した場合に、オーバーフローを回避する必要がある場合は、ソースに適応チェックボックスをもう一度オンにします。 sqrt(x)端子の固定小数点構成が自動的に調整されます。 そして、上記の手順1~2を実行して、更新された固定小数点構成でオーバーフローが起こらないことを確認します。

サンプル

高スループット平方根関数の使用サンプルは、以下のVIで参照できます。

  • 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


この記事は役に立ちましたか。

役に立たなかった