17#ifndef _BUS_OCP_TLM_H_
18#define _BUS_OCP_TLM_H_
27std::ostream& operator<<(std::ostream& os, tlm::tlm_generic_payload
const& t);
29enum class cmd_e : uint8_t { IDLE, WRITE, READ, READEX, READ_LINKED, WRITE_NON_POSTED, WRITE_CONDITIONAL, BROADCAST };
31enum class resp_e : uint8_t { NULL_, DVA, FAIL, ERROR };
33struct ocp_extension :
public tlm::tlm_extension<ocp_extension> {
35 ocp_extension() =
default;
37 ocp_extension(
const ocp_extension& o) =
default;
42 tlm::tlm_extension_base*
clone()
const override;
47 void copy_from(tlm::tlm_extension_base
const& ext)
override;
49 cmd_e get_mcmd()
const {
return mcmd; }
51 void set_mcmd(cmd_e mCmd) { mcmd = mCmd; }
53 resp_e get_sresp()
const {
return sresp; }
55 void set_sresp(resp_e sres) { this->sresp = sresp; }
58 cmd_e mcmd{cmd_e::IDLE};
59 resp_e sresp{resp_e::NULL_};
65 auto const* ocp_ext =
dynamic_cast<const ocp_extension*
>(&ext);
TLM2.0 components modeling OCP.
void copy_from(tlm::tlm_extension_base const &ext) override
deep copy all values from ext
tlm::tlm_extension_base * clone() const override
the clone function to create deep copies of