diff --git a/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd b/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd
index 84c84d609458ef547172e62bf4908a4a68decb08..27dce6523298a2184bf05313b8b8e81e6a39a60f 100644
--- a/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd
+++ b/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd
@@ -464,28 +464,36 @@ PACKAGE tb_dp_pkg IS
                                  SIGNAL   out_val         : IN    STD_LOGIC);
 
   -- Verify the DUT output sync
-  PROCEDURE proc_dp_verify_sync(CONSTANT c_sync_period : IN    NATURAL;
-                                CONSTANT c_sync_offset : IN    NATURAL;
-                                SIGNAL   clk           : IN    STD_LOGIC;
+  PROCEDURE proc_dp_verify_sync(SIGNAL   clk           : IN    STD_LOGIC;
                                 SIGNAL   verify_en     : IN    STD_LOGIC;
                                 SIGNAL   sync          : IN    STD_LOGIC;
                                 SIGNAL   sop           : IN    STD_LOGIC;
-                                SIGNAL   bsn           : IN    STD_LOGIC_VECTOR);
+                                         expected_sync : IN    STD_LOGIC);
 
   PROCEDURE proc_dp_verify_sync(SIGNAL   clk           : IN    STD_LOGIC;
                                 SIGNAL   verify_en     : IN    STD_LOGIC;
                                 SIGNAL   sync          : IN    STD_LOGIC;
                                 SIGNAL   sop           : IN    STD_LOGIC;
+                                         bsn           : IN    NATURAL;  -- for reporting
+                                         expected_bsn  : IN    NATURAL;  -- for reporting
                                          expected_sync : IN    STD_LOGIC);
 
