Presentation is loading. Please wait.

Presentation is loading. Please wait.

MODEM REGISTER VERIFICATION

Similar presentations


Presentation on theme: "MODEM REGISTER VERIFICATION"— Presentation transcript:

1 MODEM REGISTER VERIFICATION

2 Register Name Register Address (16 – Bit) Test Case ID Purpose
Description: Read register and compare with expected value. Address: 0x600 – Expected data: 0x01 Address: 0x602 – Expected data: 0x00 Expected outcome: Time 12.19us -> Register address: 0x600 (mif_addr), Read data: 0x01 (mif_rd_data) Time 15.44us -> Register address: 0x602 (mif_addr), Read data: 0x00 (mif_rd_data) Register Name Register Address (16 – Bit) Test Case ID Purpose MOD_DEVID (RO) 0x600, 0x602 mod_reg_mod_dev_id.c To check if device ID is updated in the register.

3 Register Name Register Address (16 – Bit) Test Case ID Purpose
RSSI_VAL (RO) 0x604 mod_reg_rssi.c To check if measured RSSI value is updated in the register. Description: Set attenuation value = -85 dBm at BT1 side. Set frequency offset and frequency drift to zero. Read register and compare with expected value at BT2 side. Address: 0x604 – Expected data: 0xA9 Expected outcome: Time: us -> Register Address: 0x604 (mif_addr), Read data: 0xA9 (mif_rd_data)

4 Understanding: RSSI value is calculated based on AGC gain and average power. AGC gain is calculated based on LNA gain, Block 1 (Mixer) gain, Block 2 (VGA) gain. Since the received signal is attenuated in the channel model, the AGC gain adjusts the received signal to a suitable power level. Calculation: RSSI = AGC Gain – Average Power + 4 AGC Gain = LNA + B1B2= = 4F (d’79) (Signal is adjusted to the suitable power level) 2's complement of AGC gain = B1 Incoming signals average power is calculated = 0C RSSI = B1 - 0C +4 = A9

5 Register Name Register Address (16 – Bit) Test Case ID Purpose
Description: Set attenuation value = -85 dBm at BT1 side. Set frequency offset and frequency drift to zero. Write register with value 0x0000 ( BT = 0.5) or 0x0008 (BT = 0.55). Register Name Register Address (16 – Bit) Test Case ID Purpose TXFUNC_CNTL_LW (RW) BT_SEL bit (Bit position – 3) 0x608 mod_reg_txfc_ctrl_bt_sel.c Test if the IUT works with the selected BT product configuration 0 - Configure BT product 0.5 (Default) 1 - Configure BT product 0.55

6 Case 1: BT = 0.5 (iTxBTsel: 1’b0)
Contd.. Case 1: BT = 0.5 (iTxBTsel: 1’b0) Expected outcome: Time: us -> Register Address: 0x608 (mif_addr), Write data: 0x0000 (mif_wr_data) Time: us -> Output signal: oCoeffPlusOne1 = wCoeffPlusOne_1

7 Case 2: BT = 0.55 (iTxBTsel = 1’b1)
Contd.. Case 2: BT = 0.55 (iTxBTsel = 1’b1) Expected outcome: Time:404.03us -> Register Address: 0x608 (mif_addr), Write enable: 1’b1 (wr_en_signal), Write data: 0x0008 (mif_wr_data) Time:404.10us -> Register Address: 0x608 (mif_addr), Read data: 0x0008 (mif_rd_data) Time: us -> Output signal: oCoeffPlusOne1 = wCoeffPlusOne55_1

8 BT_SEL = 0.55 BT_SEL = 0.5 Understanding: 1. For BT= 0.5, the pulse shaping the symbol spreads over 2 bit period duration (Time = us for 1 packet). 2. For BT = 0.55, the symbol spread will be less than 2 bit period duration (Time = us for 1 packet). We can observe an increase of .125us for BT = 0.5 and decrease in amplitude value. Since the pulse spreads wide. For 1 bit (Bit duration=1us) the bit duration after pulse shaping will be us when BT = 0.5. For 1 bit (Bit duration=1us) the bit duration after pulse shaping will be us when BT = 0.55.

9 Register Name Register Address (16 – Bit) Test Case ID Purpose
RXFUNC_CNTL_LW (RW) 1. EL_FULL_PKT_TRK (Bit position – 1) 2. EL_SLOW_TRK_ENB (Bit position – 2) 3. EL_SAMP_ADJ (Bit position – 4) 4. EL_CTRL (Bit position – 5) 5. RSSI_THRESHOLD(Bit position – 15:8) 0x61C mod_reg_el_func_ctrl.c To check early late functionality: EL_FULL_PKT_TRK - Early late tracking for full packet. EL_SLOW_TRK_ENB - Early late slow tracking for payload. EL_SAMP_ADJ - Early late sampling point adjustment. EL_CTRL - Early late sum comparison. RSSI_THRESHOLD - RSSI detection threshold for early late adjustment. Description: Set attenuation value = -85 dBm at BT1 side. Write RXFUNC_CTRL register with value 0x3FCA to enable the above mentioned register bits. Write RXFUNC_CTRL register with value 0x7FFC to disable the above mentioned register bits. Write RSSI_THRESHOLD with value 0x3F and 0x7F to check if the threshold value can be set to all bit range.

10 Case 1: EL_CTRL and EL_SAMP_ADJ Disabled
Contd.. Expected outcome: 1. Time: us -> iElCtrl:1’b0, iElSampAdj:1’b0, wElSumThresMet:1’b1, rSamplAdjFwd:1’b1, rSamplAdjBwd:1’b0 Understanding: EL_CTRL: Controls the Early and Late sum comparison with threshold value. EL_CTRL= 0: When Early sum or Late sum value is greater than the threshold, threshold met signal will be enabled. 2. EL_SAMP_ADJ: Enables/Disables the Early Late Sampling point adjustment based on Early late and matched filter average threshold. EL_SAMP_ADJ =0: Samples will be adjusted based on Early Late threshold condition.(Matched Filter average threshold condition will not be checked).

11 Case 2: EL_CTRL and EL_SAMP_ADJ Enabled
Contd.. Expected outcome: 1. Time: us -> iElCtrl:1’b1, iElSampAdj:1’b1, wElSumThresMet:1’b1, rSamplAdjFwd:1’b1, rSamplAdjBwd:1’b0 Understanding: EL_CTRL: Controls the Early and Late sum comparison with threshold value. EL_CTRL= 1: Both Early sum and Late sum value must be greater than the threshold, threshold met signal will be enabled. 2. EL_SAMP_ADJ: Enables/Disables the Early Late Sampling point adjustment based on Early late and matched filter average threshold. EL_SAMP_ADJ =1: Samples will be adjusted based on Early late threshold met and matched filter average threshold.(Matched Filter average threshold condition will be checked).

12 Case 1: EL_SLOW_TRK_ENB Enabled
Expected outcome: Time: us -> iElSLwTrkEnb:1’b1, wElSlwTrkCntrEnb:1’b1, access_match_trig:1’b1 Understanding: EL_SLOW_TRK_ENB: Enables/disables slow tracking EL_SLOW_TRK_ENB =1 , slow tracking will be enabled and samples will be adjusted after Access address match. wSmplAdjBwdSet and wSmplAdjFwdSet are getting set after access address match.

13 Case 2: EL_SLOW_TRK_ENB Disabled
Expected outcome: Time: us -> iElSLwTrkEnb:1’b0, wElSlwTrkCntrEnb:1’b0, access_match_trig:1’b1 Understanding: EL_SLOW_TRK_ENB: Enables/disables slow tracking EL_SLOW_TRK_ENB =0 , slow tracking will be disabled and samples are not adjusted after Access address match. wSmplAdjBwdSet and wSmplAdjFwdSet are not getting set after access address match.

