diff --git a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_filterbank.vhd b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_filterbank.vhd index 1714612c629a8a85b33d1e3979d8ef5024739fb9..0ca713bb2c374871edd6654c8eb6de3926c2ea0c 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_filterbank.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_filterbank.vhd @@ -174,7 +174,7 @@ BEGIN u_mem_mux_sst : ENTITY common_lib.common_mem_mux GENERIC MAP ( g_nof_mosi => c_sdp_P_pfb, - g_mult_addr_w => ceil_log2(c_sdp_N_fft*c_sdp_wpfb_subbands.stat_data_sz) + g_mult_addr_w => ceil_log2(c_sdp_N_sub*c_sdp_Q_fft*c_sdp_wpfb_subbands.stat_data_sz) ) PORT MAP ( mosi => ram_st_sst_mosi, diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd index 08de4349383765eb7a69717ca89e920df2dc315d..2b5882b9c72f7be1633db46206cdf1ce416212f9 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd @@ -40,6 +40,7 @@ PACKAGE sdp_pkg is -- SDP specific parameters as defined in: -- L3 SDP Decision: SDP Parameter definitions ------------------------------------------------- + CONSTANT c_sdp_N_sub : NATURAL := 512; CONSTANT c_sdp_N_fft : NATURAL := 1024; CONSTANT c_sdp_S_pn : NATURAL := 12; CONSTANT c_sdp_Q_fft : NATURAL := 2; diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_scope.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_scope.vhd index ba4809dcb6eb72611119a34fab272cf62600b7b5..3bc54e97a7c1fe93d88e2abdee4c576fbdf686d9 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_scope.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_scope.vhd @@ -57,7 +57,7 @@ END sdp_scope; ARCHITECTURE str OF sdp_scope IS - SIGNAL cnt_arr : t_natural_arr(c_sdp_S_pn-1 DOWNTO 0); + SIGNAL cnt : NATURAL; SIGNAL deinterleaved_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0); SIGNAL subband_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS=>c_dp_sosi_rst); @@ -84,30 +84,20 @@ BEGIN p_cnt : PROCESS(rst, clk) BEGIN IF rst = '1' THEN - cnt_arr <= (OTHERS => 0); + cnt <= 0; ELSIF rising_edge(clk) THEN - FOR I IN 0 TO c_sdp_S_pn-1 LOOP - IF deinterleaved_sosi_arr(I).valid = '1' THEN - IF deinterleaved_sosi_arr(I).eop = '1' THEN - cnt_arr(I) <= 0; - ELSE - cnt_arr(I) <= cnt_arr(I) + 1; - END IF; + IF deinterleaved_sosi_arr(0).valid = '1' THEN + IF deinterleaved_sosi_arr(0).eop = '1' THEN + cnt <= 0; + ELSE + cnt <= + 1; END IF; - END LOOP; - END IF; - END PROCESS; - - p_select_subband : PROCESS(cnt_arr, deinterleaved_sosi_arr) - BEGIN - subband_sosi_arr <= deinterleaved_sosi_arr; - FOR I IN 0 TO c_sdp_S_pn-1 LOOP - IF cnt_arr(I) /= g_selected_subband THEN - subband_sosi_arr(I).valid <= '0'; END IF; - END LOOP; + END IF; END PROCESS; + -- Select subband + subband_sosi_arr <= deinterleaved_sosi_arr WHEN cnt = g_selected_subband; --------------------------------------------------------------- -- SIGNAL SCOPE