Skip to content

ac_types #52

@drom

Description

@drom

Add support for ac_types

ac_int<W,S>

  • W - width of the number (non-negative interger number)
  • S - signed number (bool flag)
Type Numerical range Quantum
{W: 1, S: false} 0..1 1
{W: 1, S: true} -1..0 1
{W: 4, S: false} 0..15 1
{W: 4, S: true} -8..7 1

ac_int<W, S> === ac_fixed<W, W, S>

ac_fixed<W, I, S, Q, O>

  • W - width of the number (non-negative interger number)
  • I - integer width (non-negative interger number)
  • S - signed number (bool flag)
  • Q - rounding (bool flag)
  • O - overflow (bool flag)
Type Numerical range Quantum
{W: 4, I: 4, S: false} 0..15 1
{W: 4, I: 4, S: true} -8..7 1
{W: 4, I: 6, S: false} 0..60 4
{W: 4, I: 6, S: true} -32..28 4
{W: 4, I: 0, S: false} 0..15/16 1/16
{W: 4, I: 0, S: true} -1/2..7/16 1/16
{W: 4, I: -1, S: false} 0..15/32 1/32
{W: 4, I: -1, S: true} -0.25..7/32 1/32

ac_float<W, I, E, Q>

  • W - width of mantissa (non-negative interger number)
  • I - integer width (non-negative interger number)
  • E - exponent (non-negative interger number)
  • Q - rounding (bool flag)
Type Numerical range Quantum
{W: 54, I: 2, E: 11} IEEE 754 double
{W: 25, I: 2, E: 8} IEEE 754 float
{W: 12, I: 2, E: 5} IEEE 754 half

❓ should width be W+E-1 ❓

ac_complex

C: true flag makes two part complex number.

Type Numerical range Quantum
{W: 8, I: 4, S: false, C: true} 0..15 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions