diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_remote.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_remote.vhd
index 228352b870220677113f15240d5e8d580f70b60e..1a515832488603df758a204255b8f4ff5f571c1d 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_remote.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_beamformer_remote.vhd
@@ -70,11 +70,11 @@ architecture str of sdp_beamformer_remote is
   constant c_block_size            : natural := c_sdp_S_sub_bf * c_sdp_N_pol_bf;
   constant c_fifo_size             : natural := 2**ceil_log2((c_block_size * 9) / 16);  -- 9/16 = 36/64, 1 block of 64 bit words rounded to the next power of 2 = 1024.
 
-  signal dispatch_sosi_arr       : t_dp_sosi_arr(c_dual - 1 downto 0)  := (others => c_dp_sosi_rst);  -- 1 for local, 1 for remote.
+  signal dispatch_sosi_arr       : t_dp_sosi_arr(c_sdp_P_sum - 1 downto 0)  := (others => c_dp_sosi_rst);  -- 1 for local, 1 for remote.
   signal dp_fifo_sosi            : t_dp_sosi := c_dp_sosi_rst;
   signal dp_fifo_siso            : t_dp_siso := c_dp_siso_rdy;
-  signal beamlets_data_sosi_arr  : t_dp_sosi_arr(c_dual - 1 downto 0)  := (others => c_dp_sosi_rst);
-  signal beamlets_sosi_arr       : t_dp_sosi_arr(c_dual - 1 downto 0)  := (others => c_dp_sosi_rst);
+  signal beamlets_data_sosi_arr  : t_dp_sosi_arr(c_sdp_P_sum - 1 downto 0)  := (others => c_dp_sosi_rst);
+  signal beamlets_sosi_arr       : t_dp_sosi_arr(c_sdp_P_sum - 1 downto 0)  := (others => c_dp_sosi_rst);
   signal i_bf_sum_sosi           : t_dp_sosi := c_dp_sosi_rst;
   signal bf_sum_data_sosi        : t_dp_sosi := c_dp_sosi_rst;
 begin
@@ -132,7 +132,7 @@ begin
   u_mmp_dp_bsn_align_v2 : entity dp_lib.mmp_dp_bsn_align_v2
   generic map(
     -- for dp_bsn_align_v2
-    g_nof_streams             => c_dual,
+    g_nof_streams             => c_sdp_P_sum,
     g_bsn_latency_max         => 2,  -- max 2 blocks latency
     g_nof_aligners_max        => g_nof_aligners_max,
     g_block_size              => c_block_size,
@@ -141,7 +141,7 @@ begin
     g_rd_latency              => 1,
     -- for mms_dp_bsn_monitor_v2
     g_nof_clk_per_sync        => c_sdp_N_clk_sync_timeout,  -- Using c_sdp_N_clk_sync_timeout as g_nof_clk_per_sync is used for BSN monitor timeout.
-    g_nof_input_bsn_monitors  => c_dual,
+    g_nof_input_bsn_monitors  => c_sdp_P_sum,
     g_use_bsn_output_monitor  => true
     )
   port map (
@@ -185,7 +185,7 @@ begin
   ---------------------------------------------------------------
   u_dp_complex_add : entity dp_lib.dp_complex_add
   generic map(
-    g_nof_inputs => c_dual,
+    g_nof_inputs => c_sdp_P_sum,
     g_data_w => c_sdp_W_beamlet_sum
   )
   port map(
diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
index 1e11aca4f8f8450f7c75170cf30f1ea9ba2e27e2..8f6701daf221360c81c7ba470e92bbf4ec5e7042 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_pkg.vhd
@@ -74,12 +74,13 @@ package sdp_pkg is
   constant c_sdp_N_pn_max                  : natural := 16;  -- max 16 PN per ring = per antenna band
   constant c_sdp_N_pol                     : natural := 2;
   constant c_sdp_N_pol_bf                  : natural := 2;
-  constant c_sdp_N_rings_sdp               : natural := 1;
+  constant c_sdp_N_rings_sdp               : natural := 1;  -- number of QSFP rings in SDP, each has N_lane = 8 lanes
   constant c_sdp_N_ring_lanes_max          : natural := 8;  -- = N_lane in doc
   constant c_sdp_N_sub                     : natural := 512;
   constant c_sdp_N_sync_rcu                : natural := 1;
   constant c_sdp_N_taps                    : natural := 16;
-  constant c_sdp_P_sq                      : natural := 9;  -- = N_pn / 2 + 1
+  constant c_sdp_P_sq                      : natural := 9;  -- = N_pn / 2 + 1 square correlator cells for XST
+  constant c_sdp_P_sum                     : natural := 2;  -- sums of two in ring beamformer adder tree
   constant c_sdp_Q_fft                     : natural := 2;
   constant c_sdp_S_pn                      : natural := 12;
   constant c_sdp_S_rcu                     : natural := 3;
@@ -589,8 +590,8 @@ package sdp_pkg is
   constant c_sdp_reg_stat_hdr_dat_bst_addr_w                 : natural := ceil_log2(c_sdp_N_beamsets) + c_sdp_reg_stat_hdr_dat_addr_w;
   constant c_sdp_reg_bsn_monitor_v2_bst_offload_addr_w       : natural := ceil_log2(c_sdp_N_beamsets) + c_sdp_reg_bsn_monitor_v2_addr_w;
   constant c_sdp_reg_bsn_monitor_v2_beamlet_output_addr_w    : natural := ceil_log2(c_sdp_N_beamsets) + c_sdp_reg_bsn_monitor_v2_addr_w;
-  constant c_sdp_reg_bsn_align_v2_bf_addr_w                  : natural := ceil_log2(c_sdp_N_beamsets) + ceil_log2(c_dual) + c_sdp_reg_bsn_align_v2_addr_w;
-  constant c_sdp_reg_bsn_monitor_v2_rx_align_bf_addr_w       : natural := ceil_log2(c_sdp_N_beamsets) + ceil_log2(c_dual) + c_sdp_reg_bsn_monitor_v2_addr_w;
+  constant c_sdp_reg_bsn_align_v2_bf_addr_w                  : natural := ceil_log2(c_sdp_N_beamsets) + ceil_log2(c_sdp_P_sum) + c_sdp_reg_bsn_align_v2_addr_w;
+  constant c_sdp_reg_bsn_monitor_v2_rx_align_bf_addr_w       : natural := ceil_log2(c_sdp_N_beamsets) + ceil_log2(c_sdp_P_sum) + c_sdp_reg_bsn_monitor_v2_addr_w;
   constant c_sdp_reg_bsn_monitor_v2_aligned_bf_addr_w        : natural := ceil_log2(c_sdp_N_beamsets) + c_sdp_reg_bsn_monitor_v2_addr_w;
   constant c_sdp_reg_ring_lane_info_bf_addr_w                : natural := ceil_log2(c_sdp_N_beamsets) + 1;
   constant c_sdp_reg_bsn_monitor_v2_ring_rx_bf_addr_w        : natural := ceil_log2(c_sdp_N_beamsets) + c_sdp_reg_bsn_monitor_v2_addr_w;
diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
index 727c59d7774ed8e9207a182450e5452e177994d0..dee188c0b1a2d0c1e24e21be34797d944da75c36 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_station.vhd
@@ -419,8 +419,8 @@ architecture str of sdp_station is
   constant c_addr_w_reg_bdo_destinations           : natural := c_sdp_reg_bdo_destinations_info_w_one;
   constant c_addr_w_reg_dp_xonoff                  : natural := 1;
   constant c_addr_w_ram_st_bst                     : natural := ceil_log2(c_sdp_S_sub_bf * c_sdp_N_pol * (c_longword_sz / c_word_sz));
-  constant c_addr_w_reg_bsn_align_v2_bf            : natural := ceil_log2(c_dual) + c_sdp_reg_bsn_align_v2_addr_w;
-  constant c_addr_w_reg_bsn_monitor_v2_rx_align_bf : natural := ceil_log2(c_dual) + c_sdp_reg_bsn_monitor_v2_addr_w;
+  constant c_addr_w_reg_bsn_align_v2_bf            : natural := ceil_log2(c_sdp_P_sum) + c_sdp_reg_bsn_align_v2_addr_w;
+  constant c_addr_w_reg_bsn_monitor_v2_rx_align_bf : natural := ceil_log2(c_sdp_P_sum) + c_sdp_reg_bsn_monitor_v2_addr_w;
   constant c_addr_w_reg_ring_lane_info_bf          : natural := 1;
 
   -- Read only sdp_info values