|
OpenASIP 2.2
|
#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 |
Public Member Functions inherited from FUResource | |
| 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 |
Public Member Functions inherited from SchedulingResource | |
| 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 | |
Protected Attributes inherited from SchedulingResource | |
| 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().
