Transaction-Level Modeling Framework for Space Applications
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... | |
void AHBCtrl::AcceptThread | ( | ) |
References AHBCtrl::ahbIN, v::debug, v::error, setup::name, srWarn, trans, and pysc::api::systemc::wait().
Referenced by AHBCtrl::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.
nm | SystemC name |
ioaddr | The MSB address of the I/O area |
iomask | The I/O area address mask |
cfgaddr | The MSB address of the configuration area (PNP) |
cfgmask | The address mask of the configuration area |
rrobin | 1 - round robin, 0 - fixed priority arbitration (only AT) |
split | Enable support for AHB SPLIT response (only AT) |
defmast | ID of the default master |
ioen | AHB I/O area enable |
fixbrst | Enable support for fixed-length bursts |
fpnpen | Enable full decoding of PnP configuration records. |
mcheck | Check if there are any intersections between core memory regions. |
pow_mon | Enable 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().
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().
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().
|
virtual |
void AHBCtrl::EndResponseThread | ( | ) |
References AHBCtrl::ahbIN, AHBCtrl::ahbOUT, v::debug, msclogger::forward(), setup::name, trans, and pysc::api::systemc::wait().
Referenced by AHBCtrl::AHBCtrl().
|
virtual |
Initialisation function for model generics.
Reimplemented from BaseModule< DefaultBase >.
References sr_param_base::add_properties().
Referenced by AHBCtrl::AHBCtrl().
|
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().
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().
void AHBCtrl::print_requests | ( | ) |
Helper function - prints pending requests in arbiter.
References i, v::info, and setup::name.
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().
void AHBCtrl::ResponseThread | ( | ) |
References AHBCtrl::ahbIN, msclogger::backward(), v::debug, setup::name, trans, and pysc::api::systemc::wait().
Referenced by AHBCtrl::AHBCtrl().
SR_HAS_MODULE | ( | AHBCtrl | ) |
TLM debug interface.
References AHBCtrl::ahbIN, AHBCtrl::ahbOUT, v::debug, v::error, i, ahb_check_slave_type::index, setup::name, and v::warn.
Referenced by AHBCtrl::AHBCtrl().
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.