Avalon Transaction Responses & Bridges
Hello
I have a question about the behavior of Avalon-MM Pipeline Bridges concerning the response signals.
I have the following setup:
- 2 (or more) Avalon-MM Masters
- Master cmd_ctrl (supports Avalon responses)
- Master B (no response support)
- global_mm_bridge (pipeline Bridge IP Core) with Support for Transaction Responses
- Multiple Slaves
- Slave global_reg (simple register read & write access)
- other Slaves do not have Avalon response signals (neither readdatavalid, nor writeresponsevalid)
My understanding of Avalon-MM bridges was always that they act as kind of "transparent bridge", i.e. they do not sent responses by themselves, but only transfer/route the responses of the addressed slave behind the bridge.
However, when I capture the transactions using Signaltap I noticed that the Bridge is creating a writerepsonse valid before, this is even processed by the addressed slave. In the signaltap capture, you can see the writereponse (highlighted in yellow) arriving at the initiating master (cmd_ctrl) before, the addressed slave (global_reg) even generates it. Hence I would assume this is generated by the mm_bridge directly after it accepts the write command.
Now my questions are:
- Is this the intended behavior of a pipeline bridge?
- If yes, is there any way to modify the settings of the bridge, to make sure the master (cmd_ctrl) only receives a writeresponsevalid after the respective slave has sent it?
- Background is: cmd_ctrl also needs to write/read from slave B, however this must not be done, before the slave global_reg has fully processed the write command, as it must prepare some glue logic.
- Is there any other option to realize a fully transparent Avalon-MM bridge?
best regards
Fabian