From 86b8c2e84a065a5cc3d2f960798ca626d391a2f9 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Tue, 5 Apr 2022 14:46:20 +0200
Subject: [PATCH] Use c_wpfb_lofar2_subbands_dts_18b setting. Use
 func_wpfb_subband_gain() to calculate expected subband ampl.

---
 .../lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd | 29 +++++++++++++------
 1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
index faace9dd44..e9e7f6c3ad 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
@@ -139,26 +139,37 @@ PACKAGE sdp_pkg is
   --CONSTANT c_sdp_wpfb_subbands : t_wpfb :=
   -- (1, c_sdp_N_fft, 0, c_sdp_P_pfb,
   -- c_sdp_N_taps, 1, c_sdp_W_adc, 16, c_sdp_W_fir_coef,
-  -- true, false, true, 16, c_sdp_W_subband, 1, 18, 2, 
-  -- true, 54, 2, 195313, c_fft_pipeline, c_fft_pipeline, 
-  -- c_fil_ppf_pipeline);
+  -- true, false, true, 16, c_sdp_W_subband, 1, 18, 2, true, 54, 2, 195313,
+  -- c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);
+
   -- LTS 2021-02-03, changes based on results from u_wpfb_stage22 in tb_tb_verify_pfb_wg.vhd:
   -- . fil_backoff_w = 0 (was 1)
   -- . fil_out_dat_w = fft_in_dat_w = 17 (was 16)
   -- . g_fft_out_gain_w = 0 (was 1)
   -- . g_fft_stage_dat_w = 22 (was 18)
   -- . g_fft_guard_w = 1 (was 2)
+  --CONSTANT c_sdp_wpfb_subbands : t_wpfb :=
+  --  (1, c_sdp_N_fft, 0, c_sdp_P_pfb,
+  --  c_sdp_N_taps, 0, c_sdp_W_adc, 17, c_sdp_W_fir_coef,
+  --  true, false, true, 17, c_sdp_W_subband, 0, 22, 1, true, 54, c_sdp_W_statistic_sz, 195313,
+  --  c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);  -- = c_wpfb_lofar2_subbands_lts_2021
+
+  -- DTS 2022-04-04, changes based on results from  in tb_tb_verify_pfb_wg.vhd:
+  -- . fil_backoff_w = 1
+  -- . fil_out_dat_w = fft_in_dat_w = 0 (use g_fft_stage_dat_w - g_fft_guard_w)
+  -- . g_fft_out_gain_w = 1 (compensate for fil_backoff_w = 1)
+  -- . g_fft_stage_dat_w = 24
+  -- . g_fft_guard_w = 1
   CONSTANT c_sdp_wpfb_subbands : t_wpfb :=
     (1, c_sdp_N_fft, 0, c_sdp_P_pfb,
-    c_sdp_N_taps, 0, c_sdp_W_adc, 17, c_sdp_W_fir_coef,
-    true, false, true, 17, c_sdp_W_subband, 0, 22, 1,
-    true, 54, c_sdp_W_statistic_sz, 195313, c_fft_pipeline, c_fft_pipeline,
-    c_fil_ppf_pipeline);
+    c_sdp_N_taps, 1, c_sdp_W_adc, 23, c_sdp_W_fir_coef,
+    true, false, true, 23, c_sdp_W_subband, 1, 24, 1, true, 54, c_sdp_W_statistic_sz, 195313,
+    c_fft_pipeline, c_fft_pipeline, c_fil_ppf_pipeline);  -- = c_wpfb_lofar2_subbands_dts_18b
 
   -- DC gain of WPFB FIR filter obtained from applications/lofar2/model/run_pfir_coef.m using application = 'lofar_subband'
   -- Not used in RTL, only used in test benches to verify expected suband levels
-  CONSTANT c_sdp_wpfb_fir_filter_dc_gain    : REAL := 0.994817;
-  CONSTANT c_sdp_wpfb_subband_sp_ampl_ratio : REAL := 8.0 * c_sdp_wpfb_fir_filter_dc_gain;  -- ~= 8 for unit FIR DC gain, depends on internal WPFB quantization and FIR coefficients
+  CONSTANT c_sdp_wpfb_fir_filter_dc_gain    : REAL := c_fil_lofar1_fir_filter_dc_gain;  -- = 0.994817, almost unit DC gain
+  CONSTANT c_sdp_wpfb_subband_sp_ampl_ratio : REAL := func_wpfb_subband_gain(c_sdp_wpfb_subbands, c_sdp_wpfb_fir_filter_dc_gain);
 
   -----------------------------------------------------------------------------
   -- Statistics offload
-- 
GitLab