Go to the documentation of this file.
33 #ifndef TTA_EXECUTION_PIPELINE_HH
34 #define TTA_EXECUTION_PIPELINE_HH
60 typedef std::set<PipelineElement*,PipelineElement::Comparator>
ResourceSet;
67 void addResourceUse(
const std::string& name,
int start,
int duration);
68 void addPortRead(
int operand,
int start,
int duration);
89 int slack(
int input)
const;
128 const std::string& resource,
int start,
int duration)
const;
132 const std::string& name,
141 const std::string& name,
154 const std::string& resource,
168 const std::string& osName);
ObjectState * saveState() const
bool isOperandWritten(int operand) const
bool isPortUsed(const FUPort &port, int cycle) const
ResourceUsage resourceUsage_
Resource usage.
static const std::string OSNAME_PIPELINE
ObjectState name for ExecutionPipeline.
bool isArchitectureEqual(const ExecutionPipeline *pipeline) const
OperandSet readOperands() const
std::vector< const ObjectState * > ObjectStateTable
Vector for ObjectState pointers.
void removeResourceUse(const std::string &name)
void adjustLatency(int newLatency)
void checkOperandAvailability(int operand, int start, int duration) const
void internalAddPortUse(int operand, int start, int duration, IOUsage &toModify)
ExecutionPipeline(HWOperation &parentOperation)
static const std::string OSKEY_OPERAND
ObjectState attribute key for operand number.
void internalRemoveOperandUse(int operand, int start, int duration)
PipelineElement * addPipelineElement(const std::string &name) const
static const std::string OSNAME_OPERAND_WRITE
ObjectState name for operand write.
int firstCycleWithoutResource(const std::string &resource) const
virtual ~ExecutionPipeline()
std::vector< ResourceSet > ResourceUsage
Vector for resource sets.
static const std::string OSKEY_CYCLES
ObjectState attribute key for duration of a resource usage.
ResourceSet usedResources() const
void addResourceUse(const std::string &name, int start, int duration)
int slack(int input) const
PipelineElement * pipelineElement(const std::string &name) const
IOUsage opWrites_
Operand writes.
bool isPortWritten(const FUPort &port, int cycle) const
bool isOperandRead(int operand) const
int firstCycleWithoutOperandUse(int operand, int cycle) const
void addPortRead(int operand, int start, int duration)
static void checkResourceName(const std::string &name)
static void checkDuration(int duration)
void addResourceUsage(ObjectStateTable &usages, const ObjectState *usageState) const
static const std::string OSKEY_RESOURCE_NAME
ObjectState attribute key for name of resource.
std::set< int > OperandSet
Set for operand indexes.
static void saveResourceUse(const PipelineElement *element, int cycleToSave, ObjectState *pipelineState)
HWOperation * parent_
The parent operation.
ObjectStateTable sortResourceUsages(const ObjectState *pipelineState) const
static const std::string OSNAME_RESOURCE_USAGE
ObjectState name for pipeline resource usage.
bool isPortRead(const FUPort &port, int cycle) const
static void saveOperandUse(int operand, int cycleToSave, ObjectState *pipelineState, const std::string &osName)
std::set< PipelineElement *, PipelineElement::Comparator > ResourceSet
Set for pipeline elements.
const HWOperation * parentOperation() const
void removeOperandUse(int operand, int cycle)
void checkInputOperand(int operand) const
std::vector< OperandSet > IOUsage
Vector for operand sets.
void checkOutputOperand(int operand) const
bool isOperandBound(const FUPort &port, const OperandSet &operands) const
IOUsage opReads_
Operand reads.
ResourceSet resourceUsages(int cycle) const
void addPortWrite(int operand, int start, int duration)
static const std::string OSKEY_START_CYCLE
ObjectState attribute key for start cycle of a resource usage.
void internalRemoveResourceUse(const std::string &name, int start, int duration)
void loadState(const ObjectState *state)
OperandSet writtenOperands() const
void checkStartCycle(int startCycle) const
bool isResourceUsed(const std::string &name, int cycle) const
void removeAllResourceUses()
void internalAddResourceUse(const std::string &name, int start, int duration)
static const std::string OSNAME_OPERAND_READ
ObjectState name for operand read.
void checkResourceAvailability(const std::string &resource, int start, int duration) const