14 Case 1: EL_FULL_PKT_TRK Enabled
Expected outcome: Time: us -> iElTrkFullEnb:1’b0, access_match_trig:1’b1 Understanding: EL_FULL_PKT_TRK: Enables/disables Full packet tracking EL_FULL_PKT_TRK =0 , full packet tracking will be enabled and samples will be adjusted for payload. wSmplAdjBwdSet and wSmplAdjFwdSet are getting set after access address match.

15 Case 1: EL_FULL_PKT_TRK Disabled
Expected outcome: Time: us -> iElTrkFullEnb:1’b1, access_match_trig:1’b1 Understanding: EL_FULL_PKT_TRK: Enables/disables Full packet tracking EL_FULL_PKT_TRK =1 , full packet tracking will be disabled and samples will be adjusted till access address match (not for payload). wSmplAdjBwdSet and wSmplAdjFwdSet are not getting set after access address match.

16 RSSI_THRESHOLD Functionality
Expected outcome: Time: us -> iModCntrlRssiThres:7’h0F, rOperVld: 1’b0 -> 1’b1 (Continously Changing), access_match_trig:1’b0 (All packet loss) Time: us -> iModCntrlRssiThres:7’h3F, rOperVld: 1’b1, access_match_trig:1’b1(all packet received) Understanding: RSSI_THRESHOLD: RSSI value should be above the configured threshold to enable early late adjustment in the modem. If threshold value is not configured with correct value then Early late adjustment operation will not happen.(Packet loss)

17 Register Name Register Address (16 – Bit) Test Case ID Purpose
Contd.. Description: Set attenuation value = -85 dBm at BT1 side. Write RXFUNC_CTRL register with value 0x3FFF to select the registered input data. Write RXFUNC_CTRL register with value 0x3FBF to select the input data. Register Name Register Address (16 – Bit) Test Case ID Purpose RXFUNC_CNTL_LW (RW) NORM_PH_CTRL (Bit position – 6) 0x61C mod_reg_norm_ph_ctrl.c To check the Normalizer input data selection 0 - Selects the input data 1 - Selects the registered input data

18 Case 1: NORM_PH_CTRL bit enabled
Contd.. Case 1: NORM_PH_CTRL bit enabled Expected outcome: Time:419.50us -> Register Address: 0x61C (mif_addr), Write data: 0x3FFF (mif_wr_data), iNormPhaseCtrl: 1’b1 Time: us -> Output signal: wNormInPhase_sel = NormInPhase_q for iNormPhaseCtrl : 1’b1

19 Case 2: NORM_PH_CTRL bit disabled
Contd.. Case 2: NORM_PH_CTRL bit disabled Expected outcome: Time:419.72us -> Register Address: 0x61C (mif_addr), Write data: 0x3FBF (mif_wr_data), iNormPhaseCtrl: 1’b0 Time: us -> Output signal: wNormInPhase_sel = iNormInPhase for iNormPhaseCtrl : 1’b0 Understanding: NORM_PH_CTRL: Normalizer input data selection bit. NORM_PH_CTRL = 0, select the incoming input data NORM_PH_CTRL = 1, select the registered input data. To synchronize with the clock.

20 Register Name Register Address (16 – Bit) Test Case ID Purpose
RXFUNC_CNTL_LW (RW) FREQ_CHCK_SUM (Bit position – 7) 0x61C mod_reg_chksum_enb.c To check enabling/disabling of frequency check sum feature 0 - Disable 1 - Enable Description: Set attenuation value = -85 dBm at BT1 side. Write RXFUNC_CTRL register with value 0x3FFF to enable the frequency check sum feature. Write RXFUNC_CTRL register with value 0x3F7F to disable the frequency check sum feature.

21 Case 1: FREQ_CHCK_SUM bit enabled
Expected outcome: Time: us -> iFreqCheckSumEnb: 1’b0, wFreqCheckSumFail = 1’b0,wFreqOffs:14’h0000 Time: us -> iFreqCheckSumEnb: 1’b0, wFreqCheckSumFail = 1’b1,wFreqOffs:14’h0000 Understanding: FREQ_CHCK_SUM : Enables/disables the frequency check sum feature FREQ_CHCK_SUM = 1, compare the estimated checksum value with threshold value. wFreqCheckSumFail signal will be enabled/disabled based on the comparison. This signal is used to avoid frequency correction when there is false preamble detection. Hence FreqOffs = 0.

22 Case 2: FREQ_CHCK_SUM bit disabled
Expected outcome: Time: us -> iFreqCheckSumEnb: 1’b1, wFreqCheckSumFail = 1’b0,wFreqOffs:14’h0007 Time: us -> iFreqCheckSumEnb: 1’b1, wFreqCheckSumFail = 1’b0,wFreqOffs:14’h0000 Understanding: FREQ_CHCK_SUM : Enables/disables the frequency check sum feature FREQ_CHCK_SUM = 0, wFreqCheckSumFail will remain low and frequency correction will be carried out even for false preamble detection (FreqOffs = 7)

23 Register Name Register Address (16 – Bit) Test Case ID Purpose
RXFUNC_CNTL_UW (RW) ADJ_CORR_VAL (Bit position – 15:10) 2. DELTA_THRES_VAL (Bit position – 9:0) 0x61E mod_reg_corr_delta_th.c To check read and write operation of adjustment of correlation value from Frequency Offset Estimation module which is sent to Early Late module. To check read and write operation of Delta threshold value which adjusts the Early Late Samples. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz , Frequency Drift = 100KHz Scenario 1: Write and read RXFUNC_CTRL_UW register with value 0xFFFF (ADJ_CORR_VAL = 0x3F and DELTA_THRES_VAL=0x3FF which is the maximum value for both the bits). Scenario 2: Write and Read RXFUNC_CTRL_UW register with value 0x0001 (ADJ_CORR_VAL = 0x00 and DELTA_THRES_VAL=0x001 which is the minimum value for both the bits).

24 ADJ_CORR_VAL Functionality
Expected outcome: Time: us -> iAdjCorrVAl:6’h00, oPeakPosi: 6’h0A, iPeakPosiEnb:1’b1, rSampCnt:5’h10 ADJ_CORR_VAL: Correlation value will be adjusted based on the configured value. Configured value will adjust the peak position in Frequency offset estimation module. Adjusted peak position will be used in Early Late module to calculate the sample count which in turn is used to find the symbols.

25 DELTA_THRES_VAL Functionality
Expected outcome and understanding: iDeltaThres:10’h000, (Early – Late ) >= iDeltaThres, more samples will be adjusted since threshold value is very small. iDeltaThres:10’h3FF, (Early – Late ) >= iDeltaThres, less samples will be adjusted since threshold value is very high. No performance degradation.

26 Register Name Register Address (16 – Bit) Test Case ID Purpose
MOD_CNTL_LW (RW) SM_CNTRL (Bit position – 3) 0x624 mod_reg_sm_cntrl_en.c To check the configured bit controls the sleep mode operation from modem MOD_OPER_LW (RW) SM_ENB bit (Bit position – 2) 0x628 To check the configured bit enables/disables the sleep mode operation. Description: Set attenuation value = -85 dBm at BT1 side. Write and read MOD_CNTL_LW register with value 0x0008 to control the sleep mode operation from modem. Write and read MOD_OPER_LW register with value 0x0004 to enable the sleep mode operation. Write and read MOD_OPER_LW register with value 0x0000 to disable the sleep mode operation.

