34#ifndef TTA_UNIVERSAL_MACHINE_HH
35#define TTA_UNIVERSAL_MACHINE_HH
44#define DATA_MEMORY_SIZE (static_cast<unsigned int>(4096)*1024*1024)
106#define UM_BUS_NAME "universal_bus"
107#define UM_SEGMENT_NAME "universal_segment"
108#define UM_INPUT_SOCKET_NAME "universal_input_socket"
109#define UM_OUTPUT_SOCKET_NAME "universal_output_socket"
110#define UM_BOOLEAN_RF_NAME "universal_boolean_rf"
111#define UM_BOOLEAN_RF_WRITE_PORT "universal_boolean_write_port"
112#define UM_BOOLEAN_RF_READ_PORT "universal_boolean_read_port"
113#define UM_INTEGER_URF_NAME "universal_integer_rf"
114#define UM_INTEGER_URF_WRITE_PORT "universal_rf_write_port"
115#define UM_INTEGER_URF_READ_PORT "universal_rf_read_port"
116#define UM_DOUBLE_URF_NAME "universal_double_rf"
117#define UM_DOUBLE_URF_WRITE_PORT "universal_drf_write"
118#define UM_DOUBLE_URF_READ_PORT "universal_drf_read"
119#define UM_SPECIAL_RF_NAME "universal_special_rf_return_value"
120#define UM_SPECIAL_RF_WRITE_PORT "universal_special_rf_write"
121#define UM_SPECIAL_RF_READ_PORT "universal_special_rf_read"
122#define UM_UNIVERSAL_FU_NAME "universal_fu"
123#define UM_IMEM_NAME "universal_instructions"
124#define UM_DMEM_NAME "universal_data"
125#define UM_GCU_NAME "universal_gcu"
virtual void addSocket(TTAMachine::Socket &socket)
virtual void addRegisterFile(TTAMachine::RegisterFile &unit)
virtual ~UniversalMachine()
virtual void addBridge(TTAMachine::Bridge &bridge)
TTAMachine::AddressSpace & dataAddressSpace() const
virtual void removeSocket(TTAMachine::Socket &socket)
virtual void removeBus(TTAMachine::Bus &bus)
virtual void addAddressSpace(TTAMachine::AddressSpace &as)
virtual void unsetGlobalControl()
TTAMachine::AddressSpace & instructionAddressSpace() const
virtual void addBus(TTAMachine::Bus &bus)
TTAMachine::RegisterFile & booleanRegisterFile() const
OperationPool opPool
The operation pool instance to use for finding operations.
virtual void addFunctionUnit(TTAMachine::FunctionUnit &unit)
virtual void removeFunctionUnit(TTAMachine::FunctionUnit &unit)
virtual void addInstructionTemplate(TTAMachine::InstructionTemplate &iTemp)
static UniversalMachine & instance()
TTAMachine::RegisterFile & specialRegisterFile() const
UniversalFunctionUnit & universalFunctionUnit() const
virtual void removeRegisterFile(TTAMachine::RegisterFile &unit)
UnboundedRegisterFile & integerRegisterFile() const
TTAMachine::Bus & universalBus() const
bool isBuilt_
Indicates whether the UniversalMachine is built completely.
virtual void deleteAddressSpace(TTAMachine::AddressSpace &as)
virtual bool isUniversalMachine() const
static UniversalMachine * instance_
The singleton instance. Use this instance everywhere. Creating multiple instances of UM is deprecated...
virtual void setGlobalControl(TTAMachine::ControlUnit &unit)
virtual void addImmediateUnit(TTAMachine::ImmediateUnit &unit)
UnboundedRegisterFile & doubleRegisterFile() const
virtual void loadState(const ObjectState *state)