From f87158be07342ea06684a524b1e99da4a61d947a Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Mon, 14 Aug 2023 13:13:48 +0200
Subject: [PATCH] Add overloaded variant of proc_dp_verify_sosi_equal().

---
 libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd | 30 +++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd b/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd
index 3413d449e7..b52ebc9b10 100644
--- a/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd
+++ b/libraries/base/dp/tb/vhdl/tb_dp_pkg.vhd
@@ -450,6 +450,10 @@ package tb_dp_pkg is
                                       signal   dut_sosi    : in t_dp_sosi_integer;  -- use func_dp_stream_slv_to_integer for conversion
                                       signal   exp_sosi    : in t_dp_sosi_integer);  -- use func_dp_stream_slv_to_integer for conversion
 
+  procedure proc_dp_verify_sosi_equal(constant c_use_complex : in boolean;
+                                      signal   dut_sosi      : in t_dp_sosi;
+                                      signal   exp_sosi      : in t_dp_sosi);
+
   procedure proc_dp_verify_valid(constant c_ready_latency : in    natural;
                                  signal   clk             : in    std_logic;
                                  signal   verify_en       : in    std_logic;
@@ -2261,6 +2265,32 @@ package body tb_dp_pkg is
     end if;
   end proc_dp_verify_sosi_equal;
 
+  procedure proc_dp_verify_sosi_equal(constant c_use_complex : in boolean;
+                                      signal   dut_sosi      : in t_dp_sosi;
+                                      signal   exp_sosi      : in t_dp_sosi) is
+  begin
+    assert dut_sosi.sync  = exp_sosi.sync  report "Wrong dut_sosi.sync"  severity ERROR;
+    assert dut_sosi.sop   = exp_sosi.sop   report "Wrong dut_sosi.sop"   severity ERROR;
+    assert dut_sosi.eop   = exp_sosi.eop   report "Wrong dut_sosi.eop"   severity ERROR;
+    assert dut_sosi.valid = exp_sosi.valid report "Wrong dut_sosi.valid" severity ERROR;
+    if exp_sosi.sop = '1' then
+      assert dut_sosi.bsn     = exp_sosi.bsn     report "Wrong dut_sosi.bsn"     severity ERROR;
+      assert dut_sosi.channel = exp_sosi.channel report "Wrong dut_sosi.channel" severity ERROR;
+    end if;
+    if exp_sosi.eop = '1' then
+      assert dut_sosi.empty = exp_sosi.empty report "Wrong dut_sosi.empty" severity ERROR;
+      assert dut_sosi.err   = exp_sosi.err   report "Wrong dut_sosi.err"   severity ERROR;
+    end if;
+    if exp_sosi.valid = '1' then
+      if c_use_complex then
+        assert dut_sosi.re = exp_sosi.re report "Wrong dut_sosi.re" severity ERROR;
+        assert dut_sosi.im = exp_sosi.im report "Wrong dut_sosi.im" severity ERROR;
+      else
+        assert dut_sosi.data = exp_sosi.data report "Wrong dut_sosi.data" severity ERROR;
+      end if;
+    end if;
+  end proc_dp_verify_sosi_equal;
+
   ------------------------------------------------------------------------------
   -- PROCEDURE: Verify the DUT output valid
   ------------------------------------------------------------------------------
-- 
GitLab