Go to the documentation of this file.
53 numberOfResources_(fu.pipelineElementCount() + fu.operationPortCount()),
54 maximalLatency_(fu.maxLatency()) {
62 for (
int l = 0; l < ep->
latency(); l++ ) {
84 for (ExecutionPipeline::OperandSet::iterator iter =
85 writes.begin(); iter != writes.end(); iter++) {
87 int latency = hwop.
latency(index);
103 const std::string& opName,
105 const int resIndex) {
109 "Trying to set resource use to cycle out of scope of "
114 "Trying to set resource use for resource out of scope of "
140 const std::string& opName,
std::vector< std::map< int, int > > operationLatencies_
void setResourceUse(const std::string &opName, const int cycle, const int resIndex)
ExecutionPipelineResourceTable(const TTAMachine::FunctionUnit &fu)
OperandSet writtenOperands(int cycle) const
const std::string & name() const
static ResourceTableMap allResourceTables_
Contains these tables for all FU's.
const std::string & name() const
virtual PipelineElement * pipelineElement(int index) const
unsigned int maximalLatency_
Maximal latency of operation in FU.
bool isPortWritten(const FUPort &port, int cycle) const
std::vector< ResourceVector > ResourceTable
Type for resource reservation table, resource vector x latency.
virtual int operationCount() const
int numberOfResources_
Resource and ports vector width, depends on particular FU.
virtual int operationPortCount() const
virtual int pipelineElementCount() const
bool isPortRead(const FUPort &port, int cycle) const
std::map< const TTAMachine::FunctionUnit *, ExecutionPipelineResourceTable * > ResourceTableMap
std::vector< ResourceTable > operationPipelines_
Pipelines for operations.
void setLatency(const std::string &opName, const int output, const int latency)
ExecutionPipeline * pipeline() const
static const ExecutionPipelineResourceTable & resourceTable(const TTAMachine::FunctionUnit &fu)
virtual HWOperation * operation(const std::string &name) const
std::map< std::string, int > operationSupported_
Operations supported, name - index to operation pipeline vector.
virtual FUPort * operationPort(const std::string &name) const
bool isResourceUsed(const std::string &name, int cycle) const