Add tests/various/chparam.sh
authorClifford Wolf <clifford@clifford.at>
Mon, 6 May 2019 14:03:15 +0000 (16:03 +0200)
committerClifford Wolf <clifford@clifford.at>
Mon, 6 May 2019 14:03:15 +0000 (16:03 +0200)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
tests/various/chparam.sh [new file with mode: 0644]

diff --git a/tests/various/chparam.sh b/tests/various/chparam.sh
new file mode 100644 (file)
index 0000000..9bb8d81
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+trap 'echo "ERROR in chparam.sh" >&2; exit 1' ERR
+
+cat > chparam1.sv << "EOT"
+module top #(
+        parameter [31:0] X = 0
+) (
+        input [31:0] din,
+        output [31:0] dout
+);
+        assign dout = X-din;
+endmodule
+
+module top_props #(
+        parameter [31:0] X = 0
+) (
+        input [31:0] dout
+);
+        always @* assert (dout != X);
+endmodule
+
+bind top top_props #(.X(123456789)) props (.*);
+EOT
+
+cat > chparam2.sv << "EOT"
+module top #(
+       parameter [31:0] X = 0
+) (
+       input [31:0] din,
+       output [31:0] dout
+);
+       assign dout = X-din;
+       always @* assert (dout != 123456789);
+endmodule
+EOT
+
+if ../../yosys -q -p 'verific -sv chparam1.sv'; then
+       ../../yosys -q -p 'verific -sv chparam1.sv; hierarchy -chparam X 123123123 -top top; prep -flatten' \
+                       -p 'sat -verify -prove-asserts -show-ports -set din[0] 1' \
+                       -p 'sat -falsify -prove-asserts -show-ports -set din[0] 0'
+
+       ../../yosys -q -p 'verific -sv chparam2.sv; hierarchy -chparam X 123123123 -top top; prep -flatten' \
+                       -p 'sat -verify -prove-asserts -show-ports -set din[0] 1' \
+                       -p 'sat -falsify -prove-asserts -show-ports -set din[0] 0'
+fi
+../../yosys -q -p 'read_verilog -sv chparam2.sv; hierarchy -chparam X 123123123 -top top; prep -flatten' \
+               -p 'sat -verify -prove-asserts -show-ports -set din[0] 1' \
+               -p 'sat -falsify -prove-asserts -show-ports -set din[0] 0'
+
+rm chparam1.sv
+rm chparam2.sv