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

ID 683091
日付 12/21/2020
Public

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

ドキュメント目次

3.5.4.1. 可変レイテンシーでのパイプライン読み出し転送

アドレスおよび制御信号をキャプチャー後、Avalon-MMのパイプライン・スレーブは、データの生成に1サイクルもしくは複数サイクルを費やします。パイプライン・スレーブでは、複数の保留中の読み出し転送をいつでも保持することができます。

可変レイテンシーのパイプライン読み出し転送
  • readdatavalid信号が追加で必要です。この信号は、読み出しデータが有効なことを示します。
  • パイプライン化されていない読み出し転送と同じ信号セットを含みます。
可変レイテンシーのパイプライン読み出し転送では、readdatavalidを使用するスレーブ・ペリフェラルが、可変レイテンシーでパイプライン化されているとみなされます。読み出しコマンドに対応するreaddata信号とreaddatavalid信号は、最短で、読み出しコマンドがアサートされた後のサイクルでアサートすることができます。

スレーブは、読み出しコマンドの受け入れ順と同じ順序でreaddataを返す必要があります。可変レイテンシーのパイプライン・スレーブ・ポートでは、waitrequestを使用する必要があります。スレーブでは、waitrequestをアサートして転送をストールすることで、保留中の転送を許容数に維持することができます。スレーブがwaitrequestで新しいコマンドをストールしているか否かにかかわらず、スレーブでは、readdatavalidをアサートしてマスターにデータを転送することができます。

注: 保留される転送の最大数は、スレーブ・インターフェイスのプロパティーです。インターコネクト・ファブリックでは、この値を使用して、要求を発行しているマスターにreaddataをルーティングするロジックを構築します。保留されている読み出し数の追跡は、インターコネクト・ファブリックではなく、スレーブ・インターフェイスで行う必要があります。スレーブでは、waitrequestをアサートし、保留されている読み出しの数が最大数を超えないようにする必要があります。スレーブでwaitrequestAllowance > 0の場合、そのスレーブでは、waitrequestを十分に早い段階でアサートし、保留されている転送の合計 (waitrequestがアサートされている間に受け入れられた転送を含む) が指定されている保留中の転送の最大数を超えないようにする必要があります。
図 12. 可変レイテンシーでのパイプライン読み出し転送

次の図は、複数のスレーブ読み出し転送を表しています。スレーブは可変レイテンシーでパイプライン化されています。この図において、スレーブでは最大2つの保留中の転送を許容することができます。スレーブでは、waitrequestを使用してこの最大値を超えないようにします。

このタイミング図内の数字は、次の遷移を示しています。

  1. マスターがaddressおよびreadをアサートし、読み出し転送を開始します。
  2. スレーブはaddr1をキャプチャーします。
  3. スレーブはaddr2をキャプチャーします。
  4. スレーブはwaitrequestをアサートします。スレーブではすでに最大の2つの保留中の読み出しを受け入れているため、3番目の転送はストールします。
  5. スレーブは、addr1への応答であるdata1をアサートします。スレーブは、waitrequestをデアサートします。
  6. スレーブはaddr3をキャプチャーします。インターコネクトでdata1をキャプチャーします。
  7. スレーブはaddr4をキャプチャーします。インターコネクトでdata2をキャプチャーします。
  8. スレーブは、3番目の読み出し転送に対するreaddatavalidおよびreaddataを駆動します。
  9. スレーブはaddr5をキャプチャーします。インターコネクトでdata3をキャプチャーします。read信号がデアサートされます。waitrequestの値が該当しなくなります。
  10. インターコネクトでdata4をキャプチャーします。
  11. スレーブがdata5を駆動し、readdatavalidをアサートして、最後の保留中の読み出し転送のデータフェーズを完了します。

保留中の読み出し転送の処理中にスレーブで書き込み転送を処理できない場合は、スレーブでwaitrequestをアサートし、保留中の読み出し転送が完了するまで書き込み操作をストールする必要があります。Avalon-MMの仕様では、現在保留されている読み出し転送と同じアドレスへの書き込み転送をスレーブが受け入れた場合のreaddataの値を定義していません。