OpenASIP  2.0
Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
TTAMachine::FUPort Class Reference

#include <FUPort.hh>

Inheritance diagram for TTAMachine::FUPort:
Inheritance graph
Collaboration diagram for TTAMachine::FUPort:
Collaboration graph

Public Member Functions

 FUPort (const std::string &name, int width, FunctionUnit &parent, bool triggers, bool setsOpcode, bool noRegister=false)
 
 FUPort (const ObjectState *state, Unit &parent)
 
virtual ~FUPort ()
 
virtual bool isTriggering () const
 
virtual bool isOpcodeSetting () const
 
void setTriggering (bool triggers)
 
virtual ObjectStatesaveState () const
 
virtual void loadState (const ObjectState *state)
 
std::string bindingString () const
 
void updateBindingString () const
 
bool isArchitectureEqual (FUPort *port)
 
bool noRegister () const
 
void setNoRegister (bool noRegister)
 
- Public Member Functions inherited from TTAMachine::BaseFUPort
virtual ~BaseFUPort ()
 
FunctionUnitparentUnit () const
 
virtual int width () const
 
void setWidth (int width)
 
- Public Member Functions inherited from TTAMachine::Port
 Port (const std::string &name, Unit &parentUnit)
 
 Port (const ObjectState *state, Unit &parentUnit)
 
virtual ~Port ()
 
virtual std::string name () const
 
virtual void setName (const std::string &name)
 
virtual void attachSocket (Socket &socket)
 
virtual void detachSocket (Socket &socket)
 
virtual void detachAllSockets ()
 
UnitparentUnit () const
 
virtual SocketinputSocket () const
 
virtual SocketoutputSocket () const
 
virtual SocketunconnectedSocket (int index) const
 
virtual int socketCount () const
 
virtual bool isConnectedTo (const Socket &socket) const
 
virtual bool isOutput () const
 
virtual bool isInput () const
 
- Public Member Functions inherited from Serializable
virtual ~Serializable ()
 

Static Public Attributes

static const std::string OSNAME_FUPORT = "fu_port"
 ObjectState name for FUPort. More...
 
static const std::string OSKEY_TRIGGERING = "triggering"
 ObjectState attribute key for triggering feature. More...
 
static const std::string OSKEY_OPCODE_SETTING = "oc_setting"
 ObjectState attribute key for operand code setting feature. More...
 
static const std::string OSKEY_NO_REGISTER = "no_register"
 ObjectState attribute key for noRegister setting feature. More...
 
- Static Public Attributes inherited from TTAMachine::BaseFUPort
static const std::string OSKEY_WIDTH = "width"
 ObjectState attribute key for bit width of the port. More...
 
- Static Public Attributes inherited from TTAMachine::Port
static const std::string OSNAME_PORT = "port"
 ObjectState name for Port. More...
 
static const std::string OSKEY_NAME = "name"
 ObjectState attribute key for the name of the port. More...
 
static const std::string OSKEY_FIRST_SOCKET = "1_socket"
 ObjectState attribute key for the name of the connected socket. More...
 
static const std::string OSKEY_SECOND_SOCKET = "2_socket"
 ObjectState attribute key for the name of the other connected socket. More...
 

Protected Member Functions

 FUPort (const std::string &name, int width, FunctionUnit &parent, bool triggers, bool setsOpcode, bool noRegister, bool dummy)
 
- Protected Member Functions inherited from TTAMachine::BaseFUPort
 BaseFUPort (const std::string &name, int width, FunctionUnit &parent)
 
 BaseFUPort (const ObjectState *state, Unit &parent)
 
- Protected Member Functions inherited from TTAMachine::Port
 Port (const std::string &name, FunctionUnit &parentUnit)
 
- Protected Member Functions inherited from TTAMachine::SubComponent
 SubComponent ()
 
virtual ~SubComponent ()
 
- Protected Member Functions inherited from TTAMachine::MachinePart
 MachinePart ()
 
virtual ~MachinePart ()
 

Private Member Functions

void cleanupGuards () const
 
