#include <binding.h>

Inheritance diagram for Binding:
Collaboration diagram for Binding:

List of all members.

Public Member Functions

 Binding (SDFflowType type)
virtual ~Binding ()
TimedSDFgraphgetAppGraph ()
virtual void setAppGraph (TimedSDFgraph *g)=0
PlatformGraphgetArchGraph ()
void setArchGraph (PlatformGraph *g)
SDFflowType getFlowType () const
virtual bool bind ()=0
virtual bool bindSDFGtoTiles ()=0
virtual bool constructStaticOrderScheduleTiles ()=0
virtual bool allocateTDMAtimeSlices ()=0
virtual bool optimizeStorageSpaceAllocations ()=0
virtual void releaseResources ()=0

Protected Member Functions

double analyzeThroughputApplication ()
double analyzeThroughput (vector< double > &tileUtilization)
bool isThroughputConstraintSatisfied ()
void minimizeStaticOrderSchedules (PlatformGraph *archGraph)

Protected Attributes

SDFflowType flowType

Detailed Description

Binding () Base class for all binding algorithm.

Constructor & Destructor Documentation

Binding::Binding ( SDFflowType  type  )  [inline]

References appGraph, archGraph, and flowType.

virtual Binding::~Binding (  )  [inline, virtual]

Member Function Documentation

virtual bool Binding::allocateTDMAtimeSlices (  )  [pure virtual]
double Binding::analyzeThroughput ( vector< double > &  tileUtilization  )  [protected]

analyzeThroughput () The function returns the throughput of the application graph mapped onto the platform graph.

References SDFstateSpaceBindingAwareThroughputAnalysis::analyze(), appGraph, archGraph, and flowType.

Referenced by LoadBalanceBinding::allocateTDMAtimeSlices(), isThroughputConstraintSatisfied(), LoadBalanceBinding::minimizeTimeSlices(), and LoadBalanceBinding::optimizeTimeSlices().

Here is the call graph for this function:

virtual bool Binding::bind (  )  [pure virtual]

Implemented in LoadBalanceBinding.

virtual bool Binding::bindSDFGtoTiles (  )  [pure virtual]

Implemented in LoadBalanceBinding.

Referenced by SDF3Flow::bindSDFGtoTiles().

virtual bool Binding::constructStaticOrderScheduleTiles (  )  [pure virtual]
TimedSDFgraph* Binding::getAppGraph (  )  [inline]

References appGraph.

PlatformGraph* Binding::getArchGraph (  )  [inline]

References archGraph.

bool Binding::isThroughputConstraintSatisfied (  )  [protected]

isThroughputConstraintSatisfied () Check wether or not the throughput constraint is satisfied.

References analyzeThroughput(), appGraph, TimedSDFgraph::getThroughputConstraint(), and CFraction::value().

Referenced by LoadBalanceBinding::allocateTDMAtimeSlices(), and LoadBalanceBinding::bindingCheck().

Here is the call graph for this function:

void Binding::minimizeStaticOrderSchedules ( PlatformGraph archGraph  )  [protected]

minimizeStaticOrderSchedules () The function minimizes the length of all static-order schedules.

References ArchComponent::getName(), Tile::getProcessor(), Processor::getSchedule(), logMsg(), StaticOrderSchedule::minimize(), PlatformGraph::tilesBegin(), and PlatformGraph::tilesEnd().

Referenced by LoadBalanceBinding::constructStaticOrderScheduleTiles().

Here is the call graph for this function:

virtual bool Binding::optimizeStorageSpaceAllocations (  )  [pure virtual]
virtual void Binding::releaseResources (  )  [pure virtual]

Implemented in LoadBalanceBinding.

Referenced by SDF3Flow::bindSDFGtoTiles().

virtual void Binding::setAppGraph ( TimedSDFgraph g  )  [pure virtual]

Implemented in LoadBalanceBinding.

Referenced by SDF3Flow::checkInputDesignFlow().

void Binding::setArchGraph ( PlatformGraph g  )  [inline]

Member Data Documentation

The documentation for this class was generated from the following files: