配線後にデザインのタイミングが少しの差で満たされていない場合、これは通常配置後のタイミング マージンが小さいためです。配置および物理最適化でタイミング要件を厳しくすると、配線のタイミング マージンを増加できる可能性があります。これを達成するには、次の理由から AMD では set_clock_uncertainty
制約を使用することをお勧めします。
- クロックの関連性は変更されない (クロック波形は同じ)。
- ツールで算出されるクロックのばらつき (ジッター、位相エラー) に追加される。
-
-from
および-to
オプションで指定されたクロック ドメインまたはクロック乗せ換えに特定。 - ヌル値を適用することにより、前に設定したクロックのばらつき制約を簡単にリセット可能。
どの場合でも、AMD では次のようにすることをお勧めします。
- セットアップ タイミングが満たされていないクロックまたはクロック乗せ換えのみの制約を厳しくします。
-
-setup
オプションを使用してセットアップ要件のみを厳しくします。注記: このオプションを指定しない場合、セットアップおよびホールド要件の両方が厳しくなります。 - 配線を実行する前に追加したばらつきをリセットします。
制約が厳しすぎる例
配線の前後で、デザインの clk1
クロック ドメインのパスでタイミングが -0.2 ns の差で満たされておらず、clk2
から clk3
へのパスでタイミングが -0.3 ns の差で満たされていないとします。
- ネットリスト デザインを読み込み、通常の制約を適用します。
- 一部のクロックにクロックのばらつきを追加して制約を厳しくします。
- 値は違反の量以上にします。
- 制約はセットアップ パスのみに適用します。
set_clock_uncertainty -from clk0 -to clk1 0.3 -setup set_clock_uncertainty -from clk2 -to clk3 0.4 -setup
- 配線まで実行します。配線前にタイミングが満たされるのが理想的です。
- 追加したばらつきを削除します。
set_clock_uncertainty -from clk0 -to clk1 0 -setup set_clock_uncertainty -from clk2 -to clk3 0 -setup
- 配線を実行します。
配線後にタイミングを解析し、制約を厳しくすることでタイミングが向上したかを確認します。配置後にタイミングが満たされており、配線後に少しの差でタイミングが満たされない場合は、ばらつきの量を増加してもう一度実行します。
警告: 制約を 0.5 ns 以上厳しくしないようにしてください。デザインの制約を厳しくしすぎると、インプリメンテーション ツールによる追加のロジック複製が原因で消費電力が増加するだけでなく、コンパイル時間も長くなる可能性があります。
ヒント: デザインの制約を厳しくする代わりに、各パス グループの相対的な優先度を変更する方法もあります。デフォルトでは、インプリメンテーション中に、各クロックおよびユーザー定義のパス グループが同じ優先度で個別に解析されます。
group_path -weight 2 -name
<ClockName>
オプションを使用すると、クロック ベースのパス グループに優先度を設定できます。ユーザー定義のパス グループの優先度は変更できません。