#include <sc_signal_resolved.h>
Public 型 | |
typedef sc_signal_resolved | this_type |
typedef sc_signal < sc_dt::sc_logic > | base_type |
typedef sc_dt::sc_logic | data_type |
Public メソッド | |
sc_signal_resolved () | |
sc_signal_resolved (const char *name_) | |
virtual | ~sc_signal_resolved () |
virtual void | register_port (sc_port_base &, const char *) |
virtual void | write (const data_type &) |
this_type & | operator= (const data_type &a) |
this_type & | operator= (const this_type &a) |
virtual const char * | kind () const |
Protected メソッド | |
virtual void | update () |
Protected 変数 | |
std::vector< sc_process_b * > | m_proc_vec |
std::vector< data_type * > | m_val_vec |
Private メソッド | |
sc_signal_resolved (const this_type &) |
sc_signal_resolved.h の 87 行で定義されています。
sc_signal_resolved.h の 94 行で定義されています。
sc_signal_resolved.h の 95 行で定義されています。
sc_signal_resolved.h の 96 行で定義されています。
sc_core::sc_signal_resolved::sc_signal_resolved | ( | ) | [inline] |
sc_signal_resolved.h の 102 行で定義されています。
00103 : base_type( sc_gen_unique_name( "signal_resolved" ) ) 00104 {}
sc_core::sc_signal_resolved::sc_signal_resolved | ( | const char * | name_ | ) | [inline, explicit] |
sc_core::sc_signal_resolved::~sc_signal_resolved | ( | ) | [virtual] |
sc_signal_resolved.cpp の 104 行で定義されています。
00105 { 00106 for( int i = m_val_vec.size() - 1; i >= 0; -- i ) { 00107 delete m_val_vec[i]; 00108 } 00109 }
sc_core::sc_signal_resolved::sc_signal_resolved | ( | const this_type & | ) | [private] |
virtual void sc_core::sc_signal_resolved::register_port | ( | sc_port_base & | , | |
const char * | ||||
) | [inline, virtual] |
void sc_core::sc_signal_resolved::write | ( | const data_type & | value_ | ) | [virtual] |
sc_core::sc_signal< sc_dt::sc_logic >を再定義しています。
sc_signal_resolved.cpp の 115 行で定義されています。
00116 { 00117 sc_process_b* cur_proc = sc_get_current_process_b(); 00118 00119 bool value_changed = false; 00120 bool found = false; 00121 00122 for( int i = m_proc_vec.size() - 1; i >= 0; -- i ) { 00123 if( cur_proc == m_proc_vec[i] ) { 00124 if( value_ != *m_val_vec[i] ) { 00125 *m_val_vec[i] = value_; 00126 value_changed = true; 00127 } 00128 found = true; 00129 break; 00130 } 00131 } 00132 00133 if( ! found ) { 00134 m_proc_vec.push_back( cur_proc ); 00135 m_val_vec.push_back( new data_type( value_ ) ); 00136 value_changed = true; 00137 } 00138 00139 if( value_changed ) { 00140 request_update(); 00141 } 00142 }
sc_core::sc_signal< sc_dt::sc_logic >を再定義しています。
sc_signal_resolved.h の 127 行で定義されています。
00128 { write( a ); return *this; }
virtual const char* sc_core::sc_signal_resolved::kind | ( | ) | const [inline, virtual] |
void sc_core::sc_signal_resolved::update | ( | ) | [protected, virtual] |
sc_core::sc_signal< sc_dt::sc_logic >を再定義しています。
sc_signal_resolved.cpp の 146 行で定義されています。
00147 { 00148 sc_logic_resolve::resolve( m_new_val, m_val_vec ); 00149 base_type::update(); 00150 }
std::vector<sc_process_b*> sc_core::sc_signal_resolved::m_proc_vec [protected] |
sc_signal_resolved.h の 142 行で定義されています。
std::vector<data_type*> sc_core::sc_signal_resolved::m_val_vec [protected] |
sc_signal_resolved.h の 143 行で定義されています。