自動スリープの波形

Versal ACAP メモリ リソース アーキテクチャ マニュアル (AM007)

Document ID
AM007
Release Date
2020-11-24
Revision
1.1 日本語

自動スリープ モードでは、UltraRAM がいつスリープに移行し、いつウェークアップするかを判断するためにルックアヘッド情報が必要です。バイト ライト イネーブル、読み出し/書き込み、データ、および下位アドレス入力は、イネーブルおよび上位アドレス入力よりも遅らせる必要があります。これらの入力は、AUTO_SLEEP_LATENCY の設定 (3 ~ 15) に等しいパイプライン ステージを使用して遅らせます。これには、ACAP ファブリックで FIFO またはリニア シフト レジスタを使用します。INJECT および CE 入力など、その他の信号を使用する場合もパイプラインによって遅延を揃える必要があります。詳細は、自動スリープのレイテンシ – AUTO_SLEEP_LATENCY を参照してください。

図 1. 自動スリープ モードを使用する場合の代表的なファブリック インプリメンテーション

図 2. 読み出し動作の場合の自動スリープ モード: 属性 AUTO_SLEEP_LATENCY=4、IREG_PRE_A/B=FALSE、OREG_A/B= TRUE、OREG_ECC_A/B= TRUE、USE_EXT_CE_A/B= FALSE の場合

EN_INT_DLY は入力 EN から AUTO_SLEEP_LATENCY のサイクル数だけ遅れており、その他の入力はパイプラインによる調整でこの信号に揃います。OREG_ECC=TRUE の場合、スリープ サイクル中の DOUT は直前の読み出しデータを保持します。

EN_INT_DLY がディアサートされた後、スリープ サイクルの前に OREG ステージによる 1 アイドル サイクルが挿入されます。OREG パイプラインが TRUE に設定されている場合は、UltraRAM がスリープに移行する前に読み出しデータが出力に伝搬するように追加の 1 サイクルが必要です。したがって、EN_INT_DLY がディアサートしてからスリープ サイクルが開始するまでには 2 サイクルの待ち時間があります。また、スリープ サイクルは AUTO_SLEEP_LATENCY (スリープに移行するのに必要なアイドル サイクルの数、すなわち EN から EN_INT_DLY までの遅延) の影響も受けます。

次の読み出しまたは書き込みサイクルまでに十分なウェークアップ時間を確保できるよう、自動スリープからのウェークアップは常に EN_INT_DLY が High に遷移する 1 サイクル前に発生します。ウェークアップは EN_INT_DLY_A/B (および間接的に EN) の立ち上がりによってのみ決まり、その他の入力は関係ありません。

図 3. 読み出し動作の場合の自動スリープ モード: 属性 AUTO_SLEEP_LATENCY=8、IREG_PRE_A/B=FALSE、OREG_A/B= TRUE、OREG_ECC_A/B= TRUE、USE_EXT_CE_A/B= FALSE の場合

EN_INT_DLY は入力 EN から AUTO_SLEEP_LATENCY のサイクル数だけ遅れており、その他の入力はパイプラインによる調整でこの信号に揃います。OREG_ECC=TRUE の場合、スリープ サイクル中の DOUT は直前の読み出しデータを保持します。

AUTO_SLEEP_LATENCY は、UltraRAM がスリープに移行するのに必要なアイドル サイクルの数を指定します。上図ではこの値は 8 に設定されています。これは、スリープ サイクルが現れるには EN_INT_DLY がディアサートしてから次に EN_INT_DLY がアサートするまでの間に少なくとも 8 サイクルが必要であることを意味します。この例では、いったんスリープに移行してウェークアップした後のサイクルでは十分なアイドル時間がないため UltraRAM はスリープに移行しません。

予測されるスリープ サイクル数の詳細は、自動スリープのレイテンシ – AUTO_SLEEP_LATENCY の属性の説明を参照してください。

図 4. 読み出し動作の場合の自動スリープ モード: 属性 AUTO_SLEEP_LATENCY=8、IREG_PRE_A/B=FALSE、OREG_A/B= FALSE、OREG_ECC_A/B= FALSE、USE_EXT_CE_A/B= FALSE の場合

EN_INT_DLY は入力 EN から AUTO_SLEEP_LATENCY のサイクル数だけ遅れており、その他の入力はパイプラインによる調整でこの信号に揃います。OREG_ECC=FALSE の場合、スリープ サイクルが存在しないと DOUT は直前の読み出しデータを保持しますが、スリープ サイクルの間は 0 に駆動されます。

図 5. 読み出し動作の場合の自動スリープ モード: 属性 AUTO_SLEEP_LATENCY=8、IREG_PRE_A/B=FALSE、OREG_A/B= TRUE、OREG_ECC_A/B= FALSE、USE_EXT_CE_A/B= FALSE の場合

EN_INT_DLY は入力 EN から AUTO_SLEEP_LATENCY のサイクル数だけ遅れており、その他の入力はパイプラインによる調整でこの信号に揃います。OREG_ECC=FALSE の場合、スリープ サイクルが存在しないと DOUT は直前の読み出しデータを保持しますが、スリープ サイクルの間は 0 に駆動されます。