AM273x MCU+ SDK  08.02.00

Detailed Description

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
 

Field Documentation

◆ cmultMode

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

◆ freqShiftTwiddleIncr

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

◆ freqShift

struct { ... } HWA_ComplexMultiply::freqShift

◆ startFreq

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

◆ slowDFT

struct { ... } HWA_ComplexMultiply::slowDFT

◆ twiddlePattern

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

◆ winInterpolateMode

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

◆ FFTstitching

struct { ... } HWA_ComplexMultiply::FFTstitching

◆ scaleCmultScaleEn

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

◆ scalerMultiply

struct { ... } HWA_ComplexMultiply::scalerMultiply

◆ cmultScaleEn

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

◆ vecMultiMode1RamAddrOffset

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

◆ vectorMultiplyMode1

struct { ... } HWA_ComplexMultiply::vectorMultiplyMode1

◆ vecMultiMode2RamAddrOffset

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

◆ vectorMultiplyMode2

struct { ... } HWA_ComplexMultiply::vectorMultiplyMode2

◆ recwinModeSel

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

◆ recursiveWin

struct { ... } HWA_ComplexMultiply::recursiveWin

◆ ramAddrOffset

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

◆ ramIdxIncrMode

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

◆ lutFreqDerotate

struct { ... } HWA_ComplexMultiply::lutFreqDerotate

◆ twiddleIncr

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

◆ freqShiftWithFreIncrement

struct { ... } HWA_ComplexMultiply::freqShiftWithFreIncrement

◆ modeCfg

union { ... } HWA_ComplexMultiply::modeCfg