クラス sc_core::sc_module

#include <sc_module.h>

sc_core::sc_moduleに対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

sc_simcontextsc_get_curr_simcontext ()
const char * gen_unique_name (const char *basename_, bool preserve_first)
virtual const char * kind () const
virtual ~sc_module ()
sc_moduleoperator<< (sc_interface &)
sc_moduleoperator<< (sc_port_base &)
sc_moduleoperator, (sc_interface &interface_)
sc_moduleoperator, (sc_port_base &port_)
const ::std::vector< sc_object * > & get_child_objects () const
void defunct ()
void operator() (const sc_bind_proxy &p001, const sc_bind_proxy &p002=SC_BIND_PROXY_NIL, const sc_bind_proxy &p003=SC_BIND_PROXY_NIL, const sc_bind_proxy &p004=SC_BIND_PROXY_NIL, const sc_bind_proxy &p005=SC_BIND_PROXY_NIL, const sc_bind_proxy &p006=SC_BIND_PROXY_NIL, const sc_bind_proxy &p007=SC_BIND_PROXY_NIL, const sc_bind_proxy &p008=SC_BIND_PROXY_NIL, const sc_bind_proxy &p009=SC_BIND_PROXY_NIL, const sc_bind_proxy &p010=SC_BIND_PROXY_NIL, const sc_bind_proxy &p011=SC_BIND_PROXY_NIL, const sc_bind_proxy &p012=SC_BIND_PROXY_NIL, const sc_bind_proxy &p013=SC_BIND_PROXY_NIL, const sc_bind_proxy &p014=SC_BIND_PROXY_NIL, const sc_bind_proxy &p015=SC_BIND_PROXY_NIL, const sc_bind_proxy &p016=SC_BIND_PROXY_NIL, const sc_bind_proxy &p017=SC_BIND_PROXY_NIL, const sc_bind_proxy &p018=SC_BIND_PROXY_NIL, const sc_bind_proxy &p019=SC_BIND_PROXY_NIL, const sc_bind_proxy &p020=SC_BIND_PROXY_NIL, const sc_bind_proxy &p021=SC_BIND_PROXY_NIL, const sc_bind_proxy &p022=SC_BIND_PROXY_NIL, const sc_bind_proxy &p023=SC_BIND_PROXY_NIL, const sc_bind_proxy &p024=SC_BIND_PROXY_NIL, const sc_bind_proxy &p025=SC_BIND_PROXY_NIL, const sc_bind_proxy &p026=SC_BIND_PROXY_NIL, const sc_bind_proxy &p027=SC_BIND_PROXY_NIL, const sc_bind_proxy &p028=SC_BIND_PROXY_NIL, const sc_bind_proxy &p029=SC_BIND_PROXY_NIL, const sc_bind_proxy &p030=SC_BIND_PROXY_NIL, const sc_bind_proxy &p031=SC_BIND_PROXY_NIL, const sc_bind_proxy &p032=SC_BIND_PROXY_NIL, const sc_bind_proxy &p033=SC_BIND_PROXY_NIL, const sc_bind_proxy &p034=SC_BIND_PROXY_NIL, const sc_bind_proxy &p035=SC_BIND_PROXY_NIL, const sc_bind_proxy &p036=SC_BIND_PROXY_NIL, const sc_bind_proxy &p037=SC_BIND_PROXY_NIL, const sc_bind_proxy &p038=SC_BIND_PROXY_NIL, const sc_bind_proxy &p039=SC_BIND_PROXY_NIL, const sc_bind_proxy &p040=SC_BIND_PROXY_NIL, const sc_bind_proxy &p041=SC_BIND_PROXY_NIL, const sc_bind_proxy &p042=SC_BIND_PROXY_NIL, const sc_bind_proxy &p043=SC_BIND_PROXY_NIL, const sc_bind_proxy &p044=SC_BIND_PROXY_NIL, const sc_bind_proxy &p045=SC_BIND_PROXY_NIL, const sc_bind_proxy &p046=SC_BIND_PROXY_NIL, const sc_bind_proxy &p047=SC_BIND_PROXY_NIL, const sc_bind_proxy &p048=SC_BIND_PROXY_NIL, const sc_bind_proxy &p049=SC_BIND_PROXY_NIL, const sc_bind_proxy &p050=SC_BIND_PROXY_NIL, const sc_bind_proxy &p051=SC_BIND_PROXY_NIL, const sc_bind_proxy &p052=SC_BIND_PROXY_NIL, const sc_bind_proxy &p053=SC_BIND_PROXY_NIL, const sc_bind_proxy &p054=SC_BIND_PROXY_NIL, const sc_bind_proxy &p055=SC_BIND_PROXY_NIL, const sc_bind_proxy &p056=SC_BIND_PROXY_NIL, const sc_bind_proxy &p057=SC_BIND_PROXY_NIL, const sc_bind_proxy &p058=SC_BIND_PROXY_NIL, const sc_bind_proxy &p059=SC_BIND_PROXY_NIL, const sc_bind_proxy &p060=SC_BIND_PROXY_NIL, const sc_bind_proxy &p061=SC_BIND_PROXY_NIL, const sc_bind_proxy &p062=SC_BIND_PROXY_NIL, const sc_bind_proxy &p063=SC_BIND_PROXY_NIL, const sc_bind_proxy &p064=SC_BIND_PROXY_NIL)

