1. OFFSET IN 制約が正しいことを確認します。
2. タイミング レポートのデータシート レポート セクションを確認します。
データシート レポートにある対応した OFFSET IN 制約の「オフセット表」で次の情報を確認します。
- (セットアップ スラック + ホールド スラック) <0 の場合は、OFFSET IN 制約のセットアップおよびホールド要件の両方を満たすことはできません。
この場合は、クロックまたはデータのトポロジを変更する必要があります。
手順 3 を参照してください。
- (セットアップ スラック + ホールド スラック) >=0 の場合は、表の上にある「Ideal Clock Offset To Actual Clock」の値を使用し、データ有効ウィンドウの中央にクロック エッジを移動させて、OFFSET IN 制約を満たすことができます。
手順 4 を参照してください。
データシート レポートのオフセット表の例は次のとおりです。
3. 一般的に使用されるクロックおよびデータのトポロジには次のようなものがあります。
- 入力レジスタを IOB に配置。
- クロック挿入遅延が補正され、またクロック エッジがシフト位相されるように、クロック パスに PLL/DCM/MMCM を追加。
PLL はジッターを減らし、マージンを増やすので、DCM/MMCM よりも PLL を使用したほうがよい結果が得られることがあります。
- IDELAY タップを調整して、クロック エッジを移動 (遅延) できるよう、クロック パスに IDELAY (固定モード) を追加。
- IDELAY タップを調整して、クロック エッジに相対して、データ ウィンドウを移動 (遅延) できるよう、クロック パスに IDELAY (固定モード) を追加。
各データ ビットを個別に調整する必要がある場合にも便利です。
- クロックおよびデータ パスに IDELAY (固定モード) を追加。
IDELAY コンポーネントの場合、遅延の最小値と最大値の変動が大きいため、これがクロック パスのみ、またはデータ パスのみに追加されると、マージンが少なくなります。
IDELAY がクロック パスとデータ パスの両方に追加されている場合は、変動が少なくなり、マージンが薄くなるのを避けることができます。
- クロック パスに PLL/DCM/MMCM、データ パスに IDELAY (固定モード) を追加。
クロック トポロジまたはデータ トポロジを変更するたびに、位相シフトまたは IDELAY タップ値を調整する前に、インプリメンテーションを再実行し、データシート レポートをもう 1 度チェックする必要があります。
トポロジを変更すると、新しいインプリメンテーションからデータが新しく生成されます。
4. クロック エッジをデータ ウィンドウの中央に移動させるため、どれぐらい位相シフトまたは遅延が必要なのかを判断します。
これは、オフセット表の上にある「Ideal Clock Offset To Actual Clock」で確認できます。上記の例でいうと、この値は -0.500ns です。
- 値が正の場合は、クロック エッジを前に移動させるか、データを後ろに戻します。
値が負の場合は、クロック エッジを後ろに戻すか、データを前に移動させます。
- IDELAY はクロックまたはデータを前にのみ移動させることができます。
5. OFFSET IN 制約は上記のどのトポロジでも満たすことができませんが、インターフェイスの要件はデバイスの DC 特性データシートで指定されているベスト パフォーマンスの範囲内というケースもあります。
スタティック タイミング解析の場合は、固定モードでワーストケース解析を実行できます。
DC 特性データシートにあるベスト パフォーマンスは、ダイナミック位相アライメントの場合は、可変モードで IDELAY を使用することで達成することができます。
このシナリオの場合、インターフェイスで達成可能な実際のパフォーマンスは、OFFSET IN 制約の解析には反映されません、
ダイナミック位相アライメントの詳細は、デバイスの SelectIO リソース ユーザー ガイドを参照してください。
ダイナミック位相アライメントの使用については、次のアプリケーション ノートも参照してください。
- Spartan-6 XAPP1064
- Virtex-6 XAPP1071
- 7 series XAPP585