Skip to content
Snippets Groups Projects
Commit b986ce34 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Merge branch 'L2SDP-627' into 'master'

Resolve L2SDP-627

Closes L2SDP-627

See merge request desp/hdl!204
parents 4ec79148 670631d2
No related branches found
No related tags found
1 merge request!204Resolve L2SDP-627
Pipeline #25483 passed
......@@ -89,9 +89,19 @@ END node_sdp_correlator;
ARCHITECTURE str OF node_sdp_correlator IS
CONSTANT c_nof_controllers : POSITIVE := 2;
CONSTANT c_block_size : NATURAL := c_sdp_N_crosslets_max * c_sdp_S_pn;
CONSTANT c_data_w : NATURAL := c_sdp_W_crosslet * c_nof_complex;
CONSTANT c_nof_controllers : POSITIVE := 2;
CONSTANT c_block_size : NATURAL := c_sdp_N_crosslets_max * c_sdp_S_pn;
CONSTANT c_block_size_longwords : NATURAL := ceil_div(c_block_size, 2); -- 32b -> 64b
CONSTANT c_data_w : NATURAL := c_sdp_W_crosslet * c_nof_complex;
-- The size for 1 block is probably already enough as the number of blocks received
-- on the remote input of the mux probably have enough gap time in between. Just
-- to be sure to not run into issues in the future, the fifo size is increased to
-- buffer the maximum nof blocks per block period.
CONSTANT c_mux_fifo_size : NATURAL := 2**ceil_log2(g_P_sq * c_block_size_longwords);
-- c_fifo_fill_size should be at least 2 * c_block_size_longwords as dp_repack_data
-- repacks from 64bit to 32bit. Chosing 3x to have some room.
CONSTANT c_fifo_fill_size : NATURAL := 2**ceil_log2(3 * c_block_size_longwords);
-- crosslet statistics offload
SIGNAL ram_st_offload_copi : t_mem_copi := c_mem_copi_rst;
......@@ -110,6 +120,8 @@ ARCHITECTURE str OF node_sdp_correlator IS
SIGNAL ring_mux_sosi : t_dp_sosi := c_dp_sosi_rst;
SIGNAL ring_mux_siso : t_dp_siso := c_dp_siso_rdy;
SIGNAL dp_fifo_fill_sosi : t_dp_sosi := c_dp_sosi_rst;
SIGNAL dp_fifo_fill_siso : t_dp_siso := c_dp_siso_rdy;
SIGNAL rx_sosi : t_dp_sosi := c_dp_sosi_rst;
SIGNAL dispatch_invert_sosi_arr : t_dp_sosi_arr(0 TO g_P_sq-1) := (OTHERS => c_dp_sosi_rst);
SIGNAL dispatch_sosi_arr : t_dp_sosi_arr(g_P_sq-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
......@@ -215,7 +227,7 @@ BEGIN
g_data_w => c_longword_w,
g_channel_w => c_word_w,
g_use_error => FALSE,
g_fifo_size => array_init(c_block_size, 2)
g_fifo_size => array_init(c_mux_fifo_size, 2)
)
PORT MAP (
dp_clk => dp_clk,
......@@ -229,6 +241,35 @@ BEGIN
to_ri_sosi <= ring_mux_sosi;
-- fill fifo to remove gaps
u_dp_fifo_fill_eop : ENTITY dp_lib.dp_fifo_fill_eop
GENERIC MAP (
g_data_w => c_longword_w,
g_bsn_w => c_dp_stream_bsn_w,
g_empty_w => c_dp_stream_empty_w,
g_channel_w => c_dp_stream_channel_w,
g_error_w => c_dp_stream_error_w,
g_use_bsn => TRUE,
g_use_empty => TRUE,
g_use_channel => TRUE,
g_use_error => TRUE,
g_use_sync => TRUE,
g_fifo_fill => c_block_size_longwords,
g_fifo_size => c_fifo_fill_size
)
PORT MAP (
wr_rst => dp_rst,
wr_clk => dp_clk,
rd_rst => dp_rst,
rd_clk => dp_clk,
snk_out => ring_mux_siso,
snk_in => ring_mux_sosi,
src_in => dp_fifo_fill_siso,
src_out => dp_fifo_fill_sosi
);
---------------------------------------------------------------
-- Repack 64b to 32b
---------------------------------------------------------------
......@@ -244,8 +285,8 @@ BEGIN
rst => dp_rst,
clk => dp_clk,
snk_in => ring_mux_sosi,
snk_out => ring_mux_siso,
snk_in => dp_fifo_fill_sosi,
snk_out => dp_fifo_fill_siso,
src_out => rx_sosi
);
......@@ -266,7 +307,9 @@ BEGIN
snk_in => rx_sosi,
src_out_arr => dispatch_invert_sosi_arr
);
dispatch_sosi_arr <= func_dp_stream_arr_reverse_range(dispatch_invert_sosi_arr);
---------------------------------------------------------------
-- dp_bsn_aligner_v2
......
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