Skip to content
Snippets Groups Projects
Commit 07891eb4 authored by Reinier van der Walle's avatar Reinier van der Walle
Browse files

changes after debugging on hardware

parent abce9a62
No related branches found
No related tags found
1 merge request!152Resolve L2SDP-423
...@@ -220,7 +220,7 @@ BEGIN ...@@ -220,7 +220,7 @@ BEGIN
-- Enable xsub -- Enable xsub
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
mmf_mm_bus_wr(c_mm_file_reg_bsn_sync_scheduler_xsub, 1, c_ctrl_interval_size, tb_clk); -- Interval size mmf_mm_bus_wr(c_mm_file_reg_bsn_sync_scheduler_xsub, 1, c_ctrl_interval_size, tb_clk); -- Interval size
mmf_mm_bus_wr(c_mm_file_reg_bsn_sync_scheduler_xsub, 2, 1, tb_clk); -- first write low then high part mmf_mm_bus_wr(c_mm_file_reg_bsn_sync_scheduler_xsub, 2, c_nof_block_per_sync, tb_clk); -- first write low then high part
mmf_mm_bus_wr(c_mm_file_reg_bsn_sync_scheduler_xsub, 3, 0, tb_clk); -- assume v_bsn < 2**31-1 mmf_mm_bus_wr(c_mm_file_reg_bsn_sync_scheduler_xsub, 3, 0, tb_clk); -- assume v_bsn < 2**31-1
mmf_mm_bus_wr(c_mm_file_reg_bsn_sync_scheduler_xsub, 0, 1, tb_clk); -- enable mmf_mm_bus_wr(c_mm_file_reg_bsn_sync_scheduler_xsub, 0, 1, tb_clk); -- enable
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
......
...@@ -243,7 +243,7 @@ BEGIN ...@@ -243,7 +243,7 @@ BEGIN
--------------------------------------------------------------- ---------------------------------------------------------------
-- REG_NOF_CROSSLETS -- REG_NOF_CROSSLETS
--------------------------------------------------------------- ---------------------------------------------------------------
u_crosslets_info : ENTITY common_lib.mms_common_reg u_nof_crosslets : ENTITY common_lib.mms_common_reg
GENERIC MAP( GENERIC MAP(
g_mm_reg => c_sdp_mm_reg_nof_crosslets g_mm_reg => c_sdp_mm_reg_nof_crosslets
) )
...@@ -261,8 +261,10 @@ BEGIN ...@@ -261,8 +261,10 @@ BEGIN
in_reg => nof_crosslets, in_reg => nof_crosslets,
out_reg => nof_crosslets_reg out_reg => nof_crosslets_reg
); );
-- Force nof crosslets to max nof crosslets if a higher value is written via MM. -- Force nof crosslets to max nof crosslets if a higher value is written or to 1 if a lower value is written via MM.
nof_crosslets <= nof_crosslets_reg WHEN TO_UINT(nof_crosslets_reg) <= c_sdp_N_crosslets_max ELSE TO_UVEC(c_sdp_N_crosslets_max, c_sdp_nof_crosslets_reg_w); nof_crosslets <= TO_UVEC(1, c_sdp_nof_crosslets_reg_w) WHEN TO_UINT(nof_crosslets_reg) < 1 ELSE
nof_crosslets_reg WHEN TO_UINT(nof_crosslets_reg) <= c_sdp_N_crosslets_max ELSE
TO_UVEC(c_sdp_N_crosslets_max, c_sdp_nof_crosslets_reg_w);
--------------------------------------------------------------- ---------------------------------------------------------------
-- XST UDP offload -- XST UDP offload
......
...@@ -332,7 +332,7 @@ PACKAGE sdp_pkg is ...@@ -332,7 +332,7 @@ PACKAGE sdp_pkg is
adr_w => 1, adr_w => 1,
dat_w => ceil_log2(c_sdp_N_crosslets_max+1), dat_w => ceil_log2(c_sdp_N_crosslets_max+1),
nof_dat => 1, nof_dat => 1,
init_sl => '1'); -- Default = 1 init_sl => '0'); -- Default = 1
CONSTANT c_sdp_nof_crosslets_reg_w : NATURAL := c_sdp_mm_reg_nof_crosslets.nof_dat*c_sdp_mm_reg_nof_crosslets.dat_w; CONSTANT c_sdp_nof_crosslets_reg_w : NATURAL := c_sdp_mm_reg_nof_crosslets.nof_dat*c_sdp_mm_reg_nof_crosslets.dat_w;
CONSTANT c_sdp_xst_nof_clk_per_sync_min : NATURAL := (c_sdp_f_adc_MHz *10**6) / 10; -- 0.1 second CONSTANT c_sdp_xst_nof_clk_per_sync_min : NATURAL := (c_sdp_f_adc_MHz *10**6) / 10; -- 0.1 second
......
...@@ -244,12 +244,11 @@ BEGIN ...@@ -244,12 +244,11 @@ BEGIN
v.start_pulse := '1'; v.start_pulse := '1';
v.start_address := 0; v.start_address := 0;
v.block_count := 0; v.block_count := 0;
IF g_statistics_type = "XST" AND TO_UINT(nof_crosslets) = 1 THEN
v.block_count := c_sdp_N_crosslets_max; -- Instead of setting v.block_count to 0 we need to set it to N_crosslets_max = 7 to prevent another block to stream out.
END IF;
v.crosslet_count := 0; v.crosslet_count := 0;
v.nof_crosslets := TO_UINT(nof_crosslets); -- register nof_crosslets to make sure it does not change during packet output. v.nof_crosslets := TO_UINT(nof_crosslets); -- register nof_crosslets to make sure it does not change during packet output.
-- Disable output by setting block_count to c_nof_packets-1 when the nof_crosslets is set to 0.
IF g_statistics_type = "XST" AND TO_UINT(nof_crosslets) = 0 THEN
v.block_count := c_nof_packets-1;
END IF;
ELSIF done = '1' THEN ELSIF done = '1' THEN
-- Use done to start next packets -- Use done to start next packets
IF r.block_count < c_nof_packets-1 THEN IF r.block_count < c_nof_packets-1 THEN
...@@ -260,27 +259,26 @@ BEGIN ...@@ -260,27 +259,26 @@ BEGIN
END IF; END IF;
v.start_pulse := '1'; v.start_pulse := '1';
v.block_count := r.block_count + 1; v.block_count := r.block_count + 1;
ELSE
-- Prepare for next trigger interval.
v.start_address := 0;
v.block_count := 0;
END IF;
IF g_statistics_type = "XST" THEN IF g_statistics_type = "XST" THEN
IF r.crosslet_count < r.nof_crosslets-1 THEN IF r.crosslet_count < r.nof_crosslets-1 THEN
v.crosslet_count := r.crosslet_count + 1; v.crosslet_count := r.crosslet_count + 1;
ELSE ELSE
v.crosslet_count := 0; v.crosslet_count := 0;
IF r.block_count < c_nof_packets-1 THEN -- skip block indices for unused XST blocks v.block_count := r.block_count + 1 + c_sdp_N_crosslets_max - r.nof_crosslets; -- skip block indices for unused XST blocks.
v.block_count := r.block_count + 1 + c_sdp_N_crosslets_max - r.nof_crosslets;
END IF;
END IF; END IF;
END IF; END IF;
ELSE
-- Prepare for next trigger interval.
v.start_address := 0;
v.block_count := 0;
v.crosslet_count := 0;
END IF;
END IF; END IF;
-- Release header info per packet offload
IF trigger = '1' OR done = '1' THEN IF trigger = '1' OR done = '1' THEN
-- Release header info per packet offload
v.dp_header_info := dp_header_info; v.dp_header_info := dp_header_info;
END IF; END IF;
nxt_r <= v; nxt_r <= v;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment