OpenASIP
2.0
|
Private Member Functions | |
PLUGIN_DESCRIPTION ("Removes unconnected components from a configuration.") | |
RemoveUnconnectedComponents () | |
virtual bool | requiresStartingPointArchitecture () const |
virtual bool | producesArchitecture () const |
virtual bool | requiresHDB () const |
virtual bool | requiresSimulationData () const |
virtual bool | requiresApplication () const |
virtual std::vector< RowID > | explore (const RowID &configurationID, const unsigned int &) |
void | readParameters () |
void | removeUnconnectedFUs (TTAMachine::Machine &mach, std::vector< std::string > &removedFUNames) |
void | checkFUPorts (TTAMachine::Machine &mach) |
void | checkRFPorts (TTAMachine::Machine &mach, std::vector< std::string > &removedRFNames) |
void | checkBuses (TTAMachine::Machine &mach) |
void | removeSockets (TTAMachine::Machine &mach) |
Private Attributes | |
bool | allowRemoval_ |
parameter allow removal of unused ports and RFs without ports. More... | |
Static Private Attributes | |
static const std::string | allowRemovalPN_ |
Additional Inherited Members | |
Public Types inherited from DesignSpaceExplorerPlugin | |
typedef std::pair< std::string, ExplorerPluginParameter > | Parameter |
typedef std::map< std::string, ExplorerPluginParameter > | ParameterMap |
typedef std::map< std::string, ExplorerPluginParameter >::iterator | PMIt |
typedef std::map< std::string, ExplorerPluginParameter >::const_iterator | PMCIt |
Public Member Functions inherited from DesignSpaceExplorerPlugin | |
virtual std::string | description () const |
void | addParameter (TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="") |
template<typename T > | |
void | readCompulsoryParameter (const std::string paramName, T ¶m) const |
template<typename T > | |
void | readOptionalParameter (const std::string paramName, T ¶m) const |
template<typename RT > | |
RT | parameterValue (const std::string ¶mName) const |
virtual | ~DesignSpaceExplorerPlugin () |
virtual void | giveParameter (const std::string &name, const std::string &value) |
virtual std::string | name () const |
virtual void | setPluginName (const std::string &pluginName) |
virtual bool | hasParameter (const std::string ¶mName) const |
ParameterMap | parameters () const |
virtual bool | booleanValue (const std::string ¶meter) const |
Public Member Functions inherited from DesignSpaceExplorer | |
DesignSpaceExplorer () | |
virtual | ~DesignSpaceExplorer () |
virtual void | setDSDB (DSDBManager &dsdb) |
virtual bool | evaluate (const DSDBManager::MachineConfiguration &configuration, CostEstimates &results=dummyEstimate_, bool estimate=false) |
virtual DSDBManager & | db () |
std::vector< DesignSpaceExplorerPlugin * > | getPlugins () |
RowID | createImplementationAndStore (const DSDBManager::MachineConfiguration &conf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") |
bool | createImplementation (const DSDBManager::MachineConfiguration &conf, DSDBManager::MachineConfiguration &newConf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") |
IDF::MachineImplementation * | selectComponents (const TTAMachine::Machine &mach, const double &frequency=0.0, const double &maxArea=0.0, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") const |
void | createEstimateData (const TTAMachine::Machine &mach, const IDF::MachineImplementation &idf, CostEstimator::AreaInGates &area, CostEstimator::DelayInNanoSeconds &longestPathDelay) |
RowID | addConfToDSDB (const DSDBManager::MachineConfiguration &conf) |
Static Public Member Functions inherited from DesignSpaceExplorer | |
static DesignSpaceExplorerPlugin * | loadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL) |
Protected Member Functions inherited from DesignSpaceExplorerPlugin | |
DesignSpaceExplorerPlugin () | |
void | checkParameters () const |
Protected Member Functions inherited from DesignSpaceExplorer | |
TTAProgram::Program * | schedule (const std::string applicationFile, TTAMachine::Machine &machine, TCEString paramOptions="-O3") |
const ExecutionTrace * | simulate (const TTAProgram::Program &program, const TTAMachine::Machine &machine, const TestApplication &testApplication, const ClockCycleCount &maxCycles, ClockCycleCount &runnedCycles, const bool tracing, const bool useCompiledSimulation=false, std::vector< ClockCycleCount > *executionCounts=NULL) |
Protected Attributes inherited from DesignSpaceExplorerPlugin | |
std::string | pluginName_ |
the name of the explorer plugin More... | |
ParameterMap | parameters_ |
Parameters for the plugin. More... | |
Explorer plugin that removes unconnected ports from units or creates connections to these ports in case of a FUs. Also removes unconnected buses. If all ports from a unit are removed, removes also the unit.
Definition at line 57 of file RemoveUnconnectedComponents.cc.
|
inlineprivate |
Definition at line 60 of file RemoveUnconnectedComponents.cc.
References BOOL, and Conversion::toString().
|
inlineprivate |
Checks buses and removes the ones that have no connections to sockets.
mach | Machine which buses are checked. |
Definition at line 300 of file RemoveUnconnectedComponents.cc.
References TTAMachine::Machine::busNavigator(), TTAMachine::Machine::Navigator< ComponentType >::count(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Machine::removeBus(), and TTAMachine::Machine::socketNavigator().
|
inlineprivate |
Checks that every FU port has at least one connection.
Adds an new connection to some available socket if port has no connections
mach | Machine which FU ports are checked. |
Definition at line 221 of file RemoveUnconnectedComponents.cc.
References TTAMachine::Port::attachSocket(), MachineTester::canConnect(), TTAMachine::Machine::Navigator< ComponentType >::count(), FU, TTAMachine::Machine::functionUnitNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Machine::machineTester(), TTAMachine::Port::socketCount(), and TTAMachine::Machine::socketNavigator().
|
inlineprivate |
Checks that every RF port has connections.
Removes every port of a RF that has no connections to sockets if allowRemoval_ is true else makes connection to available socket. If RF ends up having no ports, removes the RF from machine.
mach | Machine which RF ports are checked. |
removedRFNames | Names of RF units that were removed from machine content only added not read in this function. |
Definition at line 257 of file RemoveUnconnectedComponents.cc.
References TTAMachine::Port::attachSocket(), MachineTester::canConnect(), TTAMachine::Machine::Navigator< ComponentType >::count(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Machine::machineTester(), TTAMachine::Machine::registerFileNavigator(), TTAMachine::Machine::removeRegisterFile(), RF, TTAMachine::Port::socketCount(), and TTAMachine::Machine::socketNavigator().
|
inlineprivatevirtual |
Removes unconnected components from a configuration.
Explorer plugin that removes unconnected ports from units or creates connections to these ports in case of a FUs. Also removes unconnected buses. If all ports from a unit are removed, removes also the unit. Removes also unconnected FUs. First unconnected sockets are removed.
Supported parameters:
configurationID | Configuration to optimize. |
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 92 of file RemoveUnconnectedComponents.cc.
References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), DSDBManager::addImplementation(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, DSDBManager::configuration(), Exception::errorMessage(), DSDBManager::MachineConfiguration::hasImplementation, DSDBManager::implementation(), DSDBManager::MachineConfiguration::implementationID, IDF::MachineImplementation::removeFUImplementation(), IDF::MachineImplementation::removeRFImplementation(), and verboseLog.
|
private |
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 73 of file RemoveUnconnectedComponents.cc.
|
inlineprivate |
Reads the parameters given to the plugin.
Definition at line 175 of file RemoveUnconnectedComponents.cc.
|
inlineprivate |
Removes sockets that are not needed in the machine.
mach | Machine which extra sockets are removed. |
Definition at line 323 of file RemoveUnconnectedComponents.cc.
References MachineResourceModifier::removeNotConnectedSockets().
|
inlineprivate |
Removes totally unconnected FUs.
mach | Machine which unconnected FUs are removed. |
removedFUNames | Names of FU units that were removed from machine |
Definition at line 186 of file RemoveUnconnectedComponents.cc.
References TTAMachine::Machine::Navigator< ComponentType >::count(), FU, TTAMachine::Machine::functionUnitNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Machine::removeFunctionUnit(), TTAMachine::Port::socketCount(), and TTAMachine::Machine::socketNavigator().
|
inlineprivatevirtual |
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 76 of file RemoveUnconnectedComponents.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 74 of file RemoveUnconnectedComponents.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 75 of file RemoveUnconnectedComponents.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 72 of file RemoveUnconnectedComponents.cc.
|
private |
parameter allow removal of unused ports and RFs without ports.
Definition at line 169 of file RemoveUnconnectedComponents.cc.
|
staticprivate |
Definition at line 167 of file RemoveUnconnectedComponents.cc.