-  PROCEDURE proc_dp_verify_sync(CONSTANT c_start_bsn     : IN    NATURAL;
-                                CONSTANT c_sync_period   : IN    NATURAL;
-                                CONSTANT c_block_size    : IN    NATURAL;
-                                SIGNAL   clk             : IN    STD_LOGIC;
-                                SIGNAL   verify_en       : IN    STD_LOGIC;
-                                SIGNAL   sync            : IN    STD_LOGIC;
-                                SIGNAL   sop             : IN    STD_LOGIC;
-                                SIGNAL   bsn             : IN    STD_LOGIC_VECTOR;
+  PROCEDURE proc_dp_verify_sync(CONSTANT c_sync_period : IN    NATURAL;
+                                CONSTANT c_sync_offset : IN    NATURAL;
+                                SIGNAL   clk           : IN    STD_LOGIC;
+                                SIGNAL   verify_en     : IN    STD_LOGIC;
+                                SIGNAL   sync          : IN    STD_LOGIC;
+                                SIGNAL   sop           : IN    STD_LOGIC;
+                                SIGNAL   bsn           : IN    STD_LOGIC_VECTOR);
+
+  PROCEDURE proc_dp_verify_sync(CONSTANT c_start_bsn      : IN    NATURAL;
+                                CONSTANT c_sync_period    : IN    NATURAL;
+                                CONSTANT c_block_size     : IN    NATURAL;
+                                SIGNAL   clk              : IN    STD_LOGIC;
+                                SIGNAL   verify_en        : IN    STD_LOGIC;
+                                SIGNAL   sync             : IN    STD_LOGIC;
+                                SIGNAL   sop              : IN    STD_LOGIC;
+                                SIGNAL   bsn              : IN    STD_LOGIC_VECTOR;
                                 -- for debug purposes
                                 SIGNAL   dbg_nof_blk      : OUT   NATURAL;
                                 SIGNAL   dbg_accumulate   : OUT   NATURAL;
@@ -2288,34 +2296,38 @@ PACKAGE BODY tb_dp_pkg IS
   ------------------------------------------------------------------------------
   -- PROCEDURE: Verify the DUT output sync
   -- . sync is defined such that it can only be active at sop
-  -- . assume that the sync occures priodically at bsn MOD c_sync_period = c_sync_offset
+  -- . report expected_sync from input
   ------------------------------------------------------------------------------
-  PROCEDURE proc_dp_verify_sync(CONSTANT c_sync_period   : IN    NATURAL;    -- BSN sync period
-                                CONSTANT c_sync_offset   : IN    NATURAL;    -- BSN sync offset
-                                SIGNAL   clk             : IN    STD_LOGIC;
+  PROCEDURE proc_dp_verify_sync(SIGNAL   clk             : IN    STD_LOGIC;
                                 SIGNAL   verify_en       : IN    STD_LOGIC;
                                 SIGNAL   sync            : IN    STD_LOGIC;
                                 SIGNAL   sop             : IN    STD_LOGIC;
-                                SIGNAL   bsn             : IN    STD_LOGIC_VECTOR) IS
-    CONSTANT c_bsn_w         : NATURAL := sel_a_b(bsn'LENGTH>31, 31, bsn'LENGTH);  -- use maximally c_natural_w = 31 bit of BSN slv to allow calculations with integers
-    VARIABLE v_bsn           : NATURAL := TO_UINT(bsn(c_bsn_w-1 DOWNTO 0));
-    VARIABLE v_expected_sync : BOOLEAN;
+                                         expected_sync   : IN    STD_LOGIC) IS
   BEGIN
-    -- Determine v_expected_sync
-    v_expected_sync := (v_bsn - c_sync_offset) MOD c_sync_period = 0;
-    -- Report sync and v_expected_sync
-    proc_dp_verify_sync(clk, verify_en, sync, sop, to_sl(v_expected_sync));
+    IF rising_edge(clk) THEN
+      IF verify_en='1' THEN
+        -- Check for unexpected sync
+        IF sync='1' THEN
+          ASSERT expected_sync='1'
+            REPORT "Error: Unexpected sync at BSN" SEVERITY ERROR;
+          ASSERT sop = '1'
+            REPORT "Error: Unexpected sync at inactive sop" SEVERITY ERROR;
+        END IF;
+        -- Check for missing sync
+        IF sop='1' AND expected_sync='1' THEN
+          ASSERT sync = '1'
+            REPORT "Error: Missing sync" SEVERITY ERROR;
+        END IF;
+      END IF;
+    END IF;
   END proc_dp_verify_sync;
 
-  ------------------------------------------------------------------------------
-  -- PROCEDURE: Verify the DUT output sync
-  -- . sync is defined such that it can only be active at sop
-  -- . use expected_sync from input
-  ------------------------------------------------------------------------------
   PROCEDURE proc_dp_verify_sync(SIGNAL   clk             : IN    STD_LOGIC;
                                 SIGNAL   verify_en       : IN    STD_LOGIC;
                                 SIGNAL   sync            : IN    STD_LOGIC;
                                 SIGNAL   sop             : IN    STD_LOGIC;
+                                         bsn             : IN    NATURAL;  -- for reporting
+                                         expected_bsn    : IN    NATURAL;  -- for reporting
                                          expected_sync   : IN    STD_LOGIC) IS
   BEGIN
     IF rising_edge(clk) THEN
@@ -2323,7 +2335,7 @@ PACKAGE BODY tb_dp_pkg IS
         -- Check for unexpected sync
         IF sync='1' THEN
           ASSERT expected_sync='1'
-            REPORT "Error: Unexpected sync at BSN" SEVERITY ERROR;
+            REPORT "Error: Unexpected sync at BSN (" & int_to_str(bsn) & " /= " & int_to_str(expected_bsn) & ")" SEVERITY ERROR;
           ASSERT sop = '1'
             REPORT "Error: Unexpected sync at inactive sop" SEVERITY ERROR;
         END IF;
@@ -2336,6 +2348,28 @@ PACKAGE BODY tb_dp_pkg IS
     END IF;
   END proc_dp_verify_sync;
 
+  ------------------------------------------------------------------------------
+  -- PROCEDURE: Verify the DUT output sync
+  -- . sync is defined such that it can only be active at sop
+  -- . assume that the sync occures priodically at bsn MOD c_sync_period = c_sync_offset
+  ------------------------------------------------------------------------------
+  PROCEDURE proc_dp_verify_sync(CONSTANT c_sync_period   : IN    NATURAL;    -- BSN sync period
+                                CONSTANT c_sync_offset   : IN    NATURAL;    -- BSN sync offset
+                                SIGNAL   clk             : IN    STD_LOGIC;
+                                SIGNAL   verify_en       : IN    STD_LOGIC;
+                                SIGNAL   sync            : IN    STD_LOGIC;
+                                SIGNAL   sop             : IN    STD_LOGIC;
+                                SIGNAL   bsn             : IN    STD_LOGIC_VECTOR) IS
+    CONSTANT c_bsn_w         : NATURAL := sel_a_b(bsn'LENGTH>31, 31, bsn'LENGTH);  -- use maximally c_natural_w = 31 bit of BSN slv to allow calculations with integers
+    VARIABLE v_bsn           : NATURAL := TO_UINT(bsn(c_bsn_w-1 DOWNTO 0));
+    VARIABLE v_expected_sync : BOOLEAN;
+  BEGIN
+    -- Determine v_expected_sync
+    v_expected_sync := (v_bsn - c_sync_offset) MOD c_sync_period = 0;
+    -- Report sync and v_expected_sync
+    proc_dp_verify_sync(clk, verify_en, sync, sop, to_sl(v_expected_sync));
+  END proc_dp_verify_sync;
+
   ------------------------------------------------------------------------------
   -- PROCEDURE: Verify the DUT output sync
   -- . sync is defined such that it can only be active at sop
@@ -2393,7 +2427,7 @@ PACKAGE BODY tb_dp_pkg IS
     END IF;
 
     -- Report sync and v_expected_sync
-    proc_dp_verify_sync(clk, verify_en, sync, sop, to_sl(v_expected_sync));
+    proc_dp_verify_sync(clk, verify_en, sync, sop, v_bsn, v_expected_bsn, to_sl(v_expected_sync));
   END proc_dp_verify_sync;
 
   ------------------------------------------------------------------------------