HWA Common Config.
HWA common config parameters that are used with the HWA_ConfigCommon() call.
Data Fields | |
uint32_t | configMask |
uint16_t | numLoops |
uint8_t | paramStartIdx |
uint8_t | paramStopIdx |
struct { | |
uint8_t fft1DEnable | |
uint16_t bpmRate | |
uint32_t bpmPattern [2] | |
uint32_t interferenceThreshold | |
uint8_t twidDitherEnable | |
uint32_t lfsrSeed | |
uint8_t fftSumDiv | |
} | fftConfig |
struct { | |
uint16_t scale | |
uint8_t shift | |
} | dcEstimateConfig |
struct { | |
int32_t swIVal [HWA_NUM_RXCHANNELS] | |
int32_t swQVal [HWA_NUM_RXCHANNELS] | |
} | dcSubtractConfig |
struct { | |
uint32_t thresholdMagSw [6U] | |
uint32_t thresholdMagDiffSw [6U] | |
uint8_t sumMagScale | |
int8_t sumMagShift | |
uint8_t sumMagDiffScale | |
int8_t sumMagDiffShift | |
} | interfConfig |
struct { | |
int32_t Iscale [HWA_NUM_RXCHANNELS] | |
int32_t Qscale [HWA_NUM_RXCHANNELS] | |
int16_t twiddleDeltaFrac | |
uint8_t recWindowReset | |
} | complexMultiplyConfig |
struct { | |
uint32_t cfarThresholdScale | |
} | cfarConfig |
struct { | |
uint32_t i_cmult_scale [6U] | |
uint32_t q_cmult_scale [6U] | |
} | scalarMult |
struct { | |
uint8_t EGEKparam [HWA_CMP_K_ARR_LEN] | |
} | compressMode |
uint32_t HWA_CommonConfig::configMask |
See HWA_COMMONCONFIG_MASK macros for correct values. Set this to specify which of the fields are valid when calling HWA_ConfigCommon API.
uint16_t HWA_CommonConfig::numLoops |
number of loops to run from paramStartIdx to paramStopIdx valid value (12 bits): 0-4094; 4095 for infinitie. Sets the NUMLOOPS
uint8_t HWA_CommonConfig::paramStartIdx |
start index of paramset through which state machine loops through valid value: 5bits (0-31) Sets the PARAMSTART
uint8_t HWA_CommonConfig::paramStopIdx |
stop index of paramset through which state machine loops through valid value: 5bits (0-31) Sets the PARAMSTOP
uint8_t HWA_CommonConfig::fft1DEnable |
1 bit value: See HWA_FEATURE_BIT macros for correct values. Setting to 1 enables HWA in FFT1D mode - ACCEL_MEM0 and ACCEL_MEM1 are assumed to be shared with the ping-pong ADC buffers. At the end of the active transmission portion of a frame, this bit can be reset, so that the accelerator has access to all the four local memories independently. Sets FFT1DEN bit of HWACCREG1
uint16_t HWA_CommonConfig::bpmRate |
10 bit value: specifies the number of input samples corresponding to each BPM chip. value of 0 is invalid Sets BPMRATE bits in HWACCREG7
uint32_t HWA_CommonConfig::bpmPattern[2] |
64-bit value: specifies a Binary Phase Modulation (BPM) pattern to be removed on the input samples prior to FFT Sets HWACCREG5 (MSB,bpmPattern[1]) and HWACCREG6 (LSB,bpmPattern[0]) registers
uint32_t HWA_CommonConfig::interferenceThreshold |
24-bit value: Interference zero-out threshold - is used to zero-out sample(s), whose magnitude (24-bit absolute value of the 24-bit complex input) is very high, prior to computing the FFT The HWA_AccelModeFFT_t::interfZeroOutEn field should be enabled in the intended paramset for this threshold to be used
uint8_t HWA_CommonConfig::twidDitherEnable |
1 bit value: See HWA_FEATURE_BIT macros for correct values. Setting to 1 Enable Dithering for Twiddle Factors It is recommended to keep this register bit always set to 1 (i.e., dithering enabled) Sets the DITHERTWIDEN bit in HWACCREG7 register
uint32_t HWA_CommonConfig::lfsrSeed |
29-bit value: LFSR seed. Sets the LFSRSEED bits in HWACCREG11
uint8_t HWA_CommonConfig::fftSumDiv |
5-bit value: specifies the number of bits to right-shift the sum statistic (36-bit) before it is written to destination memory (24-bit) Sets the FFTSUMDIV bits in HWACCREG8 register
struct { ... } HWA_CommonConfig::fftConfig |
uint16_t HWA_CommonConfig::scale |
9 bit value: scale applied to 12 accumulators. multiplies the accumulator outputs by dcEstScale/256. default value is 256, giving a scale of 1.0 if HWA_PreProcessing::dcEstResetMode is set to HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET or HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET_ZEROLPCONT sets DC_EST_SCALE in DC_EST CTRL register
uint8_t HWA_CommonConfig::shift |
4 bit value: applied to all 12 accumulator outputs, can not bypassed, the accumulator outputs are scaled by 2^(8+2+ HWA_CommonConfig::shift). if HWA_PreProcessing::dcEstResetMode is set to HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET or HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET_ZEROLPCONT sets DC_EST_SHIFT in DC_EST_CTRL register
struct { ... } HWA_CommonConfig::dcEstimateConfig |
int32_t HWA_CommonConfig::swIVal[HWA_NUM_RXCHANNELS] |
24 bit value: SW programmed DC values used in subtraction if HWA_PreProcessing::dcSubEnable is enabled and HWA_PreProcessing::dcSubSelect is set to HWA_DCSUB_SELECT_DCSW. sets DC_SW_I_n_val in DC_SW_I_n register
int32_t HWA_CommonConfig::swQVal[HWA_NUM_RXCHANNELS] |
24 bit value: SW programmed DC values used in subtraction, if HWA_PreProcessing::dcSubEnable is enabled and HWA_PreProcessing::dcSubSelect is set to HWA_DCSUB_SELECT_DCSW. sets DC_SW_Q_n_val bits in DC_SW_Q_n register
struct { ... } HWA_CommonConfig::dcSubtractConfig |
uint32_t HWA_CommonConfig::thresholdMagSw[6U] |
Software Interference threshold for Magnitude These registers are used to specify the user-programmed threshold for nulling out samples affected by interference in the Interference localization block.
The magnitude of each incoming samples is compared with this threshold to decide whether it is corrupted by interference or not.
uint32_t HWA_CommonConfig::thresholdMagDiffSw[6U] |
Software Interference threshold for Magnitude of backward difference These registers are used to specify the user-programmed threshold for nulling samples affected by interference in the Interference localization block. The magnitude of backward difference of incoming samples is compared with this threshold to decide whether it is corrupted by interference or not.
uint8_t HWA_CommonConfig::sumMagScale |
8 bits value:unsigned 8 bits, 5 integer bits, and 3 fractional bits, applied to INTERSUM_MAGn from interference statistics block, default value is 8, corresponding to scale 1.0 if the HWA_PreProcessing::resetMode is set to HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET or HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET_ZEROLPCONT sets INTERFSUM_MAG_SCALE in INTERFSTATS_CTRL register
int8_t HWA_CommonConfig::sumMagShift |
4 bits: right shift after scaling, the shift value is 2^(3+6+interfsumMagShift) if the HWA_PreProcessing::resetMode is set to HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET or HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET_ZEROLPCONT sets INTERFSUM_MAG_SHIFT in INTERFSTATS_CTRL register
uint8_t HWA_CommonConfig::sumMagDiffScale |
8 bits: similar to interfsumMagScale, applied to INTERSUM_MAGDIFFn from interference statistics block, if the HWA_PreProcessing::resetMode is set to HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET or HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET_ZEROLPCONT sets INTERFSUM_MAGDIFF_SCALE in INTERFSTATS_CTRL register
int8_t HWA_CommonConfig::sumMagDiffShift |
4 bits: right shift after scaling, similar to interfsumMagShift if the HWA_PreProcessing::resetMode is set to HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET or HWA_DCEST_INTERFSUM_RESET_MODE_PARAMRESET_ZEROLPCONT sets INTERFSUM_MAGDIFF_SHIFT in INTERFSTATS_CTRL register
struct { ... } HWA_CommonConfig::interfConfig |
int32_t HWA_CommonConfig::Iscale[HWA_NUM_RXCHANNELS] |
21 bits: complex scalars used in HWA_ComplexMultiply::mode = HWA_COMPLEX_MULTIPLY_MODE_SCALAR_MULT, HWA_COMPLEX_MULTIPLY_MODE_VECTOR_MULT or HWA_COMPLEX_MULTIPLY_MODE_VECTOR_MULT_2 sets the ICMULT_SCALEn bits in ICMULT_SCALn registers
int32_t HWA_CommonConfig::Qscale[HWA_NUM_RXCHANNELS] |
21 bits: complex scalars used in HWA_ComplexMultiply::mode = HWA_COMPLEX_MULTIPLY_MODE_SCALAR_MULT, HWA_COMPLEX_MULTIPLY_MODE_VECTOR_MULT or HWA_COMPLEX_MULTIPLY_MODE_VECTOR_MULT_2 sets the ICMULT_SCALEn bits in ICMULT_SCALn registers
int16_t HWA_CommonConfig::twiddleDeltaFrac |
signed 10 bit value: only applied to if HWA_ComplexMultiply::mode is set to HWA_COMPLEX_MULTIPLY_MODE_FREQSHIFT_FREQINCRE, frequency shifter with frequency increment mode, HWA_ComplexMultiply::twidIncrement specifies how much the frequency could change for each successive input sample. additionally, twiddleDeltaFrac can be added to the derotation frequency to compensate for doppler induced phase shifts, it is reset at the start of paramset execution and again after the paramsets are executed. for other modes, it is ignored. sets the TWID_INCR_DELTA_FRAC bits in the TWID_INCR_DELTA_FRAC register
uint8_t HWA_CommonConfig::recWindowReset |
1 bit value: resets the param set counter used in Recursive window mode, applied to HWA_ComplexMultiply::mode is set to HWA_COMPLEX_MULTIPLY_MODE_RECURSIVE_WIN, sets the RECWIN_RESET_SW_RECWIN_RESET_SW bits in the RECWIN_RESET_SW register
struct { ... } HWA_CommonConfig::complexMultiplyConfig |
uint32_t HWA_CommonConfig::cfarThresholdScale |
18-bit value: specifies the threshold scale factor that is used to either multiply or add to the 'surrounding noise average' to determine the threshold used for detection of the present cell under test in log mode, this value should be represented as 7.11. in mag/mag-sqr mode, this value should be represented as 14.4. Sets the CFAR_THRESH bits in HWACCREG13 register
struct { ... } HWA_CommonConfig::cfarConfig |
uint32_t HWA_CommonConfig::i_cmult_scale[6U] |
21 bit value: real part of the scalar complex number used for scalar mult mode i.e. HWA_ComplexMultiply::mode = HWA_COMPLEX_MULTIPLY_MODE_SCALAR_MULT Sets the ICMULT_SCALE bits of HWACCREG9
uint32_t HWA_CommonConfig::q_cmult_scale[6U] |
21 bit value: imaginary part of the scalar complex number used for scalar mult mode i.e. HWA_ComplexMultiply::mode = HWA_COMPLEX_MULTIPLY_MODE_SCALAR_MULT Sets the ICMULT_SCALE bits of HWACCREG10
struct { ... } HWA_CommonConfig::scalarMult |
uint8_t HWA_CommonConfig::EGEKparam[HWA_CMP_K_ARR_LEN] |
An Array of length 8 consisting of 5 bit values: list of k-parameters to be optimized during EGE compression. Sets the ICMULT_SCALE bits of HWACCREG9
struct { ... } HWA_CommonConfig::compressMode |