クラス sc_core::sc_sensitive

#include <sc_sensitive.h>

すべてのメンバ一覧

Public 型

typedef sc_signal_in_if< bool > in_if_b_type
typedef sc_signal_in_if
< sc_dt::sc_logic
in_if_l_type
typedef sc_in< bool > in_port_b_type
typedef sc_in< sc_dt::sc_logicin_port_l_type
typedef sc_inout< bool > inout_port_b_type
typedef sc_inout< sc_dt::sc_logicinout_port_l_type

Public メソッド

sc_sensitiveoperator<< (sc_process_handle)
sc_sensitiveoperator() (const sc_event &)
sc_sensitiveoperator() (const sc_interface &)
sc_sensitiveoperator() (const sc_port_base &)
sc_sensitiveoperator() (sc_event_finder &)
sc_sensitiveoperator<< (const sc_event &)
sc_sensitiveoperator<< (const sc_interface &)
sc_sensitiveoperator<< (const sc_port_base &)
sc_sensitiveoperator<< (sc_event_finder &)
sc_sensitiveoperator() (sc_cthread_handle, sc_event_finder &)
sc_sensitiveoperator() (sc_cthread_handle, const in_if_b_type &)
sc_sensitiveoperator() (sc_cthread_handle, const in_if_l_type &)
sc_sensitiveoperator() (sc_cthread_handle, const in_port_b_type &)
sc_sensitiveoperator() (sc_cthread_handle, const in_port_l_type &)
sc_sensitiveoperator() (sc_cthread_handle, const inout_port_b_type &)
sc_sensitiveoperator() (sc_cthread_handle, const inout_port_l_type &)
void reset ()

Static Public メソッド

static void make_static_sensitivity (sc_process_b *, const sc_event &)
static void make_static_sensitivity (sc_process_b *, const sc_interface &)
static void make_static_sensitivity (sc_process_b *, const sc_port_base &)
static void make_static_sensitivity (sc_process_b *, sc_event_finder &)

Private 型

enum  { SC_NONE_, SC_METHOD_, SC_THREAD_ }

Private メソッド

 sc_sensitive (sc_module *)
 ~sc_sensitive ()
 sc_sensitive ()
 sc_sensitive (const sc_sensitive &)
sc_sensitiveoperator= (const sc_sensitive &)

Private 変数

sc_modulem_module
enum sc_core::sc_sensitive:: { ... }  m_mode
sc_process_bm_handle

フレンド

class sc_module


説明

sc_sensitive.h83 行で定義されています。


型定義

sc_sensitive.h90 行で定義されています。

sc_sensitive.h91 行で定義されています。

sc_sensitive.h92 行で定義されています。

sc_sensitive.h93 行で定義されています。

sc_sensitive.h94 行で定義されています。

sc_sensitive.h95 行で定義されています。


列挙型

anonymous enum [private]

列挙型の値:
SC_NONE_ 
SC_METHOD_ 
SC_THREAD_ 

sc_sensitive.h142 行で定義されています。


コンストラクタとデストラクタ

sc_core::sc_sensitive::sc_sensitive ( sc_module module_  )  [explicit, private]

sc_sensitive.cpp119 行で定義されています。

00120 : m_module( module_ ),
00121   m_mode( SC_NONE_ ),
00122   m_handle( 0 )
00123 {}

sc_core::sc_sensitive::~sc_sensitive (  )  [private]

sc_sensitive.cpp128 行で定義されています。

00129 {}

sc_core::sc_sensitive::sc_sensitive (  )  [private]

sc_core::sc_sensitive::sc_sensitive ( const sc_sensitive  )  [private]


関数

sc_sensitive & sc_core::sc_sensitive::operator<< ( sc_process_handle  handle_  ) 

sc_sensitive.cpp135 行で定義されています。

00136 {
00137     switch ( handle_.proc_kind() )
00138         {
00139       case SC_CTHREAD_PROC_:
00140       case SC_THREAD_PROC_:
00141         m_mode = SC_THREAD_;
00142         break;
00143       case SC_METHOD_PROC_:
00144         m_mode = SC_METHOD_;
00145         break;
00146       default:
00147         assert(0);
00148     }
00149     m_handle = (sc_process_b*)handle_;
00150     return *this;
00151 }

sc_sensitive & sc_core::sc_sensitive::operator() ( const sc_event event_  ) 

sc_sensitive.cpp302 行で定義されています。

00303 {
00304     warn_no_parens();
00305     return operator << ( event_ );
00306 }

sc_sensitive & sc_core::sc_sensitive::operator() ( const sc_interface interface_  ) 

sc_sensitive.cpp309 行で定義されています。

00310 {
00311     warn_no_parens();
00312     return operator << ( interface_ );
00313 }

sc_sensitive & sc_core::sc_sensitive::operator() ( const sc_port_base port_  ) 

sc_sensitive.cpp316 行で定義されています。

00317 {
00318     warn_no_parens();
00319     return operator << ( port_ );
00320 }

sc_sensitive & sc_core::sc_sensitive::operator() ( sc_event_finder event_finder_  ) 

sc_sensitive.cpp323 行で定義されています。

00324 {
00325     warn_no_parens();
00326     return operator << ( event_finder_ );
00327 }

sc_sensitive & sc_core::sc_sensitive::operator<< ( const sc_event event_  ) 

sc_sensitive.cpp154 行で定義されています。

00155 {
00156     // check
00157     if( sc_is_running() ) {
00158         SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_, "simulation running" );
00159     }
00160 
00161     // make sensitive
00162     switch( m_mode ) {
00163     case SC_METHOD_:
00164     case SC_THREAD_: {
00165         m_handle->add_static_event( event_ );
00166         break;
00167     }
00168     case SC_NONE_:
00169         /* do nothing */
00170         break;
00171     }
00172 
00173     return *this;
00174 }

sc_sensitive & sc_core::sc_sensitive::operator<< ( const sc_interface interface_  ) 

sc_sensitive.cpp185 行で定義されています。

00186 {
00187     // check
00188     if( sc_is_running() ) {
00189         SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_, "simulation running" );
00190     }
00191 
00192     // make sensitive
00193     switch( m_mode ) {
00194     case SC_METHOD_:
00195     case SC_THREAD_: {
00196         m_handle->add_static_event( interface_.default_event() );
00197         break;
00198     }
00199     case SC_NONE_:
00200         /* do nothing */
00201         break;
00202     }
00203 
00204     return *this;
00205 }

sc_sensitive & sc_core::sc_sensitive::operator<< ( const sc_port_base port_  ) 

sc_sensitive.cpp215 行で定義されています。

00216 {
00217     // check
00218     if( sc_is_running() ) {
00219         SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_, "simulation running" );
00220     }
00221 
00222     // make sensitive
00223     switch( m_mode ) {
00224     case SC_METHOD_: {
00225         port_.make_sensitive( as_method_handle( m_handle ) );
00226         break;
00227     }
00228     case SC_THREAD_: {
00229         port_.make_sensitive( as_thread_handle( m_handle ) );
00230         break;
00231     }
00232     case SC_NONE_:
00233         /* do nothing */
00234         break;
00235     }
00236 
00237     return *this;
00238 }

sc_sensitive & sc_core::sc_sensitive::operator<< ( sc_event_finder event_finder_  ) 

sc_sensitive.cpp255 行で定義されています。

00256 {
00257     // check
00258     if( sc_is_running() ) {
00259         SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_, "simulation running" );
00260     }
00261 
00262     // make sensitive
00263     switch( m_mode ) {
00264     case SC_METHOD_: {
00265         event_finder_.port().make_sensitive( as_method_handle( m_handle ),
00266                                              &event_finder_ );
00267         break;
00268     }
00269     case SC_THREAD_: {
00270         event_finder_.port().make_sensitive( as_thread_handle( m_handle ),
00271                                              &event_finder_ );
00272         break;
00273     }
00274     case SC_NONE_:
00275         /* do nothing */
00276         break;
00277     }
00278 
00279     return *this;
00280 }

sc_sensitive & sc_core::sc_sensitive::operator() ( sc_cthread_handle  handle_,
sc_event_finder event_finder_ 
)

sc_sensitive.cpp331 行で定義されています。

00333 {
00334     event_finder_.port().make_sensitive( handle_, &event_finder_ );
00335     return *this;
00336 }

sc_sensitive & sc_core::sc_sensitive::operator() ( sc_cthread_handle  handle_,
const in_if_b_type interface_ 
)

