Go to the documentation of this file.
56 :
HWOperation(operation.name(), parent), operation_(operation) {
65 for (
int operand = 1; operand <= inputs; operand++) {
68 for (
int operand = inputs + 1; operand <= inputs + outputs; operand++) {
90 const string procName =
"SmartHWOperation::setName";
91 const string errorMsg =
"Tried to set name of SmartHWOperation!";
113 if (HWOperation::port(operand) != NULL) {
114 return HWOperation::port(operand);
144 HWOperation::bindPort(operand, *opcodePort);
149 for (
int i = 0; i < portCount; i++) {
154 HWOperation::bindPort(operand,
port);
162 for (
int i = 0; i < portCount; i++) {
166 HWOperation::bindPort(operand,
port);
206 const string procName =
"SmartHWOperation::bindPort";
207 const string errorMsg =
208 "Tried to bind port of SmartHWOperation manually!";
221 const string procName =
"SmartHWOperation::unbindPort";
222 const string errorMsg =
223 "Tried unbind port of SmartHWOperation manually!";
238 const string procName =
"SmartHWOperation::loadState";
239 const string errorMsg =
240 "Tried load state of SmartHWOperation from an ObjectState tree!";
259 if (opIndex == operand) {
262 if (HWOperation::port(opIndex) == NULL) {
virtual Socket * inputSocket() const
static const std::string OC_SETTING_PORT_32
Name of the 32 bit wide opcode setting port.
static bool is32BitOperation(const std::string &opName)
int portCountWithWidth(int width) const
virtual void setName(const std::string &name)
virtual bool isOpcodeSetting() const
TTAMachine::FUPort & portWithWidth(int index, int width) const
static void writeToErrorLog(const std::string fileName, const int lineNumber, const std::string functionName, const std::string message, const int neededVerbosity=0)
virtual int numberOfInputs() const
UniversalFunctionUnit * parentUnit() const
static const std::string OC_SETTING_PORT_64
Name of the 64 bit wide opcode setting port.
const Operation & operation_
The operation represented by this SmartHWOperation instance.
virtual TCEString name() const
#define assert(condition)
virtual ~SmartHWOperation()
bool isBound(const FUPort &port) const
void addPortRead(int operand, int start, int duration)
TTAMachine::FUPort * port(int operand) const
virtual void loadState(const ObjectState *state)
virtual void bindPort(int operand, const TTAMachine::FUPort &port)
virtual void unbindPort(const TTAMachine::FUPort &port)
virtual Socket * outputSocket() const
ExecutionPipeline * pipeline() const
void addPortWrite(int operand, int start, int duration)
static void abortProgram() __attribute__((noreturn))
virtual int numberOfOutputs() const
bool otherMandatoryInputsBound(int operand) const
SmartHWOperation(const Operation &operation, UniversalFunctionUnit &parent)
bool is32BitOperation_
Tells whether this operation has 32 bits wide operands.