Protected メソッド

virtual void before_end_of_elaboration ()
void construction_done ()
virtual void end_of_elaboration ()
void elaboration_done (bool &)
virtual void start_of_simulation ()
void start_simulation ()
virtual void end_of_simulation ()
void simulation_done ()
void sc_module_init ()
 sc_module (const char *nm)
 sc_module (const std::string &nm)
 sc_module (const sc_module_name &nm)
 sc_module ()
void add_child_object (sc_object *)
void remove_child_object (sc_object *)
void end_module ()
void dont_initialize ()
void positional_bind (sc_interface &)
void positional_bind (sc_port_base &)
void reset_signal_is (const sc_in< bool > &port, bool level)
void reset_signal_is (const sc_signal_in_if< bool > &iface, bool level)
void wait ()
void wait (const sc_event &e)
void wait (sc_event_or_list &el)
void wait (sc_event_and_list &el)
void wait (const sc_time &t)
void wait (double v, sc_time_unit tu)
void wait (const sc_time &t, const sc_event &e)
void wait (double v, sc_time_unit tu, const sc_event &e)
void wait (const sc_time &t, sc_event_or_list &el)
void wait (double v, sc_time_unit tu, sc_event_or_list &el)
void wait (const sc_time &t, sc_event_and_list &el)
void wait (double v, sc_time_unit tu, sc_event_and_list &el)
void next_trigger ()
void next_trigger (const sc_event &e)
void next_trigger (sc_event_or_list &el)
void next_trigger (sc_event_and_list &el)
void next_trigger (const sc_time &t)
void next_trigger (double v, sc_time_unit tu)
void next_trigger (const sc_time &t, const sc_event &e)
void next_trigger (double v, sc_time_unit tu, const sc_event &e)
void next_trigger (const sc_time &t, sc_event_or_list &el)
void next_trigger (double v, sc_time_unit tu, sc_event_or_list &el)
void next_trigger (const sc_time &t, sc_event_and_list &el)
void next_trigger (double v, sc_time_unit tu, sc_event_and_list &el)
bool timed_out ()
void halt ()
void wait (int n)
void at_posedge (const sc_signal_in_if< bool > &s)
void at_posedge (const sc_signal_in_if< sc_dt::sc_logic > &s)
void at_negedge (const sc_signal_in_if< bool > &s)
void at_negedge (const sc_signal_in_if< sc_dt::sc_logic > &s)
void watching (bool expr)
void set_stack_size (std::size_t)
int append_port (sc_port_base *)

Protected 変数

sc_sensitive sensitive
sc_sensitive_pos sensitive_pos
sc_sensitive_neg sensitive_neg

Private メソッド

 sc_module (const sc_module &)

Private 変数

bool m_end_module_called
std::vector< sc_port_base * > * m_port_vec
int m_port_index
sc_name_genm_name_gen
std::vector< sc_object * > m_child_objects
sc_module_namem_module_name_p

