diff --git a/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd b/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd
index a9782fa140393c7af419f5965e4d334a17499af0..bf43a639f3c3e81a6cac5e4cbe09b0541341fb6d 100644
--- a/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd
+++ b/libraries/base/dp/src/vhdl/dp_stream_pkg.vhd
@@ -233,6 +233,9 @@ PACKAGE dp_stream_pkg Is
                                SIGNAL   siso_arr        : IN    t_dp_siso_arr;
                                SIGNAL   ready_reg       : INOUT STD_LOGIC_VECTOR);
 
+  -- Reset only the control fields of the DP sosi record
+  FUNCTION RESET_DP_SOSI_CTRL(sosi : t_dp_sosi) RETURN t_dp_sosi;
+
   -- Resize functions to fit an integer or an SLV in the corresponding t_dp_sosi field width
   -- . Use these functions to assign sosi data TO a record field
   -- . Use the range selection [n-1 DOWNTO 0] to assign sosi data FROM a record field to an slv
@@ -455,6 +458,17 @@ PACKAGE BODY dp_stream_pkg IS
   BEGIN
     proc_dp_siso_alert(1, clk, sosi_arr, siso_arr, ready_reg);
   END proc_dp_siso_alert;
+
+  -- Reset only the control fields of the DP sosi record
+  FUNCTION RESET_DP_SOSI_CTRL(sosi : t_dp_sosi) RETURN t_dp_sosi IS
+    VARIABLE v_sosi : t_dp_sosi := sosi;
+  BEGIN
+    v_sosi.sync  := '0';
+    v_sosi.valid := '0';
+    v_sosi.sop   := '0';
+    v_sosi.eop   := '0';
+    RETURN v_sosi;
+  END RESET_DP_SOSI_CTRL;
  
   -- Resize functions to fit an integer or an SLV in the corresponding t_dp_sosi field width
   FUNCTION TO_DP_BSN(n : NATURAL) RETURN STD_LOGIC_VECTOR IS