SystemC-Components-Test/tests/sim_performance/pkt_sender.h
Eyck Jentzsch 406e04377d Merge branch 'master' into develop
Conflicts:
	.cproject
	.settings/language.settings.xml
	CMakeLists.txt
	examples/simple_system/gpio.cpp
	examples/simple_system/plic.cpp
	sc-components
2021-06-01 18:28:41 +02:00

38 lines
1.2 KiB
C++

/*
* blocks.h
*
* Created on: 04.05.2020
* Author: eyck
*/
#ifndef _SIM_PERFORMANCE_PKT_SENDER_H_
#define _SIM_PERFORMANCE_PKT_SENDER_H_
#include <systemc>
#include "packet.h"
#include <tlm/scc/initiator_mixin.h>
#include <tlm/scc/target_mixin.h>
class pkt_sender : sc_core::sc_module {
public:
sc_core::sc_in<bool> clk_i{"clk_i"};
tlm::scc::initiator_mixin<tlm::tlm_initiator_socket<32>> isck;
tlm::scc::target_mixin<tlm::tlm_target_socket<32>> tsck;
pkt_sender(sc_core::sc_module_name const&, unsigned dim, unsigned pos_x, unsigned pos_y, unsigned count);
virtual ~pkt_sender() = default;
sc_core::sc_event const& get_finish_event(){return finish_evt;}
private:
void run();
void gen_routing(std::vector<uint8_t>& route_vec);
void received();
tlm_utils::peq_with_get<tlm::tlm_generic_payload> bw_peq, fw_peq;
tlm::tlm_sync_enum nb_fw(tlm::tlm_generic_payload&, tlm::tlm_phase&, sc_core::sc_time&);
tlm::tlm_sync_enum nb_bw(tlm::tlm_generic_payload&, tlm::tlm_phase&, sc_core::sc_time&);
sc_core::sc_event finish_evt;
std::pair<unsigned, unsigned> my_pos;
const unsigned dim, count;
};
#endif /* _SIM_PERFORMANCE_PKT_SENDER_H_ */