注記: この最適化手法は、
report_qor_suggestions
Tcl コマンドにより自動的に適用されます。LUT の組み合わせでは、入力を共有する LUT のペアを O5 と O6 の両方の出力を使用する 1 つの LUT に統合することにより、ロジックの使用率を削減します。ただし、LUT の組み合わせはスライスの入力/出力の接続を増加する傾向があるので、密集度が増加する可能性があります。密集エリアで LUT の組み合わせ率が高い場合は (> 40%)、密集を緩和するため、LUT の組み合わせを削除する合成ストラテジを使用してみてください。Flow_AlternateRoutability
合成ストラテジおよび -directive オプションの AlternateRoutability 指示子を使用すると、合成で追加の LUT の組み合わせは生成されなくなります。
注記: 合成に Synplify Pro を使用している場合は、[Device] タブの [Implementation Options] にある Enable Advanced LUT
Combining オプションを使用できます。このオプションはデフォルトでオンになっています。Synplify Pro プロジェクト ファイル (
*prj
) を変更する場合は、set_option -enable_prepacking 1
を指定します。次のコマンドを使用すると、デザインで LUT の組み合わせをイネーブルにするセルを選択できます。
select_objects [get_cells -hier -filter {SOFT_HLUTNM != "" || HLUTNM != ""}]
次の図に、LUT の組み合わせがある場合とない場合におけるデザインの水平方向の密集を示します。LUT の組み合わせを使用するセルは、紫色でハイライトされています。
図 1. LUT の組み合わせが水平方向の密集に与える影響
密集度の高いエリアとオーバーラップするモジュールで LUT の組み合わせをディスエーブルにするには、次の Tcl コマンドを使用します。
reset_property SOFT_HLUTNM [get_cells -hierarchical -filter {NAME =~ <module name> && SOFT_HLUTNM != ""}]