18 #include <interfaces/tilelink/tl_tlm.h>
22 const std::array<std::string, 3> cmd_str{
"R",
"W",
"I"};
25 template <>
const char* to_char<opcode_e>(
opcode_e v) {
29 case opcode_e::AccessAckData:
30 return "AccessAckData";
31 case opcode_e::PutFullData:
33 case opcode_e::PutPartialData:
34 return "PutPartialData";
35 case opcode_e::AccessAck:
37 case opcode_e::ArithmeticData:
38 return "ArithmeticData";
39 case opcode_e::LogicalData:
41 case opcode_e::Intent:
43 case opcode_e::HintAck:
45 case opcode_e::AcquireBlock:
46 return "AcquireBlock";
47 case opcode_e::AcquirePerm:
51 case opcode_e::GrantData:
53 case opcode_e::GrantAck:
55 case opcode_e::ProbeBlock:
57 case opcode_e::ProbePerm:
59 case opcode_e::ProbeAck:
61 case opcode_e::ProbeAckData:
62 return "ProbeAckData";
63 case opcode_e::Release:
65 case opcode_e::ReleaseData:
67 case opcode_e::ReleaseAck:
74 std::ostream&
operator<<(std::ostream& os,
const tlm::tlm_generic_payload& t) {
75 os <<
"CMD:" << cmd_str[t.get_command()] <<
", "
76 <<
"ADDR:0x" << std::hex << t.get_address() <<
", TXLEN:0x" << t.get_data_length();
79 <<
"PROT:0x" << std::hex << static_cast<unsigned>(e->get_protection()) <<
"NSE:" << (e->is_nse() ?
"True" :
"False");
81 os <<
" [ptr:" << &t <<
"]";
std::ostream & operator<<(std::ostream &stream, const std::vector< T > &vector)
a print function for a vector
TLM2.0 components modeling APB.
opcode_e
opcodes of Tilelink.. The encode the opcode (opcode_e[2:0]) and the applicable channels (opcode_e[8] ...