Go to the documentation of this file.
55 const std::string& name,
int width,
int limmSlotCount,
int nopSlotCount,
57 int immSize,
int socketCount,
unsigned int initiationInterval) :
59 limmSlotCount_(limmSlotCount), nopSlotCount_(nopSlotCount),
60 guardCount_(guardCount),
61 immSize_(immSize), socketCount_(socketCount) {
76 ResourceRecordType::const_iterator i =
148 std::string msg =
"Bus ";
150 msg +=
" can not be unassigned in cycle ";
152 msg +=
", it was not in use!";
183 if (!
isAvailable(cycle, inputPSocket, outputPSocket)) {
200 int opdWidth = op.operand(opdIdx).width();
201 maxOpdWidth = std::max(maxOpdWidth, opdWidth);
204 useBits = std::min(useBits, maxOpdWidth);
210 int transportWidth = std::min(defBits, useBits);
324 return other.SchedulingResource::operator<(*this);
virtual bool canAssign(const int cycle, const MoveNode &node) const override
const Operation & operation() const
virtual void assign(const int cycle, MoveNode &node) override
virtual int width() const =0
Terminal & destination() const
bool isSourceConstant() const
virtual bool isInputPSocketResource() const
static std::string toString(const T &source)
#define assert(condition)
virtual SchedulingResource & relatedResource(const int group, const int index) const
virtual int operationIndex() const
virtual bool validateDependentGroups() override
virtual bool isInUse(const int cycle) const override
virtual bool validateRelatedGroups() override
ResourceRecordType resourceRecord_
virtual bool isOutputPSocketResource() const
int instructionIndex(int cycle) const
unsigned int destinationOperationCount() const
BusResource(const std::string &name, int width, int limmSlotCount, int nopSlotCount, int guardCount, int immSize, int socketCount, unsigned int initiationInterval=0)
virtual bool isBusResource() const override
virtual bool hasRelatedResource(const SchedulingResource &sResource) const
int relatedResourceCount(const int group) const
ProgramOperation & destinationOperation(unsigned int index=0) const
TTAProgram::Move & move()
virtual bool isAvailable(const int cycle) const override
Terminal & source() const
virtual const TTAMachine::Port & port() const
virtual const std::string & name() const
virtual int relatedResourceGroupCount() const
virtual void unassign(const int cycle, MoveNode &node) override
virtual bool operator<(const SchedulingResource &other) const override
virtual void increaseUseCount()