27 Contd.. Expected outcome: Time = us -> wREgBankSmCntl:1’b0, wSleepEnb:1’b0, wRxClkEnb:1’b1, wRxSysClkG: 1’b1(ON) Time = us -> wREgBankSmCntl:1’b1, wSleepEnb:1’b1, wRxClkEnb:1’b0, wRxSysClkG: 1’b0(OFF) Understanding: When sleep mode operation is enabled Tx and Rx clock will be disabled and device will enter into sleep mode operation (No transmission or reception of packets).

28 Register Name Register Address (16 – Bit) Test Case ID Purpose
Description: Set attenuation value = -85 dBm at BT1 side. Write and read MOD_OPER_LW register with value 0x0008 to enable the dynamic power. Write and read MOD_OPER_LW register with value 0x0000 to disable the dynamic power.. Register Name Register Address (16 – Bit) Test Case ID Purpose MOD_OPER_LW (RW) DYN_PWR_CNTRL (Bit position – 3) 0x628 mod_reg_dyn_pwr_cntrl.c To check the configured bit enables/disables the dynamic power control.

29 Case 1: DYN_PWR_CNTRL enabled
Contd.. Expected outcome: Time = us -> wRegBankDynPwrCntl:1’b1, wRxClkEnb: 1’b1, wRxSysClkG:1’b1(ON) Time = us -> wRegBankDynPwrCntl:1’b1, wRxClkEnb: 1’b0, wRxSysClkG:1’b1(OFF) Case 2: DYN_PWR_CNTRL disabled Expected outcome: Time = us -> wRegBankDynPwrCntl:1’b0, wRxClkEnb: 1’b1, wRxSysClkG:1’b1(ON) Time = us -> wRegBankDynPwrCntl:1’b0, wRxClkEnb: 1’b1, wRxSysClkG:1’b1(ON) Understanding: When dynamic power control is enabled, it will disable the Tx and Rx clock (only when Tx and Rx operation are idle). When dynamic power control is disabled. Tx and Rx clock will be always high even when the Tx and Rx operation are idle.

30 Register Name Register Address (16 – Bit) Test Case ID Purpose
MOD_OPER_LW (RW) RxClkCtrl1 (Bit position – 4) 0x628 mod_reg_rx_clk_cntrl.c To check the configured bit control the clock start stop timing for preamble search module. 0 – Clk ON from RSSI Detection to Access address match 1 – Clk ON during entire RX. Description: Set attenuation value = -85 dBm at BT1 side. Write and read MOD_OPER_LW register with value 0x0000 to enable the clock start stop timing only for Preamble search module.(clock will be on from RSSI detection to Access address match). Write and read MOD_OPER_LW register with value 0x0010 to disable the clock start stop timing for Preamble search module. (clock will be on for entire RX)

31 Case 1: RxClkCtrl1 disabled
Contd.. Expected outcome: Time = us -> wRegBankRxClkCtrl1:1’b0, rRxClkEnb2: 1’b1, AgcRssiDetPosEdge:1’b1, access_match_trig:1’b0, oModCntrlPreSrchClkG:1’b1(ON) Time = us -> wRegBankRxClkCtrl1:1’b0, rRxClkEnb2: 1’b0, AgcRssiDetPosEdge:1’b0, access_match_trig:1’b1, oModCntrlPreSrchClkG:1’b0 (OFF)

32 Case 2: RxClkCtrl1 enabled
Contd.. Case 2: RxClkCtrl1 enabled Expected outcome: Time = us -> wRegBankRxClkCtrl1:1’b1, rRxClkEnb2: 1’b1, AgcRssiDetPosEdge:1’b1, access_match_trig:1’b0, oModCntrlPreSrchClkG:1’b1 (ON) Time = us -> wRegBankRxClkCtrl1:1’b1, rRxClkEnb2: 1’b1, AgcRssiDetPosEdge:1’b0, access_match_trig:1’b1, oModCntrlPreSrchClkG:1’b1 (ON) Understanding: Clock will be selected based on the configured bit.

33 Register Name Register Address (16 – Bit) Test Case ID Purpose
MOD_OPER_LW (RW) FreqOffClkCtrl (Bit position – 5) 0x628 mod_reg_freq_off_clk_ctrl.c To check the configured bit control the clock start stop timing for frequency offset estimation module. 0 – Clk ON from RSSI Detection to Access address match 1 – Clk ON during entire RX. Description: Set attenuation value = -85 dBm at BT1 side. Write and read MOD_OPER_LW register with value 0x0000 to enable the clock start stop timing only for Frequency offset estimation module.(clock will be on from RSSI detection to Access address match). Write and read MOD_OPER_LW register with value 0x0020 to disable the clock start stop timing for Frequency offset estimation module. (clock will be on for entire RX)

34 Case 1: FreqOffClkCtrl disabled
Contd.. Expected outcome: Time = us -> wRegBankFreqOffClkCtrl:1’b0, rFreqOffEstClkEnb: 1’b1, AgcRssiDetPosEdge:1’b1, access_match_trig:1’b0, oModCntrlFreqOffEstClkG:1’b1(ON) Time = us -> wRegBankFreqOffClkCtrl:1’b0, rFreqOffEstClkEnb: 1’b0, AgcRssiDetPosEdge:1’b0, access_match_trig:1’b1, oModCntrlFreqOffEstClkG:1’b0(OFF)

35 Case 2: FreqOffClkCtrl enabled
Expected outcome: Time = us -> wRegBankFreqOffClkCtrl:1’b1, rFreqOffEstClkEnb: 1’b1, AgcRssiDetPosEdge:1’b1, access_match_trig:1’b0, oModCntrlFreqOffEstClkG:1’b1(ON) Time = us -> wRegBankFreqOffClkCtrl:1’b1, rFreqOffEstClkEnb: 1’b1, AgcRssiDetPosEdge:1’b0, access_match_trig:1’b1, oModCntrlFreqOffEstClkG:1’b1(ON) Understanding: Clock will be selected based on the configured bit.

36 PreSrch2ClkCtrl (Bit position – 6)
Register Name Register Address (16 – Bit) Test Case ID Purpose MOD_OPER_LW (RW) PreSrch2ClkCtrl (Bit position – 6) 0x628 mod_reg_presrch2_clk_ctrl.c To check the configured bit control the clock start stop timing for Preamble Search2 module 0 – Clk ON from RSSI Detection to Preamble Match 1 – Clk ON during entire RX. Description: Set attenuation value = -85 dBm at BT1 side. Write and read MOD_OPER_LW register with value 0x0000 to enable the clock start stop timing only for Preamble search2 module.(clock will be on from RSSI detection to Preamble Match). Write and read MOD_OPER_LW register with value 0x0040 to disable the clock start stop timing for Preamble search2 module. (clock will be on for entire RX)

37 Case 1: PreSrch2ClkCtrl disabled
Expected outcome: Time = us -> wRegBankPreSrch2ClkCtrl:1’b0, rLrRx2ClkEnb: 1’b1, AgcRssiDetPosEdge:1’b1, iPreMatchedLvl:1’b0, oModCntrlPreSrch2ClkG:1’b1(ON) Time = us -> wRegBankPreSrch2ClkCtrl:1’b0, rLrRx2ClkEnb: 1’b0, AgcRssiDetPosEdge:1’b0, iPreMatchedLvl:1’b1, oModCntrlPreSrch2ClkG:1’b0(OFF)

