SoCRocket
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.