OpenASIP  2.0
Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ImmediateGenerator Class Reference
Inheritance diagram for ImmediateGenerator:
Inheritance graph
Collaboration diagram for ImmediateGenerator:
Collaboration graph

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< RowIDexplore (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. More...
 
bool print_
 print values More...
 
std::string removeInsTemplateName_
 instruction template name to be removed. More...
 
std::string addInsTemplateName_
 instruction template name to be added. More...
 
std::string modInsTemplateName_
 instruction template name to be modified. More...
 
unsigned int width_
 width of the target template More...
 
unsigned int widthPart_
 minimum width on long instruction slot when splitting the template. More...
 
bool split_
 make evenly bus/slot wise splitted template. More...
 
std::string dstImmUnitName_
 destination immediate unit name More...
 

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

- Public Types inherited from DesignSpaceExplorerPlugin
typedef std::pair< std::string, ExplorerPluginParameterParameter
 
typedef std::map< std::string, ExplorerPluginParameterParameterMap
 
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 &param) const
 
template<typename T >
void readOptionalParameter (const std::string paramName, T &param) const
 
template<typename RT >
RT parameterValue (const std::string &paramName) 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 &paramName) const
 
ParameterMap parameters () const
 
virtual bool booleanValue (const std::string &parameter) 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 DSDBManagerdb ()
 
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::MachineImplementationselectComponents (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 DesignSpaceExplorerPluginloadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL)
 
- Protected Member Functions inherited from DesignSpaceExplorerPlugin
 DesignSpaceExplorerPlugin ()
 
void checkParameters () const
 
- Protected Member Functions inherited from DesignSpaceExplorer
TTAProgram::Programschedule (const std::string applicationFile, TTAMachine::Machine &machine, TCEString paramOptions="-O3")
 
