scc  2024.06
SystemC components library
tilelink Namespace Reference

TLM2.0 components modeling APB. More...

Classes

struct  master_types
 
struct  slave_types
 
struct  signal_types
 
struct  select_if
 
struct  select_if< true, T, S >
 
struct  tl_cfg
 
struct  ch_a
 A channel signals. More...
 
struct  ch_b
 B channel signals. More...
 
struct  ch_c
 C channel signals. More...
 
struct  ch_d
 D channel signals. More...
 
struct  ch_e
 E channel signals. More...
 
struct  tl_ul
 
struct  tl_c
 
struct  enable_for_enum
 
struct  tilelink_extension
 
struct  tl_protocol_types
 The AXI protocol traits class. Since the protocoll defines additional non-ignorable phases a dedicated protocol traits class has to be defined. More...
 
class  bw_blocking_transport_if
 
class  tlc_bw_transport_if
 
struct  tlu_initiator_socket
 
struct  tlu_target_socket
 
struct  tlc_initiator_socket
 
struct  tlc_target_socket
 
struct  enable_for_enum< opcode_e >
 

Typedefs

template<typename CFG , typename TYPES = master_types>
using tl_uh = tl_ul< CFG, TYPES >
 
using tl_payload = tlm::tlm_generic_payload
 aliases for payload and phase types
 
using tl_phase = tlm::tlm_phase
 
template<typename TYPES = tl_protocol_types>
using tlu_fw_transport_if = tlm::tlm_fw_transport_if< TYPES >
 alias declaration for the forward interface
 
template<typename TYPES = tl_protocol_types>
using tlu_bw_transport_if = tlm::tlm_bw_transport_if< TYPES >
 alias declaration for the backward interface:
 
template<typename TYPES = tl_protocol_types>
using tlc_fw_transport_if = tlm::tlm_fw_transport_if< TYPES >
 alias declaration for the ACE forward interface
 

Enumerations

enum class  opcode_e : uint8_t {
  Get = 0x184 , AccessAckData = 0x061 , PutFullData = 0x180 , PutPartialData = 0x181 ,
  AccessAck = 0x060 , ArithmeticData = 0x182 , LogicalData = 0x183 , Intent = 0x185 ,
  HintAck = 0x062 , AcquireBlock = 0x106 , AcquirePerm = 0x107 , Grant = 0x024 ,
  GrantData = 0x025 , GrantAck = 0x010 , ProbeBlock = 0x086 , ProbePerm = 0x087 ,
  ProbeAck = 0x044 , ProbeAckData = 0x045 , Release = 0x046 , ReleaseData = 0x047 ,
  ReleaseAck = 0x026 , ILLEGAL = 0xf
}
 opcodes of Tilelink.. The encode the opcode (opcode_e[2:0]) and the applicable channels (opcode_e[8] -> A ... opcode_e[4] -> E)
 

Functions

std::string concat (const char *prefix, const char *name)
 
template<>
const char * to_char< opcode_e > (opcode_e v)
 
std::ostream & operator<< (std::ostream &os, const tlm::tlm_generic_payload &t)
 
template<typename E >
into (typename std::underlying_type< E >::type t)
 
template<typename E , typename ULT = typename std::underlying_type<E>::type, typename X = typename std::enable_if<std::is_enum<E>::value && !std::is_convertible<E, ULT>::value, bool>::type>
constexpr ULT to_int (E t)
 
template<typename E >
const char * to_char (E t)
 
template<typename E , typename std::enable_if< enable_for_enum< E >::value, bool >::type >
std::ostream & operator<< (std::ostream &os, E e)
 
 DECLARE_EXTENDED_PHASE (ACK)
 

Variables

const sc_core::sc_time CLK_DELAY = 1_ps
 

Detailed Description

TLM2.0 components modeling APB.

Function Documentation

◆ DECLARE_EXTENDED_PHASE()

tilelink::DECLARE_EXTENDED_PHASE ( ACK  )

definition of the additional protocol phases

◆ into()

template<typename E >
E tilelink::into ( typename std::underlying_type< E >::type  t)
inline

helper function to convert integer into class enums

Parameters
t
Returns

◆ operator<<()

template<typename E , typename std::enable_if< enable_for_enum< E >::value, bool >::type >
std::ostream& tilelink::operator<< ( std::ostream &  os,
e 
)
inline
Parameters
os
e
Returns

Definition at line 59 of file tl_tlm.h.

◆ to_char()

template<typename E >
const char* tilelink::to_char ( t)

helper function to convert class enums into char string

Parameters
t
Returns

◆ to_int()

template<typename E , typename ULT = typename std::underlying_type<E>::type, typename X = typename std::enable_if<std::is_enum<E>::value && !std::is_convertible<E, ULT>::value, bool>::type>
constexpr ULT tilelink::to_int ( t)
inlineconstexpr

helper function to convert class enums into integer

Parameters
t
Returns

Definition at line 43 of file tl_tlm.h.