void cleanupOperandBindings () const
 
void loadStateWithoutReferences (const ObjectState *state)
 

Private Attributes

bool triggers_
 Specifies whether this is a triggering port. More...
 
bool setsOpcode_
 Specifies whether this is an operation selecting port. More...
 
std::string bindingString_
 Binding string describes the operation bindings of of the port to allow fast binding comparison. More...
 
bool noRegister_
 

Detailed Description

Represens an operand, trigger or result port of a function unit.

Definition at line 46 of file FUPort.hh.

Constructor & Destructor Documentation

◆ FUPort() [1/3]

TTAMachine::FUPort::FUPort ( const std::string &  name,
int  width,
FunctionUnit parent,
bool  triggers,
bool  setsOpcode,
bool  noRegister = false 
)

Constructor.

Parameters
nameName of the port.
widthBit width of the port.
parentThe function unit to which the port belongs.
triggersIf true, writing (or reading) this port starts the execution of a new operation.
setsOpcodeIf true, writing (or reading) this port selects the operation to be executed. Opcode-setting ports must be triggering.
noRegisterIf true, the port do not have internal register.
Exceptions
ComponentAlreadyExistsIf the function unit already has another port by the same name or another port that sets operation code.
OutOfRangeIf the given bit width is less or equal to zero.
IllegalParametersIf setsOpcode argument is true and isTriggering false.
InvalidNameIf the given name is not a valid component name.

Definition at line 76 of file FUPort.cc.

79  : BaseFUPort(name, width, parent),
80  triggers_(triggers),
81  setsOpcode_(setsOpcode),
83  const std::string procName = "FUPort::FUPort";
84 
85  if (setsOpcode && !triggers) {
86  throw IllegalParameters(__FILE__, __LINE__, procName);
87  }
88 
89  // check that parent unit will not have two operation code setting
90  // ports
91  if (setsOpcode) {
92  for (int i = 0; i < parent.portCount(); i++) {
93  BaseFUPort* port = parent.port(i);
94  if (port->isOpcodeSetting() && port != this) {
96  __FILE__, __LINE__, procName);
97  }
98  }
99  }
100 }

References TTAMachine::BaseFUPort::isOpcodeSetting(), TTAMachine::FunctionUnit::port(), and TTAMachine::Unit::portCount().

Here is the call graph for this function:

◆ FUPort() [2/3]

TTAMachine::FUPort::FUPort ( const ObjectState state,
Unit parent 
)

Constructor.

Loads its state from the given ObjectState instance but does not create connections to sockets. This constructor is used when the state of a function unit is loaded. Do not use this constructor.

Parameters
stateThe ObjectState instance.
parentThe parent function unit which contains the port.
Exceptions
ObjectStateLoadingExceptionIf the given ObjectState instance is invalid.

Definition at line 153 of file FUPort.cc.

154  : BaseFUPort(state, parent), triggers_(false), setsOpcode_(false) {
156 
157  if (setsOpcode_ != triggers_) {
158  const std::string procName = "FUPort::FUPort";
159  const std::string error = "Port must trigger iff sets opcode.";
160  throw ObjectStateLoadingException(__FILE__, __LINE__, procName,
161  error);
162  }
163 }

References loadStateWithoutReferences(), setsOpcode_, and triggers_.

Here is the call graph for this function:

◆ ~FUPort()

TTAMachine::FUPort::~FUPort ( )
virtual

Destructor.

Definition at line 168 of file FUPort.cc.

168  {
169  cleanupGuards();
171 }

References cleanupGuards(), and cleanupOperandBindings().

Here is the call graph for this function:

◆ FUPort() [3/3]

TTAMachine::FUPort::FUPort ( const std::string &  name,
int  width,
FunctionUnit parent,
bool  triggers,
bool  setsOpcode,
bool  noRegister,
bool  dummy 
)
protected

Constructor.

This constructor does not check that the parent unit will not have two operation code setting ports. This constructor is used by UniversalFUPort class.

