30 #ifndef __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_RV_HH__ 31 #define __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_RV_HH__ 33 #include "../core/sc_module.hh" 34 #include "../dt/bit/sc_logic.hh" 35 #include "../dt/bit/sc_lv.hh" 78 auto it = inputs.find(p);
79 if (it == inputs.end()) {
81 this->request_update();
82 }
else if (it->second != l) {
84 this->request_update();
100 virtual const char *
kind()
const {
return "sc_signal_rv"; }
119 for (
int i = 0;
i < W;
i++) {
121 for (
auto &input: inputs)
122 bit = merge_table[bit][input.second.get_bit(
i)];
123 this->m_new_val.set_bit(
i, bit);
136 std::map<::sc_gem5::Process *, sc_dt::sc_lv<W> >
inputs;
141 #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)