sc_sensitive.cpp

来自「基于4个mips核的noc设计」· C++ 代码 · 共 743 行 · 第 1/2 页

CPP
743
字号
sc_sensitive_pos::operator () ( const in_port_b_type& port_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_POS_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_: {	port_.make_sensitive( as_method_handle( m_handle ), &port_.pos() );	break;    }    case SC_THREAD_: {	port_.make_sensitive( as_thread_handle( m_handle ), &port_.pos() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_pos&sc_sensitive_pos::operator () ( const in_port_l_type& port_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_POS_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_: {	port_.make_sensitive( as_method_handle( m_handle ), &port_.pos() );	break;    }    case SC_THREAD_: {	port_.make_sensitive( as_thread_handle( m_handle ), &port_.pos() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_pos&sc_sensitive_pos::operator () ( const inout_port_b_type& port_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_POS_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_: {	port_.make_sensitive( as_method_handle( m_handle ), &port_.pos() );	break;    }    case SC_THREAD_: {	port_.make_sensitive( as_thread_handle( m_handle ), &port_.pos() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_pos&sc_sensitive_pos::operator () ( const inout_port_l_type& port_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_POS_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_: {	port_.make_sensitive( as_method_handle( m_handle ), &port_.pos() );	break;    }    case SC_THREAD_: {	port_.make_sensitive( as_thread_handle( m_handle ), &port_.pos() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_pos&sc_sensitive_pos::operator << ( const in_if_b_type& interface_ ){    return operator () ( interface_ );}sc_sensitive_pos&sc_sensitive_pos::operator << ( const in_if_l_type& interface_ ){    return operator () ( interface_ );}sc_sensitive_pos&sc_sensitive_pos::operator << ( const in_port_b_type& port_ ){    return operator () ( port_ );}sc_sensitive_pos&sc_sensitive_pos::operator << ( const in_port_l_type& port_ ){    return operator () ( port_ );}sc_sensitive_pos&sc_sensitive_pos::operator << ( const inout_port_b_type& port_ ){    return operator () ( port_ );}sc_sensitive_pos&sc_sensitive_pos::operator << ( const inout_port_l_type& port_ ){    return operator () ( port_ );}// ----------------------------------------------------------------------------//  CLASS : sc_sensitive_neg////  Static sensitivity class for negative edge events.// ----------------------------------------------------------------------------// constructorsc_sensitive_neg::sc_sensitive_neg( sc_module* module_ ): m_module( module_ ),  m_mode( SC_NONE_ ),  m_handle( 0 ){}// destructorsc_sensitive_neg::~sc_sensitive_neg(){}// changing between process handlessc_sensitive_neg&sc_sensitive_neg::operator << ( sc_method_handle handle_ ){    m_mode = SC_METHOD_;    m_handle = handle_;    return *this;}sc_sensitive_neg&sc_sensitive_neg::operator << ( sc_thread_handle handle_ ){    m_mode = SC_THREAD_;    m_handle = handle_;    return *this;}sc_sensitive_neg&sc_sensitive_neg::operator () ( const in_if_b_type& interface_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_NEG_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_:    case SC_THREAD_: {	m_handle->add_static_event( interface_.negedge_event() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_neg&sc_sensitive_neg::operator () ( const in_if_l_type& interface_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_NEG_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_:    case SC_THREAD_: {	m_handle->add_static_event( interface_.negedge_event() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_neg&sc_sensitive_neg::operator () ( const in_port_b_type& port_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_NEG_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_: {	port_.make_sensitive( as_method_handle( m_handle ), &port_.neg() );	break;    }    case SC_THREAD_: {	port_.make_sensitive( as_thread_handle( m_handle ), &port_.neg() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_neg&sc_sensitive_neg::operator () ( const in_port_l_type& port_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_NEG_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_: {	port_.make_sensitive( as_method_handle( m_handle ), &port_.neg() );	break;    }    case SC_THREAD_: {	port_.make_sensitive( as_thread_handle( m_handle ), &port_.neg() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_neg&sc_sensitive_neg::operator () ( const inout_port_b_type& port_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_NEG_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_: {	port_.make_sensitive( as_method_handle( m_handle ), &port_.neg() );	break;    }    case SC_THREAD_: {	port_.make_sensitive( as_thread_handle( m_handle ), &port_.neg() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_neg&sc_sensitive_neg::operator () ( const inout_port_l_type& port_ ){    // check    if( m_module->simcontext()->is_running() ) {	SC_REPORT_ERROR( SC_ID_MAKE_SENSITIVE_NEG_, "simulation running" );    }    // make sensitive    switch( m_mode ) {    case SC_METHOD_: {	port_.make_sensitive( as_method_handle( m_handle ), &port_.neg() );	break;    }    case SC_THREAD_: {	port_.make_sensitive( as_thread_handle( m_handle ), &port_.neg() );	break;    }    case SC_NONE_:        /* do nothing */        break;    }    return *this;}sc_sensitive_neg&sc_sensitive_neg::operator << ( const in_if_b_type& interface_ ){    return operator () ( interface_ );}sc_sensitive_neg&sc_sensitive_neg::operator << ( const in_if_l_type& interface_ ){    return operator () ( interface_ );}sc_sensitive_neg&sc_sensitive_neg::operator << ( const in_port_b_type& port_ ){    return operator () ( port_ );}sc_sensitive_neg&sc_sensitive_neg::operator << ( const in_port_l_type& port_ ){    return operator () ( port_ );}sc_sensitive_neg&sc_sensitive_neg::operator << ( const inout_port_b_type& port_ ){    return operator () ( port_ );}sc_sensitive_neg&sc_sensitive_neg::operator << ( const inout_port_l_type& port_ ){    return operator () ( port_ );}// Taf!

⌨️ 快捷键说明

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