Parameters
nameName of the port.
widthBit width of the port.
parentThe function unit to which the port belongs.
triggersIf true, writing (or reading) this port starts the execution of a new operation.
setsOpcodeIf true, writing (or reading) this port selects the operation to be executed. Opcode-setting ports must be triggering.
noRegisterIf true, the port do not have internal register.
dummyThis parameter is not used and exists only to make some difference to the other constructor.
Exceptions
ComponentAlreadyExistsIf the function unit already has another port by the same name.
OutOfRangeIf the given bit width is less or equal to zero.
IllegalParametersIf setsOpcode argument is true and isTriggering false.
InvalidNameIf the given name is not a valid component name.

Definition at line 127 of file FUPort.cc.

130  : BaseFUPort(name, width, parent),
131  triggers_(triggers),
132  setsOpcode_(setsOpcode),
134  if (setsOpcode != triggers) {
135  const std::string procName = "FUPort::FUPort";
136  const std::string error = "Port must trigger iff sets opcode.";
137  throw IllegalParameters(__FILE__, __LINE__, procName, error);
138  }
139 }

Member Function Documentation

◆ bindingString()

std::string TTAMachine::FUPort::bindingString ( ) const

Returns a description of operand bindings of the port.

This returned string can be used to compare the bindings of to FUPorts using a string comparison because Operations are listed in alphapetical order.

Todo:
this should be moved to BaseFUPort.
Returns
String describing the operand bindings of the port.

Definition at line 280 of file FUPort.cc.

280  {
281  return bindingString_;
282 }

References bindingString_.

Referenced by isArchitectureEqual(), and TTAMachine::ResourceVector::ResourceVector().

◆ cleanupGuards()

void TTAMachine::FUPort::cleanupGuards ( ) const
private

Cleans up the guards that refer to this port.

Definition at line 354 of file FUPort.cc.

354  {
355 
356  // delete guards referencing to this port
357  Unit* parent = Port::parentUnit();
358  Machine* machine = parent->machine();
359 
360  if (machine != NULL) {
362 
363  for (int busIndex = 0; busIndex < navi.count(); busIndex++) {
364  Bus* bus = navi.item(busIndex);
365  int guardIndex = 0;
366 
367  while (guardIndex < bus->guardCount()) {
368  Guard* guard = bus->guard(guardIndex);
369  PortGuard* portGuard = dynamic_cast<PortGuard*>(guard);
370 
371  if (portGuard != NULL && portGuard->port() == this) {
372  // guard is removed automatically from bus
373  delete portGuard;
374  } else {
375  guardIndex++;
376  }
377  }
378  }
379  }
380 }

References TTAMachine::Machine::busNavigator(), TTAMachine::Machine::Navigator< ComponentType >::count(), TTAMachine::Bus::guard(), TTAMachine::Machine::Navigator< ComponentType >::item(), machine, TTAMachine::Component::machine(), TTAMachine::Port::parentUnit(), and TTAMachine::PortGuard::port().

Referenced by ~FUPort().

Here is the call graph for this function:

◆ cleanupOperandBindings()

void TTAMachine::FUPort::cleanupOperandBindings ( ) const
private

Removes all the operand bindings of the parent unit that use this port.

Definition at line 388 of file FUPort.cc.

388  {
389 
390  // NOTE! Cannot call directly FUPort::parentUnit because this method is
391  // called from FUPort's destructor and it is possible that FunctionUnit
392  // instance does not exist any more. This is the case if FunctionUnit is
393  // deleted because its destructor is called before Unit's destructor.
394  Unit* parentUnit = Port::parentUnit();
395  FunctionUnit* parentFU = dynamic_cast<FunctionUnit*>(parentUnit);
396 
397  if (parentFU != NULL) {
398  for (int i = 0; i < parentFU->operationCount(); i++) {
399  HWOperation* operation = parentFU->operation(i);
400  operation->unbindPort(*this);
401  }
402  }
403  bindingString_ = "";
404 }

