SystemC 3.0.0
Accellera SystemC proof-of-concept library
Namespaces | Macros | Typedefs | Variables
sc_nbdefs.h File Reference
#include "sysc/kernel/sc_cmnhdr.h"
#include <climits>
#include <cstdint>
#include "sysc/utils/sc_iostream.h"
#include "sysc/utils/sc_string.h"
Include dependency graph for sc_nbdefs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  sc_dt
 

Macros

#define SC_DT_MIXED_COMMA_OPERATORS
 
#define SC_BIGINT_CONFIG_TEMPLATE_CLASS_HAS_STORAGE
 
#define SC_FREE_DIGIT(FLAG)   { m_free = FLAG; }
 
#define SC_BASE_VEC_DIGITS   8
 
#define BITS_PER_BYTE   8
 
#define BYTE_RADIX   256
 
#define BYTE_MASK   255
 
#define LOG2_BITS_PER_BYTE   3
 
#define BYTES_PER_DIGIT_TYPE   4
 
#define BITS_PER_DIGIT_TYPE   32
 
#define BYTES_PER_DIGIT   (std::numeric_limits<sc_digit>::digits/8)
 
#define BITS_PER_DIGIT   32
 
#define DIGIT_RADIX   ((sc_carry)1 << BITS_PER_DIGIT)
 
#define DIGIT_MASK   (DIGIT_RADIX - 1)
 
#define SC_BIT_INDEX(BIT)   ( (BIT)&(std::numeric_limits<sc_digit>::digits-1) )
 
#define SC_DIGIT_INDEX(BIT_INDEX)   ((BIT_INDEX)>>5)
 
#define SC_MASK_DIGIT(v)   (v)
 
#define SC_DIGIT_COUNT(BIT_WIDTH)   ((BIT_WIDTH+BITS_PER_DIGIT-1)/BITS_PER_DIGIT)
 
#define SC_BIT_MASK(BITS)   ~( (std::numeric_limits<sc_digit>::max() ) << SC_BIT_INDEX(BITS) )
 
#define SC_BIT_MASK1(BITS)   ~( (std::numeric_limits<sc_digit>::max()-1) << SC_BIT_INDEX(BITS) )
 
#define BITS_PER_HALF_DIGIT   (BITS_PER_DIGIT / 2)
 
#define HALF_DIGIT_RADIX   (1ul << BITS_PER_HALF_DIGIT)
 
#define HALF_DIGIT_MASK   (HALF_DIGIT_RADIX - 1)
 
#define DIV_CEIL2(x, y)   (((x) - 1) / (y) + 1)
 
#define DIV_CEIL(x)   DIV_CEIL2(x, BITS_PER_DIGIT)
 
#define BITS_PER_CHAR   8
 
#define BITS_PER_INT   (sizeof(int) * BITS_PER_CHAR)
 
#define BITS_PER_LONG   (sizeof(long) * BITS_PER_CHAR)
 
#define BITS_PER_INT64   (sizeof(::sc_dt::int64) * BITS_PER_CHAR)
 
#define BITS_PER_UINT   (sizeof(unsigned int) * BITS_PER_CHAR)
 
#define BITS_PER_ULONG   (sizeof(unsigned long) * BITS_PER_CHAR)
 
#define BITS_PER_UINT64   (sizeof(::sc_dt::uint64) * BITS_PER_CHAR)
 
#define DIGITS_PER_CHAR   1
 
#define DIGITS_PER_INT   ((BITS_PER_INT+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)
 
#define DIGITS_PER_LONG   ((BITS_PER_LONG+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)
 
#define DIGITS_PER_INT64   ((BITS_PER_INT64+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)
 
#define DIGITS_PER_UINT   ((BITS_PER_UINT+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)
 
#define DIGITS_PER_ULONG   ((BITS_PER_ULONG+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)
 
#define DIGITS_PER_UINT64   ((BITS_PER_UINT64+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)
 
#define LLWIDTH   BITS_PER_INT64
 
#define INTWIDTH   BITS_PER_INT
 
#define SC_INTWIDTH   64
 

Typedefs

typedef unsigned char sc_dt::uchar
 
typedef int sc_dt::small_type
 
typedef unsigned int sc_dt::sc_digit
 
using sc_dt::int64 = long long
 
using sc_dt::uint64 = unsigned long long
 
typedef uint64 sc_dt::sc_carry
 
using sc_dt::fmtflags = ::std::ios::fmtflags
 
typedef int64 sc_dt::int_type
 
typedef uint64 sc_dt::uint_type
 

Variables

constexpr uint64 sc_dt::UINT64_ZERO = 0ULL
 
constexpr uint64 sc_dt::UINT64_ONE = 1ULL
 
constexpr uint64 sc_dt::UINT64_32ONES = 0x00000000ffffffffULL
 
constexpr small_type sc_dt::NB_DEFAULT_BASE = SC_DEC
 
constexpr uint64 sc_dt::UINT_ZERO = UINT64_ZERO
 
constexpr uint64 sc_dt::UINT_ONE = UINT64_ONE
 
constexpr int sc_dt::byte_one_bits [256]
 

Macro Definition Documentation

◆ BITS_PER_BYTE

#define BITS_PER_BYTE   8

Definition at line 140 of file sc_nbdefs.h.

◆ BITS_PER_CHAR

#define BITS_PER_CHAR   8

Definition at line 230 of file sc_nbdefs.h.

◆ BITS_PER_DIGIT

#define BITS_PER_DIGIT   32

Definition at line 164 of file sc_nbdefs.h.

◆ BITS_PER_DIGIT_TYPE

#define BITS_PER_DIGIT_TYPE   32

Definition at line 152 of file sc_nbdefs.h.

◆ BITS_PER_HALF_DIGIT

#define BITS_PER_HALF_DIGIT   (BITS_PER_DIGIT / 2)

Definition at line 203 of file sc_nbdefs.h.

◆ BITS_PER_INT

#define BITS_PER_INT   (sizeof(int) * BITS_PER_CHAR)

Definition at line 231 of file sc_nbdefs.h.

◆ BITS_PER_INT64

#define BITS_PER_INT64   (sizeof(::sc_dt::int64) * BITS_PER_CHAR)

Definition at line 233 of file sc_nbdefs.h.

◆ BITS_PER_LONG

#define BITS_PER_LONG   (sizeof(long) * BITS_PER_CHAR)

Definition at line 232 of file sc_nbdefs.h.

◆ BITS_PER_UINT

#define BITS_PER_UINT   (sizeof(unsigned int) * BITS_PER_CHAR)

Definition at line 234 of file sc_nbdefs.h.

◆ BITS_PER_UINT64

#define BITS_PER_UINT64   (sizeof(::sc_dt::uint64) * BITS_PER_CHAR)

Definition at line 236 of file sc_nbdefs.h.

◆ BITS_PER_ULONG

#define BITS_PER_ULONG   (sizeof(unsigned long) * BITS_PER_CHAR)

Definition at line 235 of file sc_nbdefs.h.

◆ BYTE_MASK

#define BYTE_MASK   255

Definition at line 142 of file sc_nbdefs.h.

◆ BYTE_RADIX

#define BYTE_RADIX   256

Definition at line 141 of file sc_nbdefs.h.

◆ BYTES_PER_DIGIT

#define BYTES_PER_DIGIT   (std::numeric_limits<sc_digit>::digits/8)

Definition at line 163 of file sc_nbdefs.h.

◆ BYTES_PER_DIGIT_TYPE

#define BYTES_PER_DIGIT_TYPE   4

Definition at line 151 of file sc_nbdefs.h.

◆ DIGIT_MASK

#define DIGIT_MASK   (DIGIT_RADIX - 1)

Definition at line 168 of file sc_nbdefs.h.

◆ DIGIT_RADIX

#define DIGIT_RADIX   ((sc_carry)1 << BITS_PER_DIGIT)

Definition at line 167 of file sc_nbdefs.h.

◆ DIGITS_PER_CHAR

#define DIGITS_PER_CHAR   1

Definition at line 239 of file sc_nbdefs.h.

◆ DIGITS_PER_INT

#define DIGITS_PER_INT   ((BITS_PER_INT+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)

Definition at line 240 of file sc_nbdefs.h.

◆ DIGITS_PER_INT64

#define DIGITS_PER_INT64   ((BITS_PER_INT64+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)

Definition at line 242 of file sc_nbdefs.h.

◆ DIGITS_PER_LONG

#define DIGITS_PER_LONG   ((BITS_PER_LONG+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)

Definition at line 241 of file sc_nbdefs.h.

◆ DIGITS_PER_UINT

#define DIGITS_PER_UINT   ((BITS_PER_UINT+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)

Definition at line 243 of file sc_nbdefs.h.

◆ DIGITS_PER_UINT64

#define DIGITS_PER_UINT64   ((BITS_PER_UINT64+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)

Definition at line 245 of file sc_nbdefs.h.

◆ DIGITS_PER_ULONG

#define DIGITS_PER_ULONG   ((BITS_PER_ULONG+(BITS_PER_DIGIT-1))/BITS_PER_DIGIT)

Definition at line 244 of file sc_nbdefs.h.

◆ DIV_CEIL

#define DIV_CEIL (   x)    DIV_CEIL2(x, BITS_PER_DIGIT)

Definition at line 212 of file sc_nbdefs.h.

◆ DIV_CEIL2

#define DIV_CEIL2 (   x,
 
)    (((x) - 1) / (y) + 1)

Definition at line 208 of file sc_nbdefs.h.

◆ HALF_DIGIT_MASK

#define HALF_DIGIT_MASK   (HALF_DIGIT_RADIX - 1)

Definition at line 205 of file sc_nbdefs.h.

◆ HALF_DIGIT_RADIX

#define HALF_DIGIT_RADIX   (1ul << BITS_PER_HALF_DIGIT)

Definition at line 204 of file sc_nbdefs.h.

◆ INTWIDTH

#define INTWIDTH   BITS_PER_INT

Definition at line 256 of file sc_nbdefs.h.

◆ LLWIDTH

#define LLWIDTH   BITS_PER_INT64

Definition at line 255 of file sc_nbdefs.h.

◆ LOG2_BITS_PER_BYTE

#define LOG2_BITS_PER_BYTE   3

Definition at line 146 of file sc_nbdefs.h.

◆ SC_BASE_VEC_DIGITS

#define SC_BASE_VEC_DIGITS   8

Definition at line 127 of file sc_nbdefs.h.

◆ SC_BIGINT_CONFIG_TEMPLATE_CLASS_HAS_STORAGE

#define SC_BIGINT_CONFIG_TEMPLATE_CLASS_HAS_STORAGE

Definition at line 101 of file sc_nbdefs.h.

◆ SC_BIT_INDEX

#define SC_BIT_INDEX (   BIT)    ( (BIT)&(std::numeric_limits<sc_digit>::digits-1) )

Definition at line 185 of file sc_nbdefs.h.

◆ SC_BIT_MASK

#define SC_BIT_MASK (   BITS)    ~( (std::numeric_limits<sc_digit>::max() ) << SC_BIT_INDEX(BITS) )

Definition at line 195 of file sc_nbdefs.h.

◆ SC_BIT_MASK1

#define SC_BIT_MASK1 (   BITS)    ~( (std::numeric_limits<sc_digit>::max()-1) << SC_BIT_INDEX(BITS) )

Definition at line 196 of file sc_nbdefs.h.

◆ SC_DIGIT_COUNT

#define SC_DIGIT_COUNT (   BIT_WIDTH)    ((BIT_WIDTH+BITS_PER_DIGIT-1)/BITS_PER_DIGIT)

Definition at line 188 of file sc_nbdefs.h.

◆ SC_DIGIT_INDEX

#define SC_DIGIT_INDEX (   BIT_INDEX)    ((BIT_INDEX)>>5)

Definition at line 186 of file sc_nbdefs.h.

◆ SC_DT_MIXED_COMMA_OPERATORS

#define SC_DT_MIXED_COMMA_OPERATORS

Definition at line 78 of file sc_nbdefs.h.

◆ SC_FREE_DIGIT

#define SC_FREE_DIGIT (   FLAG)    { m_free = FLAG; }

Definition at line 119 of file sc_nbdefs.h.

◆ SC_INTWIDTH

#define SC_INTWIDTH   64

Definition at line 260 of file sc_nbdefs.h.

◆ SC_MASK_DIGIT

#define SC_MASK_DIGIT (   v)    (v)

Definition at line 187 of file sc_nbdefs.h.