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

Top level header file for arbitrary precision signed/unsigned. More...

#include "sysc/kernel/sc_cmnhdr.h"
#include <climits>
#include <stdint.h>
#include "sysc/kernel/sc_constants.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

 sc_dt
 

Macros

#define SC_DT_MIXED_COMMA_OPERATORS
 
#define SC_NEG   -1
 
#define SC_ZERO   0
 
#define SC_POS   1
 
#define SC_NOSIGN   2
 
#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   4
 
#define BITS_PER_DIGIT   30
 
#define DIGIT_RADIX   (1ul << BITS_PER_DIGIT)
 
#define DIGIT_MASK   (DIGIT_RADIX - 1)
 
#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+29)/30)
 
#define DIGITS_PER_LONG   ((BITS_PER_LONG+29)/30)
 
#define DIGITS_PER_INT64   ((BITS_PER_INT64+29)/30)
 
#define DIGITS_PER_UINT   ((BITS_PER_UINT+29)/30)
 
#define DIGITS_PER_ULONG   ((BITS_PER_ULONG+29)/30)
 
#define DIGITS_PER_UINT64   ((BITS_PER_UINT64+29)/30)
 
#define SC_INTWIDTH   64
 

Typedefs

typedef unsigned char sc_dt::uchar
 
typedef int sc_dt::small_type
 
typedef unsigned int sc_dt::sc_digit
 
typedef int64_t sc_dt::int64
 
typedef uint64_t sc_dt::uint64
 
typedef int64 sc_dt::int_type
 
typedef uint64 sc_dt::uint_type
 

Enumerations

enum  sc_dt::sc_numrep {
  sc_dt::SC_NOBASE = 0, sc_dt::SC_BIN = 2, sc_dt::SC_OCT = 8, sc_dt::SC_DEC = 10,
  sc_dt::SC_HEX = 16, sc_dt::SC_BIN_US, sc_dt::SC_BIN_SM, sc_dt::SC_OCT_US,
  sc_dt::SC_OCT_SM, sc_dt::SC_HEX_US, sc_dt::SC_HEX_SM, sc_dt::SC_CSD
}
 Enumeration of number representations for character string conversion. More...
 

Variables

static const uint64 sc_dt::UINT64_ZERO = 0ULL
 
static const uint64 sc_dt::UINT64_ONE = 1ULL
 
static const uint64 sc_dt::UINT64_32ONES = 0x00000000ffffffffULL
 
static const small_type sc_dt::NB_DEFAULT_BASE = SC_DEC
 
static const uint64 sc_dt::UINT_ZERO = UINT64_ZERO
 
static const uint64 sc_dt::UINT_ONE = UINT64_ONE
 

Detailed Description

Top level header file for arbitrary precision signed/unsigned.

arithmetic. This file defines all the constants needed.

Original Author: Ali Dasdan, Synopsys, Inc.

Definition in file sc_nbdefs.h.

Macro Definition Documentation

◆ BITS_PER_BYTE

#define BITS_PER_BYTE   8

Definition at line 127 of file sc_nbdefs.h.

◆ BITS_PER_CHAR

#define BITS_PER_CHAR   8

Definition at line 209 of file sc_nbdefs.h.

◆ BITS_PER_DIGIT

#define BITS_PER_DIGIT   30

Definition at line 143 of file sc_nbdefs.h.

◆ BITS_PER_DIGIT_TYPE

#define BITS_PER_DIGIT_TYPE   32

Definition at line 139 of file sc_nbdefs.h.

◆ BITS_PER_HALF_DIGIT

#define BITS_PER_HALF_DIGIT   (BITS_PER_DIGIT / 2)

Definition at line 151 of file sc_nbdefs.h.

◆ BITS_PER_INT

#define BITS_PER_INT   (sizeof(int) * BITS_PER_CHAR)

Definition at line 210 of file sc_nbdefs.h.

◆ BITS_PER_INT64

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

Definition at line 212 of file sc_nbdefs.h.

◆ BITS_PER_LONG

#define BITS_PER_LONG   (sizeof(long) * BITS_PER_CHAR)

Definition at line 211 of file sc_nbdefs.h.

◆ BITS_PER_UINT

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

Definition at line 213 of file sc_nbdefs.h.

◆ BITS_PER_UINT64

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

Definition at line 215 of file sc_nbdefs.h.

◆ BITS_PER_ULONG

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

Definition at line 214 of file sc_nbdefs.h.

◆ BYTE_MASK

#define BYTE_MASK   255

Definition at line 129 of file sc_nbdefs.h.

◆ BYTE_RADIX

#define BYTE_RADIX   256

Definition at line 128 of file sc_nbdefs.h.

◆ BYTES_PER_DIGIT

#define BYTES_PER_DIGIT   4

Definition at line 142 of file sc_nbdefs.h.

◆ BYTES_PER_DIGIT_TYPE

#define BYTES_PER_DIGIT_TYPE   4

Definition at line 138 of file sc_nbdefs.h.

◆ DIGIT_MASK

#define DIGIT_MASK   (DIGIT_RADIX - 1)

Definition at line 145 of file sc_nbdefs.h.

◆ DIGIT_RADIX

#define DIGIT_RADIX   (1ul << BITS_PER_DIGIT)

Definition at line 144 of file sc_nbdefs.h.

◆ DIGITS_PER_CHAR

#define DIGITS_PER_CHAR   1

Definition at line 218 of file sc_nbdefs.h.

◆ DIGITS_PER_INT

#define DIGITS_PER_INT   ((BITS_PER_INT+29)/30)

Definition at line 219 of file sc_nbdefs.h.

◆ DIGITS_PER_INT64

#define DIGITS_PER_INT64   ((BITS_PER_INT64+29)/30)

Definition at line 221 of file sc_nbdefs.h.

◆ DIGITS_PER_LONG

#define DIGITS_PER_LONG   ((BITS_PER_LONG+29)/30)

Definition at line 220 of file sc_nbdefs.h.

◆ DIGITS_PER_UINT

#define DIGITS_PER_UINT   ((BITS_PER_UINT+29)/30)

Definition at line 222 of file sc_nbdefs.h.

◆ DIGITS_PER_UINT64

#define DIGITS_PER_UINT64   ((BITS_PER_UINT64+29)/30)

Definition at line 224 of file sc_nbdefs.h.

◆ DIGITS_PER_ULONG

#define DIGITS_PER_ULONG   ((BITS_PER_ULONG+29)/30)

Definition at line 223 of file sc_nbdefs.h.

◆ DIV_CEIL

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

Definition at line 160 of file sc_nbdefs.h.

◆ DIV_CEIL2

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

Definition at line 156 of file sc_nbdefs.h.

◆ HALF_DIGIT_MASK

#define HALF_DIGIT_MASK   (HALF_DIGIT_RADIX - 1)

Definition at line 153 of file sc_nbdefs.h.

◆ HALF_DIGIT_RADIX

#define HALF_DIGIT_RADIX   (1ul << BITS_PER_HALF_DIGIT)

Definition at line 152 of file sc_nbdefs.h.

◆ LOG2_BITS_PER_BYTE

#define LOG2_BITS_PER_BYTE   3

Definition at line 133 of file sc_nbdefs.h.

◆ SC_DT_MIXED_COMMA_OPERATORS

#define SC_DT_MIXED_COMMA_OPERATORS

Definition at line 85 of file sc_nbdefs.h.

◆ SC_INTWIDTH

#define SC_INTWIDTH   64

Definition at line 235 of file sc_nbdefs.h.

◆ SC_NEG

#define SC_NEG   -1

Definition at line 115 of file sc_nbdefs.h.

◆ SC_NOSIGN

#define SC_NOSIGN   2

Definition at line 118 of file sc_nbdefs.h.

◆ SC_POS

#define SC_POS   1

Definition at line 117 of file sc_nbdefs.h.

◆ SC_ZERO

#define SC_ZERO   0

Definition at line 116 of file sc_nbdefs.h.