#include <flow.h>

Collaboration diagram for FSMSADF::SDF3Flow:

List of all members.

Public Types

enum  FlowState {
  FlowStart, FlowComputeStorageDist, FlowSelectStorageDist, FlowEstimateStorageDist,
  FlowEstimateBandwidthConstraint, FlowBindGraphtoTile, FlowEstimateConnectionDelay, FlowConstructTileSchedules,
  FlowCompleted, FlowFailed
}

Public Member Functions

 SDF3Flow (FlowType type)
 ~SDF3Flow ()
void constructFromXML (const CNodePtr sdf3Node)
void convertToXML (const CNodePtr sdf3Node)
void convertToHTML (const CString &dirname)
FlowType getFlowType () const
FlowState run ()
bool getStepMode () const
void setStepMode (bool flag)
MemoryDimAlgogetMemoryDimAlgo () const
void setMemoryDimAlgo (MemoryDimAlgo *a)
TileBindingAlgogetTileBindingAlgo () const
void setTileBindingAlgo (TileBindingAlgo *a)
uint getMaxNrBindingsTileBindingAlgo () const
void setMaxNrBindingsTileBindingAlgo (const uint n)
GraphgetApplicationGraph ()
PlatformGraphgetPlatformGraph ()
PlatformBindingsgetPlatformBindings ()

Private Member Functions

void setNextStateOfFlow (FlowState s)
FlowState getStateOfFlow ()
void outputAsXML (ostream &out)
void checkInputDesignFlow ()
void computeStorageDist ()
void selectStorageDist ()
void estimateStorageDist ()
void estimateBandwidthConstraint ()
void bindGraphtoTiles ()
void estimateConnectionDelay ()
void constructTileSchedules ()
void handleUserInteraction ()

Private Attributes

FlowType flowType
bool stepMode
GraphapplicationGraph
PlatformGraphplatformGraph
PlatformBindings platformBindings
MemoryDimAlgomemoryDimAlgo
TileBindingAlgotileBindingAlgo
FlowState stateOfFlow
uint maxNrBindingsTileBindingAlgo

Detailed Description

Graph mapping to MP-SoC flow


Member Enumeration Documentation

Enumerator:
FlowStart 
FlowComputeStorageDist 
FlowSelectStorageDist 
FlowEstimateStorageDist 
FlowEstimateBandwidthConstraint 
FlowBindGraphtoTile 
FlowEstimateConnectionDelay 
FlowConstructTileSchedules 
FlowCompleted 
FlowFailed 

Constructor & Destructor Documentation

SDF3Flow::SDF3Flow ( FlowType  type  ) 

SDF3Flow () Constructor.

SDF3Flow::~SDF3Flow (  ) 

~SDF3Flow () Destructor.

References applicationGraph, platformBindings, and platformGraph.


Member Function Documentation

void SDF3Flow::bindGraphtoTiles (  )  [private]

bindGraphtoTiles () Bind graph to the tile resources.

References FSMSADF::TileBindingAlgo::bindGraphtoTiles(), FlowEstimateConnectionDelay, FlowFailed, getMaxNrBindingsTileBindingAlgo(), logInfo(), setNextStateOfFlow(), and tileBindingAlgo.

Referenced by run().

Here is the call graph for this function:

void SDF3Flow::computeStorageDist (  )  [private]

computeStorageDist () Compute storage distributions for the application graph.

References FSMSADF::MemoryDimAlgo::computeStorageDist(), FlowFailed, FlowSelectStorageDist, logInfo(), memoryDimAlgo, and setNextStateOfFlow().

Referenced by run().

Here is the call graph for this function:

void SDF3Flow::constructTileSchedules (  )  [private]

constructTileSchedules () Construct a static-order and TDMA schedule for every tile to which actors are bound.

References FSMSADF::TileBindingAlgo::constructTileSchedules(), FlowCompleted, FlowSelectStorageDist, getMaxNrBindingsTileBindingAlgo(), logInfo(), setNextStateOfFlow(), and tileBindingAlgo.

Referenced by run().

Here is the call graph for this function:

void SDF3Flow::convertToHTML ( const CString dirname  ) 

convertToHTML () The function outputs the application graph, platform graph, mapping, and resource usage to a set of HTML files. These files are stored in the directory with the supplied dirname.

References FSMSADF::OutputHTML::outputAsHTML(), and FSMSADF::OutputHTML::setDirname().

Referenced by FSMSADF::mapApplicationGraphToArchitectureGraph().

Here is the call graph for this function:

void SDF3Flow::convertToXML ( const CNodePtr  sdf3Node  ) 

convertToXML () The function add the application graph, platform graph, mapping, and resource usage to the sdf3Node..

References applicationGraph, CAddAttribute(), CAddNode(), FSMSADF::PlatformBinding::convertToXML(), FSMSADF::PlatformGraph::convertToXML(), FSMSADF::Graph::convertToXML(), platformBindings, and platformGraph.

