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 fb4ca683fe4550871052b1aabbfd67e897934b16..cc31233b1f0dc00b10fe725ce73c66f8b9062e32 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 @@ -40,30 +40,35 @@ USE tech_tse_lib.tb_tech_tse_pkg.ALL; ENTITY node_apertif_unb1_correlator_output IS GENERIC ( - g_nof_visibilities : NATURAL; - g_cor_out_dat_w : NATURAL + g_nof_visibilities : NATURAL; + g_cor_out_dat_w : NATURAL ); PORT ( - mm_rst : IN STD_LOGIC; - mm_clk : IN STD_LOGIC; - dp_rst : IN STD_LOGIC; - dp_clk : IN STD_LOGIC; - - snk_in : IN t_dp_sosi; - - src_out : OUT t_dp_sosi; - src_in : IN t_dp_siso; + mm_rst : IN STD_LOGIC; + mm_clk : IN STD_LOGIC; + dp_rst : IN STD_LOGIC; + dp_clk : IN STD_LOGIC; + + snk_in : IN t_dp_sosi; + + src_out : OUT t_dp_sosi; + src_in : IN t_dp_siso; reg_dp_offload_tx_hdr_dat_mosi : IN t_mem_mosi; - reg_dp_offload_tx_hdr_dat_miso : OUT t_mem_miso; - + reg_dp_offload_tx_hdr_dat_miso : OUT t_mem_miso; + + reg_dp_xonoff_output_mosi : IN t_mem_mosi; + reg_dp_xonoff_output_miso : OUT t_mem_miso; + ID : IN STD_LOGIC_VECTOR(c_unb1_board_aux.id_w-1 DOWNTO 0) ); END node_apertif_unb1_correlator_output; ARCHITECTURE str OF node_apertif_unb1_correlator_output IS - -- 1GbE Visibility Offload + -- 1GbE Visibility Offload + SIGNAL dp_xonoff_snk_in_arr : t_dp_sosi_arr(1-1 DOWNTO 0); + SIGNAL dp_xonoff_src_out_arr : t_dp_sosi_arr(1-1 DOWNTO 0); SIGNAL dp_fifo_sc_snk_in : t_dp_sosi; SIGNAL dp_repack_data_snk_in : t_dp_sosi; SIGNAL dp_repack_data_snk_out : t_dp_siso; @@ -73,6 +78,34 @@ ARCHITECTURE str OF node_apertif_unb1_correlator_output IS SIGNAL dp_offload_tx_src_in_arr : t_dp_siso_arr(1-1 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 => '0' + ) + 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 @@ -91,7 +124,7 @@ BEGIN rst => dp_rst, clk => dp_clk, - snk_in => snk_in, + snk_in => dp_xonoff_src_out_arr(0), src_in => dp_repack_data_snk_out, src_out => dp_repack_data_snk_in