@@ -14,6 +14,8 @@ using namespace std;
1414
1515#include " common_func.hpp"
1616
17+ #include " AddressMap.h"
18+
1719void memory_tlm::do_when_read_transaction (unsigned char *& data, unsigned int data_length, sc_dt::uint64 address)
1820{
1921 sc_uint<8 > local_data[8 ];
@@ -28,9 +30,9 @@ void memory_tlm::do_when_read_transaction(unsigned char*& data, unsigned int dat
2830 local_data[i] = 0 ;
2931 }
3032 mem_data = (local_data[7 ], local_data[6 ], local_data[5 ], local_data[4 ], local_data[3 ], local_data[2 ], local_data[1 ], local_data[0 ]);
31- mem_address = address;
33+ mem_address = address - MEM_START ;
3234 mem_we = 0 ;
33- memcpy (data, (mem_array + address), data_length);
35+ memcpy (data, (mem_array + address - MEM_START ), data_length);
3436}
3537
3638void memory_tlm::do_when_write_transaction (unsigned char *&data, unsigned int data_length, sc_dt::uint64 address)
@@ -47,14 +49,14 @@ void memory_tlm::do_when_write_transaction(unsigned char*&data, unsigned int dat
4749 local_data[i] = 0 ;
4850 }
4951 mem_data = (local_data[7 ], local_data[6 ], local_data[5 ], local_data[4 ], local_data[3 ], local_data[2 ], local_data[1 ], local_data[0 ]);
50- mem_address = address;
52+ mem_address = address - MEM_START ;
5153 mem_we = 1 ;
52- memcpy ((mem_array + address), data, data_length);
54+ memcpy ((mem_array + address - MEM_START ), data, data_length);
5355}
5456
5557void memory_tlm::backdoor_write (unsigned char *&data, unsigned int data_length, sc_dt::uint64 address)
5658{
57- memcpy ((mem_array + address), data, data_length);
59+ memcpy ((mem_array + address - MEM_START ), data, data_length);
5860}
5961
6062#endif // MEMORY_TLM_CPP
0 commit comments