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

Correct rx_beamlet_valid, rx_beamlet_cnt.

parent 77ec4308
No related branches found
No related tags found
1 merge request!311Correct beamlet output indexing in tr_10GbE_src_out.data. Verify exact beamlet...
Pipeline #44817 passed
......@@ -400,7 +400,9 @@ BEGIN
-- Read 3 packets to make sure we get 1 from each beamset. It can happen that two packets
-- (but not three) from the same beamset are received back to back.
FOR packet IN 0 TO 2 LOOP
FOR packet IN 0 TO 8 LOOP
rx_beamlet_valid <= '0';
-- Get beamlet_index from packet header
proc_common_wait_until_high(ext_clk, tr_10GbE_src_out.sop);
FOR I IN 0 TO 8 LOOP -- Packet header is 9.25 words wide, which can be discarded
......@@ -409,6 +411,7 @@ BEGIN
rx_beamlet_index_offset <= v_beamlet_index_offset;
END IF;
proc_common_wait_until_high(ext_clk, tr_10GbE_src_out.valid);
proc_common_wait_some_cycles(ext_clk, 1);
END LOOP;
-- Get all c_sdp_cep_nof_blocks_per_packet = 4 blocks from the packet
......@@ -429,6 +432,7 @@ BEGIN
beamlet_arr2_im(v_beamlet_index_offset + 2) <= tr_10GbE_src_out.data(15 DOWNTO 8);
beamlet_arr2_re(v_beamlet_index_offset + 2) <= tr_10GbE_src_out.data(7 DOWNTO 0);
proc_common_wait_until_high(ext_clk, tr_10GbE_src_out.valid);
proc_common_wait_some_cycles(ext_clk, 1);
rx_beamlet_cnt <= rx_beamlet_cnt + 1;
rx_beamlet_sop <= '0';
-- . get beamlets during block, there are 4 complex beamlets per 64b word
......@@ -442,14 +446,13 @@ BEGIN
beamlet_arr2_im(v_beamlet_index_offset + I*4 +2) <= tr_10GbE_src_out.data(15 DOWNTO 8);
beamlet_arr2_re(v_beamlet_index_offset + I*4 +2) <= tr_10GbE_src_out.data(7 DOWNTO 0);
proc_common_wait_until_high(ext_clk, tr_10GbE_src_out.valid);
proc_common_wait_some_cycles(ext_clk, 1);
rx_beamlet_cnt <= rx_beamlet_cnt + 1;
END LOOP;
-- . get last beamlet of block
beamlet_arr2_im(v_beamlet_index_offset + c_sdp_N_pol_bf * c_sdp_cep_nof_beamlets_per_block-1) <= tr_10GbE_src_out.data(63 DOWNTO 56);
beamlet_arr2_re(v_beamlet_index_offset + c_sdp_N_pol_bf * c_sdp_cep_nof_beamlets_per_block-1) <= tr_10GbE_src_out.data(55 DOWNTO 48);
proc_common_wait_some_cycles(ext_clk, 1);
rx_beamlet_valid <= '0';
-- Loop for next block.
-- Loop for next block in packet
END LOOP;
-- Loop and wait for next packet.
......
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