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

ID 683091
日付 9/26/2022
Public
ドキュメント目次

3.5.1. 一般的な読み出しおよび書き込み転送

このセクションでは、エージェントが制御する waitrequest を使用する読み出しおよび書き込み転送をサポートする一般的な Avalon® -MM インターフェイスについて説明します。エージェントでは、waitrequest 信号をアサートすることにより、必要なサイクル数の間インターコネクトをストールすることができます。エージェントで waitrequest を読み出し転送または書き込み転送のいずれかに使用する場合でも、エージェントでは、waitrequest を両方の転送に使用する必要があります。

エージェントは通常、クロックの立ち上がりエッジ後に addressbyteenableread または write、および writedata を受信します。エージェントでは、waitrequest を立ち上がりクロックエッジ前にアサートし、転送を保留します。エージェントが waitrequest をアサートすると、転送は遅延されます。waitrequest がアサートされている間、アドレスと他のコントロール信号は一定に保たれます。転送は、エージェント・インターフェイスで waitrequest がデアサートされた後の最初の clk の立ち上がりエッジで完了します。

エージェント・インターフェイスでストールを行える時間に制限はありません。そのため、エージェント・インターフェイスが waitrequest を無期限にアサートしないようにする必要があります。次の図は、waitrequest を使用する read および write 転送を表しています。

注:

waitrequest は、read および write 要求信号から切り離すことができます。waitrequest は、アイドルサイクル中にアサートすることが可能です。 Avalon® -MM ホストでは、waitrequest がアサートされている際にトランザクションを開始し、信号がデアサートされるまで待機することが可能です。waitrequestread および write 要求から切り離すことで、システムのタイミングが改善される場合があります。切り離すことにより、readwrite、および waitrequest 信号を含む複合ループが排除されます。さらに切り離す必要がある場合は、waitrequestAllowance プロパティーを使用します。waitrequestAllowance は、 Quartus® Prime Pro v17.1 Stratix® 10 ES エディション のリリースから利用することができます。

図 7. Waitrequest を使用する読み出しおよび書き込み転送

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

  1. addressbyteenableread は、clk の立ち上がりエッジ後にアサートされます。エージェントが waitrequest をアサートしているため、転送はストールします。
  2. waitrequest がサンプリングされています。waitrequest がアサートされているため、サイクルは待機状態になります。addressreadwritebyteenable は一定に保たれます。
  3. clk の立ち上がりエッジ後に、エージェントは waitrequest をデアサートします。エージェントは、readdataresponse をアサートします。
  4. ホストで readdataresponse およびデアサートされた waitrequest をサンプリングしているため、転送は完了します。
  5. addresswritedatabyteenablewrite 信号は、clk の立ち上がりエッジ後にアサートされます。エージェントが waitrequest をアサートしているため、転送はストールします。
  6. clk の立ち上がりエッジ後に、エージェントは waitrequest をデアサートします。
  7. エージェントで書き込みデータがキャプチャーされ、転送は終了します。