hi,hiky
the slave need to see its own hready signal, it doesn't have hready input signal but output only.
when slave changing, imagining that last slave is slave0,and its master is master0, the current slave is slave1, and its master is master1.During the last cycle of slave0, if its hready signal is active, then the grant1 is active, and master1 comes into addr phase. Because AMBA is pipeline architecture, the last data phase of slave0 is overlapped with the addr phase of slave1. During this phase, the slave to master MUX select slave1, the rdata signal of slave0 is connected to all masters. Now, master0 is at data phase, so it gets the data.But master1 is at addr phase, so it does noting with the rdata. If the hready signal of slave0 is active at this phase, master1 see this signal and comes into data phase, if not master1 stays at addr phase.At the same time ,if arbiter see hready active, it let the S2M MUX select slave1.
Slave needn't to focus on whether the last transfer has completed or not when grant changing. It just generates its own signal depend on control signal. The last transfer may be not completed, but slave1's output will not be selected by S2M Mux
so it need not much care.
Keep in mind that AMBA is made up of master, slave, and infrastructure(arbiter, decoder, M2S mux, and S2M mux), everyone does different jobs and works together.
In a word, the slave generates hready signal, not only the slave see its own signal, but also the master and arbiter do the some work.
Just for a reference.