28 #ifndef __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_RV_HH__ 29 #define __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_RV_HH__ 31 #include "../core/sc_module.hh" 32 #include "../dt/bit/sc_logic.hh" 33 #include "../dt/bit/sc_lv.hh" 76 auto it = inputs.find(p);
77 if (it == inputs.end()) {
79 this->request_update();
80 }
else if (it->second != l) {
82 this->request_update();
98 virtual const char *
kind()
const {
return "sc_signal_rv"; }
117 for (
int i = 0;
i < W;
i++) {
119 for (
auto &input: inputs)
120 bit = merge_table[bit][input.second.get_bit(
i)];
121 this->m_new_val.set_bit(
i, bit);
134 std::map<::sc_gem5::Process *, sc_dt::sc_lv<W> >
inputs;
139 #endif //__SYSTEMC_EXT_CHANNEL_SC_SIGNAL_RV_HH__ Process * getCurrentProcess()
sc_signal_rv(const sc_signal_rv< W > &)
const std::string & name()
const char * sc_gen_unique_name(const char *seed)
virtual const sc_dt::sc_lv< W > & read() const
virtual void register_port(sc_port_base &, const char *)
sc_signal_rv(const char *name)
std::map<::sc_gem5::Process *, sc_dt::sc_lv< W > > inputs
virtual const char * kind() const
virtual void write(const sc_dt::sc_lv< W > &l)