33 #ifndef SC_SIGNAL_PORTS_H 34 #define SC_SIGNAL_PORTS_H 43 #if ! defined( SC_DISABLE_VIRTUAL_BIND ) 44 # define SC_VIRTUAL_ virtual 49 #if defined(_MSC_VER) && !defined(SC_WIN_DLL_WARN) 51 #pragma warning(disable: 4251) // DLL import for std::string 71 : tf( tf_ ), name( name_ )
87 :
public sc_port<sc_signal_in_if<T>,1,SC_ONE_OR_MORE_BOUND>
110 : base_type(), m_traces( 0 ),
115 : base_type( name_ ), m_traces( 0 ),
119 explicit sc_in(
const in_if_type& interface_ )
120 : base_type( const_cast<in_if_type&>( interface_ ) ), m_traces( 0 ),
124 sc_in(
const char* name_,
const in_if_type& interface_ )
125 : base_type( name_, const_cast<in_if_type&>( interface_ ) ), m_traces( 0 ),
129 explicit sc_in( in_port_type& parent_ )
130 : base_type( parent_ ), m_traces( 0 ),
134 sc_in(
const char* name_, in_port_type& parent_ )
135 : base_type( name_, parent_ ), m_traces( 0 ),
139 explicit sc_in( inout_port_type& parent_ )
140 : base_type(), m_traces( 0 ),
144 sc_in(
const char* name_, inout_port_type& parent_ )
145 : base_type( name_ ), m_traces( 0 ),
150 : base_type( parent_ ), m_traces( 0 ),
154 sc_in(
const char* name_, this_type& parent_ )
155 : base_type( name_, parent_ ), m_traces( 0 ),
165 delete m_change_finder_p;
175 { this->bind( const_cast<const in_if_type&>( interface_ ) ); }
177 void operator () (
const in_if_type& interface_ )
178 { this->bind( interface_ ); }
186 void operator () ( in_port_type& parent_ )
187 { this->bind( parent_ ); }
195 void operator () ( inout_port_type& parent_ )
196 { this->bind( parent_ ); }
204 {
return (*this)->default_event(); }
210 {
return (*this)->value_changed_event(); }
216 {
return (*this)->read(); }
218 operator const data_type& ()
const 219 {
return (*this)->read(); }
225 {
return (*this)->event(); }
232 if ( !m_change_finder_p )
235 *
this, &in_if_type::value_changed_event );
237 return *m_change_finder_p;
245 virtual void end_of_elaboration();
247 virtual const char*
kind()
const 254 void add_trace_internal(
sc_trace_file*,
const std::string& )
const;
258 void remove_traces()
const;
283 sc_in(
const this_type& );
284 this_type& operator = (
const this_type& );
291 static data_type dummy;
296 ::std::ostream& operator << ( ::std::ostream& os, const sc_in<T>& a )
298 return os << a->read();
311 if( m_traces != 0 ) {
312 for(
int i = 0; i < (int)m_traces->size(); ++ i ) {
331 if( m_traces == 0 ) {
345 add_trace_internal(tf_, name_);
353 if( m_traces != 0 ) {
354 for(
int i = (
int)m_traces->size() - 1; i >= 0; -- i ) {
355 delete (*m_traces)[i];
379 if( in_parent != 0 ) {
384 if( inout_parent != 0 ) {
403 public sc_port<sc_signal_in_if<bool>,1,SC_ONE_OR_MORE_BOUND>
426 : base_type(), m_traces( 0 ), m_change_finder_p(0),
427 m_neg_finder_p(0), m_pos_finder_p(0)
431 : base_type( name_ ), m_traces( 0 ), m_change_finder_p(0),
432 m_neg_finder_p(0), m_pos_finder_p(0)
435 explicit sc_in(
const in_if_type& interface_ )
436 : base_type( const_cast<in_if_type&>( interface_ ) ), m_traces( 0 ),
437 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
440 sc_in(
const char* name_,
const in_if_type& interface_ )
441 : base_type( name_, const_cast<in_if_type&>( interface_ ) ), m_traces( 0 ),
442 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
445 explicit sc_in( in_port_type& parent_ )
446 : base_type( parent_ ), m_traces( 0 ),
447 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
450 sc_in(
const char* name_, in_port_type& parent_ )
451 : base_type( name_, parent_ ), m_traces( 0 ),
452 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
455 explicit sc_in( inout_port_type& parent_ )
456 : base_type(), m_traces( 0 ),
457 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
460 sc_in(
const char* name_, inout_port_type& parent_ )
461 : base_type( name_ ), m_traces( 0 ),
462 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
466 : base_type( parent_ ), m_traces( 0 ),
467 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
471 sc_in(
const this_type& parent_ )
472 : base_type( *(in_if_type*)parent_.
get_interface() ) , m_traces( 0 ),
473 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
477 sc_in(
const char* name_, this_type& parent_ )
478 : base_type( name_, parent_ ), m_traces( 0 ),
479 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
488 delete m_change_finder_p;
489 delete m_neg_finder_p;
490 delete m_pos_finder_p;
500 { this->bind( const_cast<const in_if_type&>( interface_ ) ); }
502 void operator () (
const in_if_type& interface_ )
503 { this->bind( interface_ ); }
511 void operator () ( in_port_type& parent_ )
512 { this->bind( parent_ ); }
520 void operator () ( inout_port_type& parent_ )
521 { this->bind( parent_ ); }
529 {
return (*this)->default_event(); }
535 {
return (*this)->value_changed_event(); }
540 {
return (*this)->posedge_event(); }
545 {
return (*this)->negedge_event(); }
551 {
return (*this)->read(); }
553 operator const data_type& ()
const 554 {
return (*this)->read(); }
561 if ( !m_pos_finder_p )
564 *
this, &in_if_type::posedge_event );
566 return *m_pos_finder_p;
573 if ( !m_neg_finder_p )
576 *
this, &in_if_type::negedge_event );
578 return *m_neg_finder_p;
585 {
return (*this)->event(); }
590 {
return (*this)->posedge(); }
595 {
return (*this)->negedge(); }
601 if ( !m_change_finder_p )
604 *
this, &in_if_type::value_changed_event );
606 return *m_change_finder_p;
614 virtual void end_of_elaboration();
616 virtual const char*
kind()
const 623 void add_trace_internal(
sc_trace_file*,
const std::string& )
const;
627 void remove_traces()
const;
655 sc_in(
const this_type& );
657 this_type& operator = (
const this_type& );
664 static data_type dummy;
679 :
public sc_port<sc_signal_in_if<sc_dt::sc_logic>,1,SC_ONE_OR_MORE_BOUND>
702 : base_type(), m_traces( 0 ),
703 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
707 : base_type( name_ ), m_traces( 0 ),
708 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
711 explicit sc_in(
const in_if_type& interface_ )
712 : base_type( const_cast<in_if_type&>( interface_ ) ), m_traces( 0 ),
713 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
716 sc_in(
const char* name_,
const in_if_type& interface_ )
717 : base_type( name_, const_cast<in_if_type&>( interface_ ) ), m_traces( 0 ),
718 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
721 explicit sc_in( in_port_type& parent_ )
722 : base_type( parent_ ), m_traces( 0 ),
723 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
726 sc_in(
const char* name_, in_port_type& parent_ )
727 : base_type( name_, parent_ ), m_traces( 0 ),
728 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
731 explicit sc_in( inout_port_type& parent_ )
732 : base_type(), m_traces( 0 ),
733 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
736 sc_in(
const char* name_, inout_port_type& parent_ )
737 : base_type( name_ ), m_traces( 0 ),
738 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
742 : base_type( parent_ ), m_traces( 0 ),
743 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
746 sc_in(
const char* name_, this_type& parent_ )
747 : base_type( name_, parent_ ), m_traces( 0 ),
748 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
757 delete m_change_finder_p;
758 delete m_neg_finder_p;
759 delete m_pos_finder_p;
769 { this->bind( const_cast<const in_if_type&>( interface_ ) ); }
771 void operator () (
const in_if_type& interface_ )
772 { this->bind( interface_ ); }
780 void operator () ( in_port_type& parent_ )
781 { this->bind( parent_ ); }
789 void operator () ( inout_port_type& parent_ )
790 { this->bind( parent_ ); }
798 {
return (*this)->default_event(); }
804 {
return (*this)->value_changed_event(); }
809 {
return (*this)->posedge_event(); }
814 {
return (*this)->negedge_event(); }
820 {
return (*this)->read(); }
822 operator const data_type& ()
const 823 {
return (*this)->read(); }
830 if ( !m_pos_finder_p )
833 *
this, &in_if_type::posedge_event );
835 return *m_pos_finder_p;
842 if ( !m_neg_finder_p )
845 *
this, &in_if_type::negedge_event );
847 return *m_neg_finder_p;
854 {
return (*this)->event(); }
859 {
return (*this)->posedge(); }
864 {
return (*this)->negedge(); }
870 if ( !m_change_finder_p )
873 *
this, &in_if_type::value_changed_event );
875 return *m_change_finder_p;
883 virtual void end_of_elaboration();
885 virtual const char*
kind()
const 892 void add_trace_internal(
sc_trace_file*,
const std::string& )
const;
896 void remove_traces()
const;
922 sc_in(
const this_type& );
923 this_type& operator = (
const this_type& );
930 static data_type dummy;
943 :
public sc_port<sc_signal_inout_if<T>,1,SC_ONE_OR_MORE_BOUND>
965 : base_type(), m_init_val( 0 ), m_traces( 0 ),
970 : base_type( name_ ), m_init_val( 0 ), m_traces( 0 ),
975 : base_type( interface_ ), m_init_val( 0 ), m_traces( 0 ),
979 sc_inout(
const char* name_, inout_if_type& interface_ )
980 : base_type( name_, interface_ ), m_init_val( 0 ), m_traces( 0 ),
985 : base_type( parent_ ), m_init_val( 0 ), m_traces( 0 ),
989 sc_inout(
const char* name_, inout_port_type& parent_ )
990 : base_type( name_, parent_ ), m_init_val( 0 ), m_traces( 0 ),
995 : base_type( parent_ ), m_init_val( 0 ), m_traces( 0 ),
1000 : base_type( name_, parent_ ), m_init_val( 0 ), m_traces( 0 ),
1001 m_change_finder_p(0)
1015 {
return (*this)->default_event(); }
1021 {
return (*this)->value_changed_event(); }
1027 {
return (*this)->read(); }
1029 operator const data_type& ()
const 1030 {
return (*this)->read(); }
1036 {
return (*this)->event(); }
1042 { (*this)->write( value_ ); }
1044 this_type& operator = (
const data_type& value_ )
1045 { (*this)->write( value_ );
return *
this; }
1047 this_type& operator = (
const in_if_type& interface_ )
1048 { (*this)->write( interface_.
read() );
return *
this; }
1050 this_type& operator = (
const in_port_type& port_ )
1051 { (*this)->write( port_->read() );
return *
this; }
1053 this_type& operator = (
const inout_port_type& port_ )
1054 { (*this)->write( port_->read() );
return *
this; }
1056 this_type& operator = (
const this_type& port_ )
1057 { (*this)->write( port_->read() );
return *
this; }
1062 void initialize(
const data_type& value_ );
1065 { initialize( interface_.
read() ); }
1072 virtual void end_of_elaboration();
1079 if ( !m_change_finder_p )
1082 *
this, &in_if_type::value_changed_event );
1084 return *m_change_finder_p;
1088 {
return "sc_inout"; }
1097 void add_trace_internal(
sc_trace_file*,
const std::string& )
const;
1103 void remove_traces()
const;
1120 static data_type dummy;
1124 template<
typename T>
1125 ::std::ostream& operator << ( ::std::ostream& os, const sc_inout<T>& a )
1127 return os << a->read();
1139 delete m_change_finder_p;
1154 iface->
write( value_ );
1156 if( m_init_val == 0 ) {
1159 *m_init_val = value_;
1171 if( m_init_val != 0 ) {
1172 write( *m_init_val );
1176 if( m_traces != 0 ) {
1177 for(
int i = 0; i < (int)m_traces->size(); ++ i ) {
1196 if( m_traces == 0 ) {
1209 add_trace_internal(tf_, name_);
1217 if( m_traces != 0 ) {
1218 for(
int i = static_cast<int>(m_traces->size()) - 1; i >= 0; -- i ) {
1219 delete (*m_traces)[i];
1237 public sc_port<sc_signal_inout_if<bool>,1,SC_ONE_OR_MORE_BOUND>
1259 : base_type(), m_init_val( 0 ), m_traces( 0 ),
1260 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1264 : base_type( name_ ), m_init_val( 0 ), m_traces( 0 ),
1265 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1269 : base_type( interface_ ), m_init_val( 0 ), m_traces( 0 ),
1270 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1273 sc_inout(
const char* name_, inout_if_type& interface_ )
1274 : base_type( name_, interface_ ), m_init_val( 0 ), m_traces( 0 ),
1275 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1279 : base_type( parent_ ), m_init_val( 0 ), m_traces( 0 ),
1280 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1283 sc_inout(
const char* name_, inout_port_type& parent_ )
1284 : base_type( name_, parent_ ), m_init_val( 0 ), m_traces( 0 ),
1285 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1289 : base_type( parent_ ), m_init_val( 0 ), m_traces( 0 ),
1290 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1294 : base_type( name_, parent_ ), m_init_val( 0 ), m_traces( 0 ),
1295 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1309 {
return (*this)->default_event(); }
1315 {
return (*this)->value_changed_event(); }
1320 {
return (*this)->posedge_event(); }
1325 {
return (*this)->negedge_event(); }
1331 {
return (*this)->read(); }
1333 operator const data_type& ()
const 1334 {
return (*this)->read(); }
1341 if ( !m_pos_finder_p )
1344 *
this, &in_if_type::posedge_event );
1346 return *m_pos_finder_p;
1353 if ( !m_neg_finder_p )
1356 *
this, &in_if_type::negedge_event );
1358 return *m_neg_finder_p;
1365 {
return (*this)->event(); }
1370 {
return (*this)->posedge(); }
1375 {
return (*this)->negedge(); }
1380 { (*this)->write( value_ ); }
1382 this_type& operator = (
const data_type& value_ )
1383 { (*this)->write( value_ );
return *
this; }
1385 this_type& operator = (
const in_if_type& interface_ )
1386 { (*this)->write( interface_.
read() );
return *
this; }
1388 this_type& operator = (
const in_port_type& port_ )
1389 { (*this)->write( port_->read() );
return *
this; }
1391 this_type& operator = (
const inout_port_type& port_ )
1392 { (*this)->write( port_->read() );
return *
this; }
1394 this_type& operator = (
const this_type& port_ )
1395 { (*this)->write( port_->read() );
return *
this; }
1400 void initialize(
const data_type& value_ );
1403 { initialize( interface_.
read() ); }
1410 virtual void end_of_elaboration();
1417 if ( !m_change_finder_p )
1420 *
this, &in_if_type::value_changed_event );
1422 return *m_change_finder_p;
1426 {
return "sc_inout"; }
1435 void add_trace_internal(
sc_trace_file*,
const std::string& )
const;
1441 void remove_traces()
const;
1460 static data_type dummy;
1475 :
public sc_port<sc_signal_inout_if<sc_dt::sc_logic>,1,SC_ONE_OR_MORE_BOUND>
1497 : base_type(), m_init_val( 0 ), m_traces( 0 ),
1498 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1502 : base_type( name_ ), m_init_val( 0 ), m_traces( 0 ),
1503 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1507 : base_type( interface_ ), m_init_val( 0 ), m_traces( 0 ),
1508 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1511 sc_inout(
const char* name_, inout_if_type& interface_ )
1512 : base_type( name_, interface_ ), m_init_val( 0 ), m_traces( 0 ),
1513 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1517 : base_type( parent_ ), m_init_val( 0 ), m_traces( 0 ),
1518 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1521 sc_inout(
const char* name_, inout_port_type& parent_ )
1522 : base_type( name_, parent_ ), m_init_val( 0 ), m_traces( 0 ),
1523 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1527 : base_type( parent_ ), m_init_val( 0 ), m_traces( 0 ),
1528 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1532 : base_type( name_, parent_ ), m_init_val( 0 ), m_traces( 0 ),
1533 m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
1547 {
return (*this)->default_event(); }
1553 {
return (*this)->value_changed_event(); }
1558 {
return (*this)->posedge_event(); }
1563 {
return (*this)->negedge_event(); }
1569 {
return (*this)->read(); }
1571 operator const data_type& ()
const 1572 {
return (*this)->read(); }
1579 if ( !m_pos_finder_p )
1582 *
this, &in_if_type::posedge_event );
1584 return *m_pos_finder_p;
1591 if ( !m_neg_finder_p )
1594 *
this, &in_if_type::negedge_event );
1596 return *m_neg_finder_p;
1603 {
return (*this)->event(); }
1608 {
return (*this)->posedge(); }
1613 {
return (*this)->negedge(); }
1618 { (*this)->write( value_ ); }
1620 this_type& operator = (
const data_type& value_ )
1621 { (*this)->write( value_ );
return *
this; }
1623 this_type& operator = (
const in_if_type& interface_ )
1624 { (*this)->write( interface_.
read() );
return *
this; }
1626 this_type& operator = (
const in_port_type& port_ )
1627 { (*this)->write( port_->read() );
return *
this; }
1629 this_type& operator = (
const inout_port_type& port_ )
1630 { (*this)->write( port_->read() );
return *
this; }
1632 this_type& operator = (
const this_type& port_ )
1633 { (*this)->write( port_->read() );
return *
this; }
1638 void initialize(
const data_type& value_ );
1641 { initialize( interface_.
read() ); }
1648 virtual void end_of_elaboration();
1655 if ( !m_change_finder_p )
1658 *
this, &in_if_type::value_changed_event );
1660 return *m_change_finder_p;
1664 {
return "sc_inout"; }
1673 void add_trace_internal(
sc_trace_file*,
const std::string& )
const;
1679 void remove_traces()
const;
1698 static data_type dummy;
1739 : base_type( name_ )
1743 : base_type( interface_ )
1746 sc_out(
const char* name_, inout_if_type& interface_ )
1747 : base_type( name_, interface_ )
1751 : base_type( parent_ )
1754 sc_out(
const char* name_, inout_port_type& parent_ )
1755 : base_type( name_, parent_ )
1759 : base_type( parent_ )
1762 sc_out(
const char* name_, this_type& parent_ )
1763 : base_type( name_, parent_ )
1775 this_type& operator = (
const data_type& value_ )
1776 { (*this)->write( value_ );
return *
this; }
1778 this_type& operator = (
const in_if_type& interface_ )
1779 { (*this)->write( interface_.
read() );
return *
this; }
1781 this_type& operator = (
const in_port_type& port_ )
1782 { (*this)->write( port_->read() );
return *
this; }
1784 this_type& operator = (
const inout_port_type& port_ )
1785 { (*this)->write( port_->read() );
return *
this; }
1787 this_type& operator = (
const this_type& port_ )
1788 { (*this)->write( port_->read() );
return *
this; }
1791 {
return "sc_out"; }
1796 sc_out(
const this_type& );
1819 sc_trace( tf, iface->read(), name );
1821 port.add_trace_internal( tf, name );
1828 const std::string& name )
1837 sc_trace( tf, iface->read(), name );
1839 port.add_trace_internal( tf, name );
1846 #if defined(_MSC_VER) && !defined(SC_WIN_DLL_WARN) 1847 #pragma warning(pop) const data_type & read() const
sc_event_finder & pos() const
const sc_event & default_event() const
sc_out(inout_port_type &parent_)
const sc_event & value_changed_event() const
sc_out< data_type > this_type
The sc_signal<T> input interface class.
sc_dt::sc_logic data_type
sc_out(const char *name_, this_type &parent_)
void remove_traces() const
sc_port< if_type, 1, SC_ONE_OR_MORE_BOUND > base_type
sc_in< data_type > this_type
SC_API void sc_deprecated_add_trace()
base_type::inout_if_type inout_if_type
void sc_trace(sc_trace_file *tf, const sc_in< T > &port, const std::string &name)
sc_event_finder & value_changed() const
sc_in(this_type &parent_)
sc_port< if_type, 1, SC_ONE_OR_MORE_BOUND > base_type
const sc_event & default_event() const
sc_in(const char *name_, inout_port_type &parent_)
sc_event_finder & value_changed() const
const sc_event & default_event() const
void bind(sc_interface &interface_)
void add_trace_internal(sc_trace_file *, const std::string &) const
sc_out(inout_if_type &interface_)
const sc_event & value_changed_event() const
const data_type & read() const
sc_port< if_type, 1, SC_ONE_OR_MORE_BOUND > base_type
sc_dt::sc_logic data_type
sc_in(const char *name_, inout_port_type &parent_)
base_type::port_type base_port_type
The sc_signal<T> input/output port class.
sc_in(const char *name_, const in_if_type &interface_)
sc_signal_in_if< data_type > if_type
void initialize(const in_if_type &interface_)
sc_inout(this_type &parent_)
const sc_event & negedge_event() const
const sc_event & negedge_event() const
SC_VIRTUAL_ void bind(in_if_type &interface_)
sc_inout< data_type > base_type
Base classes of all port classes.
SC_VIRTUAL_ void bind(inout_port_type &parent_)
const sc_event & default_event() const
sc_in(const char *name_, in_port_type &parent_)
SC_VIRTUAL_ void bind(inout_port_type &parent_)
sc_port< in_if_type, 1, SC_ONE_OR_MORE_BOUND > in_port_type
virtual int vbind(sc_interface &)
sc_in(inout_port_type &parent_)
The sc_signal<T> interface classes.
sc_in(const char *name_, this_type &parent_)
Generic port class and base class for other port classes.
sc_trace_params_vec * m_traces
Abstract base class for class sc_port_b.
sc_port< in_if_type, 1, SC_ONE_OR_MORE_BOUND > in_port_type
sc_event_finder & pos() const
sc_inout(const char *name_, inout_port_type &parent_)
sc_signal_inout_if< data_type > inout_if_type
virtual const char * kind() const
void add_trace(sc_trace_file *, const std::string &) const
sc_port< inout_if_type, 1, SC_ONE_OR_MORE_BOUND > inout_port_type
virtual const char * kind() const
virtual int vbind(sc_interface &)
sc_inout(inout_port_type &parent_)
sc_inout(inout_port_type &parent_)
sc_inout(const char *name_, this_type &parent_)
sc_in(const char *name_, const in_if_type &interface_)
sc_port< inout_if_type, 1, SC_ONE_OR_MORE_BOUND > inout_port_type
const sc_event & posedge_event() const
sc_in(in_port_type &parent_)
void write(const data_type &value_)
sc_inout< data_type > this_type
sc_in(in_port_type &parent_)
const data_type & read() const
sc_trace_params_vec * m_traces
sc_in(this_type &parent_)
sc_trace_params_vec * m_traces
sc_in(const char *name_, const in_if_type &interface_)
sc_inout(const char *name_, inout_if_type &interface_)
const sc_event & negedge_event() const
const data_type & read() const
SC_VIRTUAL_ void bind(inout_port_type &parent_)
sc_port< if_type, 1, SC_ONE_OR_MORE_BOUND > base_type
sc_in(const char *name_, in_port_type &parent_)
sc_signal_inout_if< data_type > inout_if_type
sc_trace_params_vec * m_traces
base_type::inout_port_type inout_port_type
sc_in(const char *name_, this_type &parent_)
sc_inout(inout_if_type &interface_)
The sc_signal<T> input port class.
sc_inout(const char *name_, inout_port_type &parent_)
sc_trace_params_vec * m_traces
const sc_event & posedge_event() const
Original Author: Martin Janssen, Synopsys, Inc. Stan Y. Liao, Synopsys, Inc., 2001-05-21.
virtual const char * kind() const
sc_in(this_type &parent_)
sc_in(const char *name_, inout_port_type &parent_)
SC_VIRTUAL_ void bind(in_port_type &parent_)
sc_signal_inout_if< data_type > inout_if_type
sc_in(const in_if_type &interface_)
sc_event_finder & value_changed() const
const data_type & read() const
SC_VIRTUAL_ void bind(const in_if_type &interface_)
sc_inout(const char *name_, this_type &parent_)
sc_event_finder & pos() const
void write(const data_type &value_)
Abstract base class of all interface classes.
base_type::in_if_type in_if_type
sc_in(const in_if_type &interface_)
Struct for storing the trace file and object name of an sc_trace call.
const sc_event & value_changed_event() const
sc_inout(const char *name_, inout_port_type &parent_)
sc_in(const in_if_type &interface_)
sc_trace_params(sc_trace_file *tf_, const std::string &name_)
sc_signal_in_if< data_type > if_type
sc_signal_in_if< data_type > in_if_type
sc_port< if_type, 1, SC_ONE_OR_MORE_BOUND > base_type
virtual sc_interface * get_interface()=0
sc_inout< data_type > this_type
virtual const char * kind() const
void remove_traces() const
sc_inout(inout_if_type &interface_)
const sc_event & posedge_event() const
sc_inout(this_type &parent_)
sc_inout(inout_port_type &parent_)
sc_in< data_type > this_type
const sc_event & negedge_event() const
base_type inout_port_type
base_type::port_type base_port_type
void write(const data_type &value_)
sc_inout(this_type &parent_)
sc_event_finder & neg() const
SC_VIRTUAL_ void bind(const in_if_type &interface_)
sc_in(const char *name_, in_port_type &parent_)
sc_event_finder & value_changed() const
void initialize(const in_if_type &interface_)
sc_event_finder & value_changed() const
const sc_event & value_changed_event() const
sc_out(this_type &parent_)
base_type::in_port_type in_port_type
sc_signal_in_if< data_type > in_if_type
base_type inout_port_type
const sc_event & value_changed_event() const
sc_out(const char *name_, inout_if_type &interface_)
void initialize(const data_type &value_)
sc_inout(const char *name_, inout_if_type &interface_)
sc_event_finder & neg() const
sc_inout(const char *name_)
C++ implementation of logic type. Behaves.
std::vector< sc_trace_params * > sc_trace_params_vec
sc_event_finder & neg() const
base_type::port_type base_port_type
const sc_event & posedge_event() const
SC_VIRTUAL_ void bind(const in_if_type &interface_)
sc_event_finder & value_changed() const
virtual void end_of_elaboration()
sc_out(const char *name_, inout_port_type &parent_)
sc_simcontext * sc_get_curr_simcontext()
virtual const char * kind() const
#define SC_API_TEMPLATE_DECL_
sc_port< if_type, 1, SC_ONE_OR_MORE_BOUND > base_type
sc_inout(inout_if_type &interface_)
virtual void write(const T &)=0
sc_signal_in_if< data_type > if_type
const data_type & read() const
sc_event_finder & pos() const
SC_VIRTUAL_ void bind(in_if_type &interface_)
sc_signal_inout_if< data_type > if_type
const sc_event & default_event() const
virtual const char * kind() const
sc_port< in_if_type, 1, SC_ONE_OR_MORE_BOUND > in_port_type
SC_VIRTUAL_ void bind(base_port_type &parent_)
SC_VIRTUAL_ void bind(base_port_type &parent_)
SC_VIRTUAL_ void bind(in_if_type &interface_)
sc_inout(const char *name_, inout_if_type &interface_)
virtual void end_of_elaboration()
SC_VIRTUAL_ void bind(base_port_type &parent_)
sc_in(inout_port_type &parent_)
sc_inout(const char *name_)
virtual const char * kind() const
SC_VIRTUAL_ void bind(in_port_type &parent_)
void add_trace(sc_trace_file *, const std::string &) const
SC_VIRTUAL_ void bind(in_port_type &parent_)
virtual const T & read() const =0
sc_event_finder & neg() const
sc_in(inout_port_type &parent_)
const sc_event & value_changed_event() const
sc_port< inout_if_type, 1, SC_ONE_OR_MORE_BOUND > inout_port_type
void initialize(const in_if_type &interface_)
sc_in(in_port_type &parent_)
sc_out(const char *name_)
sc_inout< data_type > this_type
void add_trace_internal(sc_trace_file *, const std::string &) const
sc_inout(const char *name_, this_type &parent_)
const sc_event & default_event() const
base_type inout_port_type
sc_signal_in_if< data_type > in_if_type
sc_signal_inout_if< data_type > if_type
sc_inout(const char *name_)
sc_signal_inout_if< data_type > if_type
sc_in(const char *name_, this_type &parent_)
sc_trace_params_vec * m_traces
sc_in< data_type > this_type