>> Products

Algorithmic C Datatypes

Benefits of Algorithmic C Datatypes

    • Fast Simulation: Up to 200x faster simulation speeds than SystemC Data Types
    • Fast Compilation: Faster to compile in both g++ and Visual C++ compiler than SystemC
    • Consistent: Precise and complete definition of semantics with no differences between simulation and implementation (synthesis).
    • Arbitrary-Length: scales to any signed/unsigned integer or fixed-point bit-width making the semantics uniform. This is a natural requirement for any arithmetic library for a hardware description language.
    • Intuitive: Easy to learn and to use. Consistent and uniform semantics avoid hard-to-remember corner cases. For example: signed and unsigned types can be correctly compared without unexpected signed to unsigned conversions taking place.
    • Parameterizable: The precision is defined by template parameters. This makes it ideal for writing algorithmic IP where the precision of the algorithm is parameterized.
    • Built-in Quantization and Overflow Modes: All the commonly used rounding and saturation functionality are built-in as part of the fixed-point types.

Algorithmic C Datatypes

Algorithmic C (AC) datatypes are a class-based C++ library that provides arbitrary-length integer, fixed-point and complex data types. They enable algorithm, system and hardware designers to precisely model bit-true behavior in C++ specifications while accelerating simulation speeds by 10-200x faster versus alternate datatypes.

General floating-point arithmetic is widely used for modeling designs at an algorithmic level. For efficient implementation, the floating-point arithmetic is replaced by fixed-point or integer arithmetic with carefully chosen precisions. Bit-accurate modeling of the fixed-point arithmetic is required to validate that the precision of the arithmetic is sufficient to preserve the intended behavior of the design.

The Algorithmic CTM arbitrary-length bit-accurate integer and fixed-point data types allow designers to easily model bit-accurate behavior in their designs. The data types were designed to approach the speed of plain C integers. It is no longer necessary to compromise on bit-accuracy for the sake of speed or to explicitly code fixed-point behavior using integers in combination with shifts and bit masking. Algorithm validation and verification time is shortened significantly when the data types simulate fast and your High Level Synthesis tool produces RTL implementations that are one-to-one bit-accurate.

The arbitrary-length nature of these data types means that they will scale to any size while uniformly preserving their semantics. This is somewhat in contrast to limited-precision data types where the precision limit introduces corner cases that make such types harder to learn and use.

The Algorithmic C integer and fixed-point data types match well with SystemC integer and fixed-point data types in terms of the allowed precisions, and semantics. However the AC Data Types eliminate logical and semantic inconsistencies of the varied SystemC types.

Download Now

Includes: Algorithmic C Datatype
libraries and detailed documentation.