References bindingString_, TTAMachine::FunctionUnit::operation(), TTAMachine::FunctionUnit::operationCount(), TTAMachine::BaseFUPort::parentUnit(), TTAMachine::Port::parentUnit(), and TTAMachine::HWOperation::unbindPort().

Referenced by ~FUPort().

Here is the call graph for this function:

◆ isArchitectureEqual()

bool TTAMachine::FUPort::isArchitectureEqual ( FUPort port)

Checks if the two ports have same architecture.

Compares also operation bindings. Names are allowed to differ.

Returns
True if the two ports have equal architecture.

Definition at line 332 of file FUPort.cc.

332  {
333 
334  if (triggers_ != port->isTriggering()) {
335  return false;
336  }
337  if (setsOpcode_ != port->isOpcodeSetting()) {
338  return false;
339  }
340  if (width() != port->width()) {
341  return false;
342  }
343  if (bindingString() != port->bindingString()) {
344  return false;
345  }
346  return true;
347 }

References bindingString(), isOpcodeSetting(), isTriggering(), setsOpcode_, triggers_, and TTAMachine::BaseFUPort::width().

Here is the call graph for this function:

◆ isOpcodeSetting()

bool TTAMachine::FUPort::isOpcodeSetting ( ) const
virtual

Returns true if reading (or writing) this port selects the operation to be executed, otherwise false.

Returns
True if reading (or writing) this port selects the operation to be executed, otherwise false.

Implements TTAMachine::BaseFUPort.

Definition at line 195 of file FUPort.cc.

195  {
196  return setsOpcode_;
197 }

References setsOpcode_.

Referenced by HDB::HDBManager::addFUArchitecture(), OperationBindingCheck::check(), VectorLSGenerator::createVectorLSU(), isArchitectureEqual(), TTAMachine::FunctionUnit::isArchitectureEqual(), HDB::HDBManager::isMatchingArchitecture(), BEMGenerator::needsSocketCodeTable(), HDB::FUArchitecture::operator==(), SmartHWOperation::port(), and TTAProgram::TerminalFUPort::TerminalFUPort().

◆ isTriggering()

bool TTAMachine::FUPort::isTriggering ( ) const
virtual

Returns true if reading (or writing) this port starts the execution of a new operation, otherwise false.

Returns
True if reading (or writing) this port starts the execution of a new operation, otherwise false.

Implements TTAMachine::BaseFUPort.

Definition at line 182 of file FUPort.cc.

182  {
183  return triggers_;
184 }

References triggers_.

Referenced by ProGe::RV32MicroCodeGenerator::addBPorts(), HDB::HDBManager::addFUArchitecture(), ProGe::NetlistGenerator::addFUToNetlist(), ProGe::RV32MicroCodeGenerator::addRPorts(), ProGe::RV32MicroCodeGenerator::addSPorts(), ProGe::RV32MicroCodeGenerator::addUJPorts(), InputFUBroker::allAvailableResources(), OpsetDialog::bindPorts(), OperationBindingCheck::check(), FUValidator::checkOperations(), ADFCombiner::connectVectorLSU(), UnitPortFactory::createEditPart(), llvm::LLVMTCEPOMBuilder::createFUTerminal(), OpsetDialog::createOperation(), FUGen::createShadowRegisters(), VectorLSGenerator::createVectorLSU(), ProgramOperation::findTriggerFromUnit(), BasicBlockScheduler::findTriggerFromUnit(), OpsetDialog::findTriggerPort(), ComponentImplementationSelector::fuArchsByOpSetWithMinLatency(), BasicBlockScheduler::getTriggerOperand(), isArchitectureEqual(), TTAMachine::FunctionUnit::isArchitectureEqual(), HDB::HDBManager::isMatchingArchitecture(), BF2Scheduler::isTrigger(), AddFUFromHDBDialog::onAdd(), HDB::FUArchitecture::operator==(), BF2Scheduler::preAllocateFunctionUnits(), PlatformIntegrator::readLsuParameters(), BF2Scheduler::releasePortForOp(), MachineInfo::triggerIndex(), and FUDialog::updatePortList().

◆ loadState()

