Forum Discussion

FabianL's avatar
FabianL
Icon for Occasional Contributor rankOccasional Contributor
59 minutes ago

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:

  1. Is this the intended behavior of a pipeline bridge? 
  2. 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.
  3. Is there any other option to realize a fully transparent Avalon-MM bridge?

 

best regards

Fabian

No RepliesBe the first to reply