インテルのみ表示可能 — GUID: nik1412467947555
Ixiasoft
3.5.5.1. 書き込みバースト
次の規則は、burstcount が 1 より大きい書き込みバーストを開始する際に適用されます。
- burstcount の <n> がバーストの開始時に提示されると、エージェントでは、<n> 数の連続する writedata のユニットを受け入れ、バーストを完了する必要があります。ホストとエージェントのペア間の調停は、バーストが完了するまでロックされたままになります。ロックを行うことにより、この書き込みバーストが完了するまで、他のホストがこのエージェントでトランザクションを実行できないようにしています。
- エージェントでは、write がアサートされた際にのみ writedata をキャプチャーする必要があります。バースト中にホストで write をデアサートし、 writedata が無効なことを示すことができます。write をデアサートしてもバーストは終了しません。write がデアサートされると、バーストが遅延します。また、他のホストはそのエージェントにアクセスすることができないため、転送効率が低下します。
- エージェントは、waitrequest をアサートして writedata、write、burstcount、byteenable が一定に維持されるように強制することで、転送を遅延します。
- byteenable 信号の機能は、バーストを行うエージェントと行わないエージェントで同じです。32 ビット・ホストによる 64 ビット・エージェントへのバースト書き込みがバイトアドレス 4 から始まる場合、エージェントが最初に認識する書き込み転送はアドレス 0 で、byteenable = 8'b11110000 です。byteenable は、バーストのさまざまなワードに対して変更することができます。
- byteenable 信号は、すべてアサートする必要はありません。部分的なワードを書き込むバーストホストでは、byteenable を使用し、書き込まれるデータを識別することができます。
- byteenable 信号がすべて 0 の書き込みは、単に有効なトランザクションとして Avalon® -MM エージェントに渡されます。
- constantBurstBehavior プロパティーは、バースト信号の動作を指定します。
- constantBurstBehavior がホストで True の場合、ホストは、address および burstcount をバースト全体で安定した状態に維持します。エージェントで True の場合、constantBurstBehavior は、address および burstcount がバースト全体で安定して維持されることをエージェントが想定していることを宣言します。
- constantBurstBehavior が False の場合、ホストは、バーストの最初のトランザクションでのみ address および burstcount を安定した状態で維持します。constantBurstBehavior が False の場合、エージェントは、address および burstcount をバーストの最初のトランザクションでのみサンプリングします。
図 14. constantBurstBehavior がホストとエージェントで False に設定されている書き込みバースト次の図は、エージェント書き込みバースト長が 4 の場合を示しています。この例では、エージェントで waitrequest を2回アサートし、バーストを遅延させています。
このタイミング図内の数字は、次の遷移を示しています。
- ホストは、address、burstcount、write をアサートし、writedata の最初のユニットを駆動します。
- エージェントは直ちに waitrequest をアサートし、転送に対する準備ができていないことを示します。
- waitrequest は Low です。エージェントは、addr1、burstcount、および writedata の最初のユニットをキャプチャーします。転送の後続のサイクルでは、address および burstcount は無視されます。
- エージェントは、clk の立ち上がりエッジで 2 番目のデータユニットをキャプチャーします。
- バーストは、write がデアサートされている間、一時停止します。
- エージェントは、clk の立ち上がりエッジで 3 番目のデータユニットをキャプチャーします。
- エージェントは waitrequest をアサートします。それに応じて、すべての出力はあと 1 クロックサイクルの間一定に保たれます。
- エージェントは、clk のこの立ち上がりエッジでデータの最後のユニットをキャプチャーします。エージェント書き込みバーストは終了します。
上の図で、beginbursttransfer 信号はバーストの最初のクロックサイクルでアサートされ、次のクロックサイクルでデアサートされています。エージェントが waitrequest をアサートしている場合でも、beginbursttransfer 信号は最初のクロックサイクルでのみアサートされます。
関連情報