34a35
> #include "../core/sc_event.hh"
44d44
< class sc_event_finder;
51,52c51,56
< sc_in() : sc_port<sc_signal_in_if<T>, 1>() {}
< explicit sc_in(const char *name) : sc_port<sc_signal_in_if<T>, 1>(name) {}
---
> sc_in() : sc_port<sc_signal_in_if<T>, 1>(),
> _valueChangedFinder(*this, &sc_signal_in_if<T>::value_changed_event)
> {}
> explicit sc_in(const char *name) : sc_port<sc_signal_in_if<T>, 1>(name),
> _valueChangedFinder(*this, &sc_signal_in_if<T>::value_changed_event)
> {}
57c61,62
< sc_port<sc_signal_in_if<T>, 1>(interface)
---
> sc_port<sc_signal_in_if<T>, 1>(interface),
> _valueChangedFinder(*this, &sc_signal_in_if<T>::value_changed_event)
60c65,66
< sc_port<sc_signal_in_if<T>, 1>(name, interface)
---
> sc_port<sc_signal_in_if<T>, 1>(name, interface),
> _valueChangedFinder(*this, &sc_signal_in_if<T>::value_changed_event)
63c69,70
< sc_port<sc_signal_in_if<T>, 1>(parent)
---
> sc_port<sc_signal_in_if<T>, 1>(parent),
> _valueChangedFinder(*this, &sc_signal_in_if<T>::value_changed_event)
66c73,74
< sc_port<sc_signal_in_if<T>, 1>(name, parent)
---
> sc_port<sc_signal_in_if<T>, 1>(name, parent),
> _valueChangedFinder(*this, &sc_signal_in_if<T>::value_changed_event)
69c77,78
< sc_port<sc_signal_in_if<T>, 1>(parent)
---
> sc_port<sc_signal_in_if<T>, 1>(parent),
> _valueChangedFinder(*this, &sc_signal_in_if<T>::value_changed_event)
72c81,82
< sc_port<sc_signal_in_if<T>, 1>(name, parent)
---
> sc_port<sc_signal_in_if<T>, 1>(name, parent),
> _valueChangedFinder(*this, &sc_signal_in_if<T>::value_changed_event)
76c86
< bind(const sc_signal_in_if<T> &)
---
> bind(const sc_signal_in_if<T> &i)
78c88,89
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port<sc_signal_in_if<T>, 1>::bind(
> const_cast<sc_signal_in_if<T> &>(i));
80,84c91
< void
< operator () (const sc_signal_in_if<T> &)
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< }
---
> void operator () (const sc_signal_in_if<T> &i) { bind(i); }
87c94
< bind(sc_port<sc_signal_in_if<T>, 1> &)
---
> bind(sc_port<sc_signal_in_if<T>, 1> &i)
89c96
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port<sc_signal_in_if<T>, 1>::bind(i);
92c99
< operator () (sc_port<sc_signal_in_if<T>, 1> &)
---
> operator () (sc_port<sc_signal_in_if<T>, 1> &p)
94c101
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> bind(p);
98c105
< bind(sc_port<sc_signal_inout_if<T>, 1> &)
---
> bind(sc_port<sc_signal_inout_if<T>, 1> &p)
100c107
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port_base::bind(p);
103c110
< operator () (sc_port<sc_signal_inout_if<T>, 1> &)
---
> operator () (sc_port<sc_signal_inout_if<T>, 1> &p)
105c112
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> bind(p);
108,112c115
< virtual void
< end_of_elaboration()
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< }
---
> virtual void end_of_elaboration() { /* Implementation defined. */ }
114,124c117,118
< const T &
< read() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const T *)nullptr;
< }
< operator const T& () const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const T *)nullptr;
< }
---
> const T &read() const { return (*this)->read(); }
> operator const T& () const { return (*this)->read(); }
125a120
> const sc_event &default_event() const { return (*this)->default_event(); }
127,132d121
< default_event() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
< }
< const sc_event &
135,136c124
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
---
> return (*this)->value_changed_event();
138,149c126,127
< bool
< event() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return false;
< }
< sc_event_finder &
< value_changed() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(sc_event_finder *)nullptr;
< }
---
> bool event() const { return (*this)->event(); }
> sc_event_finder &value_changed() const { return _valueChangedFinder; }
153a132,133
> mutable sc_event_finder_t<sc_signal_in_if<T> > _valueChangedFinder;
>
155,156c135,136
< sc_in(const sc_in<T> &) : sc_port<sc_signal_in_if<T>, 1>() {}
< sc_in<T> &operator = (const sc_in<T> &) { return *this; }
---
> sc_in(const sc_in<T> &);
> sc_in<T> &operator = (const sc_in<T> &);
170c150,155
< sc_in() : sc_port<sc_signal_in_if<bool>, 1>() {}
---
> sc_in() : sc_port<sc_signal_in_if<bool>, 1>(),
> _valueChangedFinder(*this,
> &sc_signal_in_if<bool>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
> {}
172c157,162
< sc_port<sc_signal_in_if<bool>, 1>(name) {}
---
> sc_port<sc_signal_in_if<bool>, 1>(name),
> _valueChangedFinder(*this,
> &sc_signal_in_if<bool>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
> {}
177c167,171
< sc_port<sc_signal_in_if<bool>, 1>(interface)
---
> sc_port<sc_signal_in_if<bool>, 1>(interface),
> _valueChangedFinder(*this,
> &sc_signal_in_if<bool>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
180c174,178
< sc_port<sc_signal_in_if<bool>, 1>(name, interface)
---
> sc_port<sc_signal_in_if<bool>, 1>(name, interface),
> _valueChangedFinder(*this,
> &sc_signal_in_if<bool>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
183c181,185
< sc_port<sc_signal_in_if<bool>, 1>(parent)
---
> sc_port<sc_signal_in_if<bool>, 1>(parent),
> _valueChangedFinder(*this,
> &sc_signal_in_if<bool>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
186c188,192
< sc_port<sc_signal_in_if<bool>, 1>(name, parent)
---
> sc_port<sc_signal_in_if<bool>, 1>(name, parent),
> _valueChangedFinder(*this,
> &sc_signal_in_if<bool>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
189c195,199
< sc_port<sc_signal_in_if<bool>, 1>(parent)
---
> sc_port<sc_signal_in_if<bool>, 1>(parent),
> _valueChangedFinder(*this,
> &sc_signal_in_if<bool>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
192c202,206
< sc_port<sc_signal_in_if<bool>, 1>(name, parent)
---
> sc_port<sc_signal_in_if<bool>, 1>(name, parent),
> _valueChangedFinder(*this,
> &sc_signal_in_if<bool>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
196c210
< bind(const sc_signal_in_if<bool> &)
---
> bind(const sc_signal_in_if<bool> &i)
198c212,213
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port<sc_signal_in_if<bool>, 1>::bind(
> const_cast<sc_signal_in_if<bool> &>(i));
200,204c215
< void
< operator () (const sc_signal_in_if<bool> &)
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< }
---
> void operator () (const sc_signal_in_if<bool> &i) { bind(i); }
207c218
< bind(sc_port<sc_signal_in_if<bool>, 1> &)
---
> bind(sc_port<sc_signal_in_if<bool>, 1> &p)
209c220
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port<sc_signal_in_if<bool>, 1>::bind(p);
212c223
< operator () (sc_port<sc_signal_in_if<bool>, 1> &)
---
> operator () (sc_port<sc_signal_in_if<bool>, 1> &p)
214c225
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> bind(p);
218c229
< bind(sc_port<sc_signal_inout_if<bool>, 1> &)
---
> bind(sc_port<sc_signal_inout_if<bool>, 1> &p)
220c231
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port_base::bind(p);
223c234
< operator () (sc_port<sc_signal_inout_if<bool>, 1> &)
---
> operator () (sc_port<sc_signal_inout_if<bool>, 1> &p)
225c236
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> bind(p);
228,232c239
< virtual void
< end_of_elaboration()
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< }
---
> virtual void end_of_elaboration() { /* Implementation defined. */ }
234,244c241,242
< const bool &
< read() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const bool *)nullptr;
< }
< operator const bool& () const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const bool *)nullptr;
< }
---
> const bool &read() const { return (*this)->read(); }
> operator const bool& () const { return (*this)->read(); }
245a244
> const sc_event &default_event() const { return (*this)->default_event(); }
247,252d245
< default_event() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
< }
< const sc_event &
255,256c248
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
---
> return (*this)->value_changed_event();
261,262c253
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
---
> return (*this)->posedge_event();
267,268c258
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
---
> return (*this)->negedge_event();
271,288c261,263
< bool
< event() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return false;
< }
< bool
< posedge() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return false;
< }
< bool
< negedge() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return false;
< }
---
> bool event() const { return (*this)->event(); }
> bool posedge() const { return (*this)->posedge(); }
> bool negedge() const { return (*this)->negedge(); }
290,307c265,267
< sc_event_finder &
< value_changed() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(sc_event_finder *)nullptr;
< }
< sc_event_finder &
< pos() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(sc_event_finder *)nullptr;
< }
< sc_event_finder &
< neg() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(sc_event_finder *)nullptr;
< }
---
> sc_event_finder &value_changed() const { return _valueChangedFinder; }
> sc_event_finder &pos() const { return _posFinder; }
> sc_event_finder &neg() const { return _negFinder; }
311a272,275
> mutable sc_event_finder_t<sc_signal_in_if<bool> > _valueChangedFinder;
> mutable sc_event_finder_t<sc_signal_in_if<bool> > _posFinder;
> mutable sc_event_finder_t<sc_signal_in_if<bool> > _negFinder;
>
313,314c277,278
< sc_in(const sc_in<bool> &) : sc_port<sc_signal_in_if<bool>, 1>() {}
< sc_in<bool> &operator = (const sc_in<bool> &) { return *this; }
---
> sc_in(const sc_in<bool> &);
> sc_in<bool> &operator = (const sc_in<bool> &);
329c293,298
< sc_in() : sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>() {}
---
> sc_in() : sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(),
> _valueChangedFinder(*this,
> &sc_signal_in_if<sc_dt::sc_logic>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::negedge_event)
> {}
331c300,304
< sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name)
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name),
> _valueChangedFinder(*this,
> &sc_signal_in_if<sc_dt::sc_logic>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::negedge_event)
337c310,314
< sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(interface)
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(interface),
> _valueChangedFinder(*this,
> &sc_signal_in_if<sc_dt::sc_logic>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::negedge_event)
341c318,322
< sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, interface)
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, interface),
> _valueChangedFinder(*this,
> &sc_signal_in_if<sc_dt::sc_logic>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::negedge_event)
344c325,329
< sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(parent)
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(parent),
> _valueChangedFinder(*this,
> &sc_signal_in_if<sc_dt::sc_logic>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::negedge_event)
348c333,337
< sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, parent)
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, parent),
> _valueChangedFinder(*this,
> &sc_signal_in_if<sc_dt::sc_logic>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::negedge_event)
351c340,344
< sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(parent)
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(parent),
> _valueChangedFinder(*this,
> &sc_signal_in_if<sc_dt::sc_logic>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::negedge_event)
355c348,352
< sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, parent)
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>(name, parent),
> _valueChangedFinder(*this,
> &sc_signal_in_if<sc_dt::sc_logic>::value_changed_event),
> _posFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::posedge_event),
> _negFinder(*this, &sc_signal_in_if<sc_dt::sc_logic>::negedge_event)
359c356
< bind(const sc_signal_in_if<sc_dt::sc_logic> &)
---
> bind(const sc_signal_in_if<sc_dt::sc_logic> &i)
361c358,359
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>::bind(
> const_cast<sc_signal_in_if<sc_dt::sc_logic> &>(i));
364,367c362
< operator () (const sc_signal_in_if<sc_dt::sc_logic> &)
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< }
---
> operator () (const sc_signal_in_if<sc_dt::sc_logic> &i) { bind(i); }
370c365
< bind(sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &)
---
> bind(sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &i)
372c367
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>::bind(i);
375c370
< operator () (sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &)
---
> operator () (sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &p)
377c372
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> bind(p);
381c376
< bind(sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &)
---
> bind(sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &p)
383c378
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> sc_port_base::bind(p);
386c381
< operator () (sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &)
---
> operator () (sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &p)
388c383
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> bind(p);
391,395c386
< virtual void
< end_of_elaboration()
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< }
---
> virtual void end_of_elaboration() { /* Implementation defined. */ }
397,407c388,389
< const sc_dt::sc_logic &
< read() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_dt::sc_logic *)nullptr;
< }
< operator const sc_dt::sc_logic& () const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_dt::sc_logic *)nullptr;
< }
---
> const sc_dt::sc_logic &read() const { return (*this)->read(); }
> operator const sc_dt::sc_logic& () const { return (*this)->read(); }
408a391
> const sc_event &default_event() const { return (*this)->default_event(); }
410,415d392
< default_event() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
< }
< const sc_event &
418,419c395
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
---
> return (*this)->value_changed_event();
421,432c397,398
< const sc_event &
< posedge_event() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
< }
< const sc_event &
< negedge_event() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(const sc_event *)nullptr;
< }
---
> const sc_event &posedge_event() const { return (*this)->posedge_event(); }
> const sc_event &negedge_event() const { return (*this)->negedge_event(); }
434,451c400,402
< bool
< event() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return false;
< }
< bool
< posedge() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return false;
< }
< bool
< negedge() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return false;
< }
---
> bool event() const { return (*this)->event(); }
> bool posedge() const { return (*this)->posedge(); }
> bool negedge() const { return (*this)->negedge(); }
453,470c404,406
< sc_event_finder &
< value_changed() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(sc_event_finder *)nullptr;
< }
< sc_event_finder &
< pos() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(sc_event_finder *)nullptr;
< }
< sc_event_finder &
< neg() const
< {
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
< return *(sc_event_finder *)nullptr;
< }
---
> sc_event_finder &value_changed() const { return _valueChangedFinder; }
> sc_event_finder &pos() const { return _posFinder; }
> sc_event_finder &neg() const { return _negFinder; }
474a411,415
> mutable sc_event_finder_t<sc_signal_in_if<sc_dt::sc_logic> >
> _valueChangedFinder;
> mutable sc_event_finder_t<sc_signal_in_if<sc_dt::sc_logic> > _posFinder;
> mutable sc_event_finder_t<sc_signal_in_if<sc_dt::sc_logic> > _negFinder;
>
476,483c417,418
< sc_in(const sc_in<sc_dt::sc_logic> &) :
< sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>()
< {}
< sc_in<sc_dt::sc_logic> &
< operator = (const sc_in<sc_dt::sc_logic> &)
< {
< return *this;
< }
---
> sc_in(const sc_in<sc_dt::sc_logic> &);
> sc_in<sc_dt::sc_logic> &operator = (const sc_in<sc_dt::sc_logic> &);