17 #ifndef TLM_GP_DATA_EXT_H_
18 #define TLM_GP_DATA_EXT_H_
25 #include <tlm/scc/scv/tlm_gp_data.h>
32 template <>
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);
41 template <>
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);
54 template <>
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);
63 template <>
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);
80 template <>
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);
89 template <>
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;
93 scv_extensions<unsigned char*> data;
94 scv_extensions<unsigned int> data_length;
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;
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);
119 template <>
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);
129 template <>
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;
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);
SystemC Verification Library (SCV) Transaction Recording.