UVMF Responder

In reply to Shareef Jalloq:

Hi Shareef,

  The UVMF interface generator creates agents/BFM's that can be used as either an initiator or a responder.  Some protocols use master or slave to describe the ends of the protocol.  When specifying the signal direction in the YAML that is used to generate an interface package, the direction is always specified from the perspective of the initiator.  For example, if the signal is an input for the initiator then specify input for the signal direction.  If the signal is an output for the initiator then specify output for the signal direction.  
  When using the UVMF environment generator, agents within the environment are listed in the YAML used to generate the environment.  The agent is an initiator by default.  If the agent is a responder, the initiator_responder label should have the value "RESPONDER".  This configures the agent and its driver BFM to operate as a responder.  It's signal directions will be opposite of those specified in the YAML, which was specified from the perspective of the initiator.
  In the bench generated by UVMF, each agent configured as a responder will have a responder sequence started on its sequencer.  The responder sequence receives data from the initiator and determines how to respond to the current transfer.  There is a [UVMF One Byte At A Time video](https://verificationacademy.com/courses/UVM-Framework-One-Bite-at-a-Time) that describes agent data flow on Verification Academy.  It describes data flow for initiator as well as responder agents.

Best regards,
Bob