NoCScheduleProblem Class Reference
#include <problem.h>

Detailed Description
NoCScheduleProblem A NoC scheduling problem (single set of messages)
Constructor & Destructor Documentation
| NoCScheduleProblem::NoCScheduleProblem | ( | CString | name, | |
| CNode * | messagesNode, | |||
| CNode * | archGraphNode, | |||
| CNode * | systemUsageNode | |||
| ) |
NoCScheduleProblem () Constructor.
References CGetAttribute(), constructMessages(), interconnectGraph, scheduleName, schedulePeriod, InterconnectGraph::setUsage(), and solvedFlag.

| NoCScheduleProblem::~NoCScheduleProblem | ( | ) |
~ScheduleProblem () Destructor.
References interconnectGraph, and messages.
Member Function Documentation
| void NoCScheduleProblem::addScheduleSwitchConstraint | ( | NoCScheduleSwitchConstraint & | s | ) | [inline] |
References scheduleSwitchConstraints.
Referenced by SetOfNoCScheduleProblems::SetOfNoCScheduleProblems().
| void NoCScheduleProblem::constrainOtherSchedulingProblem | ( | NoCScheduleProblem * | p | ) |
constrainOtherSchedulingProblem () The function marks slots on links of the interconnect graph in the schedule problem p which it uses in its own schedule.
It is possible that the overlap between the schedules contains multiple periods of the source and/or destination schedule.
References _NoCScheduleSwitchConstraint::from, SlotTable::getEndTime(), getInterconnectGraph(), InterconnectGraph::getLink(), Link::getName(), getName(), InterconnectGraph::getSlotTablePeriod(), SlotTable::getStartTime(), SlotTable::getUsedSlotsOfSchedule(), interconnectGraph, isProblemSolved(), InterconnectGraph::linksBegin(), InterconnectGraph::linksEnd(), _NoCScheduleSwitchConstraint::overlap, schedulePeriod, scheduleSwitchConstraints, Link::setUsedSlots(), Link::slotTableSeqBegin(), Link::slotTableSeqEnd(), and _NoCScheduleSwitchConstraint::to.

| void NoCScheduleProblem::constructMessages | ( | CNode * | messagesNode, | |
| InterconnectGraph * | archGraph | |||
| ) | [private] |
constructMessages () The function constructs a list of all messages from an XML document.
References CGetAttribute(), CGetChildNode(), CNextNode(), Node::getId(), InterconnectGraph::getNode(), Message::getSeqNr(), Message::getStreamId(), messages, Message::setDstNodeId(), Message::setDuration(), Message::setNextMessageInStream(), Message::setPreviousMessageInStream(), Message::setSeqNr(), Message::setSize(), Message::setSrcNodeId(), Message::setStartTime(), and Message::setStreamId().
Referenced by NoCScheduleProblem().

| InterconnectGraph* NoCScheduleProblem::getInterconnectGraph | ( | ) | const [inline] |
References interconnectGraph.
Referenced by constrainOtherSchedulingProblem(), SDFconvertToHTML::convertInterconnectUsage(), SetOfNoCScheduleProblems::createNetworkUsageNode(), NoCScheduler::getInterconnectGraph(), NoCScheduler::markPreferedSlotsOnLinks(), and NoCMapping::updateBandwidthAllocations().
| Messages& NoCScheduleProblem::getMessages | ( | ) | [inline] |
References messages.
Referenced by RandomNoCScheduler::putMessagesInRandomOrder(), NoCScheduler::ripupScheduleEntity(), NoCScheduler::ripupStream(), and NoCScheduler::sortMessagesOnCost().
| CString NoCScheduleProblem::getName | ( | ) | const [inline] |
References scheduleName.
Referenced by NoCScheduler::assignSchedulingEntities(), constrainOtherSchedulingProblem(), SDFconvertToHTML::convertInterconnectMapping(), SetOfNoCScheduleProblems::createNetworkMappingNode(), NoCScheduler::schedule(), and SetOfNoCScheduleProblems::SetOfNoCScheduleProblems().
| bool NoCScheduleProblem::isProblemSolved | ( | ) | const [inline] |
References solvedFlag.
Referenced by constrainOtherSchedulingProblem(), NoCScheduler::markPreferedSlotsOnLinks(), and NoCScheduler::schedule().
| void NoCScheduleProblem::markPreferedSlots | ( | InterconnectGraph * | g | ) |
markPreferedSlots () The function marks all slots in all links of the interconnect graph as prefered slots (with the maximal preference level - UINT_MAX) when this slot is used in the corresponding link of the interconnect graph g.
References Link::getId(), InterconnectGraph::getLink(), InterconnectGraph::getSlotTableSize(), interconnectGraph, InterconnectGraph::linksBegin(), InterconnectGraph::linksEnd(), and Link::preferredSlots.
Referenced by NoCScheduler::markPreferedSlotsOnLinks().

| MessagesIter NoCScheduleProblem::messagesBegin | ( | ) | [inline] |
References messages.
Referenced by SetOfNoCScheduleProblems::createNetworkMappingNode(), and NoCScheduler::messagesBegin().
| MessagesCIter NoCScheduleProblem::messagesBegin | ( | ) | const [inline] |
References messages.
| MessagesIter NoCScheduleProblem::messagesEnd | ( | ) | [inline] |
References messages.
Referenced by SetOfNoCScheduleProblems::createNetworkMappingNode(), and NoCScheduler::messagesEnd().
| MessagesCIter NoCScheduleProblem::messagesEnd | ( | ) | const [inline] |
References messages.
| uint NoCScheduleProblem::nrSchedulingEntities | ( | ) | const [inline] |
References schedulingEntities.
Referenced by NoCScheduler::nrSchedulingEntities().
| NoCScheduleSwitchConstraintsIter NoCScheduleProblem::scheduleSwitchConstraintsBegin | ( | ) | [inline] |
References scheduleSwitchConstraints.
Referenced by SDFconvertToHTML::convertInterconnectMapping().
| NoCScheduleSwitchConstraintsIter NoCScheduleProblem::scheduleSwitchConstraintsEnd | ( | ) | [inline] |
References scheduleSwitchConstraints.
Referenced by SDFconvertToHTML::convertInterconnectMapping().
| NoCSchedulingEntitiesIter NoCScheduleProblem::schedulingEntitiesBegin | ( | ) | [inline] |
References schedulingEntities.
Referenced by NoCScheduler::schedulingEntitiesBegin().
| NoCSchedulingEntitiesIter NoCScheduleProblem::schedulingEntitiesEnd | ( | ) | [inline] |
References schedulingEntities.
Referenced by NoCScheduler::schedulingEntitiesEnd().
| bool NoCScheduleProblem::setSolvedFlag | ( | bool | flag | ) | [inline] |
Member Data Documentation
Messages NoCScheduleProblem::messages [private] |
Referenced by constructMessages(), getMessages(), messagesBegin(), messagesEnd(), and ~NoCScheduleProblem().
CString NoCScheduleProblem::scheduleName [private] |
Referenced by getName(), and NoCScheduleProblem().
TTime NoCScheduleProblem::schedulePeriod [private] |
Referenced by constrainOtherSchedulingProblem(), and NoCScheduleProblem().
Referenced by nrSchedulingEntities(), schedulingEntitiesBegin(), and schedulingEntitiesEnd().
bool NoCScheduleProblem::solvedFlag [private] |
Referenced by isProblemSolved(), NoCScheduleProblem(), and setSolvedFlag().
The documentation for this class was generated from the following files:

