From 9f7b0b42a786b00c5775a57f8af8648dfa7f1b9c Mon Sep 17 00:00:00 2001 From: Erik Kooistra <kooistra@astron.nl> Date: Fri, 15 Jun 2018 11:20:25 +0000 Subject: [PATCH] Moved mms_dp_xonoff to src_out output, so that input and DB can always remain on. --- .../node_apertif_unb1_correlator_output.vhd | 78 ++++++++++--------- 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/node_apertif_unb1_correlator_output.vhd b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/node_apertif_unb1_correlator_output.vhd index 54bc0e691e..16d068a68d 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/node_apertif_unb1_correlator_output.vhd +++ b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/node_apertif_unb1_correlator_output.vhd @@ -77,14 +77,16 @@ END node_apertif_unb1_correlator_output; ARCHITECTURE str OF node_apertif_unb1_correlator_output IS -- 1GbE Visibility Offload - SIGNAL dp_xonoff_snk_in_arr : t_dp_sosi_arr(0 DOWNTO 0); - SIGNAL dp_xonoff_src_out_arr : t_dp_sosi_arr(0 DOWNTO 0); SIGNAL dp_repack_data_snk_in : t_dp_sosi; SIGNAL dp_repack_data_snk_out : t_dp_siso; SIGNAL apertif_unb1_correlator_vis_offload_snk_in : t_dp_sosi; SIGNAL apertif_unb1_correlator_vis_offload_snk_out : t_dp_siso; + SIGNAL dp_xonoff_snk_out_arr : t_dp_siso_arr(0 DOWNTO 0); + SIGNAL dp_xonoff_snk_in_arr : t_dp_sosi_arr(0 DOWNTO 0); SIGNAL dp_offload_tx_src_out_arr : t_dp_sosi_arr(0 DOWNTO 0); SIGNAL dp_offload_tx_src_in_arr : t_dp_siso_arr(0 DOWNTO 0); + SIGNAL src_in_arr : t_dp_siso_arr(0 DOWNTO 0); + SIGNAL src_out_arr : t_dp_sosi_arr(0 DOWNTO 0); -- Output DB CONSTANT c_vis_header_size : NATURAL := 21; -- (pad(2) + eth(14) + ip(20) + udp(8) + app_id(16) + app_flags(24)) / 4 = 84 bytes / 4 = 21 words @@ -96,42 +98,13 @@ ARCHITECTURE str OF node_apertif_unb1_correlator_output IS CONSTANT c_db_nof_data_sim : NATURAL := c_vis_nof_data_per_sync; -- in sim at least one sync interval CONSTANT c_db_nof_data : NATURAL := sel_a_b(g_sim, c_db_nof_data_sim, c_db_nof_data_hw); - SIGNAL src_out_arr : t_dp_sosi_arr(0 DOWNTO 0); SIGNAL db_sosi_arr : t_dp_sosi_arr(0 DOWNTO 0); SIGNAL db_data : STD_LOGIC_VECTOR(c_32-1 DOWNTO 0); SIGNAL db_data_se : STD_LOGIC_VECTOR(c_32-1 DOWNTO 0); -- swap endian (to account for p_connect in apertif_unb1_correlator_vis_offload) SIGNAL db_index_arr : t_natural_arr(2 DOWNTO 0); BEGIN - - dp_xonoff_snk_in_arr(0) <= snk_in; - ----------------------------------------------------------------------------- - -- DP Xon Off. --> output to the datawriter can be switched on or off. - ----------------------------------------------------------------------------- - u_mms_dp_xonoff : ENTITY dp_lib.mms_dp_xonoff - GENERIC MAP( - g_nof_streams => 1, - g_combine_streams => TRUE, - g_bypass => FALSE, - g_default_value => sel_a_b(g_sim, '1', '0') -- Sim: on by default like block gens - ) - PORT MAP( - mm_rst => mm_rst, - mm_clk => mm_clk, - - reg_mosi => reg_dp_xonoff_output_mosi, - reg_miso => reg_dp_xonoff_output_miso, - - dp_rst => dp_rst, - dp_clk => dp_clk, - - snk_out_arr => OPEN, - snk_in_arr => dp_xonoff_snk_in_arr, - - src_in_arr => (OTHERS => c_dp_siso_rdy), - src_out_arr => dp_xonoff_src_out_arr - ); - + ----------------------------------------------------------------------------- -- 64b -> 32b ----------------------------------------------------------------------------- @@ -149,7 +122,7 @@ BEGIN rst => dp_rst, clk => dp_clk, - snk_in => dp_xonoff_src_out_arr(0), + snk_in => snk_in, src_in => dp_repack_data_snk_out, src_out => dp_repack_data_snk_in @@ -193,14 +166,12 @@ BEGIN snk_in => apertif_unb1_correlator_vis_offload_snk_in, snk_out => apertif_unb1_correlator_vis_offload_snk_out, - src_out => src_out_arr(0), - src_in => src_in, + src_out => dp_xonoff_snk_in_arr(0), + src_in => dp_xonoff_snk_out_arr(0), -- ready flow control from src_in, xon = '1' thanks to mms_dp_xonoff ID => ID ); - src_out <= src_out_arr(0); - ----------------------------------------------------------------------------- -- Data buffer to monitor visibility packets offload ----------------------------------------------------------------------------- @@ -219,7 +190,7 @@ BEGIN clk => dp_clk, rst => dp_rst, - snk_in => src_out_arr(0), + snk_in => dp_xonoff_snk_in_arr(0), src_out => db_sosi_arr(0), src_index_arr => db_index_arr -- [2] = sync index, [1] sop index, [0] valid index ); @@ -253,4 +224,35 @@ BEGIN db_data <= db_sosi_arr(0).data(c_32-1 DOWNTO 0); -- for easier view in Wave window db_data_se <= ntoh(db_data); -- swap endian for easier view in Wave window + ----------------------------------------------------------------------------- + -- DP Xon Off. --> output to the datawriter can be switched on or off. + ----------------------------------------------------------------------------- + + u_mms_dp_xonoff : ENTITY dp_lib.mms_dp_xonoff + GENERIC MAP( + g_nof_streams => 1, + g_combine_streams => TRUE, + g_bypass => FALSE, + g_default_value => sel_a_b(g_sim, '1', '0') -- Sim: on by default like block gens + ) + PORT MAP( + mm_rst => mm_rst, + mm_clk => mm_clk, + + reg_mosi => reg_dp_xonoff_output_mosi, + reg_miso => reg_dp_xonoff_output_miso, + + dp_rst => dp_rst, + dp_clk => dp_clk, + + snk_out_arr => dp_xonoff_snk_out_arr, + snk_in_arr => dp_xonoff_snk_in_arr, + + src_in_arr => src_in_arr, + src_out_arr => src_out_arr + ); + + src_out <= src_out_arr(0); + src_in_arr(0) <= src_in; + END str; -- GitLab