フレンド

class sc_module_name
class sc_module_registry
class sc_object
class sc_port_registry
class sc_process_b
class sc_simcontext


説明

sc_module.h154 行で定義されています。


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

sc_core::sc_module::sc_module ( const char *  nm  )  [protected]

sc_module.cpp230 行で定義されています。

00231 : sc_object(nm),
00232   sensitive(this),
00233   sensitive_pos(this),
00234   sensitive_neg(this)
00235 {
00236     sc_module_init();
00237 }

sc_core::sc_module::sc_module ( const std::string &  nm  )  [protected]

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

00303 : sc_object( s.c_str() ),
00304   sensitive(this),
00305   sensitive_pos(this),
00306   sensitive_neg(this)
00307 {
00308     sc_module_init();
00309 }

sc_core::sc_module::sc_module ( const sc_module_name nm  )  [protected]

sc_module.cpp279 行で定義されています。

00280 : sc_object(::sc_core::sc_get_curr_simcontext()
00281                   ->get_object_manager()
00282                   ->top_of_module_name_stack()
00283                   ->operator const char*()),
00284   sensitive(this),
00285   sensitive_pos(this),
00286   sensitive_neg(this)
00287 {
00288     /* For those used to the old style of passing a name to sc_module,
00289        this constructor will reduce the chance of making a mistake */
00290 
00291     /* When this form is used, we better have a fresh sc_module_name
00292        on the top of the stack */
00293     sc_module_name* mod_name = 
00294         simcontext()->get_object_manager()->top_of_module_name_stack();
00295     if (0 == mod_name || 0 != mod_name->m_module_p)
00296       SC_REPORT_ERROR( SC_ID_SC_MODULE_NAME_REQUIRED_, 0 );
00297     sc_module_init();
00298     mod_name->set_module( this );
00299     m_module_name_p = mod_name; // must come after sc_module_init call.
00300 }

sc_core::sc_module::sc_module (  )  [protected]

sc_module.cpp259 行で定義されています。

00260 : sc_object(::sc_core::sc_get_curr_simcontext()
00261                   ->get_object_manager()
00262                   ->top_of_module_name_stack()
00263                   ->operator const char*()),
00264   sensitive(this),
00265   sensitive_pos(this),
00266   sensitive_neg(this)
00267 {
00268     /* When this form is used, we better have a fresh sc_module_name
00269        on the top of the stack */
00270     sc_module_name* mod_name = 
00271         simcontext()->get_object_manager()->top_of_module_name_stack();
00272     if (0 == mod_name || 0 != mod_name->m_module_p)
00273         SC_REPORT_ERROR( SC_ID_SC_MODULE_NAME_REQUIRED_, 0 );
00274     sc_module_init();
00275     mod_name->set_module( this );
00276     m_module_name_p = mod_name; // must come after sc_module_init call.
00277 }

sc_core::sc_module::~sc_module (  )  [virtual]

sc_module.cpp311 行で定義されています。

00312 {
00313     delete m_port_vec;
00314     delete m_name_gen;
00315     if ( m_module_name_p )
00316     {
00317         m_module_name_p->clear_module( this ); // must be before end_module()
00318         end_module();
00319     }
00320     simcontext()->get_module_registry()->remove( *this );
00321 }

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


関数

sc_simcontext* sc_core::sc_module::sc_get_curr_simcontext (  )  [inline]

sc_module.h166 行で定義されています。

00167         { return simcontext(); }

const char * sc_core::sc_module::gen_unique_name ( const char *  basename_,
bool  preserve_first 
)

sc_module.cpp395 行で定義されています。

00396 {
00397     return m_name_gen->gen_unique_name( basename_, preserve_first );
00398 }

virtual const char* sc_core::sc_module::kind (  )  const [inline, virtual]

sc_core::sc_objectを再定義しています。

sc_core::sc_event_queueで再定義されています。

sc_module.h172 行で定義されています。

00173         { return "sc_module"; }

void sc_core::sc_module::before_end_of_elaboration (  )  [protected, virtual]

sc_module.cpp404 行で定義されています。

00405 {}

void sc_core::sc_module::construction_done (  )  [protected]

sc_module.cpp411 行で定義されています。

00412 {
00413     simcontext()->hierarchy_push( this );
00414     before_end_of_elaboration();
00415     simcontext()->hierarchy_pop();
00416 }

void sc_core::sc_module::end_of_elaboration (  )  [protected, virtual]

sc_module.cpp421 行で定義されています。

00422 {}

void sc_core::sc_module::elaboration_done ( bool &  error_  )  [protected]

sc_module.cpp429 行で定義されています。

00430 {
00431     if( ! m_end_module_called ) {
00432         char msg[BUFSIZ];
00433         std::sprintf( msg, "module '%s'", name() );
00434         SC_REPORT_WARNING( SC_ID_END_MODULE_NOT_CALLED_, msg );
00435         if( error_ ) {
00436             SC_REPORT_WARNING( SC_ID_HIER_NAME_INCORRECT_, 0 );
00437         }
00438         error_ = true;
00439     }
00440     simcontext()->hierarchy_push( this );
00441     end_of_elaboration();
00442     simcontext()->hierarchy_pop();
00443 }

void sc_core::sc_module::start_of_simulation (  )  [protected, virtual]

sc_module.cpp448 行で定義されています。

00449 {}

void sc_core::sc_module::start_simulation (  )  [protected]

sc_module.cpp452 行で定義されています。

00453 {
00454     start_of_simulation();
00455 }

void sc_core::sc_module::end_of_simulation (  )  [protected, virtual]

sc_module.cpp460 行で定義されています。

00461 {}

void sc_core::sc_module::simulation_done (  )  [protected]

sc_module.cpp464 行で定義されています。

00465 {
00466     end_of_simulation();
00467 }

void sc_core::sc_module::sc_module_init (  )  [protected]

sc_module.cpp219 行で定義されています。

00220 {
00221     simcontext()->hierarchy_push( this );
00222     m_end_module_called = false;
00223         m_module_name_p = 0;
00224     m_port_vec = new std::vector<sc_port_base*>;
00225     m_port_index = 0;
00226     m_name_gen = new sc_name_gen;
00227     simcontext()->get_module_registry()->insert( *this );
00228 }

sc_module & sc_core::sc_module::operator<< ( sc_interface interface_  ) 

sc_module.cpp515 行で定義されています。

00516 {
00517     sc_warn_arrow_arrow_bind();
00518     positional_bind(interface_);
00519     return *this;
00520 }

sc_module & sc_core::sc_module::operator<< ( sc_port_base port_  ) 

sc_module.cpp523 行で定義されています。

00524 {
00525     sc_warn_arrow_arrow_bind();
00526     positional_bind(port_);
00527     return *this;
00528 }

sc_module& sc_core::sc_module::operator, ( sc_interface interface_  )  [inline]

sc_module.h215 行で定義されています。

00216         { return operator << ( interface_ ); }

sc_module& sc_core::sc_module::operator, ( sc_port_base port_  )  [inline]

sc_module.h218 行で定義されています。

00219         { return operator << ( port_ ); }

const ::std::vector< sc_object * > & sc_core::sc_module::get_child_objects (  )  const [virtual]

sc_core::sc_objectを再定義しています。

sc_module.cpp325 行で定義されています。

00326 {
00327     return m_child_objects;
00328 }

void sc_core::sc_module::add_child_object ( sc_object object_  )  [protected]

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

00332 {
00333     // no check if object_ is already in the set
00334     m_child_objects.push_back( object_ );
00335 }

void sc_core::sc_module::remove_child_object ( sc_object object_  )  [protected]

sc_module.cpp338 行で定義されています。

00339 {
00340     int size = m_child_objects.size();
00341     for( int i = 0; i < size; ++ i ) {
00342         if( object_ == m_child_objects[i] ) {
00343             m_child_objects[i] = m_child_objects[size - 1];
00344             m_child_objects.resize(size-1);
00345             return;
00346         }
00347     }
00348     // no check if object_ is really in the set
00349 }

void sc_core::sc_module::end_module (  )  [protected]

sc_module.cpp353 行で定義されています。

00354 {
00355     if( ! m_end_module_called ) {
00356         /* TBD: Can check here to alert the user that end_module
00357                 was not called for a previous module. */
00358         (void)sc_get_curr_simcontext()->hierarchy_pop();
00359         sc_get_curr_simcontext()->reset_curr_proc(); 
00360         sensitive.reset();
00361         sensitive_pos.reset();
00362         sensitive_neg.reset();
00363         m_end_module_called = true;
00364         m_module_name_p = 0; // make sure we are not called in ~sc_module().
00365     }
00366 }

void sc_core::sc_module::dont_initialize (  )  [protected]

sc_module.cpp372 行で定義されています。

00373 {
00374     sc_process_handle last_proc = sc_get_last_created_process_handle();
00375     last_proc.dont_initialize( true );
00376 }

void sc_core::sc_module::positional_bind ( sc_interface interface_  )  [protected]

sc_module.cpp532 行で定義されています。

00533 {
00534     if( m_port_index == (int)m_port_vec->size() ) {
00535         char msg[BUFSIZ];
00536         if( m_port_index == 0 ) {
00537             std::sprintf( msg, "module `%s' has no ports", name() );
00538         } else {
00539             std::sprintf( msg, "all ports of module `%s' are bound", name() );
00540         }
00541         SC_REPORT_ERROR( SC_ID_BIND_IF_TO_PORT_, msg );
00542     }
00543     int status = (*m_port_vec)[m_port_index]->pbind( interface_ );
00544     if( status != 0 ) {
00545         char msg[BUFSIZ];
00546         switch( status ) {
00547         case 1:
00548             std::sprintf( msg, "port %d of module `%s' is already bound",
00549                      m_port_index, name() );
00550             break;
00551         case 2:
00552             std::sprintf( msg, "type mismatch on port %d of module `%s'",
00553                      m_port_index, name() );
00554             break;
00555         default:
00556             std::sprintf( msg, "unknown error" );
00557             break;
00558         }
00559         SC_REPORT_ERROR( SC_ID_BIND_IF_TO_PORT_, msg );
00560     }
00561     ++ m_port_index;
00562 }

void sc_core::sc_module::positional_bind ( sc_port_base port_  )  [protected]

sc_module.cpp565 行で定義されています。

00566 {
00567     if( m_port_index == (int)m_port_vec->size() ) {
00568         char msg[BUFSIZ];
00569         if( m_port_index == 0 ) {
00570             std::sprintf( msg, "module `%s' has no ports", name() );
00571         } else {
00572             std::sprintf( msg, "all ports of module `%s' are bound", name() );
00573         }
00574         SC_REPORT_ERROR( SC_ID_BIND_PORT_TO_PORT_, msg );
00575     }
00576     int status = (*m_port_vec)[m_port_index]->pbind( port_ );
00577     if( status != 0 ) {
00578         char msg[BUFSIZ];
00579         switch( status ) {
00580         case 1:
00581             std::sprintf( msg, "port %d of module `%s' is already bound",
00582                      m_port_index, name() );
00583             break;
00584         case 2:
00585             std::sprintf( msg, "type mismatch on port %d of module `%s'",
00586                      m_port_index, name() );
00587             break;
00588         default:
00589             std::sprintf( msg, "unknown error" );
00590             break;
00591         }
00592         SC_REPORT_ERROR( SC_ID_BIND_PORT_TO_PORT_, msg );
00593     }
00594     ++ m_port_index;
00595 }

void sc_core::sc_module::reset_signal_is ( const sc_in< bool > &  port,
bool  level 
) [protected]

sc_module.cpp381 行で定義されています。

00382 {
00383         sc_reset::reset_signal_is(port, level);
00384 }

void sc_core::sc_module::reset_signal_is ( const sc_signal_in_if< bool > &  iface,
bool  level 
) [protected]

sc_module.cpp387 行で定義されています。

00388 {
00389         sc_reset::reset_signal_is(iface, level);
00390 }

void sc_core::sc_module::wait (  )  [inline, protected]

