I thought that a multiplexer decides which slave will communicate with the master.
So that's why destination of HRDATA is indicated as multiplexer.
However, on the document, destination of HWDATA is indicated as slave.
I think HWDATA should be sent to multiplexer first, because the slave may not selected yet.
Is it possible to directly send HWDATA to slave?
A MUX does select which slave's HRDATA, HREADYOUT and HRESP response signals are routed to the master, so that is why HRDATA's destination is shown as the MUX.
However all slaves see the address phase control signals (HTRANS, HADDR, HWRITE, HPROT, HSIZE, HMASTLOCK, HBURST) and the data phase HWDATA, so there is no MUX to route master signals to the active slave.
HSEL tells the slaves which slave needs to respond to the transfer they are ALL seeing (and a registered version of HSEL tells the MUX which data phase response to return to the master).
So yes, it is "possible to directly send HWDATA to slave".
View all questions in SoC Design forum