aboutsummaryrefslogtreecommitdiffstats
path: root/tests/simple_abc9/abc9.v
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2021-03-29 22:01:57 -0700
committerGitHub <noreply@github.com>2021-03-29 22:01:57 -0700
commit55dc5a4e4f7335741d2155dc0183ed4e26e8ddf8 (patch)
treeab4ab932ea29088baafcf3c71d6c5854403528d6 /tests/simple_abc9/abc9.v
parent687f381b6985d9dda7e11535628e2fafff267af5 (diff)
downloadyosys-55dc5a4e4f7335741d2155dc0183ed4e26e8ddf8.tar.gz
yosys-55dc5a4e4f7335741d2155dc0183ed4e26e8ddf8.tar.bz2
yosys-55dc5a4e4f7335741d2155dc0183ed4e26e8ddf8.zip
abc9: fix SCC issues (#2694)
* xilinx: add SCC test for DSP48E1 * xilinx: Gate DSP48E1 being a whitebox behind ALLOW_WHITEBOX_DSP48E1 Have a test that checks it works through ABC9 when enabled * abc9 to break SCCs using $__ABC9_SCC_BREAKER module * Add test * abc9_ops: remove refs to (* abc9_keep *) on wires * abc9_ops: do not bypass cells in an SCC * Add myself to CODEOWNERS for abc9* * Fix compile * abc9_ops: run -prep_hier before scc * Fix tests * Remove bug reference pending fix * abc9: fix for -prep_hier -dff * xaiger: restore PI handling * abc9_ops: -prep_xaiger sigmap * abc9_ops: -mark_scc -> -break_scc * abc9: eliminate hard-coded abc9.box from tests Also tidy up * Address review
Diffstat (limited to 'tests/simple_abc9/abc9.v')
-rw-r--r--tests/simple_abc9/abc9.v24
1 files changed, 19 insertions, 5 deletions
diff --git a/tests/simple_abc9/abc9.v b/tests/simple_abc9/abc9.v
index 5e969c614..fba089b1f 100644
--- a/tests/simple_abc9/abc9.v
+++ b/tests/simple_abc9/abc9.v
@@ -213,7 +213,7 @@ module arbiter (clk, rst, request, acknowledge, grant, grant_valid, grant_encode
input rst;
endmodule
-(* abc9_box_id=1, blackbox *)
+(* abc9_box, blackbox *)
module MUXF8(input I0, I1, S, output O);
specify
(I0 => O) = 0;
@@ -300,15 +300,29 @@ endmodule
module abc9_test036(input A, B, S, output [1:0] O);
(* keep *)
MUXF8 m (
- .I0(I0),
- .I1(I1),
+ .I0(A),
+ .I1(B),
.O(O[0]),
.S(S)
);
MUXF8 m2 (
- .I0(I0),
- .I1(I1),
+ .I0(A),
+ .I1(B),
.O(O[1]),
.S(S)
);
endmodule
+
+(* abc9_box, whitebox *)
+module MUXF7(input I0, I1, S, output O);
+assign O = S ? I1 : I0;
+specify
+ (I0 => O) = 0;
+ (I1 => O) = 0;
+ (S => O) = 0;
+endspecify
+endmodule
+
+module abc9_test037(output o);
+MUXF7 m(.I0(1'b1), .I1(1'b0), .S(o), .O(o));
+endmodule