インテル® Agilex™ エンベデッド・メモリー・ユーザーガイド

ID 683241
日付 4/25/2022
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を使用して、デザインの実際のスキューと必要なスキューを解析します。