diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_statistics_offload.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_statistics_offload.vhd index 56f91879bf03794f81ad23870ae24cf2e45d1b9b..97525368d3a9f5ebcbc7d0e6964475adf3073ec2 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_statistics_offload.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_statistics_offload.vhd @@ -48,7 +48,8 @@ ENTITY sdp_statistics_offload IS g_offload_time : NATURAL := c_sdp_offload_time; g_beamset_id : NATURAL := 0; g_P_sq : NATURAL := c_sdp_P_sq; -- use generic to support P_sq = 1 for one node and P_sq = c_sdp_P_sq for multiple nodes (with ring) - g_crosslets_direction : NATURAL := 1 -- > 0 for crosslet transport in positive direction (incrementing RN), else 0 for negative direction + g_crosslets_direction : NATURAL := 1; -- > 0 for crosslet transport in positive direction (incrementing RN), else 0 for negative direction + g_reverse_word_order : BOOLEAN := TRUE -- default word order is MSB after LSB, we need to stream LSB after MSB. ); PORT ( -- Clocks and reset @@ -388,7 +389,7 @@ BEGIN g_data_size => c_mm_data_size, g_step_size => c_mm_step_size, g_nof_data => c_mm_nof_data, - g_reverse_word_order => TRUE -- default word order is MSB after LSB, we need to stream LSB after MSB. + g_reverse_word_order => g_reverse_word_order ) PORT MAP( dp_rst => dp_rst, diff --git a/applications/lofar2/libraries/sdp/tb/vhdl/tb_tb_sdp_statistics_offload.vhd b/applications/lofar2/libraries/sdp/tb/vhdl/tb_tb_sdp_statistics_offload.vhd index db3baf5a19b8352c9da6e203b68ddc8cdb0ad2e4..a688d26acd7d88aba8f60ca51f3409710bf0c36e 100644 --- a/applications/lofar2/libraries/sdp/tb/vhdl/tb_tb_sdp_statistics_offload.vhd +++ b/applications/lofar2/libraries/sdp/tb/vhdl/tb_tb_sdp_statistics_offload.vhd @@ -40,6 +40,7 @@ BEGIN -- -- All -- g_statistics_type : STRING := "SST"; -- g_offload_time : NATURAL := 500; +-- g_reverse_word_order : BOOLEAN := TRUE -- when TRUE then stream LSB word after MSB word. -- g_gn_index : NATURAL := 1; -- global node (GN) index, use > 0 to see effect of g_offload_time -- -- BST -- g_beamset_id : NATURAL := 0; @@ -50,14 +51,17 @@ BEGIN -- g_nof_crosslets : NATURAL := 1; -- g_crosslets_direction : INTEGER := 1; -- +1 or -1 - u_sst : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("SST", 50, 3, 0, 0); - u_bst_0 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("BST", 50, 1, 0, 0); - u_bst_1 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("BST", 50, 1, 1, 0); - u_xst_P1 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, 1, 0, 0, 16, 1, 1, 1); - u_xst_P1_N3 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, 1, 0, 0, 16, 1, 3, 1); - u_xst_P9 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, 1, 0, 0, 16, 9, 1, 1); - u_xst_P9_N3 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, 1, 0, 0, 16, 9, 3, 1); - u_xst_P9_N3_neg : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, 1, 0, 0, 16, 9, 3, 0); - u_xst_P8_N7_RN1_15 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, 1, 0, 1, 15, 8, 7, 0); + u_sst : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("SST", 50, TRUE, 3, 0, 0); + u_sst_no_reverse : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("SST", 50, FALSE, 3, 0, 0); + u_bst_0 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("BST", 50, TRUE, 1, 0, 0); + u_bst_0_no_reverse : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("BST", 50, FALSE, 1, 0, 0); + u_bst_1 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("BST", 50, TRUE, 1, 1, 0); + u_xst_P1 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, TRUE, 1, 0, 0, 16, 1, 1, 1); + u_xst_P1_N3 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, TRUE, 1, 0, 0, 16, 1, 3, 1); + u_xst_P9 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, TRUE, 1, 0, 0, 16, 9, 1, 1); + u_xst_P9_N3 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, TRUE, 1, 0, 0, 16, 9, 3, 1); + u_xst_P9_N3_no_reverse : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, FALSE, 1, 0, 0, 16, 9, 3, 1); + u_xst_P9_N3_neg : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, TRUE, 1, 0, 0, 16, 9, 3, 0); + u_xst_P8_N7_RN1_15 : ENTITY work.tb_sdp_statistics_offload GENERIC MAP("XST", 50, TRUE, 1, 0, 1, 15, 8, 7, 0); END tb;