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

📄 sc_logic.h

📁 system C源码 一种替代verilog的语言
💻 H
📖 第 1 页 / 共 2 页
字号:
    sc_logic& operator = ( int a )	{ *this = sc_logic( a ); return *this; }    sc_logic& operator = ( const sc_bit& a )	{ *this = sc_logic( a ); return *this; }    // bitwise assignment operators    sc_logic& operator &= ( const sc_logic& b )	{ m_val = and_table[m_val][b.m_val]; return *this; }    sc_logic& operator &= ( sc_logic_value_t v )	{ *this &= sc_logic( v ); return *this; }    sc_logic& operator &= ( bool b )	{ *this &= sc_logic( b ); return *this; }    sc_logic& operator &= ( char b )	{ *this &= sc_logic( b ); return *this; }    sc_logic& operator &= ( int b )	{ *this &= sc_logic( b ); return *this; }    sc_logic& operator |= ( const sc_logic& b )        { m_val = or_table[m_val][b.m_val]; return *this; }    sc_logic& operator |= ( sc_logic_value_t v )	{ *this |= sc_logic( v ); return *this; }    sc_logic& operator |= ( bool b )	{ *this |= sc_logic( b ); return *this; }    sc_logic& operator |= ( char b )	{ *this |= sc_logic( b ); return *this; }    sc_logic& operator |= ( int b )	{ *this |= sc_logic( b ); return *this; }    sc_logic& operator ^= ( const sc_logic& b )        { m_val = xor_table[m_val][b.m_val]; return *this; }    sc_logic& operator ^= ( sc_logic_value_t v )	{ *this ^= sc_logic( v ); return *this; }    sc_logic& operator ^= ( bool b )	{ *this ^= sc_logic( b ); return *this; }    sc_logic& operator ^= ( char b )	{ *this ^= sc_logic( b ); return *this; }    sc_logic& operator ^= ( int b )	{ *this ^= sc_logic( b ); return *this; }    // bitwise operators and functions    // bitwise complement    const sc_logic operator ~ () const	{ return sc_logic( not_table[m_val] ); }    sc_logic& b_not()	{ m_val = not_table[m_val]; return *this; }    // bitwise and    friend const sc_logic operator & ( const sc_logic& a, const sc_logic& b )	{ return sc_logic( sc_logic::and_table[a.m_val][b.m_val] ); }    friend const sc_logic operator & ( const sc_logic& a, sc_logic_value_t b )	{ return ( a & sc_logic( b ) ); }    friend const sc_logic operator & ( const sc_logic& a, bool b )	{ return ( a & sc_logic( b ) ); }    friend const sc_logic operator & ( const sc_logic& a, char b )	{ return ( a & sc_logic( b ) ); }    friend const sc_logic operator & ( const sc_logic& a, int b )	{ return ( a & sc_logic( b ) ); }    friend const sc_logic operator & ( sc_logic_value_t a, const sc_logic& b )	{ return ( sc_logic( a ) & b ); }    friend const sc_logic operator & ( bool a, const sc_logic& b )	{ return ( sc_logic( a ) & b ); }    friend const sc_logic operator & ( char a, const sc_logic& b )	{ return ( sc_logic( a ) & b ); }    friend const sc_logic operator & ( int a, const sc_logic& b )	{ return ( sc_logic( a ) & b ); }    // bitwise or    friend const sc_logic operator | ( const sc_logic& a, const sc_logic& b )	{ return sc_logic( sc_logic::or_table[a.m_val][b.m_val] ); }    friend const sc_logic operator | ( const sc_logic& a, sc_logic_value_t b )	{ return ( a | sc_logic( b ) ); }    friend const sc_logic operator | ( const sc_logic& a, bool b )	{ return ( a | sc_logic( b ) ); }    friend const sc_logic operator | ( const sc_logic& a, char b )	{ return ( a | sc_logic( b ) ); }    friend const sc_logic operator | ( const sc_logic& a, int b )	{ return ( a | sc_logic( b ) ); }    friend const sc_logic operator | ( sc_logic_value_t a, const sc_logic& b )	{ return ( sc_logic( a ) | b ); }    friend const sc_logic operator | ( bool a, const sc_logic& b )	{ return ( sc_logic( a ) | b ); }    friend const sc_logic operator | ( char a, const sc_logic& b )	{ return ( sc_logic( a ) | b ); }    friend const sc_logic operator | ( int a, const sc_logic& b )	{ return ( sc_logic( a ) | b ); }    // bitwise xor    friend const sc_logic operator ^ ( const sc_logic& a, const sc_logic& b )	{ return sc_logic( sc_logic::xor_table[a.m_val][b.m_val] ); }    friend const sc_logic operator ^ ( const sc_logic& a, sc_logic_value_t b )	{ return ( a ^ sc_logic( b ) ); }    friend const sc_logic operator ^ ( const sc_logic& a, bool b )	{ return ( a ^ sc_logic( b ) ); }    friend const sc_logic operator ^ ( const sc_logic& a, char b )	{ return ( a ^ sc_logic( b ) ); }    friend const sc_logic operator ^ ( const sc_logic& a, int b )	{ return ( a ^ sc_logic( b ) ); }    friend const sc_logic operator ^ ( sc_logic_value_t a, const sc_logic& b )	{ return ( sc_logic( a ) ^ b ); }    friend const sc_logic operator ^ ( bool a, const sc_logic& b )	{ return ( sc_logic( a ) ^ b ); }    friend const sc_logic operator ^ ( char a, const sc_logic& b )	{ return ( sc_logic( a ) ^ b ); }    friend const sc_logic operator ^ ( int a, const sc_logic& b )	{ return ( sc_logic( a ) ^ b ); }    // relational operators and functions    friend bool operator == ( const sc_logic& a, const sc_logic& b )	{ return ( (int) a.m_val == b.m_val ); }    friend bool operator == ( const sc_logic& a, sc_logic_value_t b )	{ return ( a == sc_logic( b ) ); }    friend bool operator == ( const sc_logic& a, bool b )	{ return ( a == sc_logic( b ) ); }    friend bool operator == ( const sc_logic& a, char b )	{ return ( a == sc_logic( b ) ); }    friend bool operator == ( const sc_logic& a, int b )	{ return ( a == sc_logic( b ) ); }    friend bool operator == ( sc_logic_value_t a, const sc_logic& b )	{ return ( sc_logic( a ) == b ); }    friend bool operator == ( bool a, const sc_logic& b )	{ return ( sc_logic( a ) == b ); }    friend bool operator == ( char a, const sc_logic& b )	{ return ( sc_logic( a ) == b ); }    friend bool operator == ( int a, const sc_logic& b )	{ return ( sc_logic( a ) == b ); }    friend bool operator != ( const sc_logic& a, const sc_logic& b )	{ return ( (int) a.m_val != b.m_val ); }    friend bool operator != ( const sc_logic& a, sc_logic_value_t b )	{ return ( a != sc_logic( b ) ); }    friend bool operator != ( const sc_logic& a, bool b )	{ return ( a != sc_logic( b ) ); }    friend bool operator != ( const sc_logic& a, char b )	{ return ( a != sc_logic( b ) ); }    friend bool operator != ( const sc_logic& a, int b )	{ return ( a != sc_logic( b ) ); }    friend bool operator != ( sc_logic_value_t a, const sc_logic& b )	{ return ( sc_logic( a ) != b ); }    friend bool operator != ( bool a, const sc_logic& b )	{ return ( sc_logic( a ) != b ); }    friend bool operator != ( char a, const sc_logic& b )	{ return ( sc_logic( a ) != b ); }    friend bool operator != ( int a, const sc_logic& b )	{ return ( sc_logic( a ) != b ); }    // explicit conversions    sc_logic_value_t value() const	{ return m_val; }    bool is_01() const	{ return ( (int) m_val == Log_0 || (int) m_val == Log_1 ); }    bool to_bool() const	{ if( ! is_01() ) { invalid_01(); } return ( (int) m_val != Log_0 ); }    char to_char() const	{ return logic_to_char[m_val]; }    // other methods    void print( ::std::ostream& os = ::std::cout ) const	{ os << to_char(); }    void scan( ::std::istream& is = ::std::cin );    // memory (de)allocation    static void* operator new( std::size_t, void* p ) // placement new	{ return p; }    static void* operator new( std::size_t sz )	{ return sc_core::sc_mempool::allocate( sz ); }    static void operator delete( void* p, std::size_t sz )	{ sc_core::sc_mempool::release( p, sz ); }    static void* operator new [] ( std::size_t sz )	{ return sc_core::sc_mempool::allocate( sz ); }    static void operator delete [] ( void* p, std::size_t sz )	{ sc_core::sc_mempool::release( p, sz ); }private:    sc_logic_value_t m_val;private:    // disabled    explicit sc_logic( const char* );    sc_logic& operator = ( const char* );};// ----------------------------------------------------------------------------inline::std::ostream&operator << ( ::std::ostream& os, const sc_logic& a ){    a.print( os );    return os;}inline::std::istream&operator >> ( ::std::istream& is, sc_logic& a ){    a.scan( is );    return is;}extern const sc_logic SC_LOGIC_0;extern const sc_logic SC_LOGIC_1;extern const sc_logic SC_LOGIC_Z;extern const sc_logic SC_LOGIC_X;// #ifdef SC_DT_DEPRECATEDextern const sc_logic sc_logic_0;extern const sc_logic sc_logic_1;extern const sc_logic sc_logic_Z;extern const sc_logic sc_logic_X;// #endif} // namespace sc_dt#endif

⌨️ 快捷键说明

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