38 Case 2: PreSrch2ClkCtrl enabled
Expected outcome: Time = us -> wRegBankPreSrch2ClkCtrl:1’b1, rLrRx2ClkEnb: 1’b1, AgcRssiDetPosEdge:1’b1, iPreMatchedLvl:1’b0, oModCntrlPreSrch2ClkG:1’b1(ON) Time = us -> wRegBankPreSrch2ClkCtrl:1’b1, rLrRx2ClkEnb: 1’b1, AgcRssiDetPosEdge:1’b0, iPreMatchedLvl:1’b1, oModCntrlPreSrch2ClkG:1’b1(ON) Understanding: Clock will be selected based on the configured bit.

39 Register Name Register Address (16 – Bit) Test Case ID Purpose
FRQ_DRFT_THSLD_LW (RW) FREQ_DRIFT_THRESHOLD (Bit position –13:0) 0x660 mod_reg_drft_max_limit.c Test if the configured maximum threshold value and limit value qualifies the frequency drift estimation. FRQ_DRFT_THSLD_UW (RW) FREQ_DRIFT_LIMIT_VALUE (Bit position – 13:0) 0x662 Description: Set attenuation value = -85 dBm at BT1 side. Write and read FRQ_DRFT_THSLD_LW register with maximum drift threshold value 0x0064. Write and read FRQ_DRFT_THSLD_UW register with drift limit value 0x0000 to 0x0064. Expected Outcome: Device should receive all the packets when limit value is configured with correct value (depending on the programmed value in channel model). Packet loss can be observed when limit value is not configured with correct value.

40 Understanding: Maximum drift threshold is the maximum drift allowed which is 100KHz.(Programmed in Channel Model) Limit value is applied whenever the drift estimation exceeds the programmed value (i.e the value in channel model). Case 1: Frequency Drift = 100KHz(Channel model), Maximum Drift Threshold = 0x64, Limit value = 0x64  All packets received Case 2: Frequency Drift = 100KHz(Channel model), Maximum Drift Threshold = 0x00, Limit value = 0x64  All packets received Case 3: Frequency Drift = 100KHz(Channel model), Maximum Drift Threshold = 0x00, Limit value = 0x30  Packet reception is degraded.

41 Register Name Register Address (16 – Bit) Test Case ID Purpose
FRQ_DRFT_CFG_LW(RW) 1. FREQ_DRIFT_CONST_VAL (Bit Position – 15:2) 2. FREQ_DRIFT_CONST_EN (Bit Position – 1) 3. FREQ_DRIFT_EST_EN (Bit Position – 0) 0x664 mod_reg_freq_drift_est.c To check if the configured bit controls the Frequency Drift Estimation operation. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz Write and read FREQ_DRIFT_EST_EN bit with 0x01 to enable the Frequency drift estimation operation. Scenario 1: 1. Write and read FREQ_DRIFT_CONST_EN bit with 0x02 to enable the constant frequency drift estimation and write FREQ_DRIFT_CONST_VAL bit with 0x064 (Depends on the channel model value) constant frequency drift value. 2. Enable ASSERT_DRIFT macro in lec_config.h. (Estimated Drift within ± 10% Tolerance) Scenario 2: 1. Write and read FREQ_DRIFT_CONST_EN bit with 0x00 to enable the actual frequency drift estimation.

42 Expected Outcome: When FREQ_DRIFT_CONST_EN bit is enabled, output of the Frequency Drift Estimation must be the configured constant value (FREQ_DRIFT_CONST_VAL) (Receive all the packets). When FREQ_DRIFT_CONST_EN bit is disabled, output of the Frequency Drift Estimation is the actual value estimated in the drift estimation module (Receive all the packets). The estimated frequency drift value which is not within the tolerance range will be printed on the console (Assertion should be enabled).

43 FREQ_DRIFT_SCALING_FACTOR_LRC2
Register Name Register Address (16 – Bit) Test Case ID Purpose FRQ_DRFT_CFG_UW (RW) FREQ_DRIFT_SCALING_FACTOR_UNCODED (Bit Position – 3:0) 0x666 mod_reg_drft_fac_uncoded.c To check if the configured correlation sum average factor (Range 0x00 – 0x0A) qualifies frequency drift estimation for 1M. mod_reg_drft_fac_uncoded_2M.c To check if the configured correlation sum average factor (Range 0x00 – 0x0A) qualifies frequency drift estimation for 2M. FREQ_DRIFT_SCALING_FACTOR_LRC2 (Bit Position – 7:4) mod_reg_drft_fac_coded.c To check if the configured correlation sum average factor (Range 0x00 – 0x0A) qualifies frequency drift estimation for LR-C2. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz Scenario 1: 1. Write and read FRQ_DRFT_CFG_UW register with 0x9044 to select 16(2^4) as the Correlation Sum average factor to estimate the frequency drift . Scenario 2: 1. Write and read FRQ_DRFT_CFG_UW register with 0x90AA to select 1024(2^10) as the Correlation Sum average factor to estimate the frequency drift .

44 Expected Outcome: Expected Outcome:
Applied Frequency Drift = 100KHz, iAvgFactor = 8’h4, Estimated Frequency Drift = 14’h31.(All Packets received) Expected Outcome: Applied Frequency Drift = 100KHz, iAvgFactor = 8’hA, Estimated Frequency Drift = 14’h000.(Packet loss) Understanding: During Frequency Drift estimation, scaling of the calculated correlation sum is performed based on the configured value. 16 samples are used to calculate Correlation sum. Based on the number of samples selected for calculating correlation sum the scaling Factor must be selected.

45 Register Name Register Address (16 – Bit) Test Case ID Purpose
FRQ_DRFT_CFG2_LW (RW) LRC8_BOUNDRY_ALIGN_CNTR(Bit position – 8:0) 0x668 mod_reg_boundry_align_cntr_LRC8.c To check if the delay counter is configured with proper value to enable the LR-C8 Frequency Drift Estimation once the 8 bit boundary align pulse is obtained. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz Write and read FRQ_DRFT_CFG2_LW register with 0x130 delay counter value to enable the LRC8 frequency drift estimation.(Value 0x130 because access will match after 304us from first pulse of 8 bit boundary).

46 Expected Outcome: Time= us, iLrC8BndryAlignCntr:9’h130,rPreMatchedSmpCnt:13’h1300, wFreqDrftLrC8EstOn:1’b0 Understanding: Frequency Drift Estimation will start only when the count of samples from the start of preamble match is equal to the configured delay counter .

47 Register Name Register Address (16 – Bit) Test Case ID Purpose
FRQ_DRFT_CFG2_LW LRC8_SAMP_CNTR_CFG  (Bit Position – 10:9) 0x668 mod_reg_samp_cntr_config_LRC8.c To check if the configured value selects the number of samples to be accumulated correctly for frequency drift estimation. To check the configured value selects scaling factor. 0 – 64 samples & sampling factor = 64 1 – 128 samples & sampling factor = 128 2– 256 samples & sampling factor = 256 3 – 512 samples & sampling factor = 512 Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz Scenario 1: Write and read FRQ_DRFT_CFG2_LW register with 0x000 to select 64 samples to be accumulated and sampling factor as 64. Scenario 2: 1. Write and read FRQ_DRFT_CFG2_LW register with 0x600 to select 512 samples to be accumulated and sampling factor as 512.

48 Expected Outcome: Applied Frequency Drift = 100KHz, iLrC8SmpCntrCfg= 2’h0,wLrC8SmpCntr:9’h3F, Estimated Frequency Drift = 14’h64. Understanding: During Frequency Drift estimation, the accumulated value is used to correlation sum . Scaling is performed on the calculated correlation sum. In this scenario, 64 samples are used to calculate the correlation sum and scaling factor is also used as 64.

49 Expected Outcome: Applied Frequency Drift = 100KHz, iLrC8SmpCntrCfg= 2’h3,wLrC8SmpCntr:9’h1FF, Estimated Frequency Drift = 14’h64. Understanding: During Frequency Drift estimation, the accumulated value is used to correlation sum . Scaling is performed on the calculated correlation sum. In this scenario, 512 samples are used to calculate the correlation sum and scaling factor is also used as 512.

50 Register Name Register Address (16 – Bit) Test Case ID Purpose
FRQ_DRFT_CFG2_UW(RW) AFC_EST_START_DLY_1M (Bit Position – 12:9) 0x66A mod_reg_afc_start_est_dly_1M.c To check if the configured delay starts the AFC estimation from preamble detection for 1M. Range 0 to 15us Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz Scenario 1: Write and read FRQ_DRFT_CFG2_UW register with 0x0E00 to start the AFC estimation from preamble detection. Scenario 2: 1. Write and read FRQ_DRFT_CFG2_UW register with 0x000 to start the AFC estimation from preamble detection.

51 Expected Outcome: Time= us->iAfcDelayRef:7’h07,wAfcDelayRef1M:4’h01, rDelayCount:6’h00,wAvgEnb:1’b0, wDelayCntEnb:1’b1,wFreqEstOn:1’b1. Time= us->iAfcDelayRef:7’h07,wAfcDelayRef1M:4’h01, rDelayCount:6’h01,wAvgEnb:1’b1, wDelayCntEnb:1’b0,wFreqEstOn:1’b1 Time= us->iAfcDelayRef:7’h07,wAfcDelayRef1M:4’h01, rDelayCount:6’h00,wAvgEnb:1’b0, wDelayCntEnb:1’b0,wFreqEstOn:1’b0 Understanding: Configured delay counter will be compared with the delay count (rDelayCount). Initial offset will be provided to the estimation when the delay count is equal to the configured delay (wAfcDelayRef1M==rDelayCount)

52 Expected Outcome: Time= us->iAfcDelayRef:7’h0F,wAfcDelayRef1M:4’h09, rDelayCount:6’h00,wAvgEnb:1’b0, wDelayCntEnb:1’b1,wFreqEstOn:1’b1. Time= us->iAfcDelayRef:7’h0F,wAfcDelayRef1M:4’h09, rDelayCount:6’h09,wAvgEnb:1’b1, wDelayCntEnb:1’b0,wFreqEstOn:1’b1 Time= us->iAfcDelayRef:7’h0F,wAfcDelayRef1M:4’h09, rDelayCount:6’h00,wAvgEnb:1’b0, wDelayCntEnb:1’b0,wFreqEstOn:1’b0 Understanding: Configured delay counter will be compared with the delay count (rDelayCount). Initial offset will be provided to the estimation when the delay count is equal to the configured delay (wAfcDelayRef1M==rDelayCount)

53 Register Name Register Address (16 – Bit) Test Case ID Purpose
FRQ_DRFT_CFG2_UW(RW) AFC_EST_START_DLY_2M (Bit Position – 15:13) 0x66A mod_reg_afc_start_est_dly_2M.c To check if the configured delay starts the AFC estimation from preamble detection for 2M. Range 0 to 7us Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz Scenario 1: Write and read FRQ_DRFT_CFG2_UW register with 0xE000 to start the AFC estimation from preamble detection. Scenario 2: 1. Write and read FRQ_DRFT_CFG2_UW register with 0x8000 to start the AFC estimation from preamble detection.

54 Expected Outcome: Time= us->iAfcDelayRef:7’h70,wAfcDelayRef2M:3’h04, rDelayCount:6’h00,wAvgEnb:1’b0, wDelayCntEnb:1’b1,wFreqEstOn:1’b1. Time= us->iAfcDelayRef:7’h070,wAfcDelayRef2M:3’h04, rDelayCount:6’h04,wAvgEnb:1’b1, wDelayCntEnb:1’b0,wFreqEstOn:1’b1 Time= us->iAfcDelayRef:7’h70,wAfcDelayRef1M:3’h04, rDelayCount:6’h00,wAvgEnb:1’b0, wDelayCntEnb:1’b0,wFreqEstOn:1’b0 Understanding: Configured delay counter will be compared with the delay count (rDelayCount). Initial offset will be provided to the estimation when the delay count is equal to the configured delay (wAfcDelayRef1M==rDelayCount)

55 Expected Outcome: Time= us->iAfcDelayRef:7’h40,wAfcDelayRef2M:3’h01, rDelayCount:6’h00,wAvgEnb:1’b0, wDelayCntEnb:1’b1,wFreqEstOn:1’b1. Time= us->iAfcDelayRef:7’h40,wAfcDelayRef2M:3’h01, rDelayCount:6’h01,wAvgEnb:1’b1, wDelayCntEnb:1’b0,wFreqEstOn:1’b1 Time= us->iAfcDelayRef:7’h40,wAfcDelayRef1M:3’h01, rDelayCount:6’h00,wAvgEnb:1’b0, wDelayCntEnb:1’b0,wFreqEstOn:1’b0 Understanding: Configured delay counter will be compared with the delay count (rDelayCount). Initial offset will be provided to the estimation when the delay count is equal to the configured delay (wAfcDelayRef1M==rDelayCount)

56 Register Name Register Address (16 – Bit) Test Case ID Purpose
AFC_CNTRL_EXTND_LW (RW) 1. FREQ_OFFSET_CONST_VAL (Bit Position – 15:2) 2. FREQ_OFFSET_MID_EST_EN (Bit Position – 1) 3. FREQ_OFFSET_CONST_EN (Bit Position – 0) 0x64C mod_reg_freq_offset_est.c To check if the configured bit controls the Frequency Offset Estimation operation. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz Scenario 1: 1. Write and read FREQ_OFFSET_CONST_EN bit with 0x01 to enable the constant frequency offset estimation and write FREQ_OFFSET_CONST_VAL bit with 0x12C (Depends on the channel model value) constant frequency offset value. 2. Enable ASSERT_OFFSET macro in lec_config.h. (Estimated Offset within ± 10% Tolerance) Scenario 2: 1. Write and read FREQ_OFFSET_MID_EST_EN bit with 0x01 to enable the mid frequency offset estimation. Scenario 3: 1. Write and Read the AFC_CNTRL_EXTND_LW register with 0x0000 to enable the actual frequency offset estimation.

57 Expected Outcome: When FREQ_OFFSET_CONST_EN bit is enabled, output of the Frequency Offset Estimation must be the configured constant value (FREQ_OFFSET_CONST_VAL) (Receive all the packets). When FREQ_OFFSET_MID_EST_EN bit is enabled, output of the Frequency offset Estimation is based on the mid value frequency offset estimation(Receive all the packets). When FREQ_OFFSET_CONST_EN and FREQ_OFFSET_MID_EST_EN are disabled, output of the frequency estimation is the actual frequency offset value estimated in the Frequency offset estimation module (Receive all the packets). The estimated frequency offset value which is not within the tolerance range will be printed on the console (Assertion should be enabled).

58 Register Name Register Address (16 – Bit) Test Case ID Purpose
TXIFMD_CNTL_UW (RW) MOD_INDEX_PHASE_VAL [10:0] 0x60E mod_reg_mod_index.c To check the transmit operation for 1M with respect to the configured modulation index value. Description: Set attenuation value = -85 dBm at BT1 side. Set frequency offset and frequency drift to zero. Write and read TXIFMD_CNTL_UW register with value 0x00E6 for modulation index = 0.45 (The index value is configured based on the calculation MOD_INX_PHASE_VAL[10:0]/512). Write and read TXIFMD_CNTL_UW register with value 0x0100 for modulation index = 0.5 (The index value is configured based on the calculation MOD_INX_PHASE_VAL[10:0]/512).

