32template <>
class scv_extensions<
tlm::tlm_command> :
public scv_enum_base<tlm::tlm_command> {
34 SCV_ENUM_CTOR(tlm::tlm_command) {
35 SCV_ENUM(tlm::TLM_READ_COMMAND);
36 SCV_ENUM(tlm::TLM_WRITE_COMMAND);
37 SCV_ENUM(tlm::TLM_IGNORE_COMMAND);
41template <>
class scv_extensions<
tlm::tlm_response_status> :
public scv_enum_base<tlm::tlm_response_status> {
43 SCV_ENUM_CTOR(tlm::tlm_response_status) {
44 SCV_ENUM(tlm::TLM_OK_RESPONSE);
45 SCV_ENUM(tlm::TLM_INCOMPLETE_RESPONSE);
46 SCV_ENUM(tlm::TLM_GENERIC_ERROR_RESPONSE);
47 SCV_ENUM(tlm::TLM_ADDRESS_ERROR_RESPONSE);
48 SCV_ENUM(tlm::TLM_COMMAND_ERROR_RESPONSE);
49 SCV_ENUM(tlm::TLM_BURST_ERROR_RESPONSE);
50 SCV_ENUM(tlm::TLM_BYTE_ENABLE_ERROR_RESPONSE);
54template <>
class scv_extensions<
tlm::tlm_gp_option> :
public scv_enum_base<tlm::tlm_gp_option> {
56 SCV_ENUM_CTOR(tlm::tlm_gp_option) {
57 SCV_ENUM(tlm::TLM_MIN_PAYLOAD);
58 SCV_ENUM(tlm::TLM_FULL_PAYLOAD);
59 SCV_ENUM(tlm::TLM_FULL_PAYLOAD_ACCEPTED);
63template <>
class scv_extensions<
tlm::scc::scv::tlm_phase_enum> :
public scv_enum_base<tlm::scc::scv::tlm_phase_enum> {
65 SCV_ENUM_CTOR(tlm::scc::scv::tlm_phase_enum) {
66 SCV_ENUM(tlm::scc::scv::UNINITIALIZED_PHASE);
67 SCV_ENUM(tlm::scc::scv::BEGIN_REQ);
68 SCV_ENUM(tlm::scc::scv::END_REQ);
69 SCV_ENUM(tlm::scc::scv::BEGIN_RESP);
70 SCV_ENUM(tlm::scc::scv::END_RESP);
71 SCV_ENUM(tlm::scc::scv::CUSTOM1);
72 SCV_ENUM(tlm::scc::scv::CUSTOM2);
73 SCV_ENUM(tlm::scc::scv::CUSTOM3);
74 SCV_ENUM(tlm::scc::scv::CUSTOM4);
75 SCV_ENUM(tlm::scc::scv::CUSTOM5);
76 SCV_ENUM(tlm::scc::scv::CUSTOM6);
80template <>
class scv_extensions<
tlm::tlm_sync_enum> :
public scv_enum_base<tlm::tlm_sync_enum> {
82 SCV_ENUM_CTOR(tlm::tlm_sync_enum) {
83 SCV_ENUM(tlm::TLM_ACCEPTED);
84 SCV_ENUM(tlm::TLM_UPDATED);
85 SCV_ENUM(tlm::TLM_COMPLETED);
89template <>
class scv_extensions<
tlm::scc::scv::tlm_gp_data> :
public scv_extensions_base<tlm::scc::scv::tlm_gp_data> {
91 scv_extensions<sc_dt::uint64> address;
92 scv_extensions<tlm::tlm_command> command;
93 scv_extensions<unsigned char*> data;
94 scv_extensions<unsigned int> data_length;
95 scv_extensions<tlm::tlm_response_status> response_status;
96 scv_extensions<bool> dmi_allowed;
97 scv_extensions<unsigned char*> byte_enable;
98 scv_extensions<unsigned int> byte_enable_length;
99 scv_extensions<unsigned int> streaming_width;
100 scv_extensions<tlm::tlm_gp_option> gp_option;
101 scv_extensions<uintptr_t> uid;
108 SCV_FIELD(data_length);
109 SCV_FIELD(response_status);
110 SCV_FIELD(dmi_allowed);
111 SCV_FIELD(byte_enable);
112 SCV_FIELD(byte_enable_length);
113 SCV_FIELD(streaming_width);
114 SCV_FIELD(gp_option);
119template <>
class scv_extensions<
tlm::tlm_dmi::dmi_access_e> :
public scv_enum_base<tlm::tlm_dmi::dmi_access_e> {
121 SCV_ENUM_CTOR(tlm::tlm_dmi::dmi_access_e) {
122 SCV_ENUM(tlm::tlm_dmi::DMI_ACCESS_NONE);
123 SCV_ENUM(tlm::tlm_dmi::DMI_ACCESS_READ);
124 SCV_ENUM(tlm::tlm_dmi::DMI_ACCESS_WRITE);
125 SCV_ENUM(tlm::tlm_dmi::DMI_ACCESS_READ_WRITE);
129template <>
class scv_extensions<
tlm::scc::scv::tlm_dmi_data> :
public scv_extensions_base<tlm::scc::scv::tlm_dmi_data> {
131 scv_extensions<unsigned char*> dmi_ptr;
132 scv_extensions<sc_dt::uint64> dmi_start_address;
133 scv_extensions<sc_dt::uint64> dmi_end_address;
134 scv_extensions<tlm::tlm_dmi::dmi_access_e> dmi_access;
135 scv_extensions<sc_dt::uint64> dmi_read_latency;
136 scv_extensions<sc_dt::uint64> dmi_write_latency;
140 SCV_FIELD(dmi_start_address);
141 SCV_FIELD(dmi_end_address);
142 SCV_FIELD(dmi_access);
143 SCV_FIELD(dmi_read_latency);
144 SCV_FIELD(dmi_write_latency);