|
OpenASIP 2.2
|
#include <OperationExecutor.hh>


Public Member Functions | |
| OperationExecutor () | |
| OperationExecutor (FUState &parent) | |
| virtual | ~OperationExecutor () |
| FUState & | parent () const |
| void | setParent (FUState &parent) |
| void | addBinding (int io, PortState &port) |
| PortState & | binding (int io) const |
| virtual void | startOperation (Operation &op)=0 |
| bool | hasPendingOperations () const |
| virtual void | advanceClock ()=0 |
| virtual OperationExecutor * | copy ()=0 |
| virtual void | setContext (OperationContext &context)=0 |
| virtual void | reset () |
Protected Attributes | |
| std::vector< PortState * > | bindings_ |
| PortStates that are bound to a certain input or output operand. | |
| bool | hasPendingOperations_ |
| This is set to true if the OperationExecutor is not in 'idle' mode. | |
Private Member Functions | |
| OperationExecutor & | operator= (const OperationExecutor &) |
| Assignment not allowed. | |
Private Attributes | |
| FUState * | parent_ |
| Parent of the executor. | |
Executes operations in function units.
Definition at line 49 of file OperationExecutor.hh.
|
inline |
Definition at line 51 of file OperationExecutor.hh.
|
explicit |
Constructor.
| parent | Parent FUState. |
Definition at line 48 of file OperationExecutor.cc.
|
virtual |
| void OperationExecutor::addBinding | ( | int | io, |
| PortState & | port | ||
| ) |
Adds binding of operand to a port.
| io | Operand index. |
| port | Port to be bind. |
| IllegalRegistration | If parent of the port is not the same as the parent of the executor. |
Definition at line 67 of file OperationExecutor.cc.
References __func__, bindings_, PortState::parent(), and parent_.
Referenced by MachineStateBuilder::bindPortsToOperands(), and FUState::replaceOperationExecutor().

|
pure virtual |
Implemented in ConflictDetectingOperationExecutor, MultiLatencyOperationExecutor, OneCycleOperationExecutor, SimpleOperationExecutor, and TransportPipeline.
Referenced by FUState::advanceClock().
| PortState & OperationExecutor::binding | ( | int | io | ) | const |
|
pure virtual |
Implemented in ConflictDetectingOperationExecutor, MultiLatencyOperationExecutor, OneCycleOperationExecutor, SimpleOperationExecutor, and TransportPipeline.
Referenced by FUState::addOperationExecutor().
| bool OperationExecutor::hasPendingOperations | ( | ) | const |
Referenced by FUState::advanceClock(), and FUState::endClock().
|
private |
Assignment not allowed.
| FUState & OperationExecutor::parent | ( | ) | const |
Referenced by FUState::replaceOperationExecutor(), setParent(), and TransportPipeline::TransportPipeline().
|
virtual |
Reimplemented in MultiLatencyOperationExecutor.
Definition at line 87 of file OperationExecutor.cc.
|
pure virtual |
Implemented in MultiLatencyOperationExecutor, OneCycleOperationExecutor, SimpleOperationExecutor, and TransportPipeline.
Referenced by FUState::addOperationExecutor(), and FUState::replaceOperationExecutor().
|
inline |
Definition at line 56 of file OperationExecutor.hh.
References parent(), and parent_.
Referenced by FUState::replaceOperationExecutor().

|
pure virtual |
Implemented in ConflictDetectingOperationExecutor, MultiLatencyOperationExecutor, OneCycleOperationExecutor, SimpleOperationExecutor, and TransportPipeline.
Referenced by FUState::endClock().
|
protected |
PortStates that are bound to a certain input or output operand.
Definition at line 70 of file OperationExecutor.hh.
Referenced by addBinding(), and OneCycleOperationExecutor::initializeIOVector().
|
protected |
This is set to true if the OperationExecutor is not in 'idle' mode.
Definition at line 73 of file OperationExecutor.hh.
Referenced by ConflictDetectingOperationExecutor::advanceClock(), MultiLatencyOperationExecutor::advanceClock(), OneCycleOperationExecutor::advanceClock(), SimpleOperationExecutor::advanceClock(), MultiLatencyOperationExecutor::MultiLatencyOperationExecutor(), MultiLatencyOperationExecutor::reset(), SimpleOperationExecutor::SimpleOperationExecutor(), ConflictDetectingOperationExecutor::startOperation(), MultiLatencyOperationExecutor::startOperation(), OneCycleOperationExecutor::startOperation(), and SimpleOperationExecutor::startOperation().
|
private |
Parent of the executor.
Definition at line 79 of file OperationExecutor.hh.
Referenced by addBinding(), and setParent().