GSGPSocket User's Guide

This GreenSocs Generic Protocol Socket is based on the GreenSocket and uses its extension mechanism for transaction data extensions and phase extensions.

How to use the API, see the GreenBus v2.0 White Paper and Implementation Proposal.

For GSGPSocket-specific information see book pages.

GSGPSocket was develeloped with SystemC 2.2.
For use with SystemC 2.1 make sure you link to a SystemC 2.1 version of GreenSocket and define SYSTEMC21V1 (e.g. by compiler switch -DSYSTEMC21V1).

active?fid=102

Multi Sockets

All GSGP Sockets (Master, Slave, Bidirectional and Blocking) can be used as multi sockets.

API multi socket use

Master API:

  • Derive user module from payload_event_queue_multi_output_if<master_atom>
  • Bind user module to init_port.out_multi_port(*this);
  • Implement notify(atom, unsigned int socket_index); in user module

Slave API:

  • Derive user module from tlm_multi_b_if<accessHandle>
  • Bind user module to target_port.bind_multi_b_if(*this);
  • Implement b_transact(accessHandle, unsigned int socket_index);
  • Derive from payload_event_queue_output_if<slave_atom>
  • Bind user module to target_port.out_multi_port(*this);
  • Implement notify(atom, unsigned int socket_index); in user module

Filename/TitleSize
class_hierarchy.png104.93 KB