OpenASIP 2.2
|
Private Member Functions | |
PLUGIN_DESCRIPTION ("Creates immediates for configuration.") | |
ImmediateGenerator () | |
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 &startPointConfigurationID, const unsigned int &) |
void | readParameters () |
void | printImmediateTemplates (TTAMachine::Machine &mach) |
void | removeInsTemplate (TTAMachine::Machine &mach, std::string name) |
void | addInsTemplate (TTAMachine::Machine &mach, std::string name) |
void | addSplitInsTemplate (TTAMachine::Machine &mach, std::string name) |
Private Attributes | |
bool | createNewConfig_ |
Boolean value used to decide if new config is created. | |
bool | print_ |
print values | |
std::string | removeInsTemplateName_ |
instruction template name to be removed. | |
std::string | addInsTemplateName_ |
instruction template name to be added. | |
std::string | modInsTemplateName_ |
instruction template name to be modified. | |
unsigned int | width_ |
width of the target template | |
unsigned int | widthPart_ |
minimum width on long instruction slot when splitting the template. | |
bool | split_ |
make evenly bus/slot wise splitted template. | |
std::string | dstImmUnitName_ |
destination immediate unit name | |
Static Private Attributes | |
static const std::string | printPN_ |
static const std::string | removeInsTemplateNamePN_ |
static const std::string | addInsTemplateNamePN_ |
static const std::string | modInsTemplateNamePN_ |
static const std::string | widthPN_ |
static const std::string | widthPartPN_ |
static const std::string | splitPN_ |
static const std::string | dstImmUnitNamePN_ |
Additional Inherited Members | |
![]() | |
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 |
![]() | |
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 |
![]() | |
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 DesignSpaceExplorerPlugin * | loadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL) |
![]() | |
DesignSpaceExplorerPlugin () | |
void | checkParameters () const |
![]() | |
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) |
![]() | |
std::string | pluginName_ |
the name of the explorer plugin | |
ParameterMap | parameters_ |
Parameters for the plugin. | |
Explorer plugin that creates or modifies machine instruction template by adding/removing immediates.
Definition at line 69 of file ImmediateGenerator.cc.
|
inlineprivate |
Definition at line 72 of file ImmediateGenerator.cc.
References addInsTemplateName_, addInsTemplateNamePN_, DesignSpaceExplorerPlugin::addParameter(), BOOL, dstImmUnitName_, dstImmUnitNamePN_, modInsTemplateName_, modInsTemplateNamePN_, print_, printPN_, removeInsTemplateName_, removeInsTemplateNamePN_, split_, splitPN_, STRING, Conversion::toString(), UINT, width_, widthPart_, widthPartPN_, and widthPN_.
|
inlineprivate |
Adds instruction template with a name given as parameter.
mach | Target machine. |
name | Instruction template name to be added. |
Definition at line 320 of file ImmediateGenerator.cc.
References createNewConfig_, Exception::errorMessage(), DesignSpaceExplorerPlugin::name(), and verboseLog.
Referenced by explore().
|
inlineprivate |
Adds instruction template with a name given as parameter and add bus wise splitted slots to the template.
mach | Target machine. |
name | Instruction template name to be added. |
Definition at line 350 of file ImmediateGenerator.cc.
References TTAMachine::InstructionTemplate::addSlot(), TTAMachine::Machine::busNavigator(), TTAMachine::Machine::Navigator< ComponentType >::count(), createNewConfig_, dstImmUnitName_, Exception::errorMessage(), TTAMachine::Machine::immediateUnitNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), DesignSpaceExplorerPlugin::name(), TTAMachine::Component::name(), verboseLog, TTAMachine::Bus::width(), width_, and widthPart_.
Referenced by explore().
|
inlineprivatevirtual |
Explorer plugin that creates or modifies machine instruction templates. TODO: add some modifying functionality.
Supported parameters:
startPointConfigurationID | Configuration to optimize. |
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 120 of file ImmediateGenerator.cc.
References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), DSDBManager::addImplementation(), addInsTemplate(), addInsTemplateName_, addSplitInsTemplate(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, DSDBManager::configuration(), createNewConfig_, DesignSpaceExplorer::db(), Exception::errorMessage(), DSDBManager::MachineConfiguration::hasImplementation, DSDBManager::implementation(), DSDBManager::MachineConfiguration::implementationID, CostEstimator::Estimator::longestPath(), print_, printImmediateTemplates(), readParameters(), removeInsTemplate(), removeInsTemplateName_, split_, CostEstimator::Estimator::totalArea(), and verboseLog.
|
private |
|
inlineprivate |
Print info about instruction templates of a given machine.
mach | Machine which instruction templates are to be printed. |
Definition at line 252 of file ImmediateGenerator.cc.
References TTAMachine::Machine::Navigator< ComponentType >::count(), TTAMachine::TemplateSlot::destination(), TTAMachine::Machine::instructionTemplateNavigator(), TTAMachine::InstructionTemplate::isEmpty(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Component::name(), TTAMachine::InstructionTemplate::numberOfDestinations(), TTAMachine::TemplateSlot::slot(), TTAMachine::InstructionTemplate::slot(), TTAMachine::InstructionTemplate::slotCount(), TTAMachine::InstructionTemplate::supportedWidth(), verboseLog, and TTAMachine::TemplateSlot::width().
Referenced by explore().
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 98 of file ImmediateGenerator.cc.
|
inlineprivate |
Reads the parameters given to the plugin.
Definition at line 235 of file ImmediateGenerator.cc.
References addInsTemplateName_, addInsTemplateNamePN_, dstImmUnitName_, dstImmUnitNamePN_, modInsTemplateName_, modInsTemplateNamePN_, print_, printPN_, DesignSpaceExplorerPlugin::readCompulsoryParameter(), removeInsTemplateName_, removeInsTemplateNamePN_, split_, splitPN_, width_, widthPart_, widthPartPN_, and widthPN_.
Referenced by explore().
|
inlineprivate |
Removes instruction template with a name given as parameter.
mach | Target machine. |
name | Instruction template name to be removed. |
Definition at line 292 of file ImmediateGenerator.cc.
References TTAMachine::Machine::Navigator< ComponentType >::count(), createNewConfig_, TTAMachine::Machine::deleteInstructionTemplate(), TTAMachine::Machine::instructionTemplateNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), DesignSpaceExplorerPlugin::name(), TTAMachine::Component::name(), and verboseLog.
Referenced by explore().
|
inlineprivatevirtual |
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 101 of file ImmediateGenerator.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 99 of file ImmediateGenerator.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 100 of file ImmediateGenerator.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 97 of file ImmediateGenerator.cc.
|
private |
instruction template name to be added.
Definition at line 219 of file ImmediateGenerator.cc.
Referenced by explore(), ImmediateGenerator(), and readParameters().
|
staticprivate |
Definition at line 206 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().
|
private |
Boolean value used to decide if new config is created.
Definition at line 201 of file ImmediateGenerator.cc.
Referenced by addInsTemplate(), addSplitInsTemplate(), explore(), and removeInsTemplate().
|
private |
destination immediate unit name
Definition at line 229 of file ImmediateGenerator.cc.
Referenced by addSplitInsTemplate(), ImmediateGenerator(), and readParameters().
|
staticprivate |
Definition at line 211 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().
|
private |
instruction template name to be modified.
Definition at line 221 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().
|
staticprivate |
Definition at line 207 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().
|
private |
print values
Definition at line 215 of file ImmediateGenerator.cc.
Referenced by explore(), ImmediateGenerator(), and readParameters().
|
staticprivate |
Definition at line 204 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().
|
private |
instruction template name to be removed.
Definition at line 217 of file ImmediateGenerator.cc.
Referenced by explore(), ImmediateGenerator(), and readParameters().
|
staticprivate |
Definition at line 205 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().
|
private |
make evenly bus/slot wise splitted template.
Definition at line 227 of file ImmediateGenerator.cc.
Referenced by explore(), ImmediateGenerator(), and readParameters().
|
staticprivate |
Definition at line 210 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().
|
private |
width of the target template
Definition at line 223 of file ImmediateGenerator.cc.
Referenced by addSplitInsTemplate(), ImmediateGenerator(), and readParameters().
|
private |
minimum width on long instruction slot when splitting the template.
Definition at line 225 of file ImmediateGenerator.cc.
Referenced by addSplitInsTemplate(), ImmediateGenerator(), and readParameters().
|
staticprivate |
Definition at line 209 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().
|
staticprivate |
Definition at line 208 of file ImmediateGenerator.cc.
Referenced by ImmediateGenerator(), and readParameters().