You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
323 lines
7.8 KiB
323 lines
7.8 KiB
# Copyright (c) 2023 Meta Platforms |
|
# SPDX-License-Identifier: Apache-2.0 |
|
|
|
config ZEPHYR_CMSIS_DSP_MODULE |
|
bool |
|
|
|
menuconfig CMSIS_DSP |
|
bool "CMSIS-DSP Library Support" |
|
help |
|
This option enables the CMSIS-DSP library. |
|
|
|
if CMSIS_DSP |
|
|
|
comment "Components" |
|
config CMSIS_DSP_BASICMATH |
|
bool "Basic Math Functions" |
|
help |
|
This option enables the Basic Math Functions, which support the |
|
following operations: |
|
|
|
* Elementwise Clipping |
|
* Vector Absolute Value |
|
* Vector Addition |
|
* Vector Subtraction |
|
* Vector Multiplication |
|
* Vector Dot Product |
|
* Vector Absolute Value |
|
* Vector Negate |
|
* Vector Offset |
|
* Vector Scale |
|
* Vector Shift |
|
* Vector Bitwise AND |
|
* Vector Bitwise OR |
|
* Vector Bitwise Exclusive OR |
|
* Vector Bitwise NOT |
|
|
|
config CMSIS_DSP_COMPLEXMATH |
|
bool "Complex Math Functions" |
|
imply CMSIS_DSP_FASTMATH |
|
help |
|
This option enables the Complex Math Functions, which support the |
|
following operations: |
|
|
|
* Complex-by-Complex Multiplication |
|
* Complex-by-Real Multiplication |
|
* Complex Dot Product |
|
* Complex Magnitude |
|
* Complex Magnitude Squared |
|
* Complex Conjugate |
|
|
|
config CMSIS_DSP_CONTROLLER |
|
bool "Controller Functions" |
|
help |
|
This option enables the Controller Functions, which support the |
|
following operations: |
|
|
|
* PID Control |
|
* Vector Clarke Transform |
|
* Vector Inverse Clarke Transform |
|
* Vector Park Transform |
|
* Vector Inverse Park Transform |
|
* Sine-Cosine |
|
|
|
These functions can be used to implement a generic PID controller, as |
|
well as field oriented motor control using Space Vector Modulation |
|
algorithm. |
|
|
|
config CMSIS_DSP_FASTMATH |
|
bool "Fast Math Functions" |
|
imply CMSIS_DSP_BASICMATH |
|
help |
|
This option enables the Fast Math Functions, which support the |
|
following operations: |
|
|
|
* Fixed-Point Division |
|
* Sine |
|
* Cosine |
|
* Square Root |
|
|
|
config CMSIS_DSP_FILTERING |
|
bool "Filtering Functions" |
|
imply CMSIS_DSP_BASICMATH |
|
imply CMSIS_DSP_FASTMATH |
|
imply CMSIS_DSP_SUPPORT |
|
help |
|
This option enables the Filtering Functions, which support the |
|
following operations: |
|
|
|
* Convolution |
|
* Partial Convolution |
|
* Correlation |
|
* Levinson-Durbin Algorithm |
|
|
|
The following filter types are supported: |
|
|
|
* FIR (finite impulse response) Filter |
|
* FIR Lattice Filter |
|
* FIR Sparse Filter |
|
* FIR Filter with Decimator |
|
* FIR Filter with Interpolator |
|
* IIR (infinite impulse response) Lattice Filter |
|
* Biquad Cascade IIR Filter, Direct Form I Structure |
|
* Biquad Cascade IIR Filter, Direct Form II Transposed Structure |
|
* High Precision Q31 Biquad Cascade Filter |
|
* LMS (least mean square) Filter |
|
* Normalized LMS Filter |
|
|
|
config CMSIS_DSP_INTERPOLATION |
|
bool "Interpolation Functions" |
|
help |
|
This option enables the Interpolation Functions, which support the |
|
following operations: |
|
|
|
* Bilinear Interpolation |
|
* Linear Interpolation |
|
* Cubic Spline Interpolation |
|
|
|
config CMSIS_DSP_MATRIX |
|
bool "Matrix Functions" |
|
help |
|
This option enables the Matrix Functions, which support the following |
|
operations: |
|
|
|
* Matrix Initialization |
|
* Matrix Addition |
|
* Matrix Subtraction |
|
* Matrix Multiplication |
|
* Complex Matrix Multiplication |
|
* Matrix Vector Multiplication |
|
* Matrix Inverse |
|
* Matrix Scale |
|
* Matrix Transpose |
|
* Complex Matrix Transpose |
|
* Cholesky and LDLT Decompositions |
|
|
|
config CMSIS_DSP_QUATERNIONMATH |
|
bool "Quaternion Math Functions" |
|
help |
|
This option enables the Quaternion Math Functions, which support the |
|
following operations: |
|
|
|
* Quaternion Conversions |
|
* Quaternion Conjugate |
|
* Quaternion Inverse |
|
* Quaternion Norm |
|
* Quaternion Normalization |
|
* Quaternion Product |
|
|
|
config CMSIS_DSP_STATISTICS |
|
bool "Statistics Functions" |
|
imply CMSIS_DSP_BASICMATH |
|
imply CMSIS_DSP_FASTMATH |
|
help |
|
This option enables the Statistics Functions, which support the |
|
following operations: |
|
|
|
* Minimum |
|
* Absolute Minimum |
|
* Maximum |
|
* Absolute Maximum |
|
* Mean |
|
* Root Mean Square (RMS) |
|
* Variance |
|
* Standard Deviation |
|
* Power |
|
* Entropy |
|
* Kullback-Leibler Divergence |
|
* LogSumExp (LSE) |
|
|
|
config CMSIS_DSP_SUPPORT |
|
bool "Support Functions" |
|
help |
|
This option enables the Support Functions, which support the |
|
following operations: |
|
|
|
* Vector 8-bit Integer Value Conversion |
|
* Vector 16-bit Integer Value Conversion |
|
* Vector 32-bit Integer Value Conversion |
|
* Vector 16-bit Floating-Point Value Conversion |
|
* Vector 32-bit Floating-Point Value Conversion |
|
* Vector Copy |
|
* Vector Fill |
|
* Vector Sorting |
|
* Weighted Sum |
|
* Barycenter |
|
|
|
config CMSIS_DSP_TRANSFORM |
|
bool "Transform Functions" |
|
imply CMSIS_DSP_BASICMATH |
|
help |
|
This option enables the Transform Functions, which support the |
|
following transformations: |
|
|
|
* Real Fast Fourier Transform (RFFT) |
|
* Complex Fast Fourier Transform (CFFT) |
|
* Type IV Discrete Cosine Transform (DCT4) |
|
|
|
config CMSIS_DSP_SVM |
|
bool "Support Vector Machine Functions" |
|
help |
|
This option enables the Support Vector Machine Functions, which |
|
support the following algorithms: |
|
|
|
* Linear |
|
* Polynomial |
|
* Sigmoid |
|
* Radial Basis Function (RBF) |
|
|
|
config CMSIS_DSP_BAYES |
|
bool "Bayesian Estimators" |
|
imply CMSIS_DSP_STATISTICS |
|
help |
|
This option enables the Bayesian Estimator Functions, which |
|
implements the naive gaussian Bayes estimator. |
|
|
|
config CMSIS_DSP_DISTANCE |
|
bool "Distance Functions" |
|
imply CMSIS_DSP_STATISTICS |
|
help |
|
This option enables the Distance Functions, which support the |
|
following distance computation algorithms: |
|
|
|
* Boolean Vectors |
|
* Hamming |
|
* Jaccard |
|
* Kulsinski |
|
* Rogers-Tanimoto |
|
* Russell-Rao |
|
* Sokal-Michener |
|
* Sokal-Sneath |
|
* Yule |
|
* Dice |
|
|
|
* Floating-Point Vectors |
|
* Canberra |
|
* Chebyshev |
|
* Cityblock |
|
* Correlation |
|
* Cosine |
|
* Euclidean |
|
* Jensen-Shannon |
|
* Minkowski |
|
* Bray-Curtis |
|
|
|
config CMSIS_DSP_WINDOW |
|
bool "Windowing Functions" |
|
help |
|
This option enabled the Window Functions, which support the |
|
following windowing functions: |
|
|
|
* Bartlett |
|
* Hamming |
|
* Hanning |
|
* Nuttall |
|
* Blackman Harris |
|
* HFT |
|
|
|
comment "Instruction Set" |
|
# NOTE: These configurations should eventually be derived from the arch ISA and |
|
# FP support configurations. |
|
|
|
config CMSIS_DSP_NEON |
|
bool "Neon Instruction Set" |
|
default y |
|
depends on CPU_CORTEX_A |
|
help |
|
This option enables the NEON Advanced SIMD instruction set, which is |
|
available on most Cortex-A and some Cortex-R processors. |
|
|
|
config CMSIS_DSP_NEON_EXPERIMENTAL |
|
bool "Neon Instruction Set" |
|
depends on CPU_CORTEX_A |
|
help |
|
This option enables the NEON Advanced SIMD instruction set, which is |
|
available on most Cortex-A and some Cortex-R processors. |
|
|
|
config CMSIS_DSP_HELIUM_EXPERIMENTAL |
|
bool "Helium Instruction Set" |
|
depends on FP_HARDABI && (ARMV8_1_M_MVEI || ARMV8_1_M_MVEF) |
|
help |
|
This option enables the Helium Advanced SIMD instruction set, which is |
|
available on some Cortex-M processors. |
|
|
|
comment "Features" |
|
|
|
config CMSIS_DSP_LOOPUNROLL |
|
bool "Loop Unrolling" |
|
help |
|
This option enables manual loop unrolling in the DSP functions. |
|
|
|
config CMSIS_DSP_ROUNDING |
|
bool "Rounding" |
|
help |
|
This option enables rounding on the support functions. |
|
|
|
config CMSIS_DSP_MATRIXCHECK |
|
bool "Matrix Check" |
|
help |
|
This option enables validation of the input and output sizes of |
|
matrices. |
|
|
|
config CMSIS_DSP_AUTOVECTORIZE |
|
bool "Auto Vectorize" |
|
help |
|
This option prefers autovectorizable code to one using C intrinsics |
|
in the DSP functions. |
|
|
|
config CMSIS_DSP_FLOAT16 |
|
bool "Half-Precision (16-bit Float) Support" |
|
default y |
|
depends on FP16 |
|
help |
|
This option enables the half-precision (16-bit) floating-point |
|
operations support. |
|
|
|
config CMSIS_DSP_LAX_VECTOR_CONVERSIONS |
|
bool "Lax Vector Conversions" |
|
default y |
|
depends on FP_HARDABI && (ARMV8_1_M_MVEI || ARMV8_1_M_MVEF) |
|
help |
|
This option enables lax vector conversions |
|
|
|
endif #CMSIS_DSP
|
|
|