const ExecutionTracesimulate (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...
 

Detailed Description

Explorer plugin that creates or modifies machine instruction template by adding/removing immediates.

Definition at line 69 of file ImmediateGenerator.cc.

Constructor & Destructor Documentation

◆ ImmediateGenerator()

ImmediateGenerator::ImmediateGenerator ( )
inlineprivate

Definition at line 72 of file ImmediateGenerator.cc.

73  createNewConfig_(false),
74  print_(false),
78  width_(32),
79  widthPart_(8),
80  split_(false),
81  dstImmUnitName_("") {
82 
83  // compulsory parameters
84  // no compulsory parameters
85 
86  // parameters that have a default value
95  }

References BOOL, STRING, Conversion::toString(), and UINT.

Here is the call graph for this function:

Member Function Documentation

◆ addInsTemplate()

void ImmediateGenerator::addInsTemplate ( TTAMachine::Machine mach,
std::string  name 
)
inlineprivate

Adds instruction template with a name given as parameter.

Parameters
machTarget machine.
nameInstruction template name to be added.

Definition at line 320 of file ImmediateGenerator.cc.

320  {
321  TTAMachine::InstructionTemplate* insTemplate = NULL;
322 
323  try {
324  insTemplate = new InstructionTemplate(name, mach);
325  } catch (ComponentAlreadyExists& e) {
326  std::ostringstream msg(std::ostringstream::out);
327  msg << "Error while using ImmediateGenerator:" << endl
328  << e.errorMessage() << endl;
329  verboseLog(msg.str());
330  delete insTemplate;
331  return;
332  } catch (InvalidName& e) {
333  std::ostringstream msg(std::ostringstream::out);
334  msg << "Error while using ImmediateGenerator:" << endl
335  << e.errorMessage() << endl;
336  verboseLog(msg.str());
337  delete insTemplate;
338  return;
339  }
340  createNewConfig_ = true;
341  }

References Exception::errorMessage(), and verboseLog.

Here is the call graph for this function:

◆ addSplitInsTemplate()

void ImmediateGenerator::addSplitInsTemplate ( TTAMachine::Machine mach,
std::string  name 
)
inlineprivate

Adds instruction template with a name given as parameter and add bus wise splitted slots to the template.

Parameters
machTarget machine.
nameInstruction template name to be added.

Definition at line 350 of file ImmediateGenerator.cc.

350  {
351  TTAMachine::InstructionTemplate* insTemplate = NULL;
352 
353  // find target immediate unit for the instruction template slots
355  mach.immediateUnitNavigator();
356 
357  TTAMachine::ImmediateUnit* immUnit = NULL;
358  TTAMachine::ImmediateUnit* dstImmUnit = NULL;
359  if (dstImmUnitName_.empty()) {
360  // if no destination immediate unit specified take one if exists
361  if (IUNav.count() > 0) {
362  dstImmUnit = IUNav.item(0);
363  } else {
364  std::ostringstream msg(std::ostringstream::out);
365  msg << "Error while using ImmediateGenerator:" << endl
366  << "No immediate units." << endl;
367  verboseLog(msg.str());
368  return;
369  }
370  } else {
371  for (int iu = 0; iu < IUNav.count(); iu++) {
372  immUnit = IUNav.item(iu);
373  if (immUnit->name() == dstImmUnitName_) {
374  dstImmUnit = immUnit;
375  }
376  }
377  if (dstImmUnit == NULL) {
378  std::ostringstream msg(std::ostringstream::out);
379  msg << "Error while using ImmediateGenerator:" << endl
380  << "Given destination immediate unit \""
381  << dstImmUnitName_ << "\" was not found." << endl;
382  verboseLog(msg.str());
383  return;
384  }
385  }
386 
387  // add instruction template
388  try {
389  insTemplate = new InstructionTemplate(name, mach);
390  } catch (ComponentAlreadyExists& e) {
391  std::ostringstream msg(std::ostringstream::out);
392  msg << "Error while using ImmediateGenerator:" << endl
393  << e.errorMessage() << endl;
394  verboseLog(msg.str());
395  delete insTemplate;
396  insTemplate = NULL;
397  return;
398  } catch (InvalidName& e) {
399  std::ostringstream msg(std::ostringstream::out);
400  msg << "Error while using ImmediateGenerator:" << endl
401  << e.errorMessage() << endl;
402  verboseLog(msg.str());
403  delete insTemplate;
404  insTemplate = NULL;
405  return;
406  }
407 
408  // TODO: split among immediate slots also?
409  Machine::BusNavigator busNav = mach.busNavigator();
410 
411  int slotCount = (width_/widthPart_);
412 
413  // if too few busses to make even one widthPart_ length template slot
414  if (busNav.count() < slotCount) {
415  slotCount = busNav.count();
416  }
417 
418  int overSpill = width_ - (slotCount * widthPart_);
419  int widthAdd = 0;
420  TTAMachine::Bus* busP = NULL;
421  for (int bus = 0; bus < slotCount; bus++) {
422  busP = busNav.item(bus);
423 
424  if (overSpill > 0) {
425  if (overSpill < static_cast<int>(
426  busP->width() - widthPart_)) {
427  widthAdd = overSpill;
428  overSpill = -1; // all spilled
429  } else {
430  widthAdd = busP->width() - widthPart_;
431  overSpill = overSpill - widthAdd;
432  }
433  } else {
434  widthAdd = 0;
435  }
436 
437  try {
438  insTemplate->addSlot(busP->name(), widthPart_ + widthAdd,
439  *dstImmUnit);
440  } catch (const Exception& e) {
441  std::ostringstream msg(std::ostringstream::out);
442  msg << "Error while using ImmediateGenerator:" << endl
443  << e.errorMessage() << endl;
444  verboseLog(msg.str());
445  delete insTemplate;
446  insTemplate = NULL;
447  return;
448  }
449  }
450 
451  // check if all spilled
452  if (overSpill > 0) {
453  std::ostringstream msg(std::ostringstream::out);
454  msg << "Error while using ImmediateGenerator:" << endl
455  << "Immediate template generation failed, width=\"" << width_
456  << "\" too great by: \"" << overSpill << "\"" << endl;
457  verboseLog(msg.str());
458  delete insTemplate;
459  insTemplate = NULL;
460  return;
461  }
462 
463  createNewConfig_ = true;
464  }

References TTAMachine::InstructionTemplate::addSlot(), TTAMachine::Machine::busNavigator(), TTAMachine::Machine::Navigator< ComponentType >::count(), Exception::errorMessage(), TTAMachine::Machine::immediateUnitNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Component::name(), verboseLog, and TTAMachine::Bus::width().

Here is the call graph for this function:

◆ explore()

virtual std::vector<RowID> ImmediateGenerator::explore ( const RowID startPointConfigurationID,
const unsigned int &   
)
inlineprivatevirtual

Explorer plugin that creates or modifies machine instruction templates. TODO: add some modifying functionality.

Supported parameters:

  • print, boolean, print information about machines instruction templates.
  • remove_it_name, string, remove instruction template with a given name.
  • add_it_name, string, add empty instruction template with a given name.
  • modify_it_name, string, modify instruction template with a given name.
  • width, int, instruction template supported width.
  • width_part, int, minimum size of width per slot. Default 8.
  • split, boolean, split immediate among slots.
  • dst_imm_unit, string, destination immediate unit.
Parameters
startPointConfigurationIDConfiguration to optimize.

Reimplemented from DesignSpaceExplorerPlugin.

Definition at line 120 of file ImmediateGenerator.cc.

120  {
121 
122  // XXX: does this plugin have to touch short immediates.
123 
124  std::vector<RowID> result;
125 
126  readParameters();
127 
128  try {
129  DSDBManager& dsdb = db();
130  // loads starting configuration
132  dsdb.configuration(startPointConfigurationID);
133 
134  // load machine from configuration
135  //Machine* origMach = NULL;
136  Machine* mach = NULL;
137  try {
138  //origMach = dsdb.architecture(conf.architectureID);
139  mach = dsdb.architecture(conf.architectureID);
140  } catch (const Exception& e) {
141  std::ostringstream msg(std::ostringstream::out);
142  msg << e.errorMessage() << endl;
143  verboseLog(msg.str());
144  return result;
145  }
146 
147  if (!removeInsTemplateName_.empty()) {
149  }
150 
151  if (!addInsTemplateName_.empty()) {
152  if (split_) {
154  } else {
156  }
157  }
158 
159  // print immediate info if print parameter given
160  if (print_) {
162  }
163 
164  if (createNewConfig_) {
165  // create the new configuration to be saved to dsdb
166  // do long immediates affect these
168  if (conf.hasImplementation) {
169  newConf.hasImplementation = true;
171  dsdb.implementation(conf.implementationID);
172  CostEstimator::Estimator estimator;
174  estimator.totalArea(*mach, *idf);
175  CostEstimator::DelayInNanoSeconds longestPathDelay =
176  estimator.longestPath(*mach, *idf);
177  newConf.implementationID =
178  dsdb.addImplementation(*idf, longestPathDelay, area);
179  } else {
180  newConf.hasImplementation = false;
181  }
182  newConf.architectureID = dsdb.addArchitecture(*mach);
183  CostEstimates estimates;
184 
185  RowID confID = dsdb.addConfiguration(newConf);
186  result.push_back(confID);
187  }
188 
189  } catch (const Exception& e) {
190  std::ostringstream msg(std::ostringstream::out);
191  msg << "Error while using ImmediateGenerator:" << endl
192  << e.errorMessage() << endl;
193  verboseLog(msg.str());
194  return result;
195  }
196  return result;
197  }

References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), DSDBManager::addImplementation(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, DSDBManager::configuration(), Exception::errorMessage(), DSDBManager::MachineConfiguration::hasImplementation, DSDBManager::implementation(), DSDBManager::MachineConfiguration::implementationID, CostEstimator::Estimator::longestPath(), CostEstimator::Estimator::totalArea(), and verboseLog.

Here is the call graph for this function:

◆ PLUGIN_DESCRIPTION()

ImmediateGenerator::PLUGIN_DESCRIPTION ( "Creates immediates for configuration."  )
private

◆ printImmediateTemplates()

void ImmediateGenerator::printImmediateTemplates ( TTAMachine::Machine mach)
inlineprivate

Print info about instruction templates of a given machine.

Parameters
machMachine which instruction templates are to be printed.

Definition at line 252 of file ImmediateGenerator.cc.

252  {
255 
256  std::ostringstream msg(std::ostringstream::out);
257  msg << "====== Instruction templates: =======" << endl;
258 
259  TTAMachine::InstructionTemplate* insTemplate = NULL;
260  TTAMachine::TemplateSlot* tempSlot = NULL;
261  for (int it = 0; it < ITNav.count(); it++) {
262  insTemplate = ITNav.item(it);
263 
264  msg << "Instruction template: " << insTemplate->name() << endl;
265  if (insTemplate->isEmpty()) {
266  msg << "\tEmpty instruction template." << endl;
267  continue;
268  }
269 
270  msg << "\tSlot count: " << insTemplate->slotCount() << endl;
271  for (int sc = 0; sc < insTemplate->slotCount(); sc++) {
272  tempSlot = insTemplate->slot(sc);
273  msg << "\t\tSlot name: " << tempSlot->slot() << endl;
274  msg << "\t\tSlot width: " << tempSlot->width() << endl;
275  msg << "\t\tSlot destination: "
276  << tempSlot->destination()->name() << endl;
277  }
278 
279  msg << "\tSupported Width: " << insTemplate->supportedWidth() << endl;
280  msg << "\tNumber of Destinations: "
281  << insTemplate->numberOfDestinations() << endl;
282  }
283  verboseLog(msg.str());
284  }

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::InstructionTemplate::slot(), TTAMachine::TemplateSlot::slot(), TTAMachine::InstructionTemplate::slotCount(), TTAMachine::InstructionTemplate::supportedWidth(), verboseLog, and TTAMachine::TemplateSlot::width().

Here is the call graph for this function:

◆ producesArchitecture()

virtual bool ImmediateGenerator::producesArchitecture ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 98 of file ImmediateGenerator.cc.

98 { return true; }

◆ readParameters()

void ImmediateGenerator::readParameters ( )
inlineprivate

◆ removeInsTemplate()

void ImmediateGenerator::removeInsTemplate ( TTAMachine::Machine mach,
std::string  name 
)
inlineprivate

Removes instruction template with a name given as parameter.

Parameters
machTarget machine.
nameInstruction template name to be removed.

Definition at line 292 of file ImmediateGenerator.cc.

292  {
295 
296  TTAMachine::InstructionTemplate* insTemplate = NULL;
297  for (int it = 0; it < ITNav.count(); it++) {
298  insTemplate = ITNav.item(it);
299  if (insTemplate->name() == name) {
300  mach.deleteInstructionTemplate(*insTemplate);
301  createNewConfig_ = true;
302  }
303  }
304 
305  if (!createNewConfig_) {
306  std::ostringstream msg(std::ostringstream::out);
307  msg << "Error while using ImmediateGenerator:" << endl
308  << "Instruction template with name \"" << name
309  << "\" was not found." << endl;
310  verboseLog(msg.str());
311  }
312  }

References TTAMachine::Machine::Navigator< ComponentType >::count(), TTAMachine::Machine::deleteInstructionTemplate(), TTAMachine::Machine::instructionTemplateNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Component::name(), and verboseLog.

Here is the call graph for this function:

◆ requiresApplication()

virtual bool ImmediateGenerator::requiresApplication ( ) const
inlineprivatevirtual

Reimplemented from DesignSpaceExplorerPlugin.

Definition at line 101 of file ImmediateGenerator.cc.

101 { return false; }

◆ requiresHDB()

virtual bool ImmediateGenerator::requiresHDB ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 99 of file ImmediateGenerator.cc.

99 { return false; }

◆ requiresSimulationData()

virtual bool ImmediateGenerator::requiresSimulationData ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 100 of file ImmediateGenerator.cc.

100 { return false; }

◆ requiresStartingPointArchitecture()

virtual bool ImmediateGenerator::requiresStartingPointArchitecture ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 97 of file ImmediateGenerator.cc.

97 { return true; }

Member Data Documentation

◆ addInsTemplateName_

std::string ImmediateGenerator::addInsTemplateName_
private

instruction template name to be added.

Definition at line 219 of file ImmediateGenerator.cc.

◆ addInsTemplateNamePN_

const std::string ImmediateGenerator::addInsTemplateNamePN_
staticprivate

Definition at line 206 of file ImmediateGenerator.cc.

◆ createNewConfig_

bool ImmediateGenerator::createNewConfig_
private

Boolean value used to decide if new config is created.

Definition at line 201 of file ImmediateGenerator.cc.

◆ dstImmUnitName_

std::string ImmediateGenerator::dstImmUnitName_
private

destination immediate unit name

Definition at line 229 of file ImmediateGenerator.cc.

◆ dstImmUnitNamePN_

const std::string ImmediateGenerator::dstImmUnitNamePN_
staticprivate

Definition at line 211 of file ImmediateGenerator.cc.

◆ modInsTemplateName_

std::string ImmediateGenerator::modInsTemplateName_
private

instruction template name to be modified.

Definition at line 221 of file ImmediateGenerator.cc.

◆ modInsTemplateNamePN_

const std::string ImmediateGenerator::modInsTemplateNamePN_
staticprivate

Definition at line 207 of file ImmediateGenerator.cc.

◆ print_

bool ImmediateGenerator::print_
private

print values

Definition at line 215 of file ImmediateGenerator.cc.

◆ printPN_

const std::string ImmediateGenerator::printPN_
staticprivate

Definition at line 204 of file ImmediateGenerator.cc.

◆ removeInsTemplateName_

std::string ImmediateGenerator::removeInsTemplateName_
private

instruction template name to be removed.

Definition at line 217 of file ImmediateGenerator.cc.

◆ removeInsTemplateNamePN_

const std::string ImmediateGenerator::removeInsTemplateNamePN_
staticprivate

Definition at line 205 of file ImmediateGenerator.cc.

◆ split_

bool ImmediateGenerator::split_
private

make evenly bus/slot wise splitted template.

Definition at line 227 of file ImmediateGenerator.cc.

◆ splitPN_

const std::string ImmediateGenerator::splitPN_
staticprivate

Definition at line 210 of file ImmediateGenerator.cc.

◆ width_

unsigned int ImmediateGenerator::width_
private

width of the target template

Definition at line 223 of file ImmediateGenerator.cc.

◆ widthPart_

unsigned int ImmediateGenerator::widthPart_
private

minimum width on long instruction slot when splitting the template.

Definition at line 225 of file ImmediateGenerator.cc.

◆ widthPartPN_

const std::string ImmediateGenerator::widthPartPN_
staticprivate

Definition at line 209 of file ImmediateGenerator.cc.

◆ widthPN_

const std::string ImmediateGenerator::widthPN_
staticprivate

Definition at line 208 of file ImmediateGenerator.cc.


The documentation for this class was generated from the following file:
DesignSpaceExplorerPlugin::readCompulsoryParameter
void readCompulsoryParameter(const std::string paramName, T &param) const
CostEstimator::Estimator::totalArea
AreaInGates totalArea(const TTAMachine::Machine &machine, const IDF::MachineImplementation &machineImplementation)
area estimation functions
Definition: Estimator.cc:84
TTAMachine::Machine::deleteInstructionTemplate
virtual void deleteInstructionTemplate(InstructionTemplate &instrTempl)
Definition: Machine.cc:599
TTAMachine::Component::name
virtual TCEString name() const
Definition: MachinePart.cc:125
DesignSpaceExplorer::db
virtual DSDBManager & db()
Definition: DesignSpaceExplorer.cc:300
CostEstimates
Definition: CostEstimates.hh:57
UINT
@ UINT
Definition: ExplorerPluginParameter.hh:40
DSDBManager::architecture
TTAMachine::Machine * architecture(RowID id) const
Definition: DSDBManager.cc:807
TTAMachine::Bus::width
int width() const
Definition: Bus.cc:149
DSDBManager::MachineConfiguration::hasImplementation
bool hasImplementation
Definition: DSDBManager.hh:80
CostEstimator::Estimator::longestPath
DelayInNanoSeconds longestPath(const TTAMachine::Machine &machine, const IDF::MachineImplementation &machineImplementation)
delay estimation functions
Definition: Estimator.cc:915
TTAMachine::Bus
Definition: Bus.hh:53
TTAMachine::InstructionTemplate::addSlot
virtual void addSlot(const std::string &slotName, int width, ImmediateUnit &dstUnit)
Definition: InstructionTemplate.cc:169
TTAMachine::InstructionTemplate::numberOfDestinations
virtual int numberOfDestinations() const
Definition: InstructionTemplate.cc:300
RowID
int RowID
Type definition of row ID in relational databases.
Definition: DBTypes.hh:37
DesignSpaceExplorerPlugin::DesignSpaceExplorerPlugin
DesignSpaceExplorerPlugin()
Definition: DesignSpaceExplorerPlugin.cc:48
CostEstimator::Estimator
Definition: Estimator.hh:85
ImmediateGenerator::splitPN_
static const std::string splitPN_
Definition: ImmediateGenerator.cc:210
CostEstimator::AreaInGates
double AreaInGates
type for area values in equivalent gates
Definition: CostEstimatorTypes.hh:35
TTAMachine::Machine::Navigator::count
int count() const
ImmediateGenerator::removeInsTemplate
void removeInsTemplate(TTAMachine::Machine &mach, std::string name)
Definition: ImmediateGenerator.cc:292
TTAMachine::InstructionTemplate::slotCount
virtual int slotCount() const
Definition: InstructionTemplate.cc:236
Conversion::toString
static std::string toString(const T &source)
verboseLog
#define verboseLog(text)
Definition: Application.hh:115
BOOL
@ BOOL
Definition: ExplorerPluginParameter.hh:40
TTAMachine::InstructionTemplate
Definition: InstructionTemplate.hh:49
ImmediateGenerator::modInsTemplateNamePN_
static const std::string modInsTemplateNamePN_
Definition: ImmediateGenerator.cc:207
ImmediateGenerator::width_
unsigned int width_
width of the target template
Definition: ImmediateGenerator.cc:223
DSDBManager::MachineConfiguration::implementationID
RowID implementationID
Definition: DSDBManager.hh:81
ImmediateGenerator::dstImmUnitNamePN_
static const std::string dstImmUnitNamePN_
Definition: ImmediateGenerator.cc:211
ImmediateGenerator::split_
bool split_
make evenly bus/slot wise splitted template.
Definition: ImmediateGenerator.cc:227
DSDBManager::MachineConfiguration
Definition: DSDBManager.hh:78
InvalidName
Definition: Exception.hh:827
ImmediateGenerator::addInsTemplate
void addInsTemplate(TTAMachine::Machine &mach, std::string name)
Definition: ImmediateGenerator.cc:320
STRING
@ STRING
Definition: ExplorerPluginParameter.hh:40
ImmediateGenerator::printPN_
static const std::string printPN_
Definition: ImmediateGenerator.cc:204
TTAMachine::Machine::immediateUnitNavigator
virtual ImmediateUnitNavigator immediateUnitNavigator() const
Definition: Machine.cc:416
TTAMachine::TemplateSlot
Definition: TemplateSlot.hh:55
ImmediateGenerator::removeInsTemplateName_
std::string removeInsTemplateName_
instruction template name to be removed.
Definition: ImmediateGenerator.cc:217
TTAMachine::TemplateSlot::destination
ImmediateUnit * destination() const
TTAMachine::TemplateSlot::slot
std::string slot() const
TTAMachine::InstructionTemplate::supportedWidth
virtual int supportedWidth() const
Definition: InstructionTemplate.cc:427
ImmediateGenerator::widthPartPN_
static const std::string widthPartPN_
Definition: ImmediateGenerator.cc:209
Exception
Definition: Exception.hh:54
DSDBManager
Definition: DSDBManager.hh:76
ImmediateGenerator::printImmediateTemplates
void printImmediateTemplates(TTAMachine::Machine &mach)
Definition: ImmediateGenerator.cc:252
ImmediateGenerator::addInsTemplateName_
std::string addInsTemplateName_
instruction template name to be added.
Definition: ImmediateGenerator.cc:219
ImmediateGenerator::widthPart_
unsigned int widthPart_
minimum width on long instruction slot when splitting the template.
Definition: ImmediateGenerator.cc:225
Exception::errorMessage
std::string errorMessage() const
Definition: Exception.cc:123
ImmediateGenerator::print_
bool print_
print values
Definition: ImmediateGenerator.cc:215
DSDBManager::addConfiguration
RowID addConfiguration(const MachineConfiguration &conf)
Definition: DSDBManager.cc:299
CostEstimator::DelayInNanoSeconds
double DelayInNanoSeconds
type for propagation delays in nano seconds
Definition: CostEstimatorTypes.hh:39
ImmediateGenerator::modInsTemplateName_
std::string modInsTemplateName_
instruction template name to be modified.
Definition: ImmediateGenerator.cc:221
DSDBManager::addArchitecture
RowID addArchitecture(const TTAMachine::Machine &mom)
Definition: DSDBManager.cc:191
ImmediateGenerator::dstImmUnitName_
std::string dstImmUnitName_
destination immediate unit name
Definition: ImmediateGenerator.cc:229
DSDBManager::configuration
MachineConfiguration configuration(RowID id) const
Definition: DSDBManager.cc:361
ImmediateGenerator::removeInsTemplateNamePN_
static const std::string removeInsTemplateNamePN_
Definition: ImmediateGenerator.cc:205
ImmediateGenerator::addInsTemplateNamePN_
static const std::string addInsTemplateNamePN_
Definition: ImmediateGenerator.cc:206
ImmediateGenerator::readParameters
void readParameters()
Definition: ImmediateGenerator.cc:235
TTAMachine::Machine::busNavigator
virtual BusNavigator busNavigator() const
Definition: Machine.cc:356
TTAMachine::InstructionTemplate::isEmpty
virtual bool isEmpty() const
Definition: InstructionTemplate.cc:494
ImmediateGenerator::createNewConfig_
bool createNewConfig_
Boolean value used to decide if new config is created.
Definition: ImmediateGenerator.cc:201
ComponentAlreadyExists
Definition: Exception.hh:510
DSDBManager::implementation
IDF::MachineImplementation * implementation(RowID id) const
Definition: DSDBManager.cc:887
DesignSpaceExplorerPlugin::name
virtual std::string name() const
Definition: DesignSpaceExplorerPlugin.cc:77
TTAMachine::Machine::Navigator::item
ComponentType * item(int index) const
ImmediateGenerator::addSplitInsTemplate
void addSplitInsTemplate(TTAMachine::Machine &mach, std::string name)
Definition: ImmediateGenerator.cc:350
TTAMachine::TemplateSlot::width
int width() const
TTAMachine::Machine::instructionTemplateNavigator
virtual InstructionTemplateNavigator instructionTemplateNavigator() const
Definition: Machine.cc:428
DSDBManager::MachineConfiguration::architectureID
RowID architectureID
Definition: DSDBManager.hh:79
TTAMachine::Machine::Navigator
Definition: Machine.hh:186
DesignSpaceExplorerPlugin::addParameter
void addParameter(TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="")
DSDBManager::addImplementation
RowID addImplementation(const IDF::MachineImplementation &impl, double longestPathDelay, CostEstimator::AreaInGates area)
Definition: DSDBManager.cc:252
ImmediateGenerator::widthPN_
static const std::string widthPN_
Definition: ImmediateGenerator.cc:208
IDF::MachineImplementation
Definition: MachineImplementation.hh:54
TTAMachine::InstructionTemplate::slot
virtual TemplateSlot * slot(int index) const
Definition: InstructionTemplate.cc:249
TTAMachine::Machine
Definition: Machine.hh:73
TTAMachine::ImmediateUnit
Definition: ImmediateUnit.hh:50