59 Expected Outcome: Time= us, iModCntrlModIndex = 11’h0E6, oModIndValue = 161 Time= us, iModCntrlModIndex = 11’h100, oModIndValue = 180 Understanding: The GFSK data out is the saturated output of product of convolution output and the modulation value. Hence the modulation value affects the amplitude of the GFSK data out signal.

60 Register Name Register Address (16 – Bit) Test Case ID Purpose
MOD_OPER_UW (RW) MOD_INDEX_PHASE_VAL2 [10:0] 0x62A mod_reg_mod_index2.c To check the transmit operation for 2M with respect to the configured modulation index value. Description: Set attenuation value = -85 dBm at BT1 side. Set frequency offset and frequency drift to zero. Write and read MOD_OPER_UW register with value 0x0200 for modulation index = 0.5 (The index value is configured based on the calculation MOD_INX_PHASE_VAL2[10:0]/512). Write and read MOD_OPER_UW register with value 0x01CC for modulation index = 0.45 (The index value is configured based on the calculation MOD_INX_PHASE_VAL2[10:0]/512).

61 Expected Outcome: Time= us, iModCntrlModIndex2 = 11’h200, oModIndValue = 118 Time= us, iModCntrlModIndex2 = 11’h1CC, oModIndValue = 106 Understanding: The GFSK data out is the saturated output of product of convolution output and the modulation value. Hence the modulation value affects the amplitude of the GFSK data out signal.

62 Register Name Register Address (16 – Bit) Test Case ID Purpose
AFC_CNTRL_EXTND_UW(RW) AFC_RETRY_WAIT_OFFST_1M (Bit Position – 5:1) AFC_RTRY_ENB (Bit Position – 0) 0x64E mod_reg_afc_retry_offset_1M.c To check if the wait delay offset value enables the AFC retry functionality when Access match address is not received for 1M PHY. Programmable value range 0 to 31 Programmable delay range 0 to 62us Offset delay programmed = (Delay value programmed * 2)us Description: Set attenuation value = -94 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz Write and read AFC_CNTRL_EXTND_UW register with 0x29 (AFC_RTRY_ENB = 1 and AFC_RETRY_WAIT_OFFST_1M=0x14) to enable the AFC retry functionality for 1M PHY.

63 Expected Outcome: Time= us->iAfcRetryEnb:1’b1, iAfcRetryWaitDly:15’h014, rAfcFalseDet:1’b0, wRxEnb:1’b1, iAccessAddressTimeOut:1’b1 Time= us ->iAfcRetryEnb:1’b1, iAfcRetryWaitDly:15’h014, rAfcFalseDet:1’b1, wRxEnb:1’b0 , iAccessAddressTimeOut:1’b0 Time= us ->iAfcRetryEnb:1’b1, iAfcRetryWaitDly:15’h014, rAfcFalseDet:1’b0, wRxEnb:1’b1 , iAccessAddressTimeOut:1’b0 Understanding: Configured Offset value will retry the AFC estimation when Access address is not matched.

64 Register Name Register Address (16 – Bit) Test Case ID Purpose
AFC_CNTRL_EXTND_UW (RW) AFC_RETRY_WAIT_OFFST_2M (Bit Position – 10:6) AFC_RTRY_ENB (Bit Position – 0) 0x64E mod_reg_afc_retry_offset_2M.c To check if the wait delay offset value enables the AFC retry functionality when Access match address is not received for 2M PHY. Programmable value range 0 to 31 Programmable delay range 0 to 31us Offset delay programmed = (Delay value programmed * 2)us Description: Set attenuation value = -94 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz. Write and read AFC_CNTRL_EXTND_UW register with 0x501 (AFC_RTRY_ENB = 1 and AFC_RETRY_WAIT_OFFST_2M=0x14) to enable the AFC retry functionality for 2M PHY.

65 Expected Outcome: Time= us->iAfcRetryEnb:1’b1, iAfcRetryWaitDly:15’h280, rAfcFalseDet:1’b0, wRxEnb:1’b1, iAccessAddressTimeOut:1’b1 Time= us ->iAfcRetryEnb:1’b1, iAfcRetryWaitDly:15’h280, rAfcFalseDet:1’b1, wRxEnb:1’b0 , iAccessAddressTimeOut:1’b0 Time= us ->iAfcRetryEnb:1’b1, iAfcRetryWaitDly:15’h280, rAfcFalseDet:1’b0, wRxEnb:1’b1 , iAccessAddressTimeOut:1’b0 Understanding: Configured Offset value will retry the AFC estimation when Access address is not matched.

66 Register Address (16 – Bit) Test Case ID Purpose Register Name
FREQ_OFFSET_DRIFT_LW (RO) I_FREQ_OFFSET (Bit Position – 13:0) 0x650 mod_reg_freq_offset_drift.c To check if estimated frequency offset is updated in the register. FREQ_OFFSET_DRIFT_UW (RO) I_FREQ_DRIFT 0x652 To check if estimated frequency drift is updated in the register. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz. Read FREQ_OFFSET_DRIFT_LW register value and compare with expected value (expected value 0x12C ). Read FREQ_OFFSET_DRIFT_UW register value and compare with expected value (expected value 0x64).

67 Expected outcome: 1. Time us -> Register address: 0x650 (mif_addr), Read data: 16’h012C (mif_rd_data), oFreqOff:14’h12C (Estimated Frequency offset). Expected outcome: 1. Time us -> Register address: 0x652 (mif_addr), Read data: 16’h064 (mif_rd_data), oDrftVal:14’h64(Estimated FrequencyDrift).

68 Register Address (16 – Bit) Test Case ID Purpose PHDISC_DIST_LW (RW)
Register Name Register Address (16 – Bit) Test Case ID Purpose PHDISC_DIST_LW (RW) PH_DISC_DIST_1M (Bit Position – 3:0) 0x644 mod_reg_Phase_disc_dist.c To check if the configured value (1,2,4,8) selects correct phase discriminator distance (32,64,128,256) for 1M. Phase Index value is also selected based on the configured value. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz. Scenario 1: Write and read PHDISC_DIST_LW with 0x04 such that phase discriminator distance is 128. Scenario 2: Write and read PHDISC_DIST_LW with 0x08 such that phase discriminator distance is 256.

69 Expected outcome: Time us -> iPhDiscDistance:8’h04, wPhDiscDistance1M:4’h4, r1MphDiffAbsMax:10’h7F(127), wPhDiscDiffAbs:10’h28, wPhDiscDiffCap:10’h28 Time us -> iPhDiscDistance:8’h04, wPhDiscDistance1M:4’h4, r1MphDiffAbsMax:10’h7F(127), wPhDiscDiffAbs:10’h11B, wPhDiscDiffCap:10’h7F Understanding: Configured phase discriminator distance is used to limit phase values. In this scenario, if the phase values (wPhDiscDiffAbs = 0x11B) is greater than the configured phase discriminator distance(r1MphDiffAbsMax=0x7F) then phase value will be assigned with configured value (wPhDiscDiffCap = r1MphDiffAbsMax= 0x7F).

70 Expected outcome: Time us -> iPhDiscDistance:8’h08, wPhDiscDistance1M:4’h8, r1MphDiffAbsMax:10’hFF(255), wPhDiscDiffAbs:10’hee, wPhDiscDiffCap:10’hee Time us -> iPhDiscDistance:8’h08, wPhDiscDistance1M:4’h8, r1MphDiffAbsMax:10’hFF(255), wPhDiscDiffAbs:10’h191, wPhDiscDiffCap:10’hFF Understanding: Configured phase discriminator distance is used to limit phase values. In this scenario, if the phase values (wPhDiscDiffAbs = 0x191) is greater than the configured phase discriminator distance(r1MphDiffAbsMax=0xFF) then phase value will be assigned with configured value (wPhDiscDiffCap = r1MphDiffAbsMax= 0xFF).