Referenced by FSMSADF::mapApplicationGraphToArchitectureGraph(), and outputAsXML().

Here is the call graph for this function:

void SDF3Flow::estimateBandwidthConstraint (  )  [private]

estimateBandwidthConstraint () Estimate bandwidth requirement of the channels when mapped to a connection.

References FSMSADF::TileBindingAlgo::estimateBandwidthConstraint(), FlowBindGraphtoTile, FlowFailed, logInfo(), setNextStateOfFlow(), and tileBindingAlgo.

Referenced by run().

Here is the call graph for this function:

void SDF3Flow::estimateConnectionDelay (  )  [private]

estimateConnectionDelay () Estimaet delay constraints of channels when bound to a connection.

References FSMSADF::TileBindingAlgo::estimateConnectionDelay(), FlowConstructTileSchedules, FlowFailed, logInfo(), setNextStateOfFlow(), and tileBindingAlgo.

Referenced by run().

Here is the call graph for this function:

void SDF3Flow::estimateStorageDist (  )  [private]

estimateStorageDist () Estimate storage distibution

References FSMSADF::MemoryDimAlgo::estimateStorageDist(), FlowEstimateBandwidthConstraint, FlowFailed, logInfo(), memoryDimAlgo, and setNextStateOfFlow().

Referenced by run().

Here is the call graph for this function:

FlowType FSMSADF::SDF3Flow::getFlowType (  )  const [inline]

References flowType.

uint FSMSADF::SDF3Flow::getMaxNrBindingsTileBindingAlgo (  )  const [inline]
MemoryDimAlgo* FSMSADF::SDF3Flow::getMemoryDimAlgo (  )  const [inline]

References memoryDimAlgo.

PlatformBindings& FSMSADF::SDF3Flow::getPlatformBindings (  )  [inline]
FlowState FSMSADF::SDF3Flow::getStateOfFlow (  )  [inline, private]

References stateOfFlow.

Referenced by run().

bool FSMSADF::SDF3Flow::getStepMode (  )  const [inline]

References stepMode.

Referenced by run().

TileBindingAlgo* FSMSADF::SDF3Flow::getTileBindingAlgo (  )  const [inline]

References tileBindingAlgo.

void SDF3Flow::handleUserInteraction (  )  [private]

handleUserInteraction () The function request the user for the next action to perform. Possible actions include continuing with the next step of the flow, completing the remaining flow or printing the current result of the flow to the terminal.

References c, outputAsXML(), and setStepMode().

Referenced by run().

Here is the call graph for this function:

void SDF3Flow::outputAsXML ( ostream &  out  )  [private]

outputAsXML () The function ouputs an sdf3 node to the supplied stream.

References CNewDoc(), CNewNode(), convertToXML(), and CSaveFile().

Referenced by handleUserInteraction().

Here is the call graph for this function:

SDF3Flow::FlowState SDF3Flow::run (  ) 

run () Execute the design flow. The function returns the last state reached by the design flow. Its value is equal to 'FlowCompleted' when all phases have been executed succesfully or else it is 'FlowFailed' which indicates that a step of the flow could not be completed succesfully.

References bindGraphtoTiles(), checkInputDesignFlow(), computeStorageDist(), constructTileSchedules(), estimateBandwidthConstraint(), estimateConnectionDelay(), estimateStorageDist(), FlowBindGraphtoTile, FlowCompleted, FlowComputeStorageDist, FlowConstructTileSchedules, FlowEstimateBandwidthConstraint, FlowEstimateConnectionDelay, FlowEstimateStorageDist, FlowFailed, FlowSelectStorageDist, FlowStart, getStateOfFlow(), getStepMode(), handleUserInteraction(), printTimer(), selectStorageDist(), startTimer(), and stopTimer().

Referenced by FSMSADF::mapApplicationGraphToArchitectureGraph().

Here is the call graph for this function:

void SDF3Flow::selectStorageDist (  )  [private]

selectStorageDist () Select storage distribution.

References FlowEstimateStorageDist, FlowFailed, logInfo(), memoryDimAlgo, FSMSADF::MemoryDimAlgo::selectStorageDist(), and setNextStateOfFlow().

Referenced by run().

Here is the call graph for this function:

void FSMSADF::SDF3Flow::setMaxNrBindingsTileBindingAlgo ( const uint  n  )  [inline]
void FSMSADF::SDF3Flow::setMemoryDimAlgo ( MemoryDimAlgo a  )  [inline]
void FSMSADF::SDF3Flow::setStepMode ( bool  flag  )  [inline]
void FSMSADF::SDF3Flow::setTileBindingAlgo ( TileBindingAlgo a  )  [inline]

Member Data Documentation

Referenced by getStepMode(), and setStepMode().


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