#include <sc_signal.h>
Public メソッド | |
sc_signal () | |
sc_signal (const char *name_) | |
virtual | ~sc_signal () |
virtual void | register_port (sc_port_base &, const char *) |
virtual const sc_event & | default_event () const |
virtual const sc_event & | value_changed_event () const |
virtual const sc_event & | posedge_event () const |
virtual const sc_event & | negedge_event () const |
virtual const bool & | read () const |
virtual const bool & | get_data_ref () const |
virtual bool | event () const |
virtual bool | posedge () const |
virtual bool | negedge () const |
virtual sc_reset * | is_reset () const |
virtual void | write (const bool &) |
operator const bool & () const | |
sc_signal< bool > & | operator= (const bool &a) |
sc_signal< bool > & | operator= (const sc_signal< bool > &a) |
const bool & | get_new_value () const |
void | trace (sc_trace_file *tf) const |
virtual void | print (::std::ostream &=::std::cout) const |
virtual void | dump (::std::ostream &=::std::cout) const |
virtual const char * | kind () const |
Protected メソッド | |
virtual void | update () |
virtual bool | is_clock () const |
Protected 変数 | |
sc_event * | m_change_event_p |
bool | m_cur_val |
sc_dt::uint64 | m_delta |
sc_event * | m_negedge_event_p |
bool | m_new_val |
sc_port_base * | m_output |
sc_event * | m_posedge_event_p |
sc_reset * | m_reset_p |
sc_object * | m_writer |
Private メソッド | |
sc_signal (const sc_signal< bool > &) |
sc_signal.h の 268 行で定義されています。
sc_core::sc_signal< bool >::sc_signal | ( | ) | [inline] |
sc_signal.h の 274 行で定義されています。
00275 : sc_prim_channel( sc_gen_unique_name( "signal" ) ), 00276 m_change_event_p( 0 ), 00277 m_cur_val( false ), 00278 m_delta( ~sc_dt::UINT64_ONE ), 00279 m_negedge_event_p( 0 ), 00280 m_new_val( false ), 00281 m_output( 0 ), 00282 m_posedge_event_p( 0 ), 00283 m_reset_p( 0 ), 00284 m_writer( 0 ) 00285 {}
sc_core::sc_signal< bool >::sc_signal | ( | const char * | name_ | ) | [inline, explicit] |
sc_signal.h の 287 行で定義されています。
00288 : sc_prim_channel( name_ ), 00289 m_change_event_p( 0 ), 00290 m_cur_val( false ), 00291 m_delta( ~sc_dt::UINT64_ONE ), 00292 m_negedge_event_p( 0 ), 00293 m_new_val( false ), 00294 m_output( 0 ), 00295 m_posedge_event_p( 0 ), 00296 m_reset_p( 0 ), 00297 m_writer( 0 ) 00298 {}
sc_core::sc_signal< bool >::~sc_signal | ( | ) | [virtual] |
sc_signal.cpp の 161 行で定義されています。
00162 { 00163 if ( !m_change_event_p ) delete m_change_event_p; 00164 if ( !m_negedge_event_p ) delete m_negedge_event_p; 00165 if ( !m_posedge_event_p ) delete m_posedge_event_p; 00166 if ( m_reset_p ) delete m_reset_p; 00167 }
sc_core::sc_signal< bool >::sc_signal | ( | const sc_signal< bool > & | ) | [private] |
void sc_core::sc_signal< bool >::register_port | ( | sc_port_base & | port_, | |
const char * | if_typename_ | |||
) | [inline, virtual] |
sc_core::sc_interfaceを再定義しています。
sc_core::sc_clockで再定義されています。
sc_signal.h の 428 行で定義されています。
00429 { 00430 if ( sc_get_curr_simcontext()->write_check() ) 00431 { 00432 std::string nm( if_typename_ ); 00433 if( nm == typeid( sc_signal_inout_if<bool> ).name() ) { 00434 // an out or inout port; only one can be connected 00435 if( m_output != 0 ) { 00436 sc_signal_invalid_writer( this, m_output, &port_ ); 00437 } 00438 m_output = &port_; 00439 } 00440 } 00441 }
virtual const sc_event& sc_core::sc_signal< bool >::default_event | ( | ) | const [inline, virtual] |
sc_core::sc_interfaceを再定義しています。
sc_signal.h の 309 行で定義されています。
00310 { 00311 if ( !m_change_event_p ) m_change_event_p = new sc_event; 00312 return *m_change_event_p; 00313 }
virtual const sc_event& sc_core::sc_signal< bool >::value_changed_event | ( | ) | const [inline, virtual] |
sc_core::sc_signal_in_if< bool >を実装しています。
sc_signal.h の 317 行で定義されています。
00318 { 00319 if ( !m_change_event_p ) m_change_event_p = new sc_event; 00320 return *m_change_event_p; 00321 }
virtual const sc_event& sc_core::sc_signal< bool >::posedge_event | ( | ) | const [inline, virtual] |
sc_core::sc_signal_in_if< bool >を実装しています。
sc_signal.h の 324 行で定義されています。
00325 { 00326 if ( !m_posedge_event_p ) 00327 m_posedge_event_p = new sc_event; 00328 return *m_posedge_event_p; 00329 }
virtual const sc_event& sc_core::sc_signal< bool >::negedge_event | ( | ) | const [inline, virtual] |
sc_core::sc_signal_in_if< bool >を実装しています。
sc_signal.h の 332 行で定義されています。
00333 { 00334 if ( !m_negedge_event_p ) 00335 m_negedge_event_p = new sc_event; 00336 return *m_negedge_event_p; 00337 }
virtual const bool& sc_core::sc_signal< bool >::read | ( | ) | const [inline, virtual] |
virtual const bool& sc_core::sc_signal< bool >::get_data_ref | ( | ) | const [inline, virtual] |
sc_core::sc_signal_in_if< bool >を実装しています。
sc_signal.h の 345 行で定義されています。
00346 { sc_deprecated_get_data_ref(); return m_cur_val; }
virtual bool sc_core::sc_signal< bool >::event | ( | ) | const [inline, virtual] |
sc_core::sc_signal_in_if< bool >を実装しています。
sc_signal.h の 350 行で定義されています。
00351 { return simcontext()->event_occurred(m_delta); }
virtual bool sc_core::sc_signal< bool >::posedge | ( | ) | const [inline, virtual] |
virtual bool sc_core::sc_signal< bool >::negedge | ( | ) | const [inline, virtual] |
sc_reset * sc_core::sc_signal< bool >::is_reset | ( | ) | const [virtual] |
sc_core::sc_signal_in_if< bool >を実装しています。
sc_signal.cpp の 151 行で定義されています。
00152 { 00153 sc_reset* result_p; 00154 if ( !m_reset_p ) m_reset_p = new sc_reset( this ); 00155 result_p = m_reset_p; 00156 return result_p; 00157 }
void sc_core::sc_signal< bool >::write | ( | const bool & | value_ | ) | [inline, virtual] |
sc_core::sc_signal_write_if< bool >を実装しています。
sc_core::sc_clockで再定義されています。
sc_signal.h の 448 行で定義されています。
00449 { 00450 sc_object* writer = sc_get_curr_simcontext()->get_current_writer(); 00451 if( m_writer == 0 ) { 00452 m_writer = writer; 00453 } else if( m_writer != writer ) { 00454 sc_signal_invalid_writer( this, m_writer, writer ); 00455 } 00456 00457 m_new_val = value_; 00458 if( !( m_new_val == m_cur_val ) ) { 00459 request_update(); 00460 } 00461 }
sc_core::sc_signal< bool >::operator const bool & | ( | ) | const [inline] |
sc_signal<bool>& sc_core::sc_signal< bool >::operator= | ( | const bool & | a | ) | [inline] |
sc_signal<bool>& sc_core::sc_signal< bool >::operator= | ( | const sc_signal< bool > & | a | ) | [inline] |
const bool& sc_core::sc_signal< bool >::get_new_value | ( | ) | const [inline] |
void sc_core::sc_signal< bool >::trace | ( | sc_trace_file * | tf | ) | const [inline, virtual] |
sc_core::sc_objectを再定義しています。
sc_signal.h の 385 行で定義されています。
00386 { 00387 sc_deprecated_trace(); 00388 # ifdef DEBUG_SYSTEMC 00389 sc_trace( tf, read(), name() ); 00390 # endif 00391 }
void sc_core::sc_signal< bool >::print | ( | ::std::ostream & | os = ::std::cout |
) | const [inline, virtual] |
void sc_core::sc_signal< bool >::dump | ( | ::std::ostream & | os = ::std::cout |
) | const [inline, virtual] |
sc_core::sc_objectを再定義しています。
sc_signal.h の 473 行で定義されています。
00474 { 00475 os << " name = " << name() << ::std::endl; 00476 os << " value = " << m_cur_val << ::std::endl; 00477 os << "new value = " << m_new_val << ::std::endl; 00478 }
virtual const char* sc_core::sc_signal< bool >::kind | ( | ) | const [inline, virtual] |
void sc_core::sc_signal< bool >::update | ( | ) | [inline, protected, virtual] |
sc_core::sc_prim_channelを再定義しています。
sc_signal.h の 483 行で定義されています。
00484 { 00485 if( !( m_new_val == m_cur_val ) ) { 00486 // order of execution below is important, the notify_processes() call 00487 // must come after the update of m_cur_val for things to work properly! 00488 m_cur_val = m_new_val; 00489 if ( m_reset_p ) m_reset_p->notify_processes(); 00490 00491 if ( m_change_event_p ) m_change_event_p->notify_next_delta(); 00492 if( m_cur_val ) { 00493 if ( m_posedge_event_p ) m_posedge_event_p->notify_next_delta(); 00494 } else { 00495 if ( m_negedge_event_p ) m_negedge_event_p->notify_next_delta(); 00496 } 00497 m_delta = delta_count(); 00498 } 00499 }
virtual bool sc_core::sc_signal< bool >::is_clock | ( | ) | const [inline, protected, virtual] |
sc_event* sc_core::sc_signal< bool >::m_change_event_p [mutable, protected] |
sc_signal.h の 407 行で定義されています。
bool sc_core::sc_signal< bool >::m_cur_val [protected] |
sc_signal.h の 408 行で定義されています。
sc_dt::uint64 sc_core::sc_signal< bool >::m_delta [protected] |
sc_signal.h の 409 行で定義されています。
sc_event* sc_core::sc_signal< bool >::m_negedge_event_p [mutable, protected] |
sc_signal.h の 410 行で定義されています。
bool sc_core::sc_signal< bool >::m_new_val [protected] |
sc_signal.h の 411 行で定義されています。
sc_port_base* sc_core::sc_signal< bool >::m_output [protected] |
sc_signal.h の 412 行で定義されています。
sc_event* sc_core::sc_signal< bool >::m_posedge_event_p [mutable, protected] |
sc_signal.h の 413 行で定義されています。
sc_reset* sc_core::sc_signal< bool >::m_reset_p [mutable, protected] |
sc_signal.h の 414 行で定義されています。
sc_object* sc_core::sc_signal< bool >::m_writer [protected] |
sc_signal.h の 415 行で定義されています。