71 Register Address (16 – Bit) Test Case ID Purpose PHDISC_DIST_LW (RW)
Register Name Register Address (16 – Bit) Test Case ID Purpose PHDISC_DIST_LW (RW) PH_DISC_DIST_2M (Bit Position – 7:4) 0x644 mod_reg_phase_disc_dist_2M.c To check if the configured value (1,2,4,8) selects correct phase discriminator distance (64,128,256,512) for 2M. Phase Index value is also selected based on the configured value. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz. Scenario 1: Write and read PHDISC_DIST_LW with 0x040 such that phase discriminator distance is 256. Scenario 2: Write and read PHDISC_DIST_LW with 0x010 such that phase discriminator distance is 64.

72 Expected outcome: Time us -> iPhDiscDistance:8’h40, wPhDiscDistance2M:4’h4, r2MphDiffAbsMax:10’hFF(255), wPhDiscDiffAbs:10’h28, wPhDiscDiffCap:10’h28 Time us -> iPhDiscDistance:8’h40, wPhDiscDistance2M:4’h4, r2MphDiffAbsMax:10’hFF(255), wPhDiscDiffAbs:10’h11B, wPhDiscDiffCap:10’hFF Understanding: Configured phase discriminator distance is used to limit phase values. In this scenario, if the phase values (wPhDiscDiffAbs = 0x11B) is greater than the configured phase discriminator distance(r2MphDiffAbsMax=0xFF) then phase value will be assigned with configured value (wPhDiscDiffCap = r2MphDiffAbsMax= 0xFF).

73 Expected outcome: Time us -> iPhDiscDistance:8’h10, wPhDiscDistance2M:4’h1, r2MphDiffAbsMax:10’h3F(63), wPhDiscDiffAbs:10’h2C, wPhDiscDiffCap:10’h2C Time us -> iPhDiscDistance:8’h10, wPhDiscDistance2M:4’h1, r2MphDiffAbsMax:10’h3F(63), wPhDiscDiffAbs:10’h48, wPhDiscDiffCap:10’h3F Understanding: Configured phase discriminator distance is used to limit phase values. In this scenario, if the phase values (wPhDiscDiffAbs = 0x48) is greater than the configured phase discriminator distance(r2MphDiffAbsMax=0x3F) then phase value will be assigned with configured value (wPhDiscDiffCap = r2MphDiffAbsMax= 0x3F).

74 EL_SLOW_TRK_CNTR_VAL_1M(Bit Position – 4:0)
Register Name Register Address (16 – Bit) Test Case ID Purpose PHDISC_DIST_UW (RW) EL_SLOW_TRK_CNTR_VAL_1M(Bit Position – 4:0) 0x646 mod_reg_el_slw_trk_cnt.c To check if the early late logic is applied after N adjustments if the configured value in the register is N-1. Ex : If a value 3 is programmed, then early late adjustments is applied after 4 consecutive forward/backward adjustments. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz. Scenario 1: Write and read PHDISC_DIST_UW with 0x003 such that early late adjustments are applied after 4 consecutive forward/backward adjustment. Scenario 2: Write and read PHDISC_DIST_UW with 0x005 such that early late adjustments are applied after 5 consecutive forward/backward adjustment.

75 Expected outcome: Time us -> iElSlwTrkCntrl:15’h3, wElSlwTrkThld1M:5’h3, wSamplAdjBwdSet:1’b1, rSmplAdjBwd:1’b1 (4 Consecutive backward adjustments can be observed) Understanding: Early late slow tracking counter value is configured with value 3 based on which early late adjustment is carried out after 4 consecutive backward/forward adjustments.

76 Expected outcome: Time us -> iElSlwTrkCntrl:15’h5, wElSlwTrkThld1M:5’h5, wSamplAdjFwdSet:1’b1, rSmplAdjFwd:1’b1 (6 Consecutive forward adjustments can be observed) Understanding: Early late slow tracking counter value is configured with value 5 based on which early late adjustment is carried out after 6 consecutive backward/forward adjustments.

77 EL_SLOW_TRK_CNTR_VAL_2M(Bit Position – 9:5)
Register Name Register Address (16 – Bit) Test Case ID Purpose PHDISC_DIST_UW (RW) EL_SLOW_TRK_CNTR_VAL_2M(Bit Position – 9:5) 0x646 mod_reg_el_slw_trk_cnt_2M.c To check if the early late logic is applied after N adjustments if the configured value in the register is N-1 for 2M. Ex : If a value 3 is programmed, then early late adjustments is applied after 4 consecutive forward/backward adjustments. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz, Frequency Drift = 100KHz. Scenario 1: Write and read PHDISC_DIST_UW with 0x060 such that early late adjustments are applied after 4 consecutive forward/backward adjustment. Scenario 2: Write and read PHDISC_DIST_UW with 0x00C0 such that early late adjustments are applied after 5 consecutive forward/backward adjustment.

78 Expected outcome: Time us -> iElSlwTrkCntrl:15’h60, wElSlwTrkThld2M:5’h3, wSamplAdjFwdSet:1’b1, rSmplAdjFwd:1’b1 (4 Consecutive forward adjustments can be observed) Understanding: Early late slow tracking counter value is configured with value 3 based on which early late adjustment is carried out after 4 consecutive backward/forward adjustments.

79 Expected outcome: Time us -> iElSlwTrkCntrl:15’hC0, wElSlwTrkThld2M:5’h6, wSamplAdjBwdSet:1’b1, rSmplAdjBwd:1’b1 (7 Consecutive backward adjustments can be observed) Understanding: Early late slow tracking counter value is configured with value 6 based on which early late adjustment is carried out after 7 consecutive backward/forward adjustments.

80 Register Address (16 – Bit) Test Case ID Purpose Register Name
EL_THRES_LW (RW) EL_SAMPLE_THRESHOLD (Bit Position – 15:0) 0x648 mod_reg_el_samp_mf_thrd.c To check if with the configured sample threshold value, early late adjustment is operating correctly. EL_THRES_UW (RW) EL_MF_THRESHOLD (Bit Position – 15:0) 0x64A To check if with the configured Matched filter threshold value, early late adjustment is operating correctly. Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz , Frequency Drift = 100KHz Scenario 1: Write and read EL_THRES_LW and EL_THRES_UW register with value 0xFFFF (EL_SAMP_THRESHOLD = 0xFFFF and EL_MF_THRESHOLD=0xFFFF which is the maximum value for both the bits). Scenario 2: Write and read EL_THRES_LW and EL_THRES_UW register with value 0x0000 (EL_SAMP_THRESHOLD = 0x0000 and EL_MF_THRESHOLD=0x0000 which is the maximum value for both the bits).

81 Expected outcome: Time us -> iELSampThres:16’h0000, iElMFThres:16’h0000, wElSumThresMet:1’b1,rSmplAdjFwd:1’b1 Understanding: Early sum and Late sum values are compared with the configured threshold (iElSampThres), and threshold met signal will be enabled when both the values are greater than the configured value. This threshold signal met will be further used to in forward and backward adjustment Matched filter average value is compared with the configured threshold value (iElMFThres) to adjust the forward and backward samples.

82 Expected outcome: Time us -> iELSampThres:16’hFFFF, iElMFThres:16’hFFFF, wElSumThresMet:1’b1,rSmplAdjBwd:1’b1 Understanding: Early sum and Late sum values are compared with the configured threshold (iElSampThres), and threshold met signal will be enabled when both the values are greater than the configured value. This threshold signal met will be further used to in forward and backward adjustment Matched filter average value is compared with the configured threshold value (iElMFThres) to adjust the forward and backward samples.

83 Register Address (16 – Bit) Test Case ID Purpose Register Name
AFC_CHECKSUM_CONFIG_2 (RW) AFC_CHKSUM_NPCNTMAXV1_1M (Bit Position – 7:0) 0x696 mod_reg_afc_chksum_npcntmaxval1_1M.c To check if the configured value starts the checksum to qualify the estimated frequency offset value. Range 0x00 to 0x3F Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz , Frequency Drift = 100KHz 3. Write and read AFC_CHECKSUM_CONFIG_2 register with value 0x2F to start the AFC checksum to qualify the frequency offset estimation.

84 Expected outcome: Time us -> iAfcChkSumbNPCntMax1mVal1:8’h2F,wFreqCheckSumFail:1’b0, rFreqOff:14’h0000 Time us-> iAfcChkSumbNPCntMax1mVal1:8’h2F,wFreqCheckSumFail:1’b1, rFreqOff:14’h0137 Understanding: Whenever the NegPosCount is greater than the configured value the AFC checksum will start (wFreqCheckSumFail = 0 indicates that AFC checksum starts). wFreqCheckSumFail signal is used to avoid frequency correction when there is false preamble detection. Hence rFreqOffs = 0. Note: The value should be in the range 0x00 to 0x3F, if it exceeds the value then packet degradation can be observed.

85 Register Address (16 – Bit) Test Case ID Purpose Register Name
AFC_CHECKSUM_CONFIG_2 (RW) AFC_CHKSUM_NPCNTMAXV1_2M (Bit Position – 15:8) 0x696 mod_reg_afc_chksum_npcntmaxval1_2M.c To check if the configured value starts the checksum to qualify the estimated frequency offset value. Range 0x00 to 0x1F Description: Set attenuation value = -85 dBm at BT1 side. Set Frequency Offset = 300KHz , Frequency Drift = 100KHz 3. Write and read AFC_CHECKSUM_CONFIG_2 register with value 0x0F00 to start the AFC checksum to qualify the frequency offset estimation.

86 Expected outcome: Time us -> iAfcChkSumbNPCntMax2mVal1:8’h0F,wFreqCheckSumFail:1’b0, rFreqOff:14’h0000 Time us-> iAfcChkSumbNPCntMax2mVal1:8’h0F,wFreqCheckSumFail:1’b1, rFreqOff:14’h0134 Understanding: Whenever the NegPosCount is greater than the configured value the AFC checksum will start (wFreqCheckSumFail = 0 indicates that AFC checksum starts). wFreqCheckSumFail signal is used to avoid frequency correction when there is false preamble detection. Hence rFreqOffs = 0. Note: The value should be in the range 0x00 to 0x1F, if it exceeds the value then packet degradation can be observed.

87 Register Name Register Address (16 – Bit) Test Case ID Purpose
LR_PREAMB_CONFIG_EXT (RW) LR_PRE_PEAKEARCH_THLD [15:0] 0x62C mod_reg_pre_peak_search.c To check if the configured threshold value detects the positive and negative peak for LR. Description: Set attenuation value = -85 dBm at BT1 side. Set frequency offset and frequency drift to zero. Write and read LR_PREAMB_CONFIG_EXT register with threshold value 0xDAA.

88 Expected Outcome: Time= us -> iLrPrePeakSrchThld = 16’hDAA, wLrPeakP = 1’b1 Time= us -> iLrPrePeakSrchThld = 16’hDAA, wLrPeakN = 1’b1 Understanding: The positive (wLrPeakP) and negative (wLrPeakN) peak for LR will be set when the calculated correlation value (wCorrValue for positive and wCorrValue2C for negative) is greater than the configured threshold value (iLrPrePeakSrchThld).

89 Register Name Register Address (16 – Bit) Test Case ID Purpose
AFC_CNTL_UW (RW) PRE_SEARCH_THRESHOLD [11:0] 0x632 mod_reg_pre_search_thrd.c To check if the configured threshold value detects preamble correctly. Description: Set attenuation value = -85 dBm at BT1 side. Set frequency offset and frequency drift to zero. Scenario 1: Write and read AFC_CNTL_UW register with threshold value 0x0FA to check the correctness of the preamble detection. This is verified by checking the number of packets received. Scenario 2: Write and read AFC_CNTL_UW register with threshold value 0x0E to check the correctness of the preamble detection. This is verified by checking the number of packets received.

90 Expected Outcome: Time= us -> iPreSrchThres1M = 12’hFA, rPreSrchDone = 1’b1. Five packets are transmitted and one packet is received for threshold value 12’hFA. Time= us -> iPreSrchThres1M = 12’h0E, rPreSrchDone = 1’b1. Five packets are transmitted and all five packet are received for threshold value 12’h0E. Understanding: The configured preamble search threshold value (iPreSrchThres1M) is compared with calculated preamble search sample accumulated value (wPreSrchSampAcc) to set preamble search positive and negative peak (oPreSrchPeakP and oPreSrchPeakN) which detects the preamble.

91 Register Name Register Address (16 – Bit) Test Case ID Purpose
FRQ_DRFT_CFG_UW (RW) FREQ_OFF_EST_ERR_FACTOR [14:12] 0x666 mod_reg_per_err_factor.c To check if the configured percentage of the Final estimated value is greater than the difference between Final and Middle frequency offset error estimation values. Description: Set attenuation value = -85 dBm at BT1 side. Set frequency offset and frequency drift to zero. Write and read FRQ_DRFT_CFG_UW register with counter value 0x01 such that (Final – Mid ) < = (Final)/(2^N) condition is satisfied.

92 Expected Outcome: Time= us -> iPerFactor = 3’h01, wPhDiscVarAbs is assigned with Final/(2^N) (wFreqCorr/2) value for N = 1 (configured), wNegPosDiffAbs is assigned with (Final – Mid) difference value, wFreqOffs = 14’h00. Understanding: The frequency offset is estimated based on the condition (Final – Mid ) < = (Final)/(2^N). The difference value should be less than the configured percentage frequency offset error estimation value for the condition to be satisfied. Note: The counter ‘N’ should be configured with a value between 0x01 to 0x05. The counter value 0x02 is considered as default for frequency offset estimation for any other configuration.

93 Register Name Register Address (16 – Bit) Test Case ID Purpose
FRQ_DRFT_CFG_UW (RW) LRC2CorrSumExtn 0x666 mod_reg_corr_sumext_LRC2 To check the number of samples to be considered for correlation during LRC2 frequency drift estimation. Description: Set attenuation value = -85 dBm at BT1 side. Set frequency offset and frequency drift to zero. Scenario 1: Write and read FRQ_DRFT_CFG_UW register with 0x9064 to enable LRC2CorrSumExtn bit in order to consider correlation sum of 16 samples. Scenario 2: Write and read FRQ_DRFT_CFG_UW register with 0x1064 to disable LRC2CorrSumExtn bit in order to consider correlation sum of 4 samples.

94 Expected Outcome: Time= us -> iLrC2CorrSumExtn = 1’b1, wLeftMask = 4’h00, wRightMask = 4’h0F (Sum of 16 samples) Time= us -> iLrC2CorrSumExtn = 1’b0, wLeftMask = 4’h06, wRightMask = 4’h09 (Sum of 4 samples) Understanding: The configured bit selects the correlation sum of 4 samples or 16 samples when disabled or enabled respectively. It is compared with the sample counter input for the matched filter correlation sum estimation.


Download ppt "MODEM REGISTER VERIFICATION"

Similar presentations


Ads by Google