the AMBA AHB bus master interface to start a burst with only 1 data transfer without the HSEL signal

Hi all.

A burst is a sequence of multiple data transfers (e.g., 4, 8, or 16 beats). The AMBA AHB specification requires bursts to be continuous. The HSEL (Slave Select) signal is generated by the decoder(AHB AMBA bus) based on the master’s address. It informs the slave that it is the target of the transfer. I saw AMBA AHB bus master IF started a burst with only 1 data transfer without the HSEL signal. The slave will ignore the transfer if HSEL is inactive. But I want to know this the normal operation of AMAB AHB bus and it can be problematic in AHB protocol.

Thanks in advance.

Parents
  • The AHB spec uses the term "burst" to refer to any sequence of transfers, including SINGLE transfers.

    But yes, if the burst is longer than 1 transfer, it must be to consecutive (is this what you mean when you say "continuous") addresses.

    HSEL is generated by an address decoder based on HADDR, selecting one subordinate on the bus to respond to each transfer.

    When you say you saw an AHB bus master interface start a burst without HSEL, was this an interface on an interconnect rather than on an actual bus manager component ?

    I'm guessing that this would have been on an interconnect output interface as bus managers do not generate HSEL signals (generation of HSEL signals is an application specific task, whereas AHB managers will usually be application independent), and so if HSEL is low on the interconnect output port this just means that the current address phase transfer was not routed to this output port, and so the connected subordinate component is not selected and will ignore this transfer.

    Seeing HTRANS indicate a NONSEQ transfer while HSEL is low is not a problem in the AHB protocol as this is what most subordinates on a shared bus will see. Only one subordinate will be selected, and it will sample the shared HTRANS and other control signals to determine what transfer is required. For all other subordinates they will not be selected for this particular transfer and so ignore it.

Reply
  • The AHB spec uses the term "burst" to refer to any sequence of transfers, including SINGLE transfers.

    But yes, if the burst is longer than 1 transfer, it must be to consecutive (is this what you mean when you say "continuous") addresses.

    HSEL is generated by an address decoder based on HADDR, selecting one subordinate on the bus to respond to each transfer.

    When you say you saw an AHB bus master interface start a burst without HSEL, was this an interface on an interconnect rather than on an actual bus manager component ?

    I'm guessing that this would have been on an interconnect output interface as bus managers do not generate HSEL signals (generation of HSEL signals is an application specific task, whereas AHB managers will usually be application independent), and so if HSEL is low on the interconnect output port this just means that the current address phase transfer was not routed to this output port, and so the connected subordinate component is not selected and will ignore this transfer.

    Seeing HTRANS indicate a NONSEQ transfer while HSEL is low is not a problem in the AHB protocol as this is what most subordinates on a shared bus will see. Only one subordinate will be selected, and it will sample the shared HTRANS and other control signals to determine what transfer is required. For all other subordinates they will not be selected for this particular transfer and so ignore it.

Children
No data