aboutsummaryrefslogtreecommitdiffstats
path: root/tests/opt
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2020-04-24 14:13:45 -0700
committerEddie Hung <eddie@fpgeh.com>2020-04-24 14:13:45 -0700
commitb5f38f834207fab3a563c55568c4543a3b5dcc1f (patch)
treef373965166801c4a30b53d255d6635ddfd8c9471 /tests/opt
parentebd6fa945d4f0afa9a7507e791d13653571c8a63 (diff)
downloadyosys-b5f38f834207fab3a563c55568c4543a3b5dcc1f.tar.gz
yosys-b5f38f834207fab3a563c55568c4543a3b5dcc1f.tar.bz2
yosys-b5f38f834207fab3a563c55568c4543a3b5dcc1f.zip
opt_expr: const_xnor replacement to pad Y with 1'b1
Diffstat (limited to 'tests/opt')
-rw-r--r--tests/opt/opt_expr_xnor.ys46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/opt/opt_expr_xnor.ys b/tests/opt/opt_expr_xnor.ys
index 0f9463379..f8ef0d352 100644
--- a/tests/opt/opt_expr_xnor.ys
+++ b/tests/opt/opt_expr_xnor.ys
@@ -83,3 +83,49 @@ miter -equiv -flatten -make_assert -make_outputs gold coarse_keepdc miter3
sat -verify -prove-asserts -show-ports -enable_undef miter3
miter -equiv -flatten -make_assert -make_outputs coarse_keepdc fine_keepdc miter4
sat -verify -prove-asserts -show-ports -enable_undef miter4
+
+
+# Single-bit $xnor extension
+design -reset
+read_verilog -noopt <<EOT
+module gold(input i, output [1:0] o, p, q);
+assign o = i ~^ i;
+assign p = 1'b0 ~^ i;
+assign q = 1'b1 ~^ i;
+endmodule
+EOT
+select -assert-count 3 t:$xnor
+copy gold coarse
+copy gold fine
+copy gold coarse_keepdc
+copy gold fine_keepdc
+
+cd coarse
+opt_expr -fine
+select -assert-none t:$xnor
+
+cd fine
+simplemap
+opt_expr
+select -assert-none t:$_XNOR_
+
+cd
+miter -equiv -flatten -make_assert -make_outputs -ignore_gold_x gold coarse miter
+sat -verify -prove-asserts -show-ports -enable_undef miter
+miter -equiv -flatten -make_assert -make_outputs coarse fine miter2
+sat -verify -prove-asserts -show-ports -enable_undef miter2
+
+cd coarse_keepdc
+opt_expr -keepdc -fine
+select -assert-count 1 t:$xnor
+
+cd fine_keepdc
+simplemap
+opt_expr -keepdc
+select -assert-count 0 c:$_XNOR_
+
+cd
+miter -equiv -flatten -make_assert -make_outputs gold coarse_keepdc miter3
+sat -verify -prove-asserts -show-ports -enable_undef miter3
+miter -equiv -flatten -make_assert -make_outputs coarse_keepdc fine_keepdc miter4
+sat -verify -prove-asserts -show-ports -enable_undef miter4