sc_module.h248 行で定義されています。

void sc_core::sc_module::wait ( const sc_event e  )  [inline, protected]

sc_module.h253 行で定義されています。

00254         { ::sc_core::wait( e, simcontext() ); }

void sc_core::sc_module::wait ( sc_event_or_list el  )  [inline, protected]

sc_module.h256 行で定義されています。

00257         { ::sc_core::wait( el, simcontext() ); }

void sc_core::sc_module::wait ( sc_event_and_list el  )  [inline, protected]

sc_module.h259 行で定義されています。

00260         { ::sc_core::wait( el, simcontext() ); }

void sc_core::sc_module::wait ( const sc_time t  )  [inline, protected]

sc_module.h262 行で定義されています。

00263         { ::sc_core::wait( t, simcontext() ); }

void sc_core::sc_module::wait ( double  v,
sc_time_unit  tu 
) [inline, protected]

sc_module.h265 行で定義されています。

00266         { ::sc_core::wait( sc_time( v, tu, simcontext() ), simcontext() ); }

void sc_core::sc_module::wait ( const sc_time t,
const sc_event e 
) [inline, protected]

sc_module.h268 行で定義されています。

00269         { ::sc_core::wait( t, e, simcontext() ); }

void sc_core::sc_module::wait ( double  v,
sc_time_unit  tu,
const sc_event e 
) [inline, protected]

sc_module.h271 行で定義されています。

00272         { ::sc_core::wait( 
00273                 sc_time( v, tu, simcontext() ), e, simcontext() ); }

void sc_core::sc_module::wait ( const sc_time t,
sc_event_or_list el 
) [inline, protected]

sc_module.h275 行で定義されています。

00276         { ::sc_core::wait( t, el, simcontext() ); }

void sc_core::sc_module::wait ( double  v,
sc_time_unit  tu,
sc_event_or_list el 
) [inline, protected]

sc_module.h278 行で定義されています。

00279         { ::sc_core::wait( sc_time( v, tu, simcontext() ), el, simcontext() ); }

void sc_core::sc_module::wait ( const sc_time t,
sc_event_and_list el 
) [inline, protected]

sc_module.h281 行で定義されています。

00282         { ::sc_core::wait( t, el, simcontext() ); }

void sc_core::sc_module::wait ( double  v,
sc_time_unit  tu,
sc_event_and_list el 
) [inline, protected]

sc_module.h284 行で定義されています。

00285         { ::sc_core::wait( sc_time( v, tu, simcontext() ), el, simcontext() ); }

void sc_core::sc_module::next_trigger (  )  [inline, protected]

sc_module.h290 行で定義されています。

void sc_core::sc_module::next_trigger ( const sc_event e  )  [inline, protected]

sc_module.h296 行で定義されています。

void sc_core::sc_module::next_trigger ( sc_event_or_list el  )  [inline, protected]

sc_module.h299 行で定義されています。

void sc_core::sc_module::next_trigger ( sc_event_and_list el  )  [inline, protected]

sc_module.h302 行で定義されています。

void sc_core::sc_module::next_trigger ( const sc_time t  )  [inline, protected]

sc_module.h305 行で定義されています。

void sc_core::sc_module::next_trigger ( double  v,
sc_time_unit  tu 
) [inline, protected]

sc_module.h308 行で定義されています。

00309         { ::sc_core::next_trigger( 
00310             sc_time( v, tu, simcontext() ), simcontext() ); }

void sc_core::sc_module::next_trigger ( const sc_time t,
const sc_event e 
) [inline, protected]

sc_module.h312 行で定義されています。

00313         { ::sc_core::next_trigger( t, e, simcontext() ); }

void sc_core::sc_module::next_trigger ( double  v,
sc_time_unit  tu,
const sc_event e 
) [inline, protected]

sc_module.h315 行で定義されています。

00316         { ::sc_core::next_trigger( 
00317                 sc_time( v, tu, simcontext() ), e, simcontext() ); }

void sc_core::sc_module::next_trigger ( const sc_time t,
sc_event_or_list el 
) [inline, protected]

