USER_RAM_AVERAGE_ACTIVITY 制約は、デバイス上のイネーブル/ディスエーブルを切り替え可能なすべての UltraRAM およびブロック RAM の平均周波数を指定します。この値は、RAM の切り替えにより発生する電源ノイズをモデル化し、スタティック タイミング解析でグローバル クロックのジッターを計算するために Vivado ツールにより使用されます。ジッターは、スタティック タイミング解析でクロックのばらつきの要素としてレポートされます。USER_RAM_AVERAGE_ACTIVITY が指定されていない場合、ジッターの計算に Vivado ツールで計算された RAM_AVERAGE_ACTIVITY 値が使用され、タイミング クロージャが困難になる可能性があります。
Vivado ツールでは、使用される RAM デバイス リソース、アクティブ信号に接続されている RAM イネーブル ピン、および RAM の動作周波数に基づいて、フラット デザインの RAM アクティビティが見積もられます。Vivado ツールでは、DFX デザインに控えめなデフォルト値が使用されます。Vivado ツールで計算された RAM アクティビティ値は、最上位 [current_design]
オブジェクトの読み取り専用の RAM_AVERAGE_ACTIVITY プロパティに適用されます。DFX デザインに使用されるアクティビティ値を変更するには、
『Versal アダプティブ SoC クロッキング リソース アーキテクチャ マニュアル』 (AM003) のこのセクションを使用して、リコンフィギャラブル パーティションの RAM のアクティビティのバジェットを算出し、デザインの USER_RAM_AVERAGE_ACTIVITY を計算できます。
USER_RAM_AVERAGE_ACTIVITY 制約を指定するには、XDC 制約で最上位 [current_design]
オブジェクトに制約を適用します。
set_property USER_RAM_AVERAGE_ACTIVITY 160 [current_design]
次の表に、RAM の切り替えにより発生するクロックのばらつきがタイミング クロージャにどのように影響するかを示します。この例では、デザインに 300 MHz、400 MHz、および 500 MHz で動作するグローバル クロックがあります。RAM_AVERAGE_ACTIVITY は 320 で、USER_RAM_AVERAGE_ACTIVITY 制約は 160 と計算されます。制約を適用すると、各クロック ドメインのすべてのパスでクロックのばらつきが低減され、デザインのタイミング クロージャを達成しやすくなります。
クロック ドメイン | RAM_AVERAGE_ACTIVITY 320 でのクロックのばらつき | USER_RAM_AVERAGE_ACTIVITY 160 でのクロックのばらつき | クロックのばらつきの減少量 |
---|---|---|---|
300 MHz | 0.103 ns | 0.073 ns | -0.030 ns |
400 MHz | 0.089 ns | 0.066 ns | -0.023 ns |
500 MHz | 0.078 ns | 0.058 ns | -0.020 ns |