Logo SoCRocket

Transaction-Level Modeling Framework for Space Applications

Files | Classes | Functions
AHBCtrl

Files

file  ahbctrl.cpp
 
file  ahbctrl.h
 

Classes

struct  ahb_check_slave_type
 
class  AHBCtrl
 

Functions

 SR_HAS_MODULE (AHBCtrl)
 
 AHBCtrl::AHBCtrl (ModuleName nm, uint32_t ioaddr=0xFFF, uint32_t iomask=0xFFF, uint32_t cfgaddr=0xFF0, uint32_t cfgmask=0xFF0, bool rrobin=false, bool split=false, uint32_t defmast=0, bool ioen=true, bool fixbrst=false, bool fpnpen=true, bool mcheck=true, bool pow_mon=false, AbstractionLayer ambaLayer=amba::amba_LT)
 Constructor. More...
 
void AHBCtrl::dorst ()
 Reset Callback. More...
 
 AHBCtrl::~AHBCtrl ()
 Desctructor. More...
 
void AHBCtrl::init_generics ()
 Initialisation function for model generics. More...
 
void AHBCtrl::b_transport (uint32_t id, tlm::tlm_generic_payload &gp, sc_core::sc_time &delay)
 TLM blocking transport method. More...
 
tlm::tlm_sync_enum AHBCtrl::nb_transport_fw (uint32_t id, tlm::tlm_generic_payload &gp, tlm::tlm_phase &phase, sc_core::sc_time &delay)
 TLM non-blocking transport forward (for AHB slave multi-sock) More...
 
tlm::tlm_sync_enum AHBCtrl::nb_transport_bw (uint32_t id, tlm::tlm_generic_payload &gp, tlm::tlm_phase &phase, sc_core::sc_time &delay)
 TLM non-blocking transport backward (for AHB master multi-sock) More...
 
void AHBCtrl::print_requests ()
 Helper function - prints pending requests in arbiter. More...
 
void AHBCtrl::arbitrate ()
 The arbiter thread. Responsible for arbitrating transactions in AT mode. More...
 
void AHBCtrl::AcceptThread ()
 
void AHBCtrl::RequestThread ()
 
void AHBCtrl::ResponseThread ()
 
void AHBCtrl::EndResponseThread ()
 
unsigned int AHBCtrl::transport_dbg (uint32_t id, tlm::tlm_generic_payload &gp)
 TLM debug interface. More...
 
virtual bool AHBCtrl::get_direct_mem_ptr (unsigned int index, tlm::tlm_generic_payload &trans, tlm::tlm_dmi &dmi_data)
 DMI Pathes. More...
 
virtual void AHBCtrl::invalidate_direct_mem_ptr (unsigned int index, sc_dt::uint64 start_range, sc_dt::uint64 end_range)
 
void AHBCtrl::transport_statistics (tlm::tlm_generic_payload &gp)
 Collect common transport statistics. More...
 
void AHBCtrl::print_transport_statistics (const char *name) const
 Print common transport statistics. More...
 

Detailed Description

Function Documentation

void AHBCtrl::AcceptThread ( )

References AHBCtrl::ahbIN, v::debug, v::error, setup::name, srWarn, trans, and pysc::api::systemc::wait().

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

AHBCtrl::AHBCtrl ( ModuleName  nm,
uint32_t  ioaddr = 0xFFF,
uint32_t  iomask = 0xFFF,
uint32_t  cfgaddr = 0xFF0,
uint32_t  cfgmask = 0xFF0,
bool  rrobin = false,
bool  split = false,
uint32_t  defmast = 0,
bool  ioen = true,
bool  fixbrst = false,
bool  fpnpen = true,
bool  mcheck = true,
bool  pow_mon = false,
AbstractionLayer  ambaLayer = amba::amba_LT 
)

Constructor.

Parameters
nmSystemC name
ioaddrThe MSB address of the I/O area
iomaskThe I/O area address mask
cfgaddrThe MSB address of the configuration area (PNP)
cfgmaskThe address mask of the configuration area
rrobin1 - round robin, 0 - fixed priority arbitration (only AT)
splitEnable support for AHB SPLIT response (only AT)
defmastID of the default master
ioenAHB I/O area enable
fixbrstEnable support for fixed-length bursts
fpnpenEnable full decoding of PnP configuration records.
mcheckCheck if there are any intersections between core memory regions.
pow_monEnable power monitoring

