OpenASIP
2.0
|
#include <FUResourceConflictDetector.hh>
Public Types | |
typedef int | OperationID |
Type for identifying operations in the conflict detector interface. More... | |
Public Member Functions | |
FUResourceConflictDetector () | |
virtual | ~FUResourceConflictDetector () |
virtual bool | issueOperation (OperationID id) |
virtual void | endClock () |
virtual void | advanceClock () |
virtual bool | advanceCycle () |
virtual bool | isIdle () |
virtual void | reset () |
virtual OperationID | operationID (const TCEString &operationName) const |
![]() | |
ClockedState () | |
virtual | ~ClockedState () |
Protected Attributes | |
OperationIDIndex * | operationIndices_ |
Map for finding indices for operations quickly. More... | |
Interface for classes used for detecting FU resource conflicts.
Definition at line 45 of file FUResourceConflictDetector.hh.
typedef int FUResourceConflictDetector::OperationID |
Type for identifying operations in the conflict detector interface.
Definition at line 49 of file FUResourceConflictDetector.hh.
FUResourceConflictDetector::FUResourceConflictDetector | ( | ) |
Constructor.
Definition at line 42 of file FUResourceConflictDetector.cc.
References reset().
|
virtual |
Destructor.
Definition at line 50 of file FUResourceConflictDetector.cc.
References operationIndices_.
|
virtual |
Simulates a cycle advance and reports a conflict by throwing an exception.
Implements ClockedState.
Definition at line 86 of file FUResourceConflictDetector.cc.
References advanceCycle().
Referenced by SimulationController::simulateCycle().
|
virtual |
Simulates a cycle advance and reports a conflict if detected.
The default implementation always returns true, thus detects no conflicts. This interface is provided for allowing the model to update its state at the point simulation advances to the next cycle.
Reimplemented in ReservationTableFUResourceConflictDetector, ResourceVectorFUResourceConflictDetector, DCMFUResourceConflictDetector, and FSAFUResourceConflictDetector.
Definition at line 78 of file FUResourceConflictDetector.cc.
Referenced by advanceClock().
|
virtual |
Called after advanceClock() has been called to all clocked states.
Implements ClockedState.
Definition at line 95 of file FUResourceConflictDetector.cc.
|
virtual |
Should return true in case the model needs to receive clock advance calls.
Reimplemented in FSAFUResourceConflictDetector.
Definition at line 104 of file FUResourceConflictDetector.cc.
Referenced by SimulationController::simulateCycle().
|
virtual |
Issues an operation and reports a conflict if detected.
The default implementation always returns true, thus detects no conflicts.
id | The id of the operation to issue. |
Reimplemented in ReservationTableFUResourceConflictDetector, DCMFUResourceConflictDetector, ResourceVectorFUResourceConflictDetector, and FSAFUResourceConflictDetector.
Definition at line 64 of file FUResourceConflictDetector.cc.
Referenced by ConflictDetectingOperationExecutor::startOperation().
|
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. |
KeyNotFound | if the operation of given name couldn't be found |
Reimplemented in FSAFUResourceConflictDetector, ReservationTableFUResourceConflictDetector, DCMFUResourceConflictDetector, and ResourceVectorFUResourceConflictDetector.
Definition at line 119 of file FUResourceConflictDetector.cc.
References __func__, operationIndices_, and StringTools::stringToLower().
Referenced by MachineStateBuilder::addVirtualOpcodeSettingPortsToFU().
|
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 ClockedState.
Reimplemented in FSAFUResourceConflictDetector, ResourceVectorFUResourceConflictDetector, ReservationTableFUResourceConflictDetector, and DCMFUResourceConflictDetector.
Definition at line 135 of file FUResourceConflictDetector.cc.
Referenced by FUResourceConflictDetector().
|
protected |
Map for finding indices for operations quickly.
Definition at line 68 of file FUResourceConflictDetector.hh.
Referenced by operationID(), and ~FUResourceConflictDetector().