void TTAMachine::FUPort::loadState ( const ObjectState state)
virtual

Loads the state of the object from the given ObjectState instance.

Parameters
stateThe ObjectState instance.
Exceptions
ObjectStateLoadingExceptionIf an error occurs while loading the state.

Reimplemented from TTAMachine::BaseFUPort.

Reimplemented in UniversalFUPort.

Definition at line 257 of file FUPort.cc.

257  {
258  const string procName = "FUPort::loadState";
259 
260  if (state->name() != OSNAME_FUPORT) {
261  throw ObjectStateLoadingException(__FILE__, __LINE__, procName);
262  }
263 
265  BaseFUPort::loadState(state);
267 }

References TTAMachine::BaseFUPort::loadState(), loadStateWithoutReferences(), ObjectState::name(), OSNAME_FUPORT, and updateBindingString().

Here is the call graph for this function:

◆ loadStateWithoutReferences()

void TTAMachine::FUPort::loadStateWithoutReferences ( const ObjectState state)
private

Loads its state from the given ObjectState instance but does not create connections to sockets.

Parameters
stateThe ObjectState instance.
Exceptions
ObjectStateLoadingExceptionIf the given ObjectState instance is invalid.

Definition at line 416 of file FUPort.cc.

416  {
417  const string procName = "FUPort::loadStateWithoutReferences";
418 
419  try {
422  if (state->boolAttribute(OSKEY_OPCODE_SETTING)) {
423 
424  // Check that parent unit does not contain another operation
425  // code setting port. Cannot call directly setOpcodeSetting
426  // method because FunctionUnit part of parent unit may not have
427  // been instantiated when this method is called (for example if
428  // FunctionUnit is created by FunctionUnit(ObjectState*).
429 
430  Unit* parentUnit = Port::parentUnit();
431  MOMTextGenerator textGenerator;
432 
433  for (int i = 0; i < parentUnit->portCount(); i++) {
434  Port* port = parentUnit->port(i);
435  BaseFUPort* fuPort = dynamic_cast<BaseFUPort*>(port);
436  assert(fuPort != NULL);
437  if (fuPort->isOpcodeSetting() && fuPort != this) {
438  format text = textGenerator.text(
440  text % parentUnit->name();
442  __FILE__, __LINE__, procName, text.str());
443  }
444  }
445 
446  setsOpcode_ = true;
447  if (!triggers_) {
448  format text = textGenerator.text(
450  text % name() % parentUnit->name();
452  __FILE__, __LINE__, procName, text.str());
453  }
454  }
455 
456  } catch (Exception& e) {
458  __FILE__, __LINE__, procName, e.errorMessage());
459  }
461 }

References assert, ObjectState::boolAttribute(), Exception::errorMessage(), ObjectState::intAttribute(), TTAMachine::BaseFUPort::isOpcodeSetting(), TTAMachine::Port::name(), TTAMachine::Component::name(), OSKEY_NO_REGISTER, OSKEY_OPCODE_SETTING, OSKEY_TRIGGERING, TTAMachine::BaseFUPort::parentUnit(), TTAMachine::Port::parentUnit(), TTAMachine::FunctionUnit::port(), TTAMachine::Unit::portCount(), setNoRegister(), setsOpcode_, setTriggering(), Texts::TextGenerator::text(), triggers_, MOMTextGenerator::TXT_OPCODE_SETTING_MUST_BE_TRIGGERING, MOMTextGenerator::TXT_OPCODE_SETTING_PORT_EXISTS, and updateBindingString().

Referenced by FUPort(), and loadState().

Here is the call graph for this function:

◆ noRegister()

bool TTAMachine::FUPort::noRegister ( ) const

◆ saveState()

ObjectState * TTAMachine::FUPort::saveState ( ) const
virtual

Saves the state of the object to an ObjectState instance.

Returns
The newly created ObjectState instance.

Reimplemented from TTAMachine::BaseFUPort.

Definition at line 239 of file FUPort.cc.

239  {
241  state->setName(OSNAME_FUPORT);
245  return state;
246 }