sc_module.h319 行で定義されています。

00320         { ::sc_core::next_trigger( t, el, simcontext() ); }

void sc_core::sc_module::next_trigger ( double  v,
sc_time_unit  tu,
sc_event_or_list el 
) [inline, protected]

sc_module.h322 行で定義されています。

00323         { ::sc_core::next_trigger( 
00324             sc_time( v, tu, simcontext() ), el, simcontext() ); }

void sc_core::sc_module::next_trigger ( const sc_time t,
sc_event_and_list el 
) [inline, protected]

sc_module.h326 行で定義されています。

00327         { ::sc_core::next_trigger( t, el, simcontext() ); }

void sc_core::sc_module::next_trigger ( double  v,
sc_time_unit  tu,
sc_event_and_list el 
) [inline, protected]

sc_module.h329 行で定義されています。

00330         { ::sc_core::next_trigger( 
00331             sc_time( v, tu, simcontext() ), el, simcontext() ); }

bool sc_core::sc_module::timed_out (  )  [inline, protected]

sc_module.h336 行で定義されています。

void sc_core::sc_module::halt (  )  [inline, protected]

sc_module.h342 行で定義されています。

void sc_core::sc_module::wait ( int  n  )  [inline, protected]

sc_module.h345 行で定義されています。

00346         { ::sc_core::wait( n, simcontext() ); }

void sc_core::sc_module::at_posedge ( const sc_signal_in_if< bool > &  s  )  [inline, protected]

sc_module.h348 行で定義されています。

void sc_core::sc_module::at_posedge ( const sc_signal_in_if< sc_dt::sc_logic > &  s  )  [inline, protected]

sc_module.h351 行で定義されています。

void sc_core::sc_module::at_negedge ( const sc_signal_in_if< bool > &  s  )  [inline, protected]

sc_module.h354 行で定義されています。

void sc_core::sc_module::at_negedge ( const sc_signal_in_if< sc_dt::sc_logic > &  s  )  [inline, protected]

sc_module.h357 行で定義されています。

void sc_core::sc_module::watching ( bool  expr  )  [inline, protected]

sc_module.h361 行で定義されています。

00362         { SC_REPORT_ERROR(SC_ID_WATCHING_NOT_ALLOWED_,""); }

void sc_core::sc_module::set_stack_size ( std::size_t  size  )  [protected]

sc_module.cpp470 行で定義されています。

00471 {
00472     sc_process_handle  proc_h(
00473         sc_is_running() ?
00474         sc_get_current_process_handle() :
00475         sc_get_last_created_process_handle()
00476     );
00477     sc_thread_handle thread_h;  // Current process as thread.
00478 
00479 
00480     thread_h = (sc_thread_handle)proc_h;
00481     if ( thread_h ) 
00482     {
00483         thread_h->set_stack_size( size );
00484     }
00485     else
00486     {
00487         SC_REPORT_WARNING( SC_ID_SET_STACK_SIZE_, 0 );
00488     }
00489 }

int sc_core::sc_module::append_port ( sc_port_base port_  )  [protected]

sc_module.cpp493 行で定義されています。

00494 {
00495     int index = m_port_vec->size();
00496     m_port_vec->push_back( port_ );
00497     return index;
00498 }

void sc_core::sc_module::defunct (  )  [inline]

sc_core::sc_process_hostを再定義しています。

sc_module.h388 行で定義されています。

00388 { }

void sc_core::sc_module::operator() ( const sc_bind_proxy p001,
const sc_bind_proxy p002 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p003 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p004 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p005 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p006 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p007 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p008 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p009 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p010 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p011 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p012 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p013 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p014 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p015 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p016 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p017 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p018 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p019 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p020 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p021 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p022 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p023 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p024 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p025 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p026 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p027 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p028 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p029 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p030 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p031 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p032 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p033 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p034 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p035 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p036 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p037 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p038 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p039 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p040 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p041 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p042 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p043 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p044 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p045 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p046 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p047 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p048 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p049 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p050 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p051 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p052 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p053 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p054 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p055 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p056 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p057 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p058 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p059 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p060 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p061 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p062 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p063 = SC_BIND_PROXY_NIL,
const sc_bind_proxy p064 = SC_BIND_PROXY_NIL 
)

