Avalon® インターフェイスの仕様書

ID 683091
日付 12/21/2020
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

5.9. バックプレッシャーを使用するデータ転送

シンクは、readyを単一のクロックサイクルでアサートし、アクティブサイクルに対して準備ができていることを示します。 シンクでデータに対する準備が整っている場合、そのサイクルはReadyサイクルです。Readyサイクル時に、ソースはvalidをアサートし、シンクにデータを提供することが可能です。ソースに送信するデータがない場合、ソースはvalidをデアサートし、dataを任意の値に駆動することができます。

バックプレッシャーをサポートするインターフェイスでは、readyLatencyパラメーターを定義し、readyがアサートされてから有効なデータを駆動できるまでのサイクル数を示す必要があります。readyLatencyが0以外の場合に、readyがサイクル <n> でアサートされると、サイクル <n + readyLatency> がReadyサイクルになります。

readyLatency = 0の際に、データ転送は、readyおよびvalidが同じサイクルでアサートされている場合にのみ発生します。このモードでは、ソースは有効なデータを送信する前にシンクのready信号を受信しません。ソースに有効なデータがある場合は常に、ソースはデータを提供し、validをアサートします。ソースは、シンクがデータをキャプチャーしてreadyをアサートするまで待機します。ソースは任意でデータを変更することができます。シンクは、readyおよびvalidの両方がアサートされている際にのみソースからの入力データをキャプチャーします 。

readyLatency >= 1の場合、シンクは、readyサイクル自体の前にreadyをアサートします。ソースでは、validをアサートすることで適切なサイクル時に応答することができます。ソースでは、readyサイクルではないサイクル時に、validをアサートすることができません。

readyAllowanceは、readyがデアサートされた際にシンクでキャプチャーすることができる転送の数を定義します。readyAllowance = 0の場合、シンクでは、readyがデアサートされた後に転送を受け入れることはできません。readyAllowance = <n> においてn > 0の場合、シンクでは、最大 <n> 数の転送をreadyがデアサートされた後に受け入れることができます。