OpenASIP
2.0
|
#include <OutputFUResource.hh>
Public Member Functions | |
virtual | ~OutputFUResource () |
OutputFUResource (const std::string &name, int opCount, int nopSlotWeight) | |
virtual bool | canAssign (const int cycle, const MoveNode &node) const override |
virtual bool | canAssign (const int cycle, const MoveNode &node, const TTAMachine::Port &resultPort) const |
virtual void | assign (const int cycle, MoveNode &node) override |
virtual void | unassign (const int cycle, MoveNode &node) override |
virtual bool | isOutputFUResource () const override |
![]() | |
FUResource (const std::string &name, int operationCount, int nopSlotWeight, unsigned int initiationInterval=0) | |
virtual | ~FUResource () |
virtual bool | isInUse (const int cycle) const override |
virtual bool | isAvailable (const int cycle) const override |
virtual bool | operator< (const SchedulingResource &other) const override |
![]() | |
virtual | ~SchedulingResource () |
SchedulingResource (const std::string &name, const unsigned int ii=0) | |
virtual int | relatedResourceGroupCount () const |
virtual int | dependentResourceGroupCount () const |
int | relatedResourceCount (const int group) const |
int | dependentResourceCount (const int group) const |
virtual void | addToRelatedGroup (const int group, SchedulingResource &resource) |
virtual void | addToDependentGroup (const int group, SchedulingResource &resource) |
virtual SchedulingResource & | relatedResource (const int group, const int index) const |
virtual SchedulingResource & | dependentResource (const int group, const int index) const |
virtual bool | hasRelatedResource (const SchedulingResource &sResource) const |
virtual bool | hasDependentResource (const SchedulingResource &sResource) const |
virtual const std::string & | name () const |
virtual int | useCount () const |
virtual void | increaseUseCount () |
virtual void | decreaseUseCount () |
virtual bool | isInputPSocketResource () const |
virtual bool | isOutputPSocketResource () const |
virtual bool | isShortImmPSocketResource () const |
virtual bool | isInputFUResource () const |
virtual bool | isExecutionPipelineResource () const |
virtual bool | isBusResource () const |
virtual bool | isSegmentResource () const |
virtual bool | isIUResource () const |
virtual bool | isITemplateResource () const |
int | instructionIndex (int cycle) const |
void | setInitiationInterval (unsigned int ii) |
int | initiationInterval () const |
virtual void | clear () |
virtual void | setMaxCycle (unsigned int) |
Protected Member Functions | |
virtual bool | validateDependentGroups () override |
virtual bool | validateRelatedGroups () override |
Private Member Functions | |
OutputFUResource (const OutputFUResource &) | |
OutputFUResource & | operator= (const OutputFUResource &) |
Additional Inherited Members | |
![]() | |
int | initiationInterval_ |
An interface for scheduling resources of Resource Model The derived class OutputFUResource
Definition at line 53 of file OutputFUResource.hh.
|
virtual |
OutputFUResource::OutputFUResource | ( | const std::string & | name, |
int | opCount, | ||
int | nopSlotWeight | ||
) |
Constructor with resource name
name | Name of resource |
Definition at line 49 of file OutputFUResource.cc.
|
private |
|
overridevirtual |
Assign resource to given node for given cycle.
There is actually nothing assigned here, only test that the OutputPSocket of given FU can be assigned.
cycle | Cycle to assign |
node | MoveNode assigned |
Reimplemented from FUResource.
Definition at line 78 of file OutputFUResource.cc.
References ExecutionPipelineResource::assignSource(), SchedulingResource::dependentResource(), SchedulingResource::dependentResourceCount(), SchedulingResource::dependentResourceGroupCount(), SchedulingResource::increaseUseCount(), and SchedulingResource::isExecutionPipelineResource().
Referenced by OutputFUBroker::assign().
|
overridevirtual |
Not to be used, aborts!
Use version with third OutputPSocket operand!
Reimplemented from FUResource.
Definition at line 64 of file OutputFUResource.cc.
References abortWithError.
Referenced by OutputFUBroker::allAvailableResources().
|
virtual |
Return true if resource can be assigned for given node in given cycle
cycle | Cycle to test |
node | MoveNode to test |
Definition at line 128 of file OutputFUResource.cc.
References ExecutionPipelineResource::canAssignSource(), SchedulingResource::dependentResource(), SchedulingResource::dependentResourceCount(), SchedulingResource::dependentResourceGroupCount(), and SchedulingResource::isExecutionPipelineResource().
|
overridevirtual |
Allways return true
Reimplemented from SchedulingResource.
Definition at line 153 of file OutputFUResource.cc.
|
private |
|
overridevirtual |
Unassign resource from given node for given cycle.
It only tests that OutputPSocket to be unassigned is connected to given FU.
cycle | Cycle to remove assignment from |
node | MoveNode to remove assignment from |
Reimplemented from FUResource.
Definition at line 103 of file OutputFUResource.cc.
References SchedulingResource::decreaseUseCount(), SchedulingResource::dependentResource(), SchedulingResource::dependentResourceCount(), SchedulingResource::dependentResourceGroupCount(), SchedulingResource::isExecutionPipelineResource(), and ExecutionPipelineResource::unassignSource().
Referenced by OutputFUBroker::unassign().
|
overrideprotectedvirtual |
Tests if all referred resources in dependent groups are of proper types
Reimplemented from SchedulingResource.
Definition at line 164 of file OutputFUResource.cc.
References SchedulingResource::dependentResource(), SchedulingResource::dependentResourceCount(), SchedulingResource::dependentResourceGroupCount(), SchedulingResource::isExecutionPipelineResource(), SchedulingResource::isInputPSocketResource(), and SchedulingResource::isOutputPSocketResource().
|
overrideprotectedvirtual |
Tests if related resource groups are empty
Reimplemented from SchedulingResource.
Definition at line 183 of file OutputFUResource.cc.
References SchedulingResource::relatedResourceCount(), and SchedulingResource::relatedResourceGroupCount().