diff --git a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_beamformer_output.vhd b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_beamformer_output.vhd
index 3e49d71d9e2bfd15898420676ecbb8c78875ef5f..481c7ef2e0309232369dbac107f559566a5733ec 100644
--- a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_beamformer_output.vhd
+++ b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_beamformer_output.vhd
@@ -209,58 +209,65 @@ begin
     proc_common_wait_until_low(dp_clk, mm_rst);
     proc_common_wait_some_cycles(mm_clk, 10);
 
-    ----------------------------------------------------------------------------
-    -- BDO multiple destinations info in sdp_bdo_destinations_reg
-    ----------------------------------------------------------------------------
-    -- . Set nof_destinations = g_nof_destinations
-    v_offset := c_sdp_bdo_mm_nof_destinations_max * 4;
-    proc_mem_mm_bus_wr(v_offset + 0, g_nof_destinations, mm_clk, reg_destinations_cipo, reg_destinations_copi);
-
-    -- . Read back nof_destinations
-    proc_common_wait_cross_clock_domain_latency(c_mm_clk_period, c_dp_clk_period, c_common_cross_clock_domain_latency * 2);
-    proc_mem_mm_bus_rd(v_offset + 0, mm_clk, reg_destinations_cipo, reg_destinations_copi);
-    proc_mem_mm_bus_rd_latency(1, mm_clk);
-    rd_nof_destinations <= to_uint(reg_destinations_cipo.rddata(c_word_w - 1 downto 0));
-    proc_common_wait_some_cycles(mm_clk, 1);
-    assert rd_nof_destinations = g_nof_destinations report "Wrong MM readback nof_destinations" severity error;
-
-    -- . Read nof_destinations_act, to check that g_nof_destinations is
-    --   forced to c_nof_destinations
-    proc_common_wait_cross_clock_domain_latency(c_mm_clk_period, c_dp_clk_period, c_common_cross_clock_domain_latency * 2);
-    proc_mem_mm_bus_rd(v_offset + 1, mm_clk, reg_destinations_cipo, reg_destinations_copi);
-    proc_mem_mm_bus_rd_latency(1, mm_clk);
-    rd_nof_destinations_act <= to_uint(reg_destinations_cipo.rddata(c_word_w - 1 downto 0));
-    proc_common_wait_some_cycles(mm_clk, 1);
-    assert rd_nof_destinations_act = c_nof_destinations report "Wrong MM read nof_destinations_act" severity error;
-
-    -- . Use same destination MAC/IP/UDP for all destinations, to ease rx_beamlet_header verification
-    --   and to have same c_exp_ip_header_checksum value for all c_nof_destinations.
-    for DI in 0 to c_nof_destinations - 1 loop
-      proc_mem_mm_bus_wr(DI * 2 + 1, to_uint(c_sdp_cep_eth_dst_mac(47 downto 32)), mm_clk, reg_destinations_cipo, reg_destinations_copi);
-      proc_mem_mm_bus_wr(DI * 2, to_sint(c_sdp_cep_eth_dst_mac(31 downto 0)), mm_clk, reg_destinations_cipo, reg_destinations_copi);
-    end loop;
-    v_offset := c_sdp_bdo_mm_nof_destinations_max * 2;
-    for DI in 0 to c_nof_destinations - 1 loop
-      proc_mem_mm_bus_wr(v_offset + DI, to_sint(c_sdp_cep_ip_dst_addr), mm_clk, reg_destinations_cipo, reg_destinations_copi);
-    end loop;
-    v_offset := c_sdp_bdo_mm_nof_destinations_max * 3;
-    for DI in 0 to c_nof_destinations - 1 loop
-      proc_mem_mm_bus_wr(v_offset + DI, to_uint(c_sdp_cep_udp_dst_port), mm_clk, reg_destinations_cipo, reg_destinations_copi);
-    end loop;
+    if c_nof_destinations_max = 1 then
+      --------------------------------------------------------------------------
+      -- BDO one destination fields in dp_offload_tx_v3
+      --------------------------------------------------------------------------
+      proc_mem_mm_bus_wr(41, to_uint(c_sdp_cep_eth_dst_mac(47 downto 32)), mm_clk, hdr_dat_cipo, hdr_dat_copi);
+      proc_mem_mm_bus_wr(40, to_sint(c_sdp_cep_eth_dst_mac(31 downto 0)), mm_clk, hdr_dat_cipo, hdr_dat_copi);
+      proc_mem_mm_bus_wr(25, to_sint(c_sdp_cep_ip_dst_addr), mm_clk, hdr_dat_cipo, hdr_dat_copi);
+      proc_mem_mm_bus_wr(23, to_uint(c_sdp_cep_udp_dst_port), mm_clk, hdr_dat_cipo, hdr_dat_copi);
+    else
+      ----------------------------------------------------------------------------
+      -- BDO multiple destinations info in sdp_bdo_destinations_reg
+      ----------------------------------------------------------------------------
+      -- . Set nof_destinations = g_nof_destinations
+      v_offset := c_sdp_bdo_mm_nof_destinations_max * 4;
+      proc_mem_mm_bus_wr(v_offset + 0, g_nof_destinations, mm_clk, reg_destinations_cipo, reg_destinations_copi);
+
+      -- . Read back nof_destinations
+      proc_common_wait_cross_clock_domain_latency(c_mm_clk_period, c_dp_clk_period, c_common_cross_clock_domain_latency * 2);
+      proc_mem_mm_bus_rd(v_offset + 0, mm_clk, reg_destinations_cipo, reg_destinations_copi);
+      proc_mem_mm_bus_rd_latency(1, mm_clk);
+      rd_nof_destinations <= to_uint(reg_destinations_cipo.rddata(c_word_w - 1 downto 0));
+      proc_common_wait_some_cycles(mm_clk, 1);
+      assert rd_nof_destinations = g_nof_destinations report "Wrong MM readback nof_destinations" severity error;
+
+      -- . Read nof_destinations_act, to check that g_nof_destinations is
+      --   forced to c_nof_destinations
+      proc_common_wait_cross_clock_domain_latency(c_mm_clk_period, c_dp_clk_period, c_common_cross_clock_domain_latency * 2);
+      proc_mem_mm_bus_rd(v_offset + 1, mm_clk, reg_destinations_cipo, reg_destinations_copi);
+      proc_mem_mm_bus_rd_latency(1, mm_clk);
+      rd_nof_destinations_act <= to_uint(reg_destinations_cipo.rddata(c_word_w - 1 downto 0));
+      proc_common_wait_some_cycles(mm_clk, 1);
+      assert rd_nof_destinations_act = c_nof_destinations report "Wrong MM read nof_destinations_act" severity error;
+
+      -- . Use same destination MAC/IP/UDP for all destinations, to ease rx_beamlet_header verification
+      --   and to have same c_exp_ip_header_checksum value for all c_nof_destinations.
+      for DI in 0 to c_nof_destinations - 1 loop
+        proc_mem_mm_bus_wr(DI * 2 + 1, to_uint(c_sdp_cep_eth_dst_mac(47 downto 32)), mm_clk, reg_destinations_cipo, reg_destinations_copi);
+        proc_mem_mm_bus_wr(DI * 2, to_sint(c_sdp_cep_eth_dst_mac(31 downto 0)), mm_clk, reg_destinations_cipo, reg_destinations_copi);
+      end loop;
+      v_offset := c_sdp_bdo_mm_nof_destinations_max * 2;
+      for DI in 0 to c_nof_destinations - 1 loop
+        proc_mem_mm_bus_wr(v_offset + DI, to_sint(c_sdp_cep_ip_dst_addr), mm_clk, reg_destinations_cipo, reg_destinations_copi);
+      end loop;
+      v_offset := c_sdp_bdo_mm_nof_destinations_max * 3;
+      for DI in 0 to c_nof_destinations - 1 loop
+        proc_mem_mm_bus_wr(v_offset + DI, to_uint(c_sdp_cep_udp_dst_port), mm_clk, reg_destinations_cipo, reg_destinations_copi);
+      end loop;
+    end if;
 
     ----------------------------------------------------------------------------
-    -- BDO header src and single destination fields in dp_offload_tx_v3
+    -- BDO header src fields in dp_offload_tx_v3
     ----------------------------------------------------------------------------
-    -- . Use sim default dst and src MAC, IP, UDP port from sdp_pkg.vhd and based on c_gn_id
+    -- . Use sim default dst and src MAC/IP/UDP port from sdp_pkg.vhd and based
+    --   on c_gn_id
     -- . use signed to fit 32 b in integer
     proc_mem_mm_bus_wr(39, to_uint(c_cep_eth_src_mac(47 downto 32)), mm_clk, hdr_dat_cipo, hdr_dat_copi);
     proc_mem_mm_bus_wr(38, to_sint(c_cep_eth_src_mac(31 downto 0)), mm_clk, hdr_dat_cipo, hdr_dat_copi);
     proc_mem_mm_bus_wr(26, to_sint(c_cep_ip_src_addr), mm_clk, hdr_dat_cipo, hdr_dat_copi);
     proc_mem_mm_bus_wr(24, to_uint(c_cep_udp_src_port), mm_clk, hdr_dat_cipo, hdr_dat_copi);
-    proc_mem_mm_bus_wr(41, to_uint(c_sdp_cep_eth_dst_mac(47 downto 32)), mm_clk, hdr_dat_cipo, hdr_dat_copi);
-    proc_mem_mm_bus_wr(40, to_sint(c_sdp_cep_eth_dst_mac(31 downto 0)), mm_clk, hdr_dat_cipo, hdr_dat_copi);
-    proc_mem_mm_bus_wr(25, to_sint(c_sdp_cep_ip_dst_addr), mm_clk, hdr_dat_cipo, hdr_dat_copi);
-    proc_mem_mm_bus_wr(23, to_uint(c_sdp_cep_udp_dst_port), mm_clk, hdr_dat_cipo, hdr_dat_copi);
 
     ----------------------------------------------------------------------------
     -- Enable beamlet output (dp_xonoff)
