diff --git a/libraries/dsp/verify_pfb/tb_verify_pfb_wg.vhd b/libraries/dsp/verify_pfb/tb_verify_pfb_wg.vhd index 41d547963654ac7de8b143a745b68ef723ab8ce2..d688ef1fd7b6a6deb9cf8c75d532dd7394a10f42 100644 --- a/libraries/dsp/verify_pfb/tb_verify_pfb_wg.vhd +++ b/libraries/dsp/verify_pfb/tb_verify_pfb_wg.vhd @@ -239,9 +239,6 @@ ARCHITECTURE tb OF tb_verify_pfb_wg IS CONSTANT c_nof_channels : NATURAL := 2**c_wpfb.nof_chan; -- = 2**0 = 1, so no time multiplexing of inputs CONSTANT c_nof_sync : NATURAL := 5; -- nof sync intervals to simulate - -- Expected subband amplitude gain relative to input WG amplitude -1 for divide by 2 in two real input separate (Ampl --> Ampl/2) - CONSTANT c_pfb_sub_scaling : REAL := 2.0**REAL((g_fft_out_dat_w + g_fft_out_gain_w) - (g_fil_in_dat_w + g_fil_backoff_w) - 1); - -- Subband at WG frequency CONSTANT c_bin_a : NATURAL := NATURAL(FLOOR(g_subband_index_a)); CONSTANT c_bin_a_frac_en : BOOLEAN := g_subband_index_a > REAL(c_bin_a); @@ -277,7 +274,13 @@ ARCHITECTURE tb OF tb_verify_pfb_wg IS -- subband index / c_N_fft = 64 / 1024 = 1/16 -- SST - + -- Expected subband amplitude gain relative to input WG amplitude -1 for divide by 2 in two real input separate (Ampl --> Ampl/2) + -- . assume fir_filter_dc_gain ~= 1.0, like with c_wpfb_lofar1_fir_filter_dc_gain 0.994817 + CONSTANT c_pfb_sub_scaling : REAL := func_wpfb_subband_gain(c_wpfb); + + CONSTANT c_exp_sub_a_ampl : REAL := c_wg_ampl_a * c_pfb_sub_scaling; + CONSTANT c_exp_sub_b_ampl : REAL := c_wg_ampl_a * c_pfb_sub_scaling; + -- TB SIGNAL bs_end : STD_LOGIC := '0'; SIGNAL tb_end : STD_LOGIC := '0'; @@ -1017,6 +1020,7 @@ BEGIN print_str(". sub_a_re = " & int_to_str(sub_a_re)); print_str(". sub_a_im = " & int_to_str(sub_a_im)); print_str(". sub_a_ampl = " & real_to_str(sub_a_ampl, 10, 3)); + print_str(". sub_a_ampl/c_exp_sub_a_ampl = " & real_to_str(sub_a_ampl/c_exp_sub_a_ampl, 10, 6)); print_str(". sub_a_re_frac = " & int_to_str(sub_a_re_frac)); print_str(". sub_a_im_frac = " & int_to_str(sub_a_im_frac)); print_str(". sub_a_ampl_frac = " & real_to_str(sub_a_ampl_frac, 10, 3)); @@ -1060,6 +1064,7 @@ BEGIN print_str(". sub_b_re = " & int_to_str(sub_b_re)); print_str(". sub_b_im = " & int_to_str(sub_b_im)); print_str(". sub_b_ampl = " & real_to_str(sub_b_ampl, 10, 3)); + print_str(". sub_b_ampl/c_exp_sub_b_ampl = " & real_to_str(sub_b_ampl/c_exp_sub_b_ampl, 10, 6)); print_str(". sub_b_re_frac = " & int_to_str(sub_b_re_frac)); print_str(". sub_b_im_frac = " & int_to_str(sub_b_im_frac)); print_str(". sub_b_ampl_frac = " & real_to_str(sub_b_ampl_frac, 10, 3));