最下位セル、階層セル、またはネット オブジェクトがネットリスト最適化中に削除されないようにするには、DONT_TOUCH
を設定します。DONT_TOUCH
は、一般的には次の目的で使用されます。
- ネットが最適化で削除されないようにする。
DONT_TOUCH
が設定されたネットは、合成またはインプリメンテーションで吸収されません。これは、ロジックのプローブや、デザインで予期しない最適化をデバッグする場合に便利です。複数の階層セグメントにまたがるネットを保持するには、そのネットの親 (get_property PARENT $net)、つまりネットのドライバーに一番近いネット セグメントにDONT_TOUCH
を設定します。 - 手動で複製したロジックが統合されないようにする。
広範囲に伝搬されるファンアウトの大きいドライバーなど、ロジックを手動で複製するのが最適な場合があります。元のドライバーと手動で複製したドライバーに
DONT_TOUCH
を追加すると、合成およびインプリメンテーションの最適化でこれらのセルが削除されることはありません。
注記:
reset_property
プロパティをリセットするには、DONT_TOUCH
を使用します。DONT_TOUCH
プロパティを 0 に設定してもプロパティはリセットされません。ヒント:
Vivado インプリメンテーションでは論理階層はフラット化されないので、インプリメンテーションで階層セルに
DONT_TOUCH
を使用しないでください。XDC 制約を適用する論理階層を保持するには、合成で KEEP_HIERARCHY
を使用してください。