References noRegister_, OSKEY_NO_REGISTER, OSKEY_OPCODE_SETTING, OSKEY_TRIGGERING, OSNAME_FUPORT, TTAMachine::BaseFUPort::saveState(), ObjectState::setAttribute(), ObjectState::setName(), setsOpcode_, and triggers_.

Here is the call graph for this function:

◆ setNoRegister()

void TTAMachine::FUPort::setNoRegister ( bool  noRegister)

Definition at line 479 of file FUPort.cc.

479  {
481 }

References noRegister(), and noRegister_.

Referenced by loadStateWithoutReferences().

Here is the call graph for this function:

◆ setTriggering()

void TTAMachine::FUPort::setTriggering ( bool  triggers)

Sets/unsets the port to a triggering and opcode setting.

Triggering port is always the opcode setting port in TCE v1.0 and only one port can trigger in TCE v1.0. If ports parent unit already has a triggering port this ports triggering status is removed.

Parameters
triggersWhen true, the port is set to a triggering and opcode setting port.

Definition at line 212 of file FUPort.cc.

212  {
213  if (triggers) {
214  setsOpcode_ = true;
215 
216  FunctionUnit* parent = this->parentUnit();
217  if (parent != NULL) {
218  for (int i = 0; i < parent->portCount(); i++) {
219  BaseFUPort* port = parent->port(i);
220  if (port->isTriggering() && port != this) {
221  dynamic_cast<FUPort*>(port)->setTriggering(false);
222  break; // only one other port can be triggering
223  }
224  }
225  }
226  } else {
227  setsOpcode_ = false;
228  }
229  triggers_ = triggers;
230 }

References TTAMachine::BaseFUPort::isTriggering(), TTAMachine::BaseFUPort::parentUnit(), TTAMachine::FunctionUnit::port(), TTAMachine::Unit::portCount(), setsOpcode_, and triggers_.

Referenced by loadStateWithoutReferences().

Here is the call graph for this function:

◆ updateBindingString()

void TTAMachine::FUPort::updateBindingString ( ) const

Updates the string of bindings of the port.

Separated to another method so it's not recomputed every time it's asked.

Todo:
this should be moved to BaseFUPort.
Returns
String of bindings. Operations are listed in alphapetical order.

Definition at line 294 of file FUPort.cc.

294  {
295 
296  if (parentUnit() == NULL) {
297  bindingString_ = "";
298  return;
299  }
300 
301  set<string> bindings;
302  for (int i = 0; i < parentUnit()->operationCount(); i++) {
303  if (parentUnit()->operation(i)->isBound(*this)) {
304  string binding = parentUnit()->operation(i)->name();
305  binding += ".";
306  binding += Conversion::toString(
307  parentUnit()->operation(i)->io(*this));
308  bindings.insert(binding);
309  }
310  }
311  set<string>::const_iterator iter = bindings.begin();
312  string result;
313  while (iter != bindings.end()) {
314  result += (*iter);
315  iter++;
316  if (iter != bindings.end()) {
317  result += ",";
318  }
319  }
320  bindingString_ = result;
321 }

References bindingString_, TTAMachine::HWOperation::isBound(), TTAMachine::HWOperation::name(), TTAMachine::FunctionUnit::operation(), TTAMachine::FunctionUnit::operationCount(), TTAMachine::BaseFUPort::parentUnit(), and Conversion::toString().

Referenced by TTAMachine::HWOperation::bindPort(), loadState(), loadStateWithoutReferences(), and TTAMachine::HWOperation::unbindPort().

Here is the call graph for this function:

Member Data Documentation

◆ bindingString_

std::string TTAMachine::FUPort::bindingString_
mutableprivate

Binding string describes the operation bindings of of the port to allow fast binding comparison.

Definition at line 96 of file FUPort.hh.

Referenced by bindingString(), cleanupOperandBindings(), and updateBindingString().

◆ noRegister_

bool TTAMachine::FUPort::noRegister_
private

Definition at line 98 of file FUPort.hh.

