Skip to content
Snippets Groups Projects
Commit aeafe463 authored by Daniel van der Schuur's avatar Daniel van der Schuur
Browse files

-Added dp_block_gen to force packet boundaries of WPFB input blocks

 to 128 words.
parent 31ccaa39
No related branches found
No related tags found
No related merge requests found
...@@ -314,6 +314,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS ...@@ -314,6 +314,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS
-- De and Reinterleaver -- De and Reinterleaver
SIGNAL dp_deinterleave_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0); SIGNAL dp_deinterleave_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0);
SIGNAL dp_pipeline_snk_in : t_dp_sosi; SIGNAL dp_pipeline_snk_in : t_dp_sosi;
SIGNAL dp_pipeline_src_out : t_dp_sosi;
SIGNAL interleaved_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0); SIGNAL interleaved_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0);
SIGNAL deinterleaved_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0); SIGNAL deinterleaved_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0);
SIGNAL reinterleave_in_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0); SIGNAL reinterleave_in_arr : t_dp_sosi_arr(c_nof_inputs-1 DOWNTO 0);
...@@ -321,6 +322,9 @@ ARCHITECTURE str OF apertif_unb1_correlator IS ...@@ -321,6 +322,9 @@ ARCHITECTURE str OF apertif_unb1_correlator IS
--Data buffers --Data buffers
SIGNAL diag_data_buf_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0); SIGNAL diag_data_buf_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_streams*c_nof_bf_modules-1 DOWNTO 0);
-- dp_block_gen
SIGNAL dp_block_gen_snk_in_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0);
-- Filterbank and Correlator -- Filterbank and Correlator
SIGNAL wpfb_snk_in_ctrl : t_dp_sosi; SIGNAL wpfb_snk_in_ctrl : t_dp_sosi;
...@@ -346,10 +350,6 @@ ARCHITECTURE str OF apertif_unb1_correlator IS ...@@ -346,10 +350,6 @@ ARCHITECTURE str OF apertif_unb1_correlator IS
SIGNAL mesh_rx_src_in_2arr : t_unb1_board_mesh_siso_2arr; SIGNAL mesh_rx_src_in_2arr : t_unb1_board_mesh_siso_2arr;
SIGNAL mesh_rx_src_out_2arr : t_unb1_board_mesh_sosi_2arr; SIGNAL mesh_rx_src_out_2arr : t_unb1_board_mesh_sosi_2arr;
-- dp_block_gen
SIGNAL dp_block_gen_snk_in_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0);
SIGNAL dp_block_gen_src_out_arr : t_dp_sosi_arr(c_nof_input_streams-1 DOWNTO 0);
BEGIN BEGIN
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
...@@ -771,19 +771,18 @@ BEGIN ...@@ -771,19 +771,18 @@ BEGIN
PORT MAP ( PORT MAP (
rst => dp_rst, rst => dp_rst,
clk => dp_clk, clk => dp_clk,
-- ST sink
snk_in => dp_pipeline_snk_in, --interleaved_arr(0), snk_in => dp_pipeline_snk_in,
-- ST source src_out => dp_pipeline_src_out
src_out => wpfb_snk_in_ctrl
); );
p_add_st_ctrl : PROCESS(reinterleave_out_arr, wpfb_snk_in_ctrl) p_add_st_ctrl : PROCESS(reinterleave_out_arr, dp_pipeline_src_out)
BEGIN BEGIN
FOR i IN 0 TO c_nof_input_streams-1 LOOP FOR i IN 0 TO c_nof_input_streams-1 LOOP
wpfb_snk_in_arr(i) <= wpfb_snk_in_ctrl; -- SOSI ctrl dp_block_gen_snk_in_arr(i) <= dp_pipeline_src_out; -- SOSI ctrl
wpfb_snk_in_arr(i).data <= reinterleave_out_arr(i).data; dp_block_gen_snk_in_arr(i).data <= reinterleave_out_arr(i).data;
wpfb_snk_in_arr(i).im <= reinterleave_out_arr(i).im; dp_block_gen_snk_in_arr(i).im <= reinterleave_out_arr(i).im;
wpfb_snk_in_arr(i).re <= reinterleave_out_arr(i).re; dp_block_gen_snk_in_arr(i).re <= reinterleave_out_arr(i).re;
END LOOP; END LOOP;
END PROCESS; END PROCESS;
...@@ -903,6 +902,25 @@ BEGIN ...@@ -903,6 +902,25 @@ BEGIN
); );
END GENERATE; -- g_use_dumb_mesh_terminals END GENERATE; -- g_use_dumb_mesh_terminals
-----------------------------------------------------------------------------
-- Re-assign SOP and EOP
-- . WPFB required blocks of 128 words (2*64, interleaved)
-----------------------------------------------------------------------------
gen_dp_block_gen : FOR i IN 0 TO c_nof_input_streams-1 GENERATE
u_dp_block_gen : ENTITY dp_lib.dp_block_gen
GENERIC MAP(
g_use_src_in => FALSE,
g_nof_data => 128
)
PORT MAP(
rst => dp_rst,
clk => dp_clk,
snk_in => dp_block_gen_snk_in_arr(i),
src_out => wpfb_snk_in_arr(i)
);
END GENERATE;
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- WPFB -- WPFB
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
...@@ -935,7 +953,7 @@ BEGIN ...@@ -935,7 +953,7 @@ BEGIN
-- Workaround for simulation: the first WPFB output block is not usable! --FIXME -- Workaround for simulation: the first WPFB output block is not usable! --FIXME
-- Forward only blocks with BSN 5+ -- Forward only blocks with BSN 5+
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
p_bsn_filter : PROCESS(wpfb_snk_in_arr) p_bsn_filter : PROCESS(wpfb_src_out_arr)
BEGIN BEGIN
correlator_snk_in_arr <= (OTHERS=>c_dp_sosi_rst); correlator_snk_in_arr <= (OTHERS=>c_dp_sosi_rst);
IF TO_UINT(wpfb_src_out_arr(0).bsn)>=5 THEN IF TO_UINT(wpfb_src_out_arr(0).bsn)>=5 THEN
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment