Add @cliffordwolf freduce testcase
authorEddie Hung <eddie@fpgeh.com>
Fri, 7 Jun 2019 19:12:11 +0000 (12:12 -0700)
committerEddie Hung <eddie@fpgeh.com>
Fri, 7 Jun 2019 19:12:11 +0000 (12:12 -0700)
tests/various/muxpack.v
tests/various/muxpack.ys

index f3c25db8d0c293514d9ed2e56b4370cda23e4b28..d45ce40457a8ecb5439ac78cbf864c8df8d72540 100644 (file)
@@ -166,3 +166,16 @@ module cliffordwolf_nonexclusive_select (
                 if (z) o = d;
         end
 endmodule
+
+module cliffordwolf_freduce (
+        input wire [1:0] s,
+        input wire a, b, c, d,
+        output reg [3:0] o
+);
+        always @* begin
+                o = {4{a}};
+                if (s == 0) o = {3{b}};
+                if (s == 1) o = {2{c}};
+                if (s == 2) o = d;
+        end
+endmodule
index 7c3fe5070783c9a5365506499fcbed6ec13cdd29..afdacdf30e9a7e0c5231f345ac6d912b3e1be799 100644 (file)
@@ -178,3 +178,20 @@ design -import gold -as gold
 design -import gate -as gate
 miter -equiv -flatten -make_assert -make_outputs gold gate miter
 sat -verify -prove-asserts -show-ports miter
+
+design -load read
+hierarchy -top cliffordwolf_freduce
+prep
+design -save gold
+proc; opt; freduce; opt
+write_verilog -noexpr -norename
+muxpack
+opt
+stat
+select -assert-count 0 t:$mux
+select -assert-count 1 t:$pmux
+design -stash gate
+design -import gold -as gold
+design -import gate -as gate
+miter -equiv -flatten -make_assert -make_outputs gold gate miter
+sat -verify -prove-asserts -show-ports miter