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

The reason why AHB Slave has HREADY input and output both

I saw 'Is HREADY an input or an output on slaves?'. 

it saids

"Any AHB ("AMBA 2 AHB" or "AMBA 3 AHB-lite" or "AMBA 5 AHB") slave must have HREADY as both an input and an output port (not bi-directional).

HREADY is required as an output from a slave so that the slave can extend the data phase of a transfer.

HREADY is also required as an input so that the slave can determine when the previously selected slave has completed its final transfer and the first data phase transfer for this slave is about to commence.

Each AHB Slave should have an HREADY output signal (conventionally named HREADYOUT) which is connected to the "Slave-to-Master Multiplexer". The output of this multiplexer is the global HREADY signal seen by the AHB master, which is also fed back to all slaves as their HREADY input.

For single AHB slave buses this "Slave-to-Master Multiplexer" is replaced by direct connections, so HREADYOUT from the slave drives the AHB master's HREADY input, and is also fed back to the slave's HREADY input."

I can't clearly understand about "HREADY is also required as an input so that the slave can determine when the previously selected slave has completed its final transfer and the first data phase transfer for this slave is about to commence"

Assumming 1 master(M0) and 3 slaves(S0,S1,S2), if M0 and S0 is doing transaction and M0 requested to S2, is it right S2 is determining another transaction is working by HREADY input? 

Is there other reason of HREADY input?

If my assumming is right, I think HTRANS is also common signal and other slaves can determining transaction by HTRANS signal.

I want exact reason of HREADY input in AHB Slave and if you give example I will appreciate about it

Thank you

Parents
  • The answer to your first question after all the quotes is "yes". The HREADY input to the S2 AHB subordinate tells it that the final data phase transfer to S0 is being performed, and that it must wait for HREADY to go high to indicate completion of the S0 data phase transfer, and then check if HSEL is now high to indicate when S2 should sample the address phase request inputs (HTRANS, HADDR, HWRITE, etc.) before moving to perform the new data phase transfer.

    The answer to your second question is no, the HREADY input only indicates when the current data phase transfer is completing and when a new address phase request should be sampled (if HSEL is sampled high the new request is for this subordinate to perform).

    For your assumption, this is incorrect. HTRANS is another common signal for all subordinates, and it indicates the next requested address phase transfer, but until you know the previous transfer data phase has completed, you don't know when to start the new data phase transfer currently being requested on HTRANS. For that you need to see the HREADY value being driven by the currently data phase active subordinate, and that is what the HREADY inputs on all subordinates gives you.

Reply
  • The answer to your first question after all the quotes is "yes". The HREADY input to the S2 AHB subordinate tells it that the final data phase transfer to S0 is being performed, and that it must wait for HREADY to go high to indicate completion of the S0 data phase transfer, and then check if HSEL is now high to indicate when S2 should sample the address phase request inputs (HTRANS, HADDR, HWRITE, etc.) before moving to perform the new data phase transfer.

    The answer to your second question is no, the HREADY input only indicates when the current data phase transfer is completing and when a new address phase request should be sampled (if HSEL is sampled high the new request is for this subordinate to perform).

    For your assumption, this is incorrect. HTRANS is another common signal for all subordinates, and it indicates the next requested address phase transfer, but until you know the previous transfer data phase has completed, you don't know when to start the new data phase transfer currently being requested on HTRANS. For that you need to see the HREADY value being driven by the currently data phase active subordinate, and that is what the HREADY inputs on all subordinates gives you.

Children