⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sc_simcontext.h

📁 system C源码 一种替代verilog的语言
💻 H
📖 第 1 页 / 共 2 页
字号:
    sc_name_gen*                m_name_gen;    sc_process_table*           m_process_table;    sc_curr_proc_info           m_curr_proc_info;    sc_object*                  m_current_writer;    bool                        m_write_check;    int                         m_next_proc_id;    std::vector<sc_object*>     m_child_objects;    std::vector<sc_event*>      m_delta_events;    sc_ppq<sc_event_timed*>*    m_timed_events;    std::vector<sc_trace_file*> m_trace_files;    bool                        m_something_to_trace;    sc_runnable*                m_runnable;    sc_time_params*             m_time_params;    sc_time                     m_curr_time;     sc_dt::uint64               m_delta_count;    bool                        m_forced_stop;    bool                        m_ready_to_simulate;    bool                        m_elaboration_done;    execution_phases            m_execution_phase;    bool                        m_error;    bool                        m_in_simulator_control;       bool                        m_end_of_simulation_called;    bool                        m_start_of_simulation_called;    sc_event*                   m_until_event;    sc_cor_pkg*                 m_cor_pkg; // the simcontext's coroutine package    sc_cor*                     m_cor;     // the simcontext's coroutineprivate:    // disabled    sc_simcontext( const sc_simcontext& );    sc_simcontext& operator = ( const sc_simcontext& );};// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII// Not MT safe.#if 1extern sc_simcontext* sc_curr_simcontext;extern sc_simcontext* sc_default_global_context;inline sc_simcontext*sc_get_curr_simcontext(){    if( sc_curr_simcontext == 0 ) {        sc_default_global_context = new sc_simcontext;        sc_curr_simcontext = sc_default_global_context;    }    return sc_curr_simcontext;}#else    extern sc_simcontext* sc_get_curr_simcontext();#endif // 0// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIinlineboolsc_simcontext::elaboration_done() const{    return m_elaboration_done;}inlineintsc_simcontext::sim_status() const{    if( m_error ) {        return SC_SIM_ERROR;    }    if( m_forced_stop ) {        return SC_SIM_USER_STOP;    }    return SC_SIM_OK;}inlinesc_object_manager*sc_simcontext::get_object_manager(){    return m_object_manager;}inlinesc_module_registry*sc_simcontext::get_module_registry(){    return m_module_registry;}inlinesc_port_registry*sc_simcontext::get_port_registry(){    return m_port_registry;}inlinesc_export_registry*sc_simcontext::get_export_registry(){    return m_export_registry;}inlinesc_prim_channel_registry*sc_simcontext::get_prim_channel_registry(){    return m_prim_channel_registry;}inlinesc_curr_proc_handlesc_simcontext::get_curr_proc_info(){    return &m_curr_proc_info;}inlineintsc_simcontext::next_proc_id(){    return ( ++ m_next_proc_id );}inlineconst sc_time&sc_simcontext::time_stamp() const{    return m_curr_time;}inline boolsc_simcontext::event_occurred(sc_dt::uint64 last_change_count) const{	return m_delta_count == last_change_count;}inlineboolsc_simcontext::update_phase() const{    return m_execution_phase == phase_update;}inlinevoidsc_simcontext::set_error(){    m_error = true;}inlineboolsc_simcontext::get_error(){    return m_error;}inlineintsc_simcontext::add_delta_event( sc_event* e ){    m_delta_events.push_back( e );    return ( m_delta_events.size() - 1 );}inlinevoidsc_simcontext::add_timed_event( sc_event_timed* et ){    m_timed_events->insert( et );}inline sc_object* sc_simcontext::get_current_writer() const{    return m_current_writer;}inline bool sc_simcontext::write_check() const{    return m_write_check;}// ----------------------------------------------------------------------------class sc_process_handle;sc_process_handle sc_get_current_process_handle();inlinesc_process_b*sc_get_current_process_b(){    return sc_get_curr_simcontext()->get_curr_proc_info()->process_handle;}// THE FOLLOWING FUNCTION IS DEPRECATED IN 2.1extern sc_process_b* sc_get_curr_process_handle();inlinesc_curr_proc_kindsc_get_curr_process_kind(){    return sc_get_curr_simcontext()->get_curr_proc_info()->kind;}inline int sc_get_simulator_status(){    return sc_get_curr_simcontext()->sim_status();}// Generates unique names within each module.externconst char*sc_gen_unique_name( const char* basename_, bool preserve_first = false );// Set the random seed for controlled randomization -- not yet implementedexternvoidsc_set_random_seed( unsigned int seed_ );extern void sc_start();extern void sc_start( const sc_time& duration );extern void sc_start( double duration );extern void sc_stop();extern void sc_initialize();extern void sc_cycle( const sc_time& duration );extern const sc_time& sc_time_stamp();  // Current simulation time.extern double sc_simulation_time();     // Current time in default time units.inlineconst std::vector<sc_object*>& sc_get_top_level_objects(    const sc_simcontext* simc_p = sc_get_curr_simcontext() ){    return simc_p->m_child_objects;}extern sc_object* sc_find_object(    const char* name, sc_simcontext* simc_p = sc_get_curr_simcontext() );inlinesc_dt::uint64 sc_delta_count(){    return sc_get_curr_simcontext()->m_delta_count;}inline bool sc_is_running( const sc_simcontext* simc_p = sc_get_curr_simcontext() ){    return simc_p->m_ready_to_simulate;}inlinevoidsc_start( double duration, sc_time_unit time_unit ){    sc_start( sc_time( duration, time_unit ) );}inlinevoidsc_cycle( double duration, sc_time_unit time_unit ){    sc_cycle( sc_time( duration, time_unit ) );}// for backward compatibility with 1.0inlinevoidsc_cycle( double duration )  // in default time units{    sc_cycle( sc_time( duration, true ) );}inlineboolsc_end_of_simulation_invoked(){        return sc_get_curr_simcontext()->m_end_of_simulation_called;}inlinebool sc_start_of_simulation_invoked(){        return sc_get_curr_simcontext()->m_start_of_simulation_called;}} // namespace sc_core#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -