Intel Agilex® 7 エンベデッド・メモリー・ユーザーガイド

ID 683241
日付 4/10/2023
Public
ドキュメント目次

4.3.14. クロック・ドメイン・クロッシングでのグレイコード・カウンター転送

このセクションでは、クロック・ドメイン・クロッシング (CDC) でのグレイコード・カウンター・ビット転送間における大きなスキューの影響と、推奨されるソリューションについて説明します。グレイコード・カウンターは、書き込みドメインから読み出しドメインに、もしくはその逆の方向にデータを転送する際に発生する 1 ビットの遷移です。他のビットは安定した状態で維持されます。送信先ドメインで準安定範囲内でデータをラッチしている (セットアップ時間またはホールド時間に違反している) 場合は、1 ビットのみが不定になり、送信先ドメインではカウンター値を古いカウンターまたは新しいカウンターで読み取ります。この場合、カウンターシーケンスが破損していない限り、DCFIFO は引き続き機能します。

次のセクションでは、グレイコード・カウンター・ビット間の大きなスキューにより、カウンターシーケンスが破損する場合の例を示します。3 ビット幅のカウンター幅を取り出し、それを書き込みクロックドメインから読み出しクロックドメインに転送すると仮定します。すべてのカウンタービットの遅延は送信先のクロックに対して 0 であると仮定します。ただし、bit[0] には、送信元クロックの 1 クロック周期の遅延があります。つまり、カウンタービットのスキューは、送信先のレジスターに到着した際に、送信元クロックの 1 クロック周期になります。

正しいグレイコード・カウンター・シーケンスは次のとおりです。

000,
001,
011,
010,
110....

その後、データが読み出しドメイン、そして送信先のバスレジスターに転送されます。

bit[0] のスキューのため、送信先のバスレジスターでは次のシーケンスで受信します。

000,
000,
011,
011,
110....

スキューがあるため、2 ビットの遷移が発生します。このシーケンスは、タイミングが満たされている場合は許容されます。2 ビットの遷移が発生し、両方のビットでタイミングに違反している場合は、カウンターバスが以降または以前のカウンター値で整定するため、DCFIFO の破損につながります。

そのため、スキューを特定のスキュー内にし、シーケンスが破損しないようにする必要があります。

注: ユーザーでコンフィグレーション可能なタイミング制約を使用している場合は、タイミング・アナライザーの report_max_skew および report_net_delay レポートを使用し、タイミングを検証します。組み込まれているタイミング制約の場合は、skew_report.tcl を使用して、デザインの実際のスキューと必要なスキューを解析します。