28#ifndef __SYSTEMC_EXT_CHANNEL_SC_IN_HH__
29#define __SYSTEMC_EXT_CHANNEL_SC_IN_HH__
119 sc_trace(params->tf, (*this)->read(), params->name);
124 const T &
read()
const {
return (*this)->read(); }
125 operator const T& ()
const {
return (*this)->read(); }
131 return (*this)->value_changed_event();
133 bool event()
const {
return (*this)->event(); }
136 virtual const char *
kind()
const {
return "sc_in"; }
159 i.add_trace(tf,
name);
165class sc_in<bool> :
public sc_port<sc_signal_in_if<bool>, 1>
178 _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
179 _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
184 explicit sc_in(
const sc_signal_in_if<bool> &interface) :
185 sc_port<sc_signal_in_if<bool>, 1>(interface),
188 _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
189 _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
191 sc_in(
const char *
name,
const sc_signal_in_if<bool> &interface) :
192 sc_port<sc_signal_in_if<bool>, 1>(
name, interface),
195 _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
196 _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
199 sc_port<sc_signal_in_if<bool>, 1>(parent),
202 _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
203 _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
209 _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
210 _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
212 explicit sc_in(
sc_port<sc_signal_in_if<bool>, 1> &parent) :
213 sc_port<sc_signal_in_if<bool>, 1>(parent),
216 _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
217 _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
223 _posFinder(*this, &sc_signal_in_if<bool>::posedge_event),
224 _negFinder(*this, &sc_signal_in_if<bool>::negedge_event)
230 bind(
const sc_signal_in_if<bool> &i)
233 const_cast<sc_signal_in_if<bool> &
>(i));
263 sc_trace(params->tf, (*this)->read(), params->name);
268 const bool &
read()
const {
return (*this)->read(); }
269 operator const bool& ()
const {
return (*this)->read(); }
271 const sc_event &
default_event()
const {
return (*this)->default_event(); }
275 return (*this)->value_changed_event();
278 posedge_event()
const
280 return (*this)->posedge_event();
283 negedge_event()
const
285 return (*this)->negedge_event();
288 bool event()
const {
return (*this)->event(); }
289 bool posedge()
const {
return (*this)->posedge(); }
290 bool negedge()
const {
return (*this)->negedge(); }
293 sc_event_finder &pos()
const {
return _posFinder; }
294 sc_event_finder &
neg()
const {
return _negFinder; }
296 virtual const char *
kind()
const {
return "sc_in"; }
306 mutable sc_event_finder_t<sc_signal_in_if<bool> > _posFinder;
307 mutable sc_event_finder_t<sc_signal_in_if<bool> > _negFinder;
319 const std::string &
name)
322 i.add_trace(tf,
name);
329 public sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1>
431 sc_trace(params->tf, (*this)->read(), params->name);
443 return (*this)->value_changed_event();
448 bool event()
const {
return (*this)->event(); }
449 bool posedge()
const {
return (*this)->posedge(); }
450 bool negedge()
const {
return (*this)->negedge(); }
456 virtual const char *
kind()
const {
return "sc_in"; }
480 const std::string &
name)
483 i.add_trace(tf,
name);
sc_trace_params_vec traceParamsVec
sc_in(sc_port< sc_signal_in_if< sc_dt::sc_logic >, 1 > &parent)
void add_trace(sc_trace_file *tf, const std::string &name) const
virtual void bind(sc_port< sc_signal_in_if< sc_dt::sc_logic >, 1 > &i)
const sc_event & posedge_event() const
sc_in(const sc_signal_in_if< sc_dt::sc_logic > &interface)
const sc_event & default_event() const
sc_in(const char *name, sc_port_b< sc_signal_in_if< sc_dt::sc_logic > > &parent)
sc_in(const char *name, sc_port< sc_signal_in_if< sc_dt::sc_logic >, 1 > &parent)
sc_event_finder_t< sc_signal_in_if< sc_dt::sc_logic > > _valueChangedFinder
virtual const char * kind() const
sc_event_finder & value_changed() const
sc_in(const char *name, const sc_signal_in_if< sc_dt::sc_logic > &interface)
const sc_event & negedge_event() const
sc_in(const sc_in< sc_dt::sc_logic > &)
const sc_dt::sc_logic & read() const
virtual void end_of_elaboration()
const sc_event & value_changed_event() const
sc_event_finder & pos() const
sc_event_finder_t< sc_signal_in_if< sc_dt::sc_logic > > _negFinder
sc_in(sc_port_b< sc_signal_in_if< sc_dt::sc_logic > > &parent)
virtual void bind(const sc_signal_in_if< sc_dt::sc_logic > &i)
virtual void bind(sc_port< sc_signal_inout_if< sc_dt::sc_logic >, 1 > &p)
sc_event_finder & neg() const
sc_event_finder_t< sc_signal_in_if< sc_dt::sc_logic > > _posFinder
sc_in< T > & operator=(const sc_in< T > &)
void add_trace(sc_trace_file *tf, const std::string &name) const
sc_trace_params_vec traceParamsVec
void operator()(const sc_signal_in_if< T > &i)
sc_in(sc_port< sc_signal_in_if< T >, 1 > &parent)
virtual void bind(sc_port< sc_signal_inout_if< T >, 1 > &p)
virtual const char * kind() const
virtual void bind(sc_port< sc_signal_in_if< T >, 1 > &i)
sc_event_finder_t< sc_signal_in_if< T > > _valueChangedFinder
sc_in(const char *name, sc_port_b< sc_signal_in_if< T > > &parent)
const sc_event & value_changed_event() const
const sc_event & default_event() const
sc_in(const sc_in< T > &)
virtual void end_of_elaboration()
virtual void bind(const sc_signal_in_if< T > &i)
sc_in(const char *name, const sc_signal_in_if< T > &interface)
sc_in(const sc_signal_in_if< T > &interface)
sc_in(sc_port_b< sc_signal_in_if< T > > &parent)
sc_in(const char *name, sc_port< sc_signal_in_if< T >, 1 > &parent)
sc_event_finder & value_changed() const
const char * name() const
void bind(sc_interface &)
sc_port_b(int n, sc_port_policy p)
sc_status sc_get_status()
std::vector< sc_trace_params * > sc_trace_params_vec
void sc_trace< bool >(sc_trace_file *tf, const sc_in< bool > &i, const std::string &name)
void sc_trace(sc_trace_file *tf, const sc_in< T > &i, const std::string &name)
void sc_trace< sc_dt::sc_logic >(sc_trace_file *tf, const sc_in< sc_dt::sc_logic > &i, const std::string &name)
void neg(sc_fxval &c, const sc_fxnum &a)
const std::string & name()