diff --git a/applications/lofar2/libraries/sdp/tb/vhdl/tb_tb_sdp_beamformer_output.vhd b/applications/lofar2/libraries/sdp/tb/vhdl/tb_tb_sdp_beamformer_output.vhd
index 7adf4c692ece6900d38921cb929a9406d43ae611..4c14f757cd46b175f0c9030b8f3657c041199f0b 100644
--- a/applications/lofar2/libraries/sdp/tb/vhdl/tb_tb_sdp_beamformer_output.vhd
+++ b/applications/lofar2/libraries/sdp/tb/vhdl/tb_tb_sdp_beamformer_output.vhd
@@ -48,15 +48,15 @@ begin
 
   -- Multiple BDO destinations
   -- . prime number combination
-  u_multi_3_7      : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true,  3,  7);
+  u_multi_7_3      : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true,  7,  3);
   -- . use 1 destnation, when more are available
-  u_multi_1_16     : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true,  1, 16);
+  u_multi_16_1     : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true, 16,  1);
   -- . use all destinations that are available
   u_multi_16_16    : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true, 16, 16);
   -- . use prime number of destination from maximum available
-  u_multi_7_32     : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true,  7, 32);
+  u_multi_32_7     : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true, 32,  7);
   -- . use unfeasible number of destination, to check that it becomes 1 less
   u_multi_32_32    : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true, 32, 32);
   -- . use maximum number of destinations
-  u_multi_31_32    : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true, 31, 32);
+  u_multi_32_31    : entity work.tb_sdp_beamformer_output generic map( 50, 0,  true, 32, 31);
 end tb;