90 class sc_int_bitref_r;
92 class sc_int_subref_r;
95 class sc_signed_subref_r;
96 class sc_unsigned_subref_r;
114 inline bool operator == (
const sc_int_base& a,
const sc_int_base&
b );
116 inline bool operator != (
const sc_int_base& a,
const sc_int_base&
b );
118 inline bool operator < (
const sc_int_base& a,
const sc_int_base&
b );
120 inline bool operator <= (
const sc_int_base& a,
const sc_int_base&
b );
122 inline bool operator > (
const sc_int_base& a,
const sc_int_base&
b );
124 inline bool operator >= (
const sc_int_base& a,
const sc_int_base&
b );
170 #ifdef SC_DT_DEPRECATED
178 {
if (xz_present_p) *xz_present_p =
false;
return 1; }
184 dst_p[word_i] &= ~bit_mask;
195 dst_p[word_i] |= bit_mask;
200 dst_p[word_i] &= ~bit_mask;
206 {
return operator uint64(); }
221 {
return operator uint64(); }
224 {
return operator uint64(); }
229 void print( ::std::ostream& os = ::std::cout )
const
294 void scan( ::std::istream& is = ::std::cin );
355 #ifdef SC_DT_DEPRECATED
363 {
if ( xz_present_p ) *xz_present_p =
false;
return length(); }
422 void print( ::std::ostream& os = ::std::cout )
const
517 void scan( ::std::istream& is = ::std::cin );
547 void invalid_length()
const;
548 void invalid_index(
int i )
const;
549 void invalid_range(
int l,
int r )
const;
551 void check_length()
const
552 {
if( m_len <= 0 || m_len >
SC_INTWIDTH ) { invalid_length(); } }
554 void check_index(
int i )
const
555 {
if( i < 0 || i >=
m_len ) { invalid_index( i ); } }
557 void check_range(
int l,
int r )
const
558 {
if( r < 0 || l >=
m_len || l < r ) { invalid_range( l, r ); } }
560 void check_value()
const;
580 { check_length(); extend_sign(); }
595 { check_length(); extend_sign(); }
615 {
m_val = v; extend_sign();
return *
this; }
618 {
m_val = a.
m_val; extend_sign();
return *
this; }
621 {
m_val = a; extend_sign();
return *
this; }
625 {
m_val = a->to_int64(); extend_sign();
return *
this; }
643 {
m_val = a; extend_sign();
return *
this; }
646 {
m_val = a; extend_sign();
return *
this; }
649 {
m_val = a; extend_sign();
return *
this; }
652 {
m_val = a; extend_sign();
return *
this; }
655 {
m_val = a; extend_sign();
return *
this; }
664 {
m_val += v; extend_sign();
return *
this; }
667 {
m_val -= v; extend_sign();
return *
this; }
670 {
m_val *= v; extend_sign();
return *
this; }
673 {
m_val /= v; extend_sign();
return *
this; }
676 {
m_val %= v; extend_sign();
return *
this; }
682 {
m_val &= v; extend_sign();
return *
this; }
685 {
m_val |= v; extend_sign();
return *
this; }
688 {
m_val ^= v; extend_sign();
return *
this; }
692 {
m_val <<= v; extend_sign();
return *
this; }
695 {
m_val >>= v;
return *
this; }
701 { ++
m_val; extend_sign();
return *
this; }
707 { --
m_val; extend_sign();
return *
this; }
769 #ifdef SC_DT_DEPRECATED
777 {
if ( xz_present_p ) *xz_present_p =
false;
return length(); }
824 {
return (
int)
m_val; }
827 {
return (
unsigned int)
m_val; }
830 {
return (
long)
m_val; }
833 {
return (
unsigned long)
m_val; }
842 {
return (
double)
m_val; }
862 void print( ::std::ostream& os = ::std::cout )
const
865 void scan( ::std::istream& is = ::std::cin );
895 sc_int_bitref_r::operator
uint64 ()
const
897 return m_obj_p->test( m_index );
1018 int uright = uleft + m_right;
1019 return ( val << uleft >> uright );
1056 int result =
static_cast<int>(
operator uint_type());
1064 unsigned int result =
static_cast<unsigned int>(
operator uint_type());
1072 long result =
static_cast<long>(
operator uint_type());
1080 unsigned long result =
static_cast<unsigned long>(
operator uint_type());
1104 double result =
static_cast<double>(
operator uint_type());
1205 return ( *
this = aa = a );
1275 check_range( left, right );
1285 check_range( left, right );
1296 check_range( left, right );
1306 check_range( left, right );
unsigned long to_ulong() const
sc_int_base(const sc_int_subref_r &a)
virtual uint64 concat_get_uint64() const
virtual uint64 concat_get_uint64() const
sc_int_base & operator--()
unsigned long to_ulong() const
virtual bool concat_get_data(sc_digit *dst_p, int low_i) const
friend bool operator>=(const sc_int_base &a, const sc_int_base &b)
unsigned int to_uint() const
void scan(::std::istream &is=::std::cin)
sc_int_base(int w=sc_length_param().len())
void scan(::std::istream &is=::std::cin)
bool operator<(const sc_int_base &a, const sc_int_base &b)
sc_logic_value_t nand_reduce(const sc_proxy< X > &a)
friend bool operator<=(const sc_int_base &a, const sc_int_base &b)
sc_int_base & operator+=(int_type v)
sc_int_subref & operator()(int left, int right)
sc_int_base & operator++()
sc_int_bitref & operator&=(bool b)
void print(::std::ostream &os=::std::cout) const
friend bool operator==(const sc_int_base &a, const sc_int_base &b)
friend class sc_int_signal
sc_int_bitref & operator^=(bool b)
void print(::std::ostream &os=::std::cout) const
sc_logic_value_t xor_reduce(const sc_proxy< X > &a)
friend bool operator>(const sc_int_base &a, const sc_int_base &b)
virtual ~sc_int_bitref_r()
bool sc_io_show_base(systemc_ostream &)
unsigned int to_uint() const
sc_int_base & operator>>=(int_type v)
virtual int concat_length(bool *xz_present_p) const
sc_int_subref(const sc_int_subref &a)
sc_int_base & operator*=(int_type v)
virtual void concat_set(int64 src, int low_i)
sc_int_bitref & operator|=(bool b)
sc_int_bitref_r(const sc_int_bitref_r &a)
friend bool operator<(const sc_int_base &a, const sc_int_base &b)
friend class sc_int_subref
uint64 const sc_uint_base int b
sc_int_base(const sc_int_base &a)
sc_int_subref & range(int left, int right)
bool operator!=(const sc_bit &a, const sc_bit &b)
bool operator==(const sc_bit &a, const sc_bit &b)
sc_logic_value_t nor_reduce(const sc_proxy< X > &a)
sc_int_bitref & bit(int i)
sc_int_bitref(const sc_int_bitref &a)
void print(::std::ostream &os=::std::cout) const
const uint_type mask_int[SC_INTWIDTH][SC_INTWIDTH]
sc_numrep sc_io_base(systemc_ostream &, sc_numrep)
sc_int_base & operator|=(int_type v)
const uint64 UINT64_32ONES
const std::string to_string(sc_numrep numrep=SC_DEC) const
virtual void concat_set(int64 src, int low_i)
sc_int_base & operator<<=(int_type v)
static sc_core::sc_vpool< sc_int_bitref > m_pool
inline::std::istream & operator>>(::std::istream &is, sc_bit &a)
const std::string to_string(sc_numrep numrep=SC_DEC) const
bool operator>=(const sc_int_base &a, const sc_int_base &b)
bool operator<=(const sc_int_base &a, const sc_int_base &b)
sc_logic_value_t or_reduce(const sc_proxy< X > &a)
sc_int_base & operator&=(int_type v)
virtual bool concat_get_data(sc_digit *dst_p, int low_i) const
sc_int_base & operator^=(int_type v)
sc_int_subref & operator=(int_type v)
sc_int_bitref & operator[](int i)
virtual uint64 concat_get_uint64() const
sc_int_base & operator-=(int_type v)
virtual bool concat_get_ctrl(sc_digit *dst_p, int low_i) const
virtual int concat_length(bool *xz_present_p) const
sc_int_base(const sc_generic_base< T > &a)
static sc_core::sc_vpool< sc_int_subref > m_pool
virtual bool concat_get_data(sc_digit *dst_p, int low_i) const
friend class sc_int_subref_r
void scan(::std::istream &is=::std::cin)
virtual ~sc_int_subref_r()
virtual bool concat_get_ctrl(sc_digit *dst_p, int low_i) const
const std::string to_string(sc_numrep numrep=SC_DEC) const
void initialize(const sc_int_base *obj_p, int left_i, int right_i)
sc_logic_value_t xnor_reduce(const sc_proxy< X > &a)
virtual void concat_set(int64 src, int low_i)
inline::std::ostream & operator<<(::std::ostream &os, const sc_bit &a)
bool operator>(const sc_int_base &a, const sc_int_base &b)
sc_logic_value_t and_reduce(const sc_proxy< X > &a)
void initialize(const sc_int_base *obj_p, int index_)
sc_int_base & operator%=(int_type v)
friend class sc_int_bitref_r
sc_int_bitref & operator=(const sc_int_bitref_r &b)
sc_int_base & operator/=(int_type v)
virtual int concat_length(bool *xz_present_p) const
virtual bool concat_get_ctrl(sc_digit *dst_p, int low_i) const
sc_int_base(int_type v, int w)
sc_int_subref_r(const sc_int_subref_r &a)
friend bool operator!=(const sc_int_base &a, const sc_int_base &b)
sc_int_base & operator=(int_type v)
friend class sc_int_bitref