Embedded Memory Generator は en[a|b]
入力を内部でパイプライン化し、メモリやレジスタを各パイプライン段で駆動します。en[a|b]
を High に接続しないパイプライン化されたデザインの場合、en[a|b]
がすべてのリソースに同時に適用されるためメモリはパイプラインの深さに相当する期間だけ有効になり、Embedded Memory Generator (EMG) IP では消費電力が削減されます。
SLEEP ポートおよび WAKEUP_TIME
パラメーターを組み合わせて使用することで、基本のメモリ プリミティブにさまざまなスリープ モードが実装されます。WAKEUP_TIME
が 0 の場合、SLEEP 入力は使用されません。WAKEUP_TIME
が 2 の場合は 2 クロック サイクルのウェークアップ期間を意味するため、BRAM
SLEEP
ポートまたは URAM SLEEP
ポートのいずれかが動作します。
データの破損や不確定性を回避するために、関連する信号の要件に準拠する必要があります。
CLOCKING_MODE
が 0 の場合、SLEEP 入力ポートは、パイプライン段に合わせて同期エレメントに適用され、clka
に同期するようにパイプライン化されます。SLEEP がアサートされた後、WAKEUP_TIME
clka
のクロック サイクル間有効な読み出し出力を継続して受信します。SLEEP が同期で削除された後は、対応する dout[a|b] の値が再び有効になるまで READ_LATENCY_[A|B] + WAKEUP_TIME
clka
のクロック サイクル間待機する必要があります。
CLOCKING_MODE
が 1 の場合、SLEEP 入力ポートはパイプライン化されないため、すべてのエレメントに非同期で同時に適用されます。このため、無効な読み出し出力の受信が即座に開始され、SLEEP が非同期で削除された後、dout[a|b]
の値が再び有効になるまで READ_LATENCY_[A|B] + WAKEUP_TIME clk[a|b]
のクロック サイクル間待機する必要があります。