Go to the documentation of this file.
34 #ifndef TTA_DIRECT_ACCESS_MEMORY_HH
35 #define TTA_DIRECT_ACCESS_MEMORY_HH
60 Word
MAUSize,
bool littleEndian);
void fastWrite2MAUsBE(ULongWord address, ULongWord data)
Word MAUSize_
Size of the minimum adressable unit.
void fastRead4MAUsBE(ULongWord address, ULongWord &data)
virtual void fillWithZeros()
void fastWrite4MAUsLE(ULongWord address, ULongWord data)
void fastReadMAU(ULongWord address, ULongWord &data)
void write(ULongWord address, Memory::MAU data) override
Word wordSize_
Size of the natural word as MAUs.
void fastWrite4MAUsBE(ULongWord address, ULongWord data)
virtual ULongWord MAUSize()
Word start_
Starting point of the address space.
void fastWrite2MAUsLE(ULongWord address, ULongWord data)
void fastRead4MAUsLE(ULongWord address, ULongWord &data)
Memory::MAU read(ULongWord address) override
DirectAccessMemory & operator=(const DirectAccessMemory &)
Assignment not allowed.
virtual Memory::MAU read(ULongWord address)=0
MinimumAddressableUnit MAU
void fastWriteMAU(ULongWord address, ULongWord data)
Word end_
End point of the address space.
void writeBE(ULongWord address, int count, ULongWord data) override
virtual void write(ULongWord address, MAU data)=0
MemoryContents * data_
Contains MAUs of the memory model, that is, the actual data of the memory.
virtual void advanceClock()
Word mask_
Mask bit pattern for unpacking IntWord to MAUs.
Word MAUSize3_
precalculated MAUSize_ * 3
void fastRead2MAUsBE(ULongWord address, ULongWord &data)
virtual ~DirectAccessMemory()
DirectAccessMemory(ULongWord start, ULongWord end, Word MAUSize, bool littleEndian)
void fastRead2MAUsLE(ULongWord address, ULongWord &data)
Word MAUSize2_
precalculated MAUSize_ * 2
virtual ULongWord start()