URAA を軽減する方法

Versal アダプティブ SoC クロッキング リソース アーキテクチャ マニュアル (AM003)

Document ID
AM003
Release Date
2023-05-16
Revision
v1.5 日本語

前のセクションでは、不必要に悪い前提条件を使用して URAA を計算しましたが、ここではより良い条件で見積もりを実行し、最終的な URAA 値を小さくする方法について説明します。次に、URAA とクロックばらつきの関係を表したグラフを参考までに示します。

図 1. URAA とクロックばらつきの関係

同時に有効/無効にされる RAM ブロックを解析して、より小さい URAA 値を見つける方法

同時に有効/無効にできる RAM の最大ブロックを定義できると、より小さい URAA 値を計算で求めることができます。この計算には、前のセクションで示した式を使用します。RAM 周波数の合計は、同時に有効/無効にする RAM の最大ブロックを使用して計算します。同時とは、両方が 45ns 以内に有効にされる場合と定義されます。このウィンドウ内に切り替えが発生しない RAM インスタンスは除外できます。この情報はシミュレーションから得ることができ、スタティック タイミング解析では得ることができません。

たとえば、デザインで使用する BRAM36 サイト数が 500 (平均周波数 200MHz) で、URAM サイト数が 300 (平均周波数 400MHz) の場合、RAA は次式で求めます。

RAM 周波数の合計 = 0.5 * BRAM36_freq + URAM_freq

説明:

BRAM36_freq = 500 BRAM36 サイト * 200MHz = 100,000MHz
URAM_freq = 300 URAM サイト * 400MHz = 120,000MHz
RAM 周波数の合計 = 0.5 * 100,000MHz + 120,000MHz = 170,000MHz
全 RAM サイト数 = 946.5 (表 1 参照)
URAA = 170,000MHz / 946.5 = 179.6MHz

実際のデザインでは、250 個の BRAM36 サイトと 100 個の URAM サイトしか同時に有効にはならないことがわかっているとします。この場合、RAA の計算値を次のように小さくできます。

RAM 周波数の合計 = 0.5 * BRAM36_freq + URAM_freq

説明:

BRAM36_freq = 250 BRAM36 サイト * 200MHz = 50,000MHz
URAM_freq = 100 URAM サイト * 400MHz = 40,000MHz
RAM 周波数の合計 = 0.5 * 50,000MHz + 40,000MHz = 65,000MHz
全 RAM サイト数 = 946.5 (表 1 参照)
URAA = 65,000MHz / 946.5 = 68.7MHz

上記の例で、250 個の BRAM36 サイトのグループと 100 個の URAM サイトのグループを一緒には有効にできない場合、それぞれを個別に計算して大きい方の URAA 値を使用する必要があります。

BRAM36 周波数の合計 = 0.5 * BRAM36_freq

説明:

BRAM36_freq = 250 BRAM36 サイト * 200MHz = 50,000MHz
RAM 周波数の合計 = 0.5 * 50,000MHz = 25,000MHz
全 RAM サイト数 = 946.5 (表 1 参照)
URAA(BRAM36) = 25,000MHz / 946.5 = 26.4MHz
URAM 周波数の合計 = URAM_freq

説明:

URAM_freq = 100 URAM サイト * 400MHz = 40,000MHz
RAM 周波数の合計 = 40,000MHz
全 RAM サイト数 = 946.5 (表 1 参照)
URAA(URAM) = 40,000MHz / 946.5 = 42.3MHz
URAA(URAM) の 42.3MHz の方が URAA(BRAM) の 26.4Mhz より大きいため、URAA = URAA(URAM) = 42.3MHz

クロックのばらつきをデフォルトから軽減した場合の例については、 『Versal アダプティブ SoC ハードウェア、IP、およびプラットフォーム開発設計手法ガイド』 (UG1387)「ジッター用の RAM アクティビティの指定」を参照してください。このセクションには、不必要に悪い条件で見積もったデフォルトの 480 に対し、USER_RAM_AVERAGE_ACTIVITY を 160 に設定することにより、クロックのばらつきがどれだけ減少したかが示してあります。

RAM を有効/無効にできるレートを制限して、より小さい URAA 値を見つける方法

RAM を有効/無効にする最大レートが 22MHz 以下であることを実証できる場合、URAA の値を 1.5 で割ることができます。

レートが 22MHz の場合、個々の RAM を有効/無効にする間隔は 45ns となります。たとえば、300MHz で URAA を計算し、22MHz の規則を適用した場合、URAA は 200MHz (300MHz/1.5) として入力できます。この係数は、このセクションで説明したすべての計算結果に対して適用されます。