インテルのみ表示可能 — GUID: pmk1520877080321
Ixiasoft
5.9.1. readyLatencyおよびreadyAllowanceを使用するデータ転送
readyLatencyおよびreadyAllowanceを使用してデータを転送する場合は、次の規則が適用されます 。
- readyLatencyが0の場合、readyAllowanceは0以上の値にすることができます。
- readyLatencyが0より大きい場合、readyAllowanceはreadyLatency以上の値にすることができます。
readyLatency = 0、readyAllowance = 0の場合、データは、readyおよびvalidの両方がアサートされている際にのみ転送されます。この場合、ソースは有効なデータを送信する前にシンクのready信号を受信しません。ソースは、可能な場合は常にデータを提供し、validをアサートします。ソースは、シンクがデータをキャプチャーしてreadyをアサートするまで待機します。ソースは任意でデータを変更することができます。シンクは、readyおよびvalidの両方がアサートされている際にのみ、ソースからの入力データをキャプチャーします 。
readyLatency = 0、readyAllowance = 0の場合、ソースはいつでもvalidをアサートすることができます。シンクは、ready = 1の場合にのみソースからのデータをキャプチャーします 。
次の図は、以下のイベントを表しています。
- サイクル1で、ソースがデータを提供し、validをアサートします。
- サイクル2で、シンクがreadyをアサートし、D0が転送されます。
- サイクル3で、D1が転送されます。
- サイクル4では、シンクがreadyをアサートしていますが、ソースは有効なデータを駆動していません。
- ソースはサイクル6でデータを提供し、validをアサートします。
- サイクル8では、シンクがreadyをアサートしているため、D2が転送されます。
- D3はサイクル9で転送され、D4はサイクル10で転送されます。
readyLatency = 0、readyAllowance = 1の場合、シンクでは、ready= 0の後にさらに1つのデータ転送をキャプチャーすることができます。
次の図は、以下のイベントを表しています。
- サイクル1では、ソースがデータを提供し、validをアサートします。シンクはreadyをアサートしています。D0が転送されます。
- D1はサイクル2で転送されます。
- サイクル3では、readyがデアサートされていますが、readyAllowance = 1の場合はさらに1つの転送が許可されるため、D2が転送されます。
- サイクル5では、validおよびreadyの両方がアサートされているため、D3が転送されます。
- サイクル6では、ソースがvalidをデアサートしているため、データは転送されません。
- サイクル7では、validがアサートされ、readyがデアサートされています。ただし、readyAllowance = 1の場合はさらに1つの転送が許可されるため、D4が転送されます。
readyLatency = 1、readyAllowance = 2の場合、シンクでは、readyがアサートされた1サイクル後にデータを転送することができます。また、readyのデアサート後は、さらに2サイクルの転送が許可されます。
次の図は、以下のイベントを表しています。
- サイクル0で、シンクはreadyをアサートします。
- サイクル1で、ソースがデータを提供し、validをアサートしています。転送はすぐに行われます。
- サイクル3では、シンクがreadyをデアサートしていますが、ソースは引き続きvalidをアサートし、有効なデータを駆動します。シンクでは、readyのデアサート後に2サイクルのデータをキャプチャーすることができます。
- サイクル6で、シンクはreadyをアサートします。
- サイクル7で、ソースがデータを提供し、validをアサートしています。このデータは受け入れられます。
- サイクル10では、シンクがreadyをデアサートしていますが、ソースはvalidをアサートし、有効なデータを駆動します。シンクでは、readyのデアサート後に2サイクルのデータをキャプチャーすることができます。
適応要件
次の表は、ソース・インターフェイスとシンク・インターフェイスで適応が必要かを示しています。
readyLatency | readyAllowance | 適応 |
---|---|---|
ソースのreadyLatency = シンクのreadyLatency | ソースのreadyAllowance = シンクのreadyAllowance | 適応は必要ありません。シンクはすべての転送をキャプチャーすることができます。 |
ソースのreadyAllowance > シンクのreadyAllowance | 適応が必要です。 readyのデアサート後に、ソースでは、シンクでキャプチャーすることができるよりも多くの転送を送信することができます。 | |
ソースのreadyAllowance < シンクのreadyAllowance | 適応は必要ありません。 readyのデアサート後に、シンクでは、ソースが送信することができるよりも多くの転送をキャプチャーすることができます。 | |
ソースのreadyLatency > シンクのreadyLatency | ソースのreadyAllowance = シンクのreadyAllowance | 適応は必要ありません。 readyがアサートされると、ソースは、シンクがデータをキャプチャーできるようになった後に送信を開始します。readyがデアサートされると、ソースでは、シンクでキャプチャーできる数の転送を送信することができます。 |
ソースのreadyAllowance > シンクのreadyAllowance | 適応が必要です。 readyのデアサート後に、ソースでは、シンクでキャプチャーすることができるよりも多くの転送を送信することができます。 | |
ソースのreadyAllowance < シンクのreadyAllowance | 適応は必要ありません。 readyのデアサート後に、ソースは、シンクでキャプチャーすることができるよりも少ない転送を送信します。 | |
ソースのreadyLatency < シンクのreadyLatency | ソースのreadyAllowance = シンクのreadyAllowance | 適応が必要です。シンクでデータをキャプチャーできるようになる前に、ソースが転送の送信を開始することができます。 |
ソースのreadyAllowance > シンクのreadyAllowance | 適応が必要です。シンクでデータをキャプチャーできるようになる前に、ソースが転送の送信を開始することができます。また、readyのデアサート後に、ソースでは、シンクでキャプチャーすることができるよりも多くの転送を送信することができます。 | |
ソースのreadyAllowance < シンクのreadyAllowance | 適応が必要です。シンクでデータをキャプチャーできるようになる前に、ソースが転送の送信を開始することができます。 |