Sampa::Arbiter Class Reference
[Component]

n to 1 component, that serializes access to a single port. More...

#include <arbiter.h>

Inheritance diagram for Sampa::Arbiter:

Sampa::Module Sampa::InitiatorResponseInterface Sampa::ContainerObject Sampa::Object

List of all members.

Public Member Functions

 SAMPA_PERSISTENT (Module)
const char * get_name () const
const char * get_full_name () const
 name can be ([^. ]+.)*[^. ]+
Objectget_parent () const
 return object containing this one
Objectget_sibling () const
 return next object with same parent or NULL if none
Objectget_first_child () const
 return first child object or NULL if none
int is_debug () const
virtual bool recieve_response (const Response &)=0

Protected Types

enum  Severity { S_INFO, S_WARNING, S_ERROR, S_FATAL }

Protected Member Functions

void set_next_trigger (EventListenerSingle &)
ProcessBase__get_process_by_name (const std::string &name)
void debug (const char *,...)
void error (Severity severity, const char *,...)
virtual void complete_restart ()

Private Types

enum  SchedulingPolicy { PRIORITY, ROUND_ROBIN }

Private Member Functions

 Arbiter (const Name &name)
void bind_initiator (Initiator *initiator)
Targetget_target (const std::string &)
void bind_target (Target *target)
Initiatorget_initiator ()
void bind_clock (Clock *)


Detailed Description

n to 1 component, that serializes access to a single port.

Its latency is 1 cycle for request, and 0 for response and it is pipelined. It doesn't support neither srmd nor threads. And it has a configurable input fifo.

Binding:

inline_dotgraph_2.dot

Parameters:

Example:
   arbiter = { initiator = "arbiter_to_memory",
               requester = { "camera_to_arbiter", "display_to_arbiter" },
               camera_to_arbiter = { debug =  2 },
               outstanding_fifo  = { depth = 16 },
               policy            = "round robin",
             }

Definition at line 96 of file arbiter.h.


Member Enumeration Documentation

enum Sampa::Arbiter::SchedulingPolicy [private]

Enumerator:
PRIORITY 
ROUND_ROBIN 

Definition at line 122 of file arbiter.h.

enum Sampa::Object::Severity [protected, inherited]

Enumerator:
S_INFO 
S_WARNING 
S_ERROR 
S_FATAL 

Definition at line 48 of file object.h.


Constructor & Destructor Documentation

Sampa::Arbiter::Arbiter ( const Name name  )  [private]


Member Function Documentation

void Sampa::Arbiter::bind_initiator ( Initiator initiator  )  [private]

Target* Sampa::Arbiter::get_target ( const std::string &   )  [private]

void Sampa::Arbiter::bind_target ( Target target  )  [private]

Initiator* Sampa::Arbiter::get_initiator (  )  [inline, private]

Definition at line 119 of file arbiter.h.

void Sampa::Arbiter::bind_clock ( Clock  )  [private]

void Sampa::Module::set_next_trigger ( EventListenerSingle  )  [protected, inherited]

ProcessBase* Sampa::Module::__get_process_by_name ( const std::string &  name  )  [protected, inherited]

Sampa::Module::SAMPA_PERSISTENT ( Module   )  [inherited]

const char* Sampa::Object::get_name (  )  const [inherited]

returns the local name

const char* Sampa::Object::get_full_name (  )  const [inherited]

name can be ([^. ]+.)*[^. ]+

Object* Sampa::Object::get_parent (  )  const [inherited]

return object containing this one

Object* Sampa::Object::get_sibling (  )  const [inherited]

return next object with same parent or NULL if none

Object* Sampa::Object::get_first_child (  )  const [inherited]

return first child object or NULL if none

int Sampa::Object::is_debug (  )  const [inline, inherited]

Definition at line 44 of file object.h.

void Sampa::Object::debug ( const char *  ,
  ... 
) [protected, inherited]

void Sampa::Object::error ( Severity  severity,
const char *  ,
  ... 
) [protected, inherited]

virtual void Sampa::Object::complete_restart (  )  [protected, virtual, inherited]

is called to finalize restart. On restart, one shall update pointers, or reopen ressources (files, ...).

Most of pointers are restored by the thanks to the post++ library provided that the CLASSINFO() was correctly set.

However, some pointers are not relocated by the library. These are for example the method pointers used for the processes. Take a look at

See also:
Module::restart_process, to see how this is handled

Reimplemented in Sampa::Bridge, Sampa::Dma, Sampa::FixLatencySlave, Sampa::PeriodicTrafficGenerator, Sampa::TwoPortL1Cpu, and Sampa::StochasticCpu.

virtual bool Sampa::InitiatorResponseInterface::recieve_response ( const Response  )  [pure virtual, inherited]

Implemented in Sampa::Bridge, Sampa::PeriodicTrafficGenerator, Sampa::AdaptingInitiator< Adapted >, Sampa::AdaptingInitiator< Sampa::StochasticCpu >, Sampa::AdaptingInitiator< Sampa::Dma >, and Sampa::AdaptingInitiator< Sampa::TwoPortL1Cpu >.


The documentation for this class was generated from the following file:
Generated on Sat Feb 16 16:23:18 2008 for Sampa by  doxygen 1.5.3