インテルのみ表示可能 — GUID: nik1412467940376
Ixiasoft
3.5.1. 一般的な読み出しおよび書き込み転送
スレーブは通常、クロックの立ち上がりエッジ後にaddress、byteenable、readまたはwrite、およびwritedataを受信します。スレーブでは、waitrequestをクロックの立ち上がりエッジ前にアサートし、転送を保留します。スレーブがwaitrequestをアサートすると、転送は遅延されます。waitrequestがアサートされている間、アドレスと他の制御信号は一定に保たれます。転送は、スレーブ・インターフェイスでwaitrequestがデアサートされた後の最初のclkの立ち上がりエッジで完了します。
スレーブ・インターフェイスでストールを行える時間に制限はありません。したがって、スレーブ・インターフェイスがwaitrequestを無期限にアサートしないようにする必要があります。次の図は、waitrequestを使用するreadおよびwrite転送を表しています。
waitrequestは、readおよびwrite要求信号から切り離すことができます。waitrequestは、アイドルサイクル中にアサートすることが可能です。Avalon-MMマスターでは、waitrequestがアサートされている際にトランザクションを開始し、その信号がデアサートされるまで待機することが可能です。waitrequestをreadおよびwrite要求から切り離すことで、システムのタイミングが改善される場合があります。切り離すことにより、read、write、waitrequest信号を含む複合ループが排除されます。さらに切り離す必要がある場合は、waitrequestAllowanceプロパティーを使用します。waitrequestAllowanceは、 Quartus® Prime Pro v17.1 Stratix® 10 ES Editionsのリリースから利用することができます。
このタイミング図内の数字は、次の遷移を示しています。
- address、byteenable、readは、clkの立ち上がりエッジ後にアサートされます。スレーブがwaitrequestをアサートしているため、転送はストールします。
- waitrequestがサンプリングされています。waitrequestがアサートされているため、サイクルは待機状態になります。address、read、write、byteenableは一定に保たれます。
- clkの立ち上がりエッジ後に、スレーブはwaitrequestをデアサートします。スレーブは、readdataとresponseをアサートします。
- マスターでreaddata、response、およびデアサートされたwaitrequestをサンプリングしているため、転送は完了します。
- address、writedata、byteenable、write信号は、clkの立ち上がりエッジ後にアサートされます。スレーブがwaitrequestをアサートしているため、転送はストールします。
- clkの立ち上がりエッジ後に、スレーブはwaitrequestをデアサートします。
- スレーブで書き込みデータがキャプチャーされ、転送は終了します。