28#ifndef __SYSTEMC_EXT_CHANNEL_SC_INOUT_HH__
29#define __SYSTEMC_EXT_CHANNEL_SC_INOUT_HH__
115 sc_trace(params->tf, (*this)->read(), params->name);
120 const T &
read()
const {
return (*this)->read(); }
121 operator const T& ()
const {
return (*this)->read(); }
123 void write(
const T &t) { (*this)->write(t); }
133 (*this)->
write(i.read());
139 (*this)->
write(p->read());
145 (*this)->
write(p->read());
151 (*this)->
write(p->read());
159 return (*this)->value_changed_event();
161 bool event()
const {
return (*this)->event(); }
164 virtual const char *
kind()
const {
return "sc_inout"; }
187 i.add_trace(tf,
name);
206 _posFinder(*this, &sc_signal_inout_if<bool>::posedge_event),
207 _negFinder(*this, &sc_signal_inout_if<bool>::negedge_event)
212 explicit sc_inout(
const sc_signal_inout_if<bool> &interface) :
216 _posFinder(*this, &sc_signal_inout_if<bool>::posedge_event),
217 _negFinder(*this, &sc_signal_inout_if<bool>::negedge_event)
219 sc_inout(
const char *
name,
const sc_signal_inout_if<bool> &interface) :
220 sc_port<sc_signal_inout_if<bool>, 1>(
name, interface),
224 _posFinder(*this, &sc_signal_inout_if<bool>::posedge_event),
225 _negFinder(*this, &sc_signal_inout_if<bool>::negedge_event)
231 _posFinder(*this, &sc_signal_inout_if<bool>::posedge_event),
232 _negFinder(*this, &sc_signal_inout_if<bool>::negedge_event)
238 _posFinder(*this, &sc_signal_inout_if<bool>::posedge_event),
239 _negFinder(*this, &sc_signal_inout_if<bool>::negedge_event)
245 _posFinder(*this, &sc_signal_inout_if<bool>::posedge_event),
246 _negFinder(*this, &sc_signal_inout_if<bool>::negedge_event)
252 _posFinder(*this, &sc_signal_inout_if<bool>::posedge_event),
253 _negFinder(*this, &sc_signal_inout_if<bool>::negedge_event)
279 sc_trace(params->tf, (*this)->read(), params->name);
284 const bool &
read()
const {
return (*this)->read(); }
285 operator const bool& ()
const {
return (*this)->read(); }
287 void write(
const bool &
b) { (*this)->write(
b); }
297 (*this)->write(
i.read());
303 (*this)->write(
p->read());
309 (*this)->write(
p->read());
315 (*this)->write(
p->read());
319 const sc_event &
default_event()
const {
return (*this)->default_event(); }
323 return (*this)->value_changed_event();
325 const sc_event &posedge_event()
const {
return (*this)->posedge_event(); }
326 const sc_event &negedge_event()
const {
return (*this)->negedge_event(); }
327 bool event()
const {
return (*this)->event(); }
328 bool posedge()
const {
return (*this)->posedge(); }
329 bool negedge()
const {
return (*this)->negedge(); }
332 sc_event_finder &pos()
const {
return _posFinder; }
333 sc_event_finder &
neg()
const {
return _negFinder; }
335 virtual const char *
kind()
const {
return "sc_inout"; }
346 mutable sc_event_finder_t<sc_signal_inout_if<bool> > _posFinder;
347 mutable sc_event_finder_t<sc_signal_inout_if<bool> > _negFinder;
360 i.add_trace(tf,
name);
367 public sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1>
469 sc_trace(params->tf, (*this)->read(), params->name);
487 (*this)->
write(i.read());
493 (*this)->
write(p->read());
499 (*this)->
write(p->read());
505 (*this)->
write(p->read());
513 return (*this)->value_changed_event();
517 bool event()
const {
return (*this)->event(); }
518 bool posedge()
const {
return (*this)->posedge(); }
519 bool negedge()
const {
return (*this)->negedge(); }
525 virtual const char *
kind()
const {
return "sc_inout"; }
552 i.add_trace(tf,
name);
sc_inout(const char *name, const sc_signal_inout_if< sc_dt::sc_logic > &interface)
virtual const char * kind() const
sc_event_finder & neg() const
const sc_event & default_event() const
sc_inout(const sc_signal_inout_if< sc_dt::sc_logic > &interface)
sc_event_finder_t< sc_signal_inout_if< sc_dt::sc_logic > > _posFinder
virtual void end_of_elaboration()
sc_event_finder & value_changed() const
void write(const sc_dt::sc_logic &l)
sc_inout(const sc_inout< sc_dt::sc_logic > &)
sc_event_finder_t< sc_signal_inout_if< sc_dt::sc_logic > > _negFinder
const sc_event & value_changed_event() const
void initialize(const sc_dt::sc_logic &l)
sc_inout(const char *name, sc_port_b< sc_signal_inout_if< sc_dt::sc_logic > > &parent)
sc_trace_params_vec traceParamsVec
sc_inout(const char *name, sc_port< sc_signal_inout_if< sc_dt::sc_logic >, 1 > &parent)
sc_inout(sc_port_b< sc_signal_inout_if< sc_dt::sc_logic > > &parent)
sc_event_finder & pos() const
const sc_event & negedge_event() const
sc_inout(const char *name)
const sc_dt::sc_logic & read() const
void initialize(const sc_signal_in_if< sc_dt::sc_logic > &i)
sc_inout(sc_port< sc_signal_inout_if< sc_dt::sc_logic >, 1 > &parent)
void add_trace(sc_trace_file *tf, const std::string &name) const
sc_dt::sc_logic * initValue
sc_event_finder_t< sc_signal_inout_if< sc_dt::sc_logic > > _valueChangedFinder
const sc_event & posedge_event() const
virtual const char * kind() const
void initialize(const T &t)
void add_trace(sc_trace_file *tf, const std::string &name) const
const sc_event & value_changed_event() const
sc_inout(const char *name, sc_port_b< sc_signal_inout_if< T > > &parent)
sc_event_finder & value_changed() const
sc_inout(const sc_signal_inout_if< T > &interface)
sc_inout(const char *name)
const sc_event & default_event() const
sc_inout(const char *name, sc_port< sc_signal_inout_if< T >, 1 > &parent)
virtual void end_of_elaboration()
sc_event_finder_t< sc_signal_inout_if< data_type > > _valueChangedFinder
sc_inout< T > & operator=(const T &t)
sc_inout(sc_port_b< sc_signal_inout_if< T > > &parent)
void initialize(const sc_signal_in_if< T > &i)
sc_inout(const char *name, const sc_signal_inout_if< T > &interface)
sc_trace_params_vec traceParamsVec
sc_inout(const sc_inout< T > &)
sc_inout(sc_port< sc_signal_inout_if< T >, 1 > &parent)
const char * name() const
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()