Referenced by noRegister(), saveState(), and setNoRegister().

◆ OSKEY_NO_REGISTER

const string TTAMachine::FUPort::OSKEY_NO_REGISTER = "no_register"
static

ObjectState attribute key for noRegister setting feature.

Definition at line 77 of file FUPort.hh.

Referenced by loadStateWithoutReferences(), and saveState().

◆ OSKEY_OPCODE_SETTING

const string TTAMachine::FUPort::OSKEY_OPCODE_SETTING = "oc_setting"
static

ObjectState attribute key for operand code setting feature.

Definition at line 75 of file FUPort.hh.

Referenced by loadStateWithoutReferences(), and saveState().

◆ OSKEY_TRIGGERING

const string TTAMachine::FUPort::OSKEY_TRIGGERING = "triggering"
static

ObjectState attribute key for triggering feature.

Definition at line 73 of file FUPort.hh.

Referenced by loadStateWithoutReferences(), and saveState().

◆ OSNAME_FUPORT

const string TTAMachine::FUPort::OSNAME_FUPORT = "fu_port"
static

◆ setsOpcode_

bool TTAMachine::FUPort::setsOpcode_
private

Specifies whether this is an operation selecting port.

Definition at line 93 of file FUPort.hh.

Referenced by FUPort(), isArchitectureEqual(), isOpcodeSetting(), loadStateWithoutReferences(), saveState(), and setTriggering().

◆ triggers_

bool TTAMachine::FUPort::triggers_
private

Specifies whether this is a triggering port.

Definition at line 91 of file FUPort.hh.

Referenced by FUPort(), isArchitectureEqual(), isTriggering(), loadStateWithoutReferences(), saveState(), and setTriggering().


