There are separate signed and unsigned classes:
-
ap_int<int_W>
(signed) -
ap_uint<int_W>
(unsigned)
The template parameter int_W
specifies the total
width of the variable being declared.
User-defined types may be created with the C/C++ typedef
statement as shown in the following examples:
include "ap_int.h"// use ap_[u]fixed<> types
typedef ap_uint<128> uint128_t; // 128-bit user defined type
ap_int<96> my_wide_var; // a global variable declaration
The default maximum width allowed is 1024 bits. This default may be overridden
by defining the macro AP_INT_MAX_W
with a positive
integer value less than or equal to 32768 before inclusion of the ap_int.h
header file.
CAUTION:
Setting the value of
AP_INT_MAX_W
too High can
cause slow software compile and runtimes.Following is an example of overriding AP_INT_MAX_W
:
#define AP_INT_MAX_W 4096 // Must be defined before next line
#include "ap_int.h"
ap_int<4096> very_wide_var;