HWA Paramset Config for ComplexMultiply block.
HWA paramset config parameters for the ComplexMultiply block inside HWA_ParamConfig which is used with the HWA_ConfigParamSet() call.
Data Fields | |
uint8_t | cmultMode |
union { | |
struct { | |
uint16_t freqShiftTwiddleIncr | |
} freqShift | |
struct { | |
uint16_t startFreq | |
} slowDFT | |
struct { | |
uint16_t twiddlePattern | |
uint8_t winInterpolateMode | |
} FFTstitching | |
struct { | |
uint8_t scaleCmultScaleEn | |
} scalerMultiply | |
struct { | |
uint8_t cmultScaleEn | |
uint16_t vecMultiMode1RamAddrOffset | |
} vectorMultiplyMode1 | |
struct { | |
uint16_t vecMultiMode2RamAddrOffset | |
} vectorMultiplyMode2 | |
struct { | |
uint8_t recwinModeSel | |
} recursiveWin | |
struct { | |
uint16_t ramAddrOffset | |
uint8_t ramIdxIncrMode | |
} lutFreqDerotate | |
struct { | |
uint16_t twiddleIncr | |
} freqShiftWithFreIncrement | |
} | modeCfg |
uint8_t HWA_ComplexMultiply::cmultMode |
See HWA_COMPLEX_MULTIPLY_MODE macros for correct values. Configuration for the Complex Multiplier block. Set it into HWA_COMPLEX_MULTIPLY_MODE_DISABLE to disable the complex multiply block Sets the CMULT_MODE in the PRE_PROCESSING register in paramset
uint16_t HWA_ComplexMultiply::freqShiftTwiddleIncr |
14 bit value: specifies the de-rotation frequency if HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_FREQ_SHIFTER sets the TWID_INCR bits in TWID_INCR register
struct { ... } HWA_ComplexMultiply::freqShift |
uint16_t HWA_ComplexMultiply::startFreq |
14 bit value: specifies the starting frequency for DFT, if HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_SLOW_DFT. and HWA_CommonConfig::twiddleDeltaFrac should be set to zero, the phase change is provided by the HWA_AccelModeFFT::fftSize. sets TWID_INCR bits in TWID_INCR register
struct { ... } HWA_ComplexMultiply::slowDFT |
uint16_t HWA_ComplexMultiply::twiddlePattern |
specify the twiddler factor pattern,if HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_FFT_STITCHING, (FFT stitching mode), see HWA_FFT_STITCHING_TWID_PATTERN macros for the correct values, sets 2 lsb bits of TWID_INCR bits in TWID_INCR register
uint8_t HWA_ComplexMultiply::winInterpolateMode |
2 bit value: See HWA_FFT_WINDOW_INTERPOLATE_MODE macros for correct values. Configures linear interpolation for the window coefficients, which is relevant for large-size FFT computation (i.e., FFT sizes of 4K, 8K) that is obtained via stitching multiple smaller-size FFTs. (Note: winSymm should be set to 0 when using 4K or 8K mode) Sets the WINDOW_INTERP_FRACTION bits of register POSTPROCWIN in paramset
struct { ... } HWA_ComplexMultiply::FFTstitching |
uint8_t HWA_ComplexMultiply::scaleCmultScaleEn |
see HWA_FEATURE_BIT macros for the correct values, it is applied if HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_SCALAR_MULT, if it is enabled, the input samples are multiplied by 12 different scalar, programmed in HWA_CommonConfig::Iscale[HWA_NUM_RXCHANNELS], and HWA_CommonConfig::Qscale[HWA_NUM_RXCHANNELS]. per iteration based on REG_BCNT. if it is disabeld, a constant complex scalar HWA_CommonConfig::Iscale[0], and HWA_CommonConfig::Qscale[0] is applied to all samples sets CMULT_SCALE_EN bits of PRE_PROCESSING register in paramset
struct { ... } HWA_ComplexMultiply::scalerMultiply |
uint8_t HWA_ComplexMultiply::cmultScaleEn |
see HWA_FEATURE_BIT macros for the correct values, if HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_VECTOR_MULT. if it is enabled, the input samples are multiplied successively by 12 different complex values,, programmed in HWA_CommonConfig::Iscale[HWA_NUM_RXCHANNELS], and HWA_CommonConfig::Qscale[HWA_NUM_RXCHANNELS]. If it is disabled, the input samples are multiplied by upto 1024 complex samples saved in internal RAM. Sets the CMULT_SCALE_EN bits of PRE_PROCESSING register in paramset
uint16_t HWA_ComplexMultiply::vecMultiMode1RamAddrOffset |
specifies an address offset for RAM, if HWA_ComplexMultiply::cmultScaleEn is disabled sets the 12 msb in TWID_INCR bits in TWID_INCR register, the 2 lsb must kept to 0
struct { ... } HWA_ComplexMultiply::vectorMultiplyMode1 |
uint16_t HWA_ComplexMultiply::vecMultiMode2RamAddrOffset |
specifies an address offset for RAM, if HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_VECTOR_MULT_2 sets the 12 msb in TWID_INCR bits in TWID_INCR register, the 2 lsb must kept to 0
struct { ... } HWA_ComplexMultiply::vectorMultiplyMode2 |
uint8_t HWA_ComplexMultiply::recwinModeSel |
see HWA_RECURSIVE_WIN_MODE_SELECT macro for the correct values, applied to HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_RECURSIVE_WIN mode. sets the bits RECWIN_MODE_SEL of register PREPROC in paramset
struct { ... } HWA_ComplexMultiply::recursiveWin |
uint16_t HWA_ComplexMultiply::ramAddrOffset |
specifies an address offset for RAM, if HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_LUT_FREQ_DEROTATE sets the 6 lsb in TWID_INCR bits in TWID_INCR register
uint8_t HWA_ComplexMultiply::ramIdxIncrMode |
see HWA_LUT_FREQ_DEROTATE_RAMIDX_INCR for the correct values sets bit 13, and 12 of TWID_INCR bits in TWID_INCR register
struct { ... } HWA_ComplexMultiply::lutFreqDerotate |
uint16_t HWA_ComplexMultiply::twiddleIncr |
14 bit value: specifies the de-rotation frequency if HWA_ComplexMultiply::cmultMode is set to HWA_COMPLEX_MULTIPLY_MODE_FREQSHIFT_FREQINCRE sets the TWID_INCR bits in TWID_INCR register
struct { ... } HWA_ComplexMultiply::freqShiftWithFreIncrement |
union { ... } HWA_ComplexMultiply::modeCfg |