AR# 44174

スタートアップ後にフリップフロップおよび SRL を正しく同期化させるためのデザイン アドバイザリ

説明


FPGA デバイスの CLB SRL および CLB/IOB D フリップフロップ (DFF) は常にすべてのデバイスで、スタートアップ シーケンスの一部として GWE (グローバル ライト イネーブル) 信号を使用してリリースされます。デザインで使用するユーザー クロックはコンフィギュレーション クロック (CCLK) に対して非同期になります。これで、同期エレメントはコンフィギュレーション後にステートを変更することが可能です。

GWE は SRL およびフリップフロップをコンフィギュレーション クロックと同期してリリースするため、デバイスでのスキューが常に大きくなっていました。この結果、同期デザインでは 2 タイプの動作が見られる可能性があります。ほとんどのデザインはこの影響を受けないものと考えられます。
  • GWE はユーザーのシステム クロックではなくコンフィギュレーション クロックに同期して同期エレメントをリリースするため、フリップフロップおよび SRL でタイミング違反が発生する可能性があります。
  • GWE が伝搬するということは、SRL とフリップフロップが若干ずれてリリースされるということになり、デザインの一部がほかよりも先にスタートアップすることになります。

デザインが次の条件のいずれかを満たす場合、下記に示すソリューションをデザインに適用してこの問題を回避してください。
  • デザインが初期化された順次エレメントの同期スタートアップに依存していて、フリップフロップおよび SRL が使用される場合 (初期値の推論された SRL を含む。デザインで SRL が使用されているかどうかはマップ レポートを確認してください。)
  • デザインが初期化された順次エレメントの同期スタートアップに依存していて、スタートアップ後に同期エレメントがリセットされない場合。SRL はリセットできません。

この動作は新しいものではなく、どの FPGA デバイス ファミリでも同じです。
SRL およびフリップフロップを正しく初期化するには、次のソリューションのいずれかを常に使用してください。

ソリューション


次の 2 つの方法を使用すると、ユーザーのシステム クロックと同期してスタートアップを終了できます。

1)1 つ目の方法では、SRL および D フリップフロップを駆動するクロックを制御します。
  • スタートアップ直後にクロックを停止します。
  • STARTUP プリミティブから EOS 信号がアサートされたら、クロックをユーザーのシステム クロックに同期させて再開できます。
  • BUFGCE、BUFR リセット、または BUFHCE を使用して制御するのが最適な方法です。
    • DCM にフィードバックを供給するクロックにこれらのエレメントは使用しないでください。フィードバック クロックを DCM に供給すると、DCM の動作の信頼性がなくなります。制御する必要のあるクロックは、デザインの SRL および DFF エレメントに入力されるものだけです。

2) もう 1 つの方法では、クロックを停止する代わりに各同期エレメントのCE ポートを使用します。
  • スタートアップ直後に CE ポートを有効にしないようにします。
  • STARTUP プリミティブから EOS 信号がアサートされたら、CE ピンをユーザーのシステム クロックに同期させて有効にできます。
  • このソリューションは自動推論された SRL ロジックには使用できません。自動推論された SRL を使用する場合は、ソリューション 1 を使用してください。
  • この方法を使用すると、タイミングおよび配線の問題が発生する可能性が高くなることに注意してください。この方法は、ソリューション 1 が使用できない場合のみに使用してください。

どちらの方法も適宜使用してください。

アンサー レコード リファレンス

マスター アンサー レコード

関連アンサー レコード

AR# 44174
日付 11/15/2012
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス 詳細 概略