OpenASIP
2.0
|
#include <DCMFUResourceConflictDetector.hh>
Public Member Functions | |
DCMFUResourceConflictDetector (const TTAMachine::FunctionUnit &fu) | |
virtual | ~DCMFUResourceConflictDetector () |
virtual bool | issueOperation (OperationID id) |
virtual bool | advanceCycle () |
virtual void | reset () |
bool | issueOperationInline (OperationID id) |
bool | advanceCycleInline () |
virtual OperationID | operationID (const TCEString &operationName) const |
Public Member Functions inherited from FUResourceConflictDetector | |
FUResourceConflictDetector () | |
virtual | ~FUResourceConflictDetector () |
virtual void | endClock () |
virtual void | advanceClock () |
virtual bool | isIdle () |
Public Member Functions inherited from ClockedState | |
ClockedState () | |
virtual | ~ClockedState () |
Private Attributes | |
FUCollisionMatrixIndex | collisionMatrices_ |
The reservation tables of operations. More... | |
CollisionMatrix | globalCollisionMatrix_ |
The global collision matrix. More... | |
const TTAMachine::FunctionUnit & | fu_ |
The modeled FU. More... | |
Additional Inherited Members | |
Public Types inherited from FUResourceConflictDetector | |
typedef int | OperationID |
Type for identifying operations in the conflict detector interface. More... | |
Protected Attributes inherited from FUResourceConflictDetector | |
OperationIDIndex * | operationIndices_ |
Map for finding indices for operations quickly. More... | |
A Dynamic Collision Matrix (DCM) implementation of an FU resource conflict detector.
Definition at line 55 of file DCMFUResourceConflictDetector.hh.
DCMFUResourceConflictDetector::DCMFUResourceConflictDetector | ( | const TTAMachine::FunctionUnit & | fu | ) |
Constructor.
fu | The function unit to detect conflicts for. |
InvalidData | If the model could not be built from the given FU. |
Definition at line 47 of file DCMFUResourceConflictDetector.cc.
|
virtual |
|
virtual |
Simulates a cycle advance and reports a conflict if detected.
Reimplemented from FUResourceConflictDetector.
Definition at line 79 of file DCMFUResourceConflictDetector.cc.
References advanceCycleInline().
bool DCMFUResourceConflictDetector::advanceCycleInline | ( | ) |
Referenced by advanceCycle().
|
virtual |
Issues an operation and reports a conflict if detected.
id | The id of the operation to issue. |
Reimplemented from FUResourceConflictDetector.
Definition at line 69 of file DCMFUResourceConflictDetector.cc.
References issueOperationInline().
bool DCMFUResourceConflictDetector::issueOperationInline | ( | OperationID | id | ) |
Referenced by issueOperation().
|
virtual |
Returns an operation id for the given operation.
Operation IDs are used in the interface for optimizing the access. This method converts OSAL Operations to operation IDs.
operation | The OSAL Operation to find ID for. |
Reimplemented from FUResourceConflictDetector.
Definition at line 93 of file DCMFUResourceConflictDetector.cc.
References __func__, StringTools::ciEqual(), fu_, TTAMachine::HWOperation::name(), TTAMachine::FunctionUnit::operation(), and TTAMachine::FunctionUnit::operationCount().
|
virtual |
Sets the state of the detector to its initial state.
This means that the FU state is assumed to be what it is in powerup.
Reimplemented from FUResourceConflictDetector.
Definition at line 112 of file DCMFUResourceConflictDetector.cc.
References globalCollisionMatrix_, and BitMatrix::setAllToZero().
|
private |
The reservation tables of operations.
Definition at line 72 of file DCMFUResourceConflictDetector.hh.
|
private |
The modeled FU.
Definition at line 76 of file DCMFUResourceConflictDetector.hh.
Referenced by operationID().
|
private |
The global collision matrix.
Definition at line 74 of file DCMFUResourceConflictDetector.hh.
Referenced by reset().