32 #ifndef __SIMPLE_LT_INITIATOR1_DMI_H__ 33 #define __SIMPLE_LT_INITIATOR1_DMI_H__ 60 unsigned int nrOfTransactions = 0x5,
61 unsigned int baseAddress = 0x0) :
107 std::cout <<
name() <<
": Send write request: A = 0x" 109 <<
", D = 0x" <<
mData << std::dec
113 std::cout <<
name() <<
": Send read request: A = 0x" 114 << std::hex << (
unsigned int)trans.
get_address() << std::dec
122 std::cout <<
name() <<
": Received error response @ " 126 std::cout <<
name() <<
": Received ok response";
128 std::cout <<
": D = 0x" << std::hex <<
mData << std::dec;
136 transaction_type trans;
186 socket->b_transport(trans, t);
197 if ( socket->get_direct_mem_ptr(trans, tmp)
228 std::cout <<
name() <<
": got DMI pointer invalidation" 233 std::cout <<
name() <<
": ignored DMI invalidation for addresses " 234 << std::hex << start_range <<
", " 235 << end_range << std::dec
244 std::cout <<
name() <<
", <<SimpleLTInitiator1>>:" << std::endl
246 unsigned char data[32];
248 transaction_type trans;
254 unsigned int n = socket->transport_dbg(trans);
256 std::cout <<
"Mem @" << std::hex <<
mBaseAddress << std::endl;
273 for (
unsigned int i=0;
i<
n;
i+=4)
275 for (
int k=e_start;
k!=e_end;
k+=e_increment)
277 std::cout << std::setw(2) << std::setfill(
'0')
282 std::cout << std::endl;
291 std::cout <<
"ERROR: debug transaction didn't give data." << std::endl;
293 std::cout << std::dec << std::endl;
void set_response_status(const tlm_response_status response_status)
void set_streaming_width(const unsigned int streaming_width)
sc_core::sc_time get_write_latency() const
bool is_write_allowed() const
void set_start_address(sc_dt::uint64 addr)
initiator_socket_type socket
tlm::tlm_initiator_socket initiator_socket_type
unsigned int mTransactionCount
bool is_dmi_allowed() const
const char * name() const
unsigned int mBaseAddress
tlm::tlm_bw_transport_if bw_interface_type
SC_HAS_PROCESS(SimpleLTInitiator1_dmi)
unsigned int mNrOfTransactions
unsigned char * get_dmi_ptr() const
sc_dt::uint64 get_address() const
void set_address(const sc_dt::uint64 address)
sc_dt::uint64 get_start_address() const
void logStartTransation(transaction_type &trans)
void invalidate(dmi_type &dmiData)
sc_core::sc_event mEndEvent
tlm::tlm_fw_transport_if fw_interface_type
tlm::tlm_sync_enum sync_enum_type
SimpleLTInitiator1_dmi(sc_core::sc_module_name name, unsigned int nrOfTransactions=0x5, unsigned int baseAddress=0x0)
bool host_has_little_endianness()
void set_data_ptr(unsigned char *data)
sync_enum_type nb_transport_bw(transaction_type &trans, phase_type &phase, sc_core::sc_time &t)
void logEndTransaction(transaction_type &trans)
void invalidate_direct_mem_ptr(sc_dt::uint64 start_range, sc_dt::uint64 end_range)
const sc_time & sc_time_stamp()
bool initTransaction(transaction_type &trans)
tlm_response_status get_response_status() const
const sc_time SC_ZERO_TIME
void set_dmi_allowed(bool dmi_allowed)
sc_core::sc_time get_read_latency() const
tlm_command get_command() const
void set_command(const tlm_command command)
sc_dt::uint64 get_end_address() const
void set_data_length(const unsigned int length)
void set_end_address(sc_dt::uint64 addr)
tlm::tlm_phase phase_type
tlm::tlm_generic_payload transaction_type