From 6eeb0eb1a3cdeb154163fe93a348c4e69b48a20d Mon Sep 17 00:00:00 2001
From: Michael Schaffner <schaffner@iis.ee.ethz.ch>
Date: Wed, 10 Apr 2019 20:23:02 +0200
Subject: [PATCH] testharness: Remove spurious warnings in Verilator

Modify warnings in testharness such that they only trigger on active
clock edge (resolves an issue with verilator)
---
 Makefile                 | 26 +++++++++++++-------------
 tb/ariane_testharness.sv | 22 +++++++++++-----------
 2 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/Makefile b/Makefile
index f3aef750..588f335a 100644
--- a/Makefile
+++ b/Makefile
@@ -52,18 +52,18 @@ endif
 # Sources
 # Package files -> compile first
 ariane_pkg := include/riscv_pkg.sv                          \
-			  src/riscv-dbg/src/dm_pkg.sv                   \
-			  include/ariane_pkg.sv                         \
-			  include/std_cache_pkg.sv                      \
-			  include/wt_cache_pkg.sv                       \
-			  src/axi/src/axi_pkg.sv                        \
-			  src/register_interface/src/reg_intf.sv        \
-			  src/register_interface/src/reg_intf_pkg.sv    \
-			  include/axi_intf.sv                           \
-			  tb/ariane_soc_pkg.sv                          \
-			  include/ariane_axi_pkg.sv                     \
-			  src/fpu/src/fpnew_pkg.sv                      \
-			  src/fpu/src/fpu_div_sqrt_mvp/hdl/defs_div_sqrt_mvp.sv
+              src/riscv-dbg/src/dm_pkg.sv                   \
+              include/ariane_pkg.sv                         \
+              include/std_cache_pkg.sv                      \
+              include/wt_cache_pkg.sv                       \
+              src/axi/src/axi_pkg.sv                        \
+              src/register_interface/src/reg_intf.sv        \
+              src/register_interface/src/reg_intf_pkg.sv    \
+              include/axi_intf.sv                           \
+              tb/ariane_soc_pkg.sv                          \
+              include/ariane_axi_pkg.sv                     \
+              src/fpu/src/fpnew_pkg.sv                      \
+              src/fpu/src/fpu_div_sqrt_mvp/hdl/defs_div_sqrt_mvp.sv
 ariane_pkg := $(addprefix $(root-dir), $(ariane_pkg))
 
 # utility modules
@@ -368,7 +368,7 @@ verilate_command := $(verilator)
                     $(list_incdir) --top-module ariane_testharness                                     \
                     --Mdir $(ver-library) -O3                                                          \
                     --exe tb/ariane_tb.cpp tb/dpi/SimDTM.cc tb/dpi/SimJTAG.cc                          \
-					          tb/dpi/remote_bitbang.cc tb/dpi/msim_helper.cc
+					tb/dpi/remote_bitbang.cc tb/dpi/msim_helper.cc
 
 # User Verilator, at some point in the future this will be auto-generated
 verilate:
diff --git a/tb/ariane_testharness.sv b/tb/ariane_testharness.sv
index 6171119c..42a64baf 100644
--- a/tb/ariane_testharness.sv
+++ b/tb/ariane_testharness.sv
@@ -670,17 +670,17 @@ module ariane_testharness #(
     // Simulation Helper Functions
     // -------------
     // check for response errors
-    always_comb begin
-        if (axi_ariane_req.r_ready &&
-            axi_ariane_resp.r_valid &&
-            axi_ariane_resp.r.resp inside {axi_pkg::RESP_DECERR, axi_pkg::RESP_SLVERR}) begin
-            $warning("R Response Errored");
-        end
-        if (axi_ariane_req.b_ready &&
-            axi_ariane_resp.b_valid &&
-            axi_ariane_resp.b.resp inside {axi_pkg::RESP_DECERR, axi_pkg::RESP_SLVERR}) begin
-            $warning("B Response Errored");
-        end
+    always_ff @(posedge clk_i) begin : p_assert
+      if (axi_ariane_req.r_ready &&
+          axi_ariane_resp.r_valid &&
+          axi_ariane_resp.r.resp inside {axi_pkg::RESP_DECERR, axi_pkg::RESP_SLVERR}) begin
+          $warning("R Response Errored");
+      end
+      if (axi_ariane_req.b_ready &&
+          axi_ariane_resp.b_valid &&
+          axi_ariane_resp.b.resp inside {axi_pkg::RESP_DECERR, axi_pkg::RESP_SLVERR}) begin
+          $warning("B Response Errored");
+      end
     end
 
 `ifdef AXI_SVA
-- 
GitLab