Go to the documentation of this file.
34 #ifndef TTA_SIMPLE_OPERATION_EXECUTOR_HH
35 #define TTA_SIMPLE_OPERATION_EXECUTOR_HH
93 typedef std::vector<BufferCell>
Buffer;
virtual int latency() const
SimValue * io_[EXECUTOR_MAX_OPERAND_COUNT]
Inputs and outputs for the operation.
SimpleOperationExecutor & operator=(const SimpleOperationExecutor &)
Assignment not allowed.
Buffer buffer_
Ring buffer for the pipeline slots.
virtual void advanceClock()
virtual OperationExecutor * copy()
#define EXECUTOR_MAX_OPERAND_COUNT
Maximum count of operation operands supported by the executors. This is used to allocate some static ...
SimValue ioOrig_[EXECUTOR_MAX_OPERAND_COUNT]
Original inputs and outputs of the operation.
SimpleOperationExecutor(int latency, FUState &parent)
virtual void setContext(OperationContext &context)
Operation * operation_
Operation to be executed, set to NULL when results have been moved to output ports.
OperationContext * context_
Operation context.
virtual void startOperation(Operation &op)
int nextSlot_
Position of the ring buffer where to put the next triggered operation.
virtual ~SimpleOperationExecutor()
std::size_t pendingOperations_
Count of pending operations in the pipeline.
Operation * boundOperation_
Tells the operation for which the bindings are initialized in this "pipeline cell",...
find Finds info of the inner loops in the false
bool ready_
Flag telling whether results are ready or not.
std::vector< BufferCell > Buffer
Ring buffer type for the pipeline slots.