インテルのみ表示可能 — 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 | 適応が必要です。シンクでデータをキャプチャーできるようになる前に、ソースが転送の送信を開始することができます。 |