The documentation for this class was generated from the following files:
TTAMachine::FUPort::noRegister
bool noRegister() const
Definition: FUPort.cc:469
TTAMachine::Port::Port
Port(const std::string &name, Unit &parentUnit)
Definition: Port.cc:67
TTAMachine::FUPort::bindingString_
std::string bindingString_
Binding string describes the operation bindings of of the port to allow fast binding comparison.
Definition: FUPort.hh:96
TTAMachine::FUPort::cleanupOperandBindings
void cleanupOperandBindings() const
Definition: FUPort.cc:388
TTAMachine::Component::name
virtual TCEString name() const
Definition: MachinePart.cc:125
TTAMachine::BaseFUPort::BaseFUPort
BaseFUPort(const std::string &name, int width, FunctionUnit &parent)
Definition: BaseFUPort.cc:58
machine
TTAMachine::Machine * machine
the architecture definition of the estimated processor
Definition: EstimatorCmdLineUI.cc:59
ObjectStateLoadingException
Definition: Exception.hh:551
TTAMachine::BaseFUPort::parentUnit
FunctionUnit * parentUnit() const
Definition: BaseFUPort.cc:96
TTAMachine::FUPort::setNoRegister
void setNoRegister(bool noRegister)
Definition: FUPort.cc:479
TTAMachine::FUPort::triggers_
bool triggers_
Specifies whether this is a triggering port.
Definition: FUPort.hh:91
TTAMachine::FUPort::OSKEY_NO_REGISTER
static const std::string OSKEY_NO_REGISTER
ObjectState attribute key for noRegister setting feature.
Definition: FUPort.hh:77
ObjectState
Definition: ObjectState.hh:59
TTAMachine::FUPort::setsOpcode_
bool setsOpcode_
Specifies whether this is an operation selecting port.
Definition: FUPort.hh:93
TTAMachine::FunctionUnit::port
virtual BaseFUPort * port(const std::string &name) const
Definition: FunctionUnit.cc:145
Texts::TextGenerator::text
virtual boost::format text(int textId)
Definition: TextGenerator.cc:94
ObjectState::setName
void setName(const std::string &name)
Conversion::toString
static std::string toString(const T &source)
MOMTextGenerator::TXT_OPCODE_SETTING_MUST_BE_TRIGGERING
@ TXT_OPCODE_SETTING_MUST_BE_TRIGGERING
Definition: MOMTextGenerator.hh:66
TTAMachine::FUPort::updateBindingString
void updateBindingString() const
Definition: FUPort.cc:294
TTAMachine::Machine::BusNavigator
Navigator< Bus > BusNavigator
Navigator type for BusNavigator.
Definition: Machine.hh:213
assert
#define assert(condition)
Definition: Application.hh:86
TTAMachine::BaseFUPort::loadState
virtual void loadState(const ObjectState *state)
Definition: BaseFUPort.cc:153
TTAMachine::FUPort::bindingString
std::string bindingString() const
Definition: FUPort.cc:280
IllegalParameters
Definition: Exception.hh:113
TTAMachine::HWOperation::name
const std::string & name() const
Definition: HWOperation.cc:141
TTAMachine::FUPort::cleanupGuards
void cleanupGuards() const
Definition: FUPort.cc:354
TTAMachine::FUPort::OSNAME_FUPORT
static const std::string OSNAME_FUPORT
ObjectState name for FUPort.
Definition: FUPort.hh:71
TTAMachine::FUPort::OSKEY_OPCODE_SETTING
static const std::string OSKEY_OPCODE_SETTING
ObjectState attribute key for operand code setting feature.
Definition: FUPort.hh:75
TTAMachine::HWOperation::isBound
bool isBound(const FUPort &port) const
Definition: HWOperation.cc:338
TTAMachine::FunctionUnit::operationCount
virtual int operationCount() const
Definition: FunctionUnit.cc:419
Exception
Definition: Exception.hh:54
ObjectState::name
std::string name() const
TTAMachine::Unit::portCount
virtual int portCount() const
Definition: Unit.cc:135
Exception::errorMessage
std::string errorMessage() const
Definition: Exception.cc:123
TTAMachine::FUPort::noRegister_
bool noRegister_
Definition: FUPort.hh:98
TTAMachine::BaseFUPort::saveState
virtual ObjectState * saveState() const
Definition: BaseFUPort.cc:136
TTAMachine::Port::name
virtual std::string name() const
Definition: Port.cc:141
MOMTextGenerator
Definition: MOMTextGenerator.hh:40
ObjectState::boolAttribute
bool boolAttribute(const std::string &name) const
Definition: ObjectState.cc:338
TTAMachine::FUPort::setTriggering
void setTriggering(bool triggers)
Definition: FUPort.cc:212
TTAMachine::Machine::busNavigator
virtual BusNavigator busNavigator() const
Definition: Machine.cc:356
ComponentAlreadyExists
Definition: Exception.hh:510
ObjectState::intAttribute
int intAttribute(const std::string &name) const
Definition: ObjectState.cc:276
TTAMachine::FUPort::loadStateWithoutReferences
void loadStateWithoutReferences(const ObjectState *state)
Definition: FUPort.cc:416
TTAMachine::Machine::Navigator::item
ComponentType * item(int index) const
TTAMachine::FunctionUnit::operation
virtual HWOperation * operation(const std::string &name) const
Definition: FunctionUnit.cc:363
MOMTextGenerator::TXT_OPCODE_SETTING_PORT_EXISTS
@ TXT_OPCODE_SETTING_PORT_EXISTS
Definition: MOMTextGenerator.hh:65
TTAMachine::BaseFUPort::width
virtual int width() const
Definition: BaseFUPort.cc:109
ObjectState::setAttribute
void setAttribute(const std::string &name, const std::string &value)
Definition: ObjectState.cc:100
TTAMachine::FUPort::FUPort
FUPort(const std::string &name, int width, FunctionUnit &parent, bool triggers, bool setsOpcode, bool noRegister=false)
Definition: FUPort.cc:76
TTAMachine::FUPort::OSKEY_TRIGGERING
static const std::string OSKEY_TRIGGERING
ObjectState attribute key for triggering feature.
Definition: FUPort.hh:73
TTAMachine::Port::parentUnit
Unit * parentUnit() const