sc_sensitive.cpp339 行で定義されています。

00341 {
00342     handle_->add_static_event( interface_.posedge_event() );
00343     return *this;
00344 }

sc_sensitive & sc_core::sc_sensitive::operator() ( sc_cthread_handle  handle_,
const in_if_l_type interface_ 
)

sc_sensitive.cpp347 行で定義されています。

00349 {
00350     handle_->add_static_event( interface_.posedge_event() );
00351     return *this;
00352 }

sc_sensitive & sc_core::sc_sensitive::operator() ( sc_cthread_handle  handle_,
const in_port_b_type port_ 
)

sc_sensitive.cpp355 行で定義されています。

00357 {
00358     port_.make_sensitive( handle_, &port_.pos() );
00359     return *this;
00360 }

sc_sensitive & sc_core::sc_sensitive::operator() ( sc_cthread_handle  handle_,
const in_port_l_type port_ 
)

sc_sensitive.cpp363 行で定義されています。

00365 {
00366     port_.make_sensitive( handle_, &port_.pos() );
00367     return *this;
00368 }

sc_sensitive & sc_core::sc_sensitive::operator() ( sc_cthread_handle  handle_,
const inout_port_b_type port_ 
)

sc_sensitive.cpp371 行で定義されています。

00373 {
00374     port_.make_sensitive( handle_, &port_.pos() );
00375     return *this;
00376 }

sc_sensitive & sc_core::sc_sensitive::operator() ( sc_cthread_handle  handle_,
const inout_port_l_type port_ 
)

sc_sensitive.cpp379 行で定義されています。

00381 {
00382     port_.make_sensitive( handle_, &port_.pos() );
00383     return *this;
00384 }

void sc_core::sc_sensitive::make_static_sensitivity ( sc_process_b handle_,
const sc_event event_ 
) [static]

sc_sensitive.cpp177 行で定義されています。

00179 {
00180     handle_->add_static_event( event_ );
00181 }

void sc_core::sc_sensitive::make_static_sensitivity ( sc_process_b handle_,
const sc_interface interface_ 
) [static]

sc_sensitive.cpp208 行で定義されています。

00210 {
00211     handle_->add_static_event( interface_.default_event() );
00212 }

void sc_core::sc_sensitive::make_static_sensitivity ( sc_process_b handle_,
const sc_port_base port_ 
) [static]

sc_sensitive.cpp241 行で定義されています。

00243 {
00244     sc_method_handle handle_m = as_method_handle( handle_ );
00245     if ( handle_m ) {
00246         port_.make_sensitive( handle_m );
00247         return;
00248     }
00249     sc_thread_handle handle_t = as_thread_handle( handle_ );
00250     // assert(handle_t);
00251     port_.make_sensitive( handle_t );
00252 }

void sc_core::sc_sensitive::make_static_sensitivity ( sc_process_b handle_,
sc_event_finder event_finder_ 
) [static]

sc_sensitive.cpp283 行で定義されています。

00285 {
00286     if (sc_is_running()) {
00287       handle_->add_static_event( event_finder_.find_event() );
00288     } else {
00289         sc_method_handle handle_m = as_method_handle( handle_ );
00290         if ( handle_m ) {
00291             event_finder_.port().make_sensitive( handle_m, &event_finder_ );
00292             return;
00293         }
00294         sc_thread_handle handle_t = as_thread_handle( handle_ );
00295         // assert(handle_t);
00296         event_finder_.port().make_sensitive( handle_t, &event_finder_);
00297     }
00298 }

void sc_core::sc_sensitive::reset (  ) 

sc_sensitive.cpp386 行で定義されています。

00387 {
00388     m_mode = SC_NONE_;
00389 }

sc_sensitive& sc_core::sc_sensitive::operator= ( const sc_sensitive  )  [private]


フレンドと関連する関数

friend class sc_module [friend]

sc_sensitive.h85 行で定義されています。


変数

sc_sensitive.h141 行で定義されています。

enum { ... } sc_core::sc_sensitive::m_mode [private]

sc_sensitive.h143 行で定義されています。


このクラスの説明は次のファイルから生成されました:

SystemCに対してFri Jun 6 20:12:02 2008に生成されました。  doxygen 1.5.6