This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AHB slave

1.) In AHB, When early burst termination is occurred, HRESP should be OKAY and HREADY should be high?

2.) Is there any possibilities that if write transaction is in progress and if burst is not completed then HWRITE will be low after some clock. i.e. if HWRITE is high and size is 32 and burst is INCR8, ADDR is 0x30. Then it is possible that after 4 cycle HWRITE will be low means when address is 0x40, HWRITE will be low. and if possible than what is the slave respose and HREADY?

3.) It is necessary for the master to complete the transfer completely. Master is providing address and control at each clock cycle then it is possible that master give address that is not in the range of the burst? if so than how slave respond?

Parents
  • Hi Ajoo,

    1.) What caused the early burst termination ?

    If it was a non-OKAY response from the slave being accessed, HRESP won't be OKAY.

    If it was arbitration logic switching between masters in the middle of a burst, HRESP will be OKAY (unless that transfer coincidentally also had a non-OKAY response).

    But in both cases HREADY has to be high before the next transfer (in the current burst, or the next one) can start.

    2.) During bursts all master control signals (HWRITE, HSIZE, HBURST, HPROT, HMASTLOCK) MUST remain constant, so no, HWRITE could not go low after 4 transfers of an INCR8.

    Unless of course, going back to your first question, early burst termination has occured.

    As for the slave response in this early burst termination scenario, if it was the slave that cause the termination, HREADY/HRESP will be driven according to the non-OKAY response timings, and if it is a change in HGRANT, the slave will simply respond to whatever transfer is being requested of it. Note the the spec says slaves must be able to support early burst termination (see section 3.6.1 "Early burst termination").

    3.) If the master breaks the protocol in any way (for example signalling an incorrect address), the slave's response is undefined.

    You don't want to have to design every master and every slave to be able to safely respond to ANY possible illegal input sequence as that will massively increase the system gate count, will add latency as you then struggle to meet timings for the larger designs, and will give you a validation nightmare as you try to test every possible illegal scenario.

    So the fundamental requirement is that all masters and slaves MUST fully comply with the requirements of the protocol, responding correctly to ANY possible legals input sequence, and then you don't have to worry about "what if...".

    Hope that answers some of your questions.

    JD

Reply
  • Hi Ajoo,

    1.) What caused the early burst termination ?

    If it was a non-OKAY response from the slave being accessed, HRESP won't be OKAY.

    If it was arbitration logic switching between masters in the middle of a burst, HRESP will be OKAY (unless that transfer coincidentally also had a non-OKAY response).

    But in both cases HREADY has to be high before the next transfer (in the current burst, or the next one) can start.

    2.) During bursts all master control signals (HWRITE, HSIZE, HBURST, HPROT, HMASTLOCK) MUST remain constant, so no, HWRITE could not go low after 4 transfers of an INCR8.

    Unless of course, going back to your first question, early burst termination has occured.

    As for the slave response in this early burst termination scenario, if it was the slave that cause the termination, HREADY/HRESP will be driven according to the non-OKAY response timings, and if it is a change in HGRANT, the slave will simply respond to whatever transfer is being requested of it. Note the the spec says slaves must be able to support early burst termination (see section 3.6.1 "Early burst termination").

    3.) If the master breaks the protocol in any way (for example signalling an incorrect address), the slave's response is undefined.

    You don't want to have to design every master and every slave to be able to safely respond to ANY possible illegal input sequence as that will massively increase the system gate count, will add latency as you then struggle to meet timings for the larger designs, and will give you a validation nightmare as you try to test every possible illegal scenario.

    So the fundamental requirement is that all masters and slaves MUST fully comply with the requirements of the protocol, responding correctly to ANY possible legals input sequence, and then you don't have to worry about "what if...".

    Hope that answers some of your questions.

    JD

Children