References AHBCtrl::AcceptThread(), AHBCtrl::ahbIN, AHBCtrl::ahbOUT, AHBCtrl::arbitrate(), AHBCtrl::b_transport(), AHBCtrl::EndResponseThread(), AHBCtrl::get_direct_mem_ptr(), i, AHBCtrl::init_generics(), AHBCtrl::invalidate_direct_mem_ptr(), AHBCtrl::nb_transport_bw(), AHBCtrl::nb_transport_fw(), usi.cci.callback::pre_read, AHBCtrl::RequestThread(), AHBCtrl::ResponseThread(), srInfo, and AHBCtrl::transport_dbg().

Here is the call graph for this function:

void AHBCtrl::arbitrate ( )

The arbiter thread. Responsible for arbitrating transactions in AT mode.

References __PRETTY_FUNCTION__, AHBCtrl::ahbIN, AHBCtrl::ahbOUT, CLKDevice::clock_cycle, dict::data, msclogger::forward(), i, srDebug, trans, and pysc::api::systemc::wait().

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

void AHBCtrl::b_transport ( uint32_t  id,
tlm::tlm_generic_payload &  gp,
sc_core::sc_time &  delay 
)

TLM blocking transport method.

References __PRETTY_FUNCTION__, t_snoop::address, AHBCtrl::ahbIN, AHBCtrl::ahbOUT, CLKDevice::clock_cycle, dict::data, v::error, i, t_snoop::length, t_snoop::master_id, setup::name, msclogger::return_backward(), AHBCtrl::snoop, srDebug, srWarn, trans, AHBCtrl::transport_statistics(), and pysc::api::systemc::wait().

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

void AHBCtrl::dorst ( )
virtual

Reset Callback.

Reimplemented from CLKDevice.

Referenced by AMBABasePlatform::dorst().

void AHBCtrl::EndResponseThread ( )

References AHBCtrl::ahbIN, AHBCtrl::ahbOUT, v::debug, msclogger::forward(), setup::name, trans, and pysc::api::systemc::wait().

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

bool AHBCtrl::get_direct_mem_ptr ( unsigned int  index,
tlm::tlm_generic_payload &  trans,
tlm::tlm_dmi &  dmi_data 
)
virtual

DMI Pathes.

References AHBCtrl::ahbOUT.

Referenced by AHBCtrl::AHBCtrl().

void AHBCtrl::init_generics ( )
virtual

Initialisation function for model generics.

Reimplemented from BaseModule< DefaultBase >.

References sr_param_base::add_properties().

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

void AHBCtrl::invalidate_direct_mem_ptr ( unsigned int  index,
sc_dt::uint64  start_range,
sc_dt::uint64  end_range 
)
virtual

References AHBCtrl::ahbIN.

Referenced by AHBCtrl::AHBCtrl().

tlm::tlm_sync_enum AHBCtrl::nb_transport_bw ( uint32_t  id,
tlm::tlm_generic_payload &  gp,
tlm::tlm_phase &  phase,
sc_core::sc_time &  delay 
)

TLM non-blocking transport backward (for AHB master multi-sock)

References __PRETTY_FUNCTION__, AHBCtrl::ahbOUT, msclogger::return_forward(), srDebug, srError, and trans.

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

tlm::tlm_sync_enum AHBCtrl::nb_transport_fw ( uint32_t  id,
tlm::tlm_generic_payload &  gp,
tlm::tlm_phase &  phase,
sc_core::sc_time &  delay 
)

TLM non-blocking transport forward (for AHB slave multi-sock)

References __PRETTY_FUNCTION__, AHBCtrl::ahbIN, msclogger::return_backward(), srDebug, srError, trans, and AHBCtrl::transport_statistics().

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

void AHBCtrl::print_requests ( )

Helper function - prints pending requests in arbiter.

References i, v::info, and setup::name.

void AHBCtrl::print_transport_statistics ( const char name) const

Print common transport statistics.

References v::report.

void AHBCtrl::RequestThread ( )

References t_snoop::address, AHBCtrl::ahbIN, msclogger::backward(), v::debug, t_snoop::length, t_snoop::master_id, setup::name, AHBCtrl::snoop, trans, and pysc::api::systemc::wait().

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

void AHBCtrl::ResponseThread ( )

References AHBCtrl::ahbIN, msclogger::backward(), v::debug, setup::name, trans, and pysc::api::systemc::wait().

Referenced by AHBCtrl::AHBCtrl().

Here is the call graph for this function:

SR_HAS_MODULE ( AHBCtrl  )
unsigned int AHBCtrl::transport_dbg ( uint32_t  id,
tlm::tlm_generic_payload &  gp 
)
void AHBCtrl::transport_statistics ( tlm::tlm_generic_payload &  gp)

Collect common transport statistics.

Referenced by AHBCtrl::b_transport(), and AHBCtrl::nb_transport_fw().

AHBCtrl::~AHBCtrl ( )

Desctructor.