[prim_fifo/fpv] This adds an FPV testbench for sync FIFOs
This adds an FPV testbench that tests differently parameterized FIFOs:
- a depth 0 pass through FIFO
- depth 1, 7, 8, 15, 16 pass through FIFOs
- depth 1, 7, 8, 15, 16 non-pass through FIFOs
Data/depth value checks are enabled up to depth 8 in order to constrain
the runtime.
Signed-off-by: Michael Schaffner <msf@opentitan.org>
diff --git a/hw/ip/prim/rtl/prim_fifo_sync.sv b/hw/ip/prim/rtl/prim_fifo_sync.sv
index 310b222..f0fa99a 100644
--- a/hw/ip/prim/rtl/prim_fifo_sync.sv
+++ b/hw/ip/prim/rtl/prim_fifo_sync.sv
@@ -141,4 +141,13 @@
end // block: gen_normal_fifo
+ //////////////////////
+ // Known Assertions //
+ //////////////////////
+
+ `ASSERT(DataKnown_A, rvalid |-> !$isunknown(rdata), clk_i, !rst_ni)
+ `ASSERT_KNOWN(DepthKnown_A, depth, clk_i, !rst_ni)
+ `ASSERT_KNOWN(RvalidKnown_A, rvalid, clk_i, !rst_ni)
+ `ASSERT_KNOWN(WreadyKnown_A, wready, clk_i, !rst_ni)
+
endmodule