71 #if PN_BIG_ENDIAN == 1
73 return ((
THalfWord)data[adr - base] << 8) + data[adr - base + 1];
76 return ((
TWord)data[adr - base] << 24) + ((
TWord)data[adr - base + 1] << 16) +
77 ((
TWord)data[adr - base + 2] << 8) + ((
TWord)data[adr - base + 3]);
89 #if PN_BIG_ENDIAN == 1
91 data[adr - base] = (
TByte) (val >> 8);
92 data[adr - base + 1] = (
TByte)val;
95 data[adr - base] = (
TByte) (val >> 24);
96 data[adr - base + 1] = (
TByte) (val >> 16);
97 data[adr - base + 2] = (
TByte) (val >> 8);
98 data[adr - base + 3] = (
TByte)val;
111 *dst = val & 0xffffffff;
113 *(dst+1) = (
TDWord)(val >> 32);
119 bool ReadFile (
const char *filename,
const bool dumpVHDL);
128 void DumpVHDL (
const char *filename,
unsigned size);
144 #ifndef __SYNTHESIS__
174 wr_setup(5), rd_setup(5), wr_delay (0), rd_delay (0) {
190 void SetDelays (uint rd_setup, uint rd_delay, uint wr_setup, uint wr_delay);
CLabel(TWord _adr, const char *_name)
Definition: memory.cpp:53
TWord adr
Definition: memory.h:54
char name[LABEL_LEN+1]
Definition: memory.h:55
CMemory(TWord base, TWord size)
Definition: memory.h:62
void WriteHalfWord(TWord adr, THalfWord val)
Definition: memory.h:101
void Dump(TWord adr0=0, TWord adr1=0xffffffff)
Definition: memory.cpp:373
void DumpVHDL(const char *filename, unsigned size)
Definition: memory.cpp:301
void WriteDWord(TWord adr, TDWord val)
Definition: memory.h:109
void WriteByte(TWord adr, TByte val)
Definition: memory.h:88
TWord sig_adr_
Definition: memory.h:141
bool ReadFile(const char *filename, const bool dumpVHDL)
Definition: memory.cpp:121
TWord size_
Definition: memory.h:136
void Init(TWord base, TWord size)
Definition: memory.cpp:66
char * GetDumpStr(TWord adr)
Definition: memory.cpp:346
TWord base_
Definition: memory.h:136
void WriteWord(TWord adr, TWord val)
Definition: memory.h:105
void DumpSignature(const char *filename)
Definition: memory.cpp:393
THalfWord ReadHalfWord(TWord adr)
Definition: memory.h:80
CMemory()
Definition: memory.h:61
TWord sig_adr_end_
Definition: memory.h:141
bool sig_found_
Definition: memory.h:140
TWord tohost_adr
Definition: memory.h:132
TWord ReadWord(TWord adr)
Definition: memory.h:81
std::vector< CLabel > label_list_
Definition: memory.h:138
TByte * data_
Definition: memory.h:135
char * GetDumpStrVHDL(TWord adr)
Definition: memory.cpp:363
TByte ReadByte(TWord adr)
Definition: memory.h:70
TDWord ReadDWord(TWord adr)
Definition: memory.h:82
int FindLabel(TWord adr)
Definition: memory.cpp:334
bool IsAdressed(TWord adr)
Definition: memory.h:67
TWord tdata_adr
Definition: memory.h:131
~CMemory()
Definition: memory.cpp:62
Class containing the interface for Wishbone slave peripherals.
Definition: paranut-peripheral.h:75
sc_in< bool > wb_rst_i
WB Reset input.
Definition: paranut-peripheral.h:81
sc_in_clk wb_clk_i
WB Clock input.
Definition: paranut-peripheral.h:80
Simulation ready configurable Wishbone slave memory.
Definition: memory.h:159
MWBMemory(const sc_module_name &name, TWord base, TWord size)
Create a Wishbone slave memory.
Definition: memory.h:173
void SetDelays(uint rd_setup, uint rd_delay, uint wr_setup, uint wr_delay)
Set read and write setup and delay clock cycles.
Definition: memory.cpp:418
void MainThread()
Main SC_THREAD implements the Wishbone slave interface.
Definition: memory.cpp:471
#define CFG_NUT_MEM_SIZE
System memory size.
Definition: paranut-config.h:121
unsigned TWord
Word type (32 Bit).
Definition: base.h:147
unsigned short THalfWord
Half word type (16 Bit).
Definition: base.h:145
unsigned long long TDWord
Double word type (64 Bit).
Definition: base.h:149
unsigned char TByte
Byte type (8 Bit).
Definition: base.h:143
#define LABEL_LEN
Definition: memory.h:44
class CMemory * mainMemory
Definition: memory.cpp:48
The MPeripheral class containing the interface for Wishbone slave peripherals.