MCUXpresso SDK Documentation

dsc_mau#

Overview#

This example shows how to use the MAU (Math Accelerator Unit) on DSC. The MAU calculated results are compared with the software calculated results to verify the MAU function.

Running the demo#

The expected output is shown below.

MAU Driver Example
--- SinFlt32 ---
  sin(0)               MAU=0  ref=0  err=0  [PASS]
  sin(PI/2)            MAU=1.000000  ref=1.000000  err=0.000000  [PASS]
  sin(PI/4)            MAU=0.707107  ref=0.707107  err=0  [PASS]
  sin(-PI/2)           MAU=-1.000000  ref=-1.000000  err=0.000000  [PASS]

--- CosFlt32 ---
  cos(0)               MAU=1.000000  ref=1.000000  err=0  [PASS]
  cos(PI/2)            MAU=0  ref=-0.000000  err=0.000000  [PASS]
  cos(PI/4)            MAU=0.707107  ref=0.707107  err=0  [PASS]
  cos(PI)              MAU=-1.000000  ref=-1.000000  err=0.000000  [PASS]

--- AtanFlt32 ---
  atan(0.0)/PI         MAU=0  ref=0  err=0  [PASS]
  atan(1.0)/PI         MAU=0.250000  ref=0.250000  err=0.000000  [PASS]
  atan(-1.0)/PI        MAU=-0.250000  ref=-0.250000  err=0.000000  [PASS]
  atan(0.5)/PI         MAU=0.147584  ref=0.147584  err=0.000000  [PASS]

--- SqrtFlt32 ---
  sqrt(1.0)            MAU=1.000000  ref=1.000000  err=0  [PASS]
  sqrt(4.0)            MAU=2.000000  ref=2.000000  err=0  [PASS]
  sqrt(9.0)            MAU=3.000000  ref=3.000000  err=0  [PASS]
  sqrt(0.25)           MAU=0.500000  ref=0.500000  err=0  [PASS]

--- InvSqrtFlt32 ---
  1/sqrt(1.0)          MAU=1.000000  ref=1.000000  err=0  [PASS]
  1/sqrt(4.0)          MAU=0.500000  ref=0.500000  err=0  [PASS]
  1/sqrt(0.25)         MAU=2.000000  ref=2.000000  err=0  [PASS]
  1/sqrt(9.0)          MAU=0.333333  ref=0.333333  err=0.000000  [PASS]

--- RecipFlt32 ---
  1/1.0                MAU=1.000000  ref=1.000000  err=0  [PASS]
  1/2.0                MAU=0.500000  ref=0.500000  err=0  [PASS]
  1/4.0                MAU=0.250000  ref=0.250000  err=0  [PASS]
  1/0.5                MAU=2.000000  ref=2.000000  err=0  [PASS]

--- SinFrac32 (Q1.31) ---
  sin(0)               MAU=0x00000000(0)  ref=0x00000000(0)  [PASS]
  sin(PI/2)            MAU=0x7FFFFFFF(1.000000)  ref=0x7FFFFF80(1.000000)  [PASS]
  sin(PI/4)            MAU=0x5A8279A0(0.707107)  ref=0x5A827980(0.707107)  [PASS]
  sin(3PI/4)           MAU=0x5A8279A0(0.707107)  ref=0x5A827980(0.707107)  [PASS]

--- CosFrac32 (Q1.31) ---
  cos(0)               MAU=0x7FFFFFFF(1.000000)  ref=0x7FFFFFFF(1.000000)  [PASS]
  cos(PI/2)            MAU=0x00000000(0)  ref=0xFFFFFFA3(-0.000000)  [PASS]
  cos(PI/4)            MAU=0x5A8279A0(0.707107)  ref=0x5A827980(0.707107)  [PASS]
  cos(3PI/4)           MAU=0xA57D8660(-0.707107)  ref=0xA57D8680(-0.707107)  [PASS]

--- AtanFrac32 (Q1.31) ---
  atan(0.0)/PI         MAU=0x00000000(0)  ref=0x00000000(0)  [PASS]
  atan(1.0)/PI         MAU=0x1FFFFFF0(0.250000)  ref=0x1FFFFFC0(0.250000)  [PASS]
  atan(0.0)/PI         MAU=0x00000000(0)  ref=0x00000000(0)  [PASS]
  atan(1.0)/PI         MAU=0x1FFFFFF0(0.250000)  ref=0x1FFFFFC0(0.250000)  [PASS]

--- SqrtFrac32 (Q1.31) ---
  sqrt(0.0)            MAU=0x00000000(0)  ref=0x00000000(0)  [PASS]
  sqrt(0.25)           MAU=0x40000000(0.500000)  ref=0x40000000(0.500000)  [PASS]
  sqrt(0.5)            MAU=0x5A8279A0(0.707107)  ref=0x5A827980(0.707107)  [PASS]
  sqrt(1.0)            MAU=0x7FFFFFE0(1.000000)  ref=0x7FFFFFFF(1.000000)  [PASS]

--- SinFrac16 (Q1.15) ---
  sin(0)               MAU=0x0000(0)  ref=0x0000(0)  [PASS]
  sin(PI/2)            MAU=0x7FFF(0.999969)  ref=0x7FFF(0.999969)  [PASS]
  sin(PI/4)            MAU=0x5A83(0.707123)  ref=0x5A82(0.707092)  [PASS]
  sin(3PI/4)           MAU=0x5A83(0.707123)  ref=0x5A82(0.707092)  [PASS]

--- CosFrac16 (Q1.15) ---
  cos(0)               MAU=0x7FFF(0.999969)  ref=0x7FFF(0.999969)  [PASS]
  cos(PI/2)            MAU=0x0000(0)  ref=0x0000(0)  [PASS]
  cos(PI/4)            MAU=0x5A83(0.707123)  ref=0x5A82(0.707092)  [PASS]
  cos(3PI/4)           MAU=0xA57D(-0.707123)  ref=0xA57E(-0.707092)  [PASS]

--- AtanFrac16 (Q1.15) ---
  atan(0.0)/PI         MAU=0x0000(0)  ref=0x0000(0)  [PASS]
  atan(1.0)/PI         MAU=0x2000(0.250000)  ref=0x1FFF(0.249969)  [PASS]
  atan(0.0)/PI         MAU=0x0000(0)  ref=0x0000(0)  [PASS]
  atan(1.0)/PI         MAU=0x2000(0.250000)  ref=0x1FFF(0.249969)  [PASS]

--- SqrtFrac16 (Q1.15) ---
  sqrt(0.0)            MAU=0x0000(0)  ref=0x0000(0)  [PASS]
  sqrt(0.25)           MAU=0x4000(0.500000)  ref=0x4000(0.500000)  [PASS]
  sqrt(0.5)            MAU=0x5A82(0.707092)  ref=0x5A82(0.707092)  [PASS]
  sqrt(1.0)            MAU=0x7FFF(0.999969)  ref=0x7FFF(0.999969)  [PASS]

--- SqrtInt32 ---
  sqrt(0)              MAU=0  ref=0  [PASS]
  sqrt(4)              MAU=2  ref=2  [PASS]
  sqrt(9)              MAU=3  ref=3  [PASS]
  sqrt(100)            MAU=10  ref=10  [PASS]


====================
Results: 60 / 60 passed
MAU Driver Example Completed Successfully.

Supported Boards#