Go to the documentation of this file.
32 #ifndef TTA_HW_OPERATION_HH
33 #define TTA_HW_OPERATION_HH
46 class ExecutionPipeline;
58 const std::string&
name()
const;
66 int slack(
int input)
const;
73 bool isBound(
int operand)
const;
static const std::string OSKEY_OPERAND
ObjectState attribute key for operand index.
static const std::string OSNAME_OPERATION
ObjectState name for HWOperation.
virtual void loadState(const ObjectState *state)
static const std::string OSKEY_NAME
ObjectState attribute key for name of the operation.
virtual void bindPort(int operand, const FUPort &port)
virtual ObjectState * saveState() const
std::map< int, const FUPort * > OperandBindingMap
Map for mapping operand indexes to FUPorts.
virtual FUPort * port(int operand) const
static const std::string OSKEY_PORT
ObjectState attribute key for port name.
int io(const FUPort &port) const
const std::string & name() const
std::string name_
Name of the operation.
virtual void unbindPort(const FUPort &port)
bool isBound(const FUPort &port) const
int numberOfInputs() const
int slack(int input) const
static const std::string OSNAME_OPERAND_BINDING
ObjectState name for an operand binding.
ExecutionPipeline * pipeline_
Pipeline of the operation.
FunctionUnit * parentUnit() const
HWOperation(const std::string &name, FunctionUnit &parent)
FunctionUnit * parent_
The parent unit.
ExecutionPipeline * pipeline() const
int numberOfOutputs() const
OperandBindingMap operandBinding_
Maps operands of operation to particular ports of the parent unit.
virtual void setName(const std::string &name)