sc_module.cpp609 行で定義されています。

00673 {
00674     static bool warn_only_once=true;
00675     if ( m_port_index > 0 && warn_only_once )
00676     {
00677         warn_only_once = false;
00678         SC_REPORT_INFO(SC_ID_IEEE_1666_DEPRECATION_,
00679          "multiple () binding depreacted, use explicit port binding instead." );
00680     }
00681 
00682     TRY_BIND( p001 );
00683     TRY_BIND( p002 );
00684     TRY_BIND( p003 );
00685     TRY_BIND( p004 );
00686     TRY_BIND( p005 );
00687     TRY_BIND( p006 );
00688     TRY_BIND( p007 );
00689     TRY_BIND( p008 );
00690     TRY_BIND( p009 );
00691     TRY_BIND( p010 );
00692     TRY_BIND( p011 );
00693     TRY_BIND( p012 );
00694     TRY_BIND( p013 );
00695     TRY_BIND( p014 );
00696     TRY_BIND( p015 );
00697     TRY_BIND( p016 );
00698     TRY_BIND( p017 );
00699     TRY_BIND( p018 );
00700     TRY_BIND( p019 );
00701     TRY_BIND( p020 );
00702     TRY_BIND( p021 );
00703     TRY_BIND( p022 );
00704     TRY_BIND( p023 );
00705     TRY_BIND( p024 );
00706     TRY_BIND( p025 );
00707     TRY_BIND( p026 );
00708     TRY_BIND( p027 );
00709     TRY_BIND( p028 );
00710     TRY_BIND( p029 );
00711     TRY_BIND( p030 );
00712     TRY_BIND( p031 );
00713     TRY_BIND( p032 );
00714     TRY_BIND( p033 );
00715     TRY_BIND( p034 );
00716     TRY_BIND( p035 );
00717     TRY_BIND( p036 );
00718     TRY_BIND( p037 );
00719     TRY_BIND( p038 );
00720     TRY_BIND( p039 );
00721     TRY_BIND( p040 );
00722     TRY_BIND( p041 );
00723     TRY_BIND( p042 );
00724     TRY_BIND( p043 );
00725     TRY_BIND( p044 );
00726     TRY_BIND( p045 );
00727     TRY_BIND( p046 );
00728     TRY_BIND( p047 );
00729     TRY_BIND( p048 );
00730     TRY_BIND( p049 );
00731     TRY_BIND( p050 );
00732     TRY_BIND( p051 );
00733     TRY_BIND( p052 );
00734     TRY_BIND( p053 );
00735     TRY_BIND( p054 );
00736     TRY_BIND( p055 );
00737     TRY_BIND( p056 );
00738     TRY_BIND( p057 );
00739     TRY_BIND( p058 );
00740     TRY_BIND( p059 );
00741     TRY_BIND( p060 );
00742     TRY_BIND( p061 );
00743     TRY_BIND( p062 );
00744     TRY_BIND( p063 );
00745     TRY_BIND( p064 );
00746 }


フレンドと関連する関数

friend class sc_module_name [friend]

sc_module.h157 行で定義されています。

friend class sc_module_registry [friend]

sc_module.h158 行で定義されています。

friend class sc_object [friend]

sc_module.h159 行で定義されています。

friend class sc_port_registry [friend]

sc_module.h160 行で定義されています。

friend class sc_process_b [friend]

sc_core::sc_objectを再定義しています。

sc_module.h161 行で定義されています。

friend class sc_simcontext [friend]

sc_module.h162 行で定義されています。


変数

sc_module.h365 行で定義されています。

sc_module.h366 行で定義されています。

sc_module.h367 行で定義されています。

sc_module.h379 行で定義されています。

std::vector<sc_port_base*>* sc_core::sc_module::m_port_vec [private]

sc_module.h380 行で定義されています。

sc_module.h381 行で定義されています。

sc_module.h382 行で定義されています。

sc_module.h383 行で定義されています。

sc_module.h384 行で定義されています。


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

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