SystemC  2.3.2
Accellera SystemC proof-of-concept library
sc_concatref.h File Reference

Concatenation support. More...

Include dependency graph for sc_concatref.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  sc_dt::sc_concatref
 Proxy class for sized bit concatenation. More...
 
class  sc_dt::sc_concat_bool
 Proxy class for read-only boolean values in concatenations. More...
 

Namespaces

 sc_dt
 
 sc_core
 

Macros

#define SC_CONCAT_OP_TYPE(RESULT, OP, OTHER_TYPE)
 
#define SC_CONCAT_OP(RESULT, OP)
 
#define SC_CONCAT_BOOL_OP(OP)
 

Functions

bool sc_dt::and_reduce (const sc_concatref &a)
 
bool sc_dt::nand_reduce (const sc_concatref &a)
 
bool sc_dt::or_reduce (const sc_concatref &a)
 
bool sc_dt::nor_reduce (const sc_concatref &a)
 
bool sc_dt::xor_reduce (const sc_concatref &a)
 
bool sc_dt::xnor_reduce (const sc_concatref &a)
 
const sc_unsigned sc_dt::operator<< (const sc_concatref &target, uint64 shift)
 
const sc_unsigned sc_dt::operator<< (const sc_concatref &target, int64 shift)
 
const sc_unsigned sc_dt::operator<< (const sc_concatref &target, unsigned long shift)
 
const sc_unsigned sc_dt::operator<< (const sc_concatref &target, int shift)
 
const sc_unsigned sc_dt::operator<< (const sc_concatref &target, unsigned int shift)
 
const sc_unsigned sc_dt::operator<< (const sc_concatref &target, long shift)
 
const sc_unsigned sc_dt::operator>> (const sc_concatref &target, uint64 shift)
 
const sc_unsigned sc_dt::operator>> (const sc_concatref &target, int64 shift)
 
const sc_unsigned sc_dt::operator>> (const sc_concatref &target, unsigned long shift)
 
const sc_unsigned sc_dt::operator>> (const sc_concatref &target, int shift)
 
const sc_unsigned sc_dt::operator>> (const sc_concatref &target, unsigned int shift)
 
const sc_unsigned sc_dt::operator>> (const sc_concatref &target, long shift)
 
inline ::std::ostream & sc_dt::operator<< (::std::ostream &os, const sc_concatref &v)
 
inline ::std::istream & sc_dt::operator>> (::std::istream &is, sc_concatref &a)
 
sc_dt::sc_concatrefsc_dt::concat (sc_dt::sc_value_base &a, sc_dt::sc_value_base &b)
 
const sc_dt::sc_concatrefsc_dt::concat (const sc_dt::sc_value_base &a, const sc_dt::sc_value_base &b)
 
const sc_dt::sc_concatrefsc_dt::concat (const sc_dt::sc_value_base &a, bool b)
 
const sc_dt::sc_concatrefsc_dt::concat (bool a, const sc_dt::sc_value_base &b)
 
sc_dt::sc_concatrefsc_dt::operator, (sc_dt::sc_value_base &a, sc_dt::sc_value_base &b)
 
const sc_dt::sc_concatrefsc_dt::operator, (const sc_dt::sc_value_base &a, const sc_dt::sc_value_base &b)
 
const sc_dt::sc_concatrefsc_dt::operator, (const sc_dt::sc_value_base &a, bool b)
 
const sc_dt::sc_concatrefsc_dt::operator, (bool a, const sc_dt::sc_value_base &b)
 

Variables

sc_byte_heap SC_API sc_core::sc_temp_heap
 

Detailed Description

Concatenation support.

Original Author: Andy Goodrich, Forte Design, Inc.

Definition in file sc_concatref.h.

Macro Definition Documentation

◆ SC_CONCAT_BOOL_OP

#define SC_CONCAT_BOOL_OP (   OP)
Value:
inline bool operator OP ( const sc_concatref& a, const sc_concatref& b ) \
{ \
return a.value() OP b.value(); \
} \
SC_CONCAT_OP_TYPE(bool,OP,int) \
SC_CONCAT_OP_TYPE(bool,OP,long) \
SC_CONCAT_OP_TYPE(bool,OP,int64) \
SC_CONCAT_OP_TYPE(bool,OP,unsigned int) \
SC_CONCAT_OP_TYPE(bool,OP,unsigned long) \
SC_CONCAT_OP_TYPE(bool,OP,uint64) \
SC_CONCAT_OP_TYPE(bool,OP,const sc_int_base&) \
SC_CONCAT_OP_TYPE(bool,OP,const sc_uint_base&) \
SC_CONCAT_OP_TYPE(bool,OP,const sc_signed&) \
SC_CONCAT_OP_TYPE(bool,OP,const sc_unsigned&) \
inline bool operator OP ( const sc_concatref& a, bool b ) \
{ \
return a.value() OP (int)b; \
} \
inline bool operator OP ( bool a, const sc_concatref& b ) \
{ \
return (int)a OP b.value(); \
}
uint_type value() const
Definition: sc_uint_base.h:810
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 727 of file sc_concatref.h.

◆ SC_CONCAT_OP

#define SC_CONCAT_OP (   RESULT,
  OP 
)
Value:
inline RESULT operator OP ( const sc_concatref& a, const sc_concatref& b ) \
{ \
return a.value() OP b.value(); \
} \
SC_CONCAT_OP_TYPE(const sc_signed,OP,int) \
SC_CONCAT_OP_TYPE(const sc_signed,OP,long) \
SC_CONCAT_OP_TYPE(const sc_signed,OP,int64) \
SC_CONCAT_OP_TYPE(RESULT,OP,unsigned int) \
SC_CONCAT_OP_TYPE(RESULT,OP,unsigned long) \
SC_CONCAT_OP_TYPE(RESULT,OP,uint64) \
SC_CONCAT_OP_TYPE(const sc_signed,OP,const sc_int_base&) \
SC_CONCAT_OP_TYPE(RESULT,OP,const sc_uint_base&) \
SC_CONCAT_OP_TYPE(const sc_signed,OP,const sc_signed&) \
SC_CONCAT_OP_TYPE(RESULT,OP,const sc_unsigned&) \
inline RESULT operator OP ( const sc_concatref& a, bool b ) \
{ \
return a.value() OP (int)b; \
} \
inline RESULT operator OP ( bool a, const sc_concatref& b ) \
{ \
return (int)a OP b.value(); \
}
uint_type value() const
Definition: sc_uint_base.h:810
int64_t int64
Definition: sc_nbdefs.h:188
uint64_t uint64
Definition: sc_nbdefs.h:189
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 702 of file sc_concatref.h.

◆ SC_CONCAT_OP_TYPE

#define SC_CONCAT_OP_TYPE (   RESULT,
  OP,
  OTHER_TYPE 
)
Value:
inline RESULT operator OP ( const sc_concatref& a, OTHER_TYPE b ) \
{ \
return a.value() OP b; \
} \
inline RESULT operator OP ( OTHER_TYPE a, const sc_concatref& b ) \
{ \
return a OP b.value(); \
}
uint_type value() const
Definition: sc_uint_base.h:810
uint64 const sc_uint_base int b
Definition: sc_fxval.h:1005

Definition at line 690 of file sc_concatref.h.