Go to the documentation of this file.
62 const string& name,
int delaySlots,
int globalGuardLatency)
64 delaySlots_(delaySlots),
65 globalGuardLatency_(0),
84 globalGuardLatency_(0),
169 boost::format text = textGen.
text(
172 __FILE__, __LINE__,
__func__, text.str());
212 const string procName =
"ControlUnit::specialRegisterPort";
215 throw OutOfRange(__FILE__, __LINE__, procName);
225 if (srPort != NULL) {
227 if (srPortCount == index) {
233 throw OutOfRange(__FILE__, __LINE__, procName);
246 const string procName =
"ControlUnit::specialRegisterPort";
250 __FILE__, __LINE__, procName,
"Port not found: " +
name);
255 if (srPort == NULL) {
273 const string procName =
"ControlUnit::setReturnAddressPort";
311 const string procName =
"ControlUnit::returnAddressPort";
381 const string procName =
"ControlUnit::loadStateWithoutReferences";
413 for (
int i = 0; i < busNav.
count(); i++) {
419 if (regGuard != NULL) {
bool hasAttribute(const std::string &name) const
@ TXT_INVALID_GUARD_LATENCY
virtual void unsetMachine()
void loadStateWithoutReferences(const ObjectState *state)
virtual TCEString name() const
std::string stringAttribute(const std::string &name) const
virtual bool isRegistered() const
TTAMachine::Machine * machine
the architecture definition of the estimated processor
int delaySlots_
Number of delay instruction slots on the transport pipeline.
FunctionUnit * parentUnit() const
virtual void removePort(Port &port)
int globalGuardLatency_
The global guard latency.
virtual ObjectState * saveState() const
static const std::string OSKEY_RA_PORT
ObjectState attribute key for the name of the return address port.
virtual BaseFUPort * port(const std::string &name) const
virtual void unsetGlobalControl()
virtual boost::format text(int textId)
void setName(const std::string &name)
void internalSetMachine(Machine &machine)
void setGlobalGuardLatency(int latency)
static const std::string OSKEY_GUARD_LATENCY
ObjectState attribute key for the global guard latency.
virtual ControlUnit * copy() const
SpecialRegisterPort * raPort_
The return address port.
SpecialRegisterPort * specialRegisterPort(int index) const
int specialRegisterPortCount() const
ControlUnit(const std::string &name, int delaySlots, int globalGuardLatency)
virtual void loadState(const ObjectState *state)
virtual bool hasPort(const std::string &name) const
virtual void removePort(Port &port)
void unsetReturnAddressPort()
void setDelaySlots(int delaySlots)
virtual int operationPortCount() const
virtual ObjectState * saveState() const
Guard * guard(int index) const
bool hasSpecialRegisterPort(const std::string &name) const
static const std::string OSKEY_DELAY_SLOTS
ObjectState attribute key for the number of delay slots.
virtual int portCount() const
std::string errorMessage() const
virtual void setGlobalControl(ControlUnit &unit)
virtual bool hasOperationPort(const std::string &name) const
virtual void setMachine(Machine &mach)
static bool hasLocalGuardLatencyOfZero(const Machine &machine)
virtual Machine * machine() const
virtual BusNavigator busNavigator() const
void setReturnAddressPort(const SpecialRegisterPort &port)
virtual void loadState(const ObjectState *state)
int intAttribute(const std::string &name) const
void unsetMachineDerived()
ComponentType * item(int index) const
virtual int guardLatency() const
static const std::string OSNAME_CONTROL_UNIT
ObjectState name for ControlUnit.
int globalGuardLatency() const
SpecialRegisterPort * returnAddressPort() const
const RegisterFile * registerFile() const
bool hasReturnAddressPort() const
void setAttribute(const std::string &name, const std::string &value)