示例应用
提供了几个示例应用程序,以通过实际的简单代码示例演示如何使用 lib_xcore_math 的 API。
构建示例
在配置了 CMake 项目(使用 -DDEV_LIB_XCORE_MATH=1 选项)之后,可以在构建目录中使用 make lib_xcore_math-examples 命令构建所有示例。可以使用 make EXAMPLE_NAME 命令构建单个示例,其中 EXAMPLE_NAME 是要构建的示例名称。
运行示例
要在 XCORE-AI-EXPLORER 开发板上运行示例 EXAMPLE_NAME,请在 CMake 构建目录中运行以下命令(在构建之后):
xrun --xscope example/EXAMPLE_NAME/EXAMPLE_NAME.xe
例如,要运行 bfp_demo 示例,请使用以下命令:
xrun --xscope example/bfp_demo/bfp_demo.xe
要在 xCore 模拟器上运行示例,请使用以下命令:
xsim example/EXAMPLE_NAME/EXAMPLE_NAME.xe
bfp_demo
该应用程序的目的是通过示例演示如何使用 lib_xcore_math 的块浮点数 API 中的算术函数。
在该示例中,分配了三个32位的块浮点数向量,并初始化并填充了随机数据。然后,使用这些向量作为输入和/或输出应用了几个块浮点数操作。
该示例仅演示了实数32位块浮点数函数(即名称为 bfp_s32_* 的函数)。实数16位(bfp_s16_*)、复数32位(bfp_complex_s32_*)和复数16位(bfp_complex_s16_*)函数都使用类似的命名约定。
vect_demo
该应用程序的目的是通过示例演示如何使用 lib_xcore_math 的较低级别向量 API 中的算术函数。
通常,低级别算术 API 是该库中以 vect_* 开头的函数,例如 vect_s32_mul() 用于对32位向量进行逐元素乘法,vect_complex_s16_scale() 用于将复数16位向量乘以复数标量。
我们假设使用低级别 API 是因为需要一些与高级块浮点数 API 的默认行为不同的行为。鉴于此,该示例首先介绍如何实现与 BFP API 相似的行为,然后介绍如何修改该行为的方法。
fft_demo
该应用程序的目的是通过示例演示如何使用 lib_xcore_math 的块浮点数 API 中的 FFT 函数。
在这个示例中,我们演示了 BFP API 提供的每个正向和逆向 FFT。
filter_demo
该应用程序的目的是通过示例演示如何使用 lib_xcore_math 的滤波向量 API 中的函数。
滤波 API 目前支持三种不同的滤波器类型:
- 32位 FIR 滤波器
- 16位 FIR 滤波器
- 32位 Biquad 滤波器
该示例应用程序提供了如何使用每种滤波器类型的简单演示。