diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd index f417a36f52f4e4493850fdaacaeaf90365b8c0df..df2f73a7d7e84e2ec91646e4d32bd9b4d51628c1 100644 --- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd +++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_tbuf_reader.vhd @@ -337,9 +337,15 @@ begin v.dump_start_rsn := reg_dump_start_rsn_rw; v.dump_start_page := reg_dump_start_page_rw; if v.dump_start_page >= c_nof_pages_in_buffer then + -- Force to recovery value within buffer range, this will lead to read RSN errors due to mismatch with + -- dump_start_rsn. v.dump_start_page := 0; end if; v.dump_nof_pages := reg_dump_nof_pages_rw; + if v.dump_nof_pages >= c_nof_pages_in_buffer then + -- Limit to buffer size + v.dump_nof_pages := c_nof_pages_in_buffer; + end if; if dump_en = '1' then v.latency_cnt := c_start_latency; v.fsm := s_dump_start;