説明
フロントエンドのコンパイルのデフォルト動作を設定します。
構文
config_compile [OPTIONS]
オプション
-
-double_acc_bits=N
- アキュムレータの精度に浮動小数点型 double を指定します。デフォルトは 269 です。
-
-enable_auto_rewind[=true|false]
- TRUE に設定すると、パイプライン処理されたループの代替 HLS インプリメンテーションが使用され、自動ループ巻き戻しがイネーブルになります。TRUE または FALSE を使用できます。デフォルトは TRUE です。
-
-float_acc_bits=M
- 浮動小数点型 float のアキュムレータの精度を指定します。デフォルトは 45 です。
-
-ignore_long_run_time[=true|false]
- 長時間実行 (long run time) の警告はレポートしません。TRUE または FALSE を使用できます。デフォルトは FALSE です。
-
-name_max_length <value>
- 関数名の最大長を指定します。名前の長さがしきい値より長い場合、名前の最後の部分は切り捨てられ、必要に応じて一意の名前になるように数字が追加されます。デフォルトは 256 です。
-
-no_signed_zeros[=true|false]
- 浮動小数点 0 の符号の有無を無視するので、コンパイラで浮動小数点の演算に対して積極的な最適化を実行できます。TRUE または FALSE を使用できます。デフォルトは FALSE です。重要: このオプションを使用すると、浮動小数点の計算結果が変わり、C/RTL 協調シミュレーションと一致しなくなります。テストベンチがこの差に耐えられるようにして、正確な値ではなく、その差異を確認するようにしてください。
-
-pipeline_flush_in_task <always | never | ii1>
- C/RTL 協調シミュレーションのデッドロックの確率を下げるために、
hls::tasks
のパイプラインをデフォルトでフラッシング (flp
) するように指定します。このオプションは、デフォルトのオプション (ii1
) で II=1 を達成したパイプラインに適用されます。ただし、always
を適用すると、hls::tasks
またはデータフローでパイプラインのフラッシュを常にイネーブルにするか、never
を使用して完全にディスエーブルにすることもできます。詳細は、パイプラインのフラッシュとパイプラインのタイプ を参照してください。 -
-pipeline_loops <threshold>
-
ループや入れ子のループを自動的にパイプライン処理する際の下限値を指定します。入れ子のない単一ループでは、ループのトリップカウントが指定されたしきい値より大きい場合、ループがパイプライン処理されます。デフォルトは 64 で、Vitis HLS はトリップカウントが 64 より大きいループを自動的にパイプライン処理します。たとえば、トリップカウントが 65 のループはデフォルトのしきい値でパイプライン処理されますが、トリップカウントが 64 のループはパイプライン処理されません。
入れ子のループの場合、ループは最も内部のループからペアで評価されます。内部ループのトリップカウントが指定されたしきい値を超える場合、パイプライン処理の対象となり、そのペアの親ループに解析が継続されます。親ループのトリップカウントが指定されたしきい値を超える場合、そのループもパイプライン処理の対象となり、(前にパイプライン処理の対象となった) 内部ループは親ループに展開されます。さらにループがある場合は、上方向に解析が続きます。
ただし、ほかの最適化が解析に影響し、必要なパイプラインの動作を妨げる可能性はあります。たとえば、
loop_flatten off
を使用すると、フラット化を防いで、ループ パイプラインがしやすくなる可能性があります。 -
-pipeline_style <stp | flp | frp>
- PIPELINE プラグマまたは指示子、または上記の
-pipeline_loops
しきい値によるループのパイプライン処理に対して Vitis HLS で使用されるパイプラインのデフォルト タイプを指定します。パイプライン スタイルの詳細は、パイプラインのフラッシュとパイプラインのタイプを参照してください。重要: これは示唆であり、ハード制約ではありません。ツールにより、パイプライン処理を有効にするためのデザイン条件が確認されます。ループが特定の形式に従っていない場合は、ツールにより必要に応じてデフォルト タイプ (stp) に戻されます。-
flp
- フラッシュ可能なパイプライン アーキテクチャ: 入力データが使用できない場合にフラッシュし、新しいデータを待機している状態を停止します。
-
frp
- フリーランニング、フラッシュ可能パイプライン。入力データが使用可能でなくても実行されます。パイプライン制御信号のファンアウトが削減されたためにタイミングを改善する必要がある場合や、パフォーマンスを改善してデッドロックを回避する必要のある場合などに使用します。ただし、このパイプライン形式により、データがなくてもパイプライン レジスタにクロックが供給されるので、消費電力が増加する可能性があります。
-
stp
- ストール パイプライン。入力データが使用可能になった場合にのみ実行され、それ以外の場合は停止します。これは、ストールによるパフォーマンスやデッドロックの問題がない場合など、フラッシュ可能なパイプラインが必要ない場合のデフォルト スタイルです。
-
-
-pragma_strict_mode[=true|false]
- プラグマを間違った箇所に配置したり、間違って使用した場合にエラー メッセージを表示するかどうか指定します。
-
-pre_tcl <arg>
-
csynth_design
コマンドを開始する前に実行する Tcl スクリプトを指定します。 -
-unsafe_math_optimizations[=true|false]
- 浮動小数点 0 の符号の有無を無視し、結合的な浮動小数点演算をイネーブルにして、コンパイラで浮動小数点の演算に対して積極的な最適化を実行できるようになります。TRUE または FALSE を使用できます。デフォルトは FALSE です。注記: このオプションを使用すると、浮動小数点の計算結果が変わり、C/RTL 協調シミュレーションと一致しなくなります。テストベンチがこの差に耐えられるようにして、正確な値ではなく、その差異を確認するようにしてください。
例
最内ループのトリップカウントが 30 よりも大きい場合は最内ループをパイプライン処理し、30 以下の場合は親ループをパイプライン処理します。
config_compile -pipeline_loops 30
浮動小数点 0 の符号の有無を無視します。
config_compile -no_signed_zeros
浮動小数点 0 の符号の有無を無視し、結合的な浮動小数点演算をイネーブルにします。
config_compile -unsafe_math_optimizations