mirror of https://github.com/YosysHQ/yosys.git
Remove topo sort no-loop assertion, with test
This commit is contained in:
parent
f96d82a5f1
commit
eec314e262
|
@ -294,20 +294,7 @@ struct XAigerWriter
|
|||
for (auto user_cell : it.second)
|
||||
toposort.edge(driver_cell, user_cell);
|
||||
|
||||
#ifndef NDEBUG
|
||||
toposort.analyze_loops = true;
|
||||
#endif
|
||||
toposort.sort();
|
||||
#ifndef NDEBUG
|
||||
for (auto &it : toposort.loops) {
|
||||
log(" loop");
|
||||
for (auto cell : it)
|
||||
log(" %s", log_id(cell));
|
||||
log("\n");
|
||||
}
|
||||
#endif
|
||||
log_assert(!toposort.found_loops);
|
||||
|
||||
for (auto cell_name : toposort.sorted) {
|
||||
RTLIL::Cell *cell = module->cell(cell_name);
|
||||
RTLIL::Module* box_module = module->design->module(cell->type);
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
MUXF8 1 0 3 1
|
||||
1 1 1
|
|
@ -142,3 +142,76 @@ assign b = ~a;
|
|||
(* keep *) reg d;
|
||||
always @* d <= &c;
|
||||
endmodule
|
||||
|
||||
module abc9_test021(clk, rst, s_eth_hdr_valid, s_eth_hdr_ready, s_eth_dest_mac, s_eth_src_mac, s_eth_type, s_eth_payload_axis_tdata, s_eth_payload_axis_tkeep, s_eth_payload_axis_tvalid, s_eth_payload_axis_tready, s_eth_payload_axis_tlast, s_eth_payload_axis_tid, s_eth_payload_axis_tdest, s_eth_payload_axis_tuser, m_eth_hdr_valid, m_eth_hdr_ready, m_eth_dest_mac, m_eth_src_mac, m_eth_type, m_eth_payload_axis_tdata, m_eth_payload_axis_tkeep, m_eth_payload_axis_tvalid, m_eth_payload_axis_tready, m_eth_payload_axis_tlast, m_eth_payload_axis_tid, m_eth_payload_axis_tdest, m_eth_payload_axis_tuser);
|
||||
input clk;
|
||||
output [47:0] m_eth_dest_mac;
|
||||
input m_eth_hdr_ready;
|
||||
output m_eth_hdr_valid;
|
||||
output [7:0] m_eth_payload_axis_tdata;
|
||||
output [7:0] m_eth_payload_axis_tdest;
|
||||
output [7:0] m_eth_payload_axis_tid;
|
||||
output m_eth_payload_axis_tkeep;
|
||||
output m_eth_payload_axis_tlast;
|
||||
input m_eth_payload_axis_tready;
|
||||
output m_eth_payload_axis_tuser;
|
||||
output m_eth_payload_axis_tvalid;
|
||||
output [47:0] m_eth_src_mac;
|
||||
output [15:0] m_eth_type;
|
||||
input rst;
|
||||
input [191:0] s_eth_dest_mac;
|
||||
output [3:0] s_eth_hdr_ready;
|
||||
input [3:0] s_eth_hdr_valid;
|
||||
input [31:0] s_eth_payload_axis_tdata;
|
||||
input [31:0] s_eth_payload_axis_tdest;
|
||||
input [31:0] s_eth_payload_axis_tid;
|
||||
input [3:0] s_eth_payload_axis_tkeep;
|
||||
input [3:0] s_eth_payload_axis_tlast;
|
||||
output [3:0] s_eth_payload_axis_tready;
|
||||
input [3:0] s_eth_payload_axis_tuser;
|
||||
input [3:0] s_eth_payload_axis_tvalid;
|
||||
input [191:0] s_eth_src_mac;
|
||||
input [63:0] s_eth_type;
|
||||
(* keep *)
|
||||
wire [0:0] grant, request;
|
||||
wire a;
|
||||
not u0 (
|
||||
a,
|
||||
grant[0]
|
||||
);
|
||||
and u1 (
|
||||
request[0],
|
||||
s_eth_hdr_valid[0],
|
||||
a
|
||||
);
|
||||
(* keep *)
|
||||
MUXF8 u2 (
|
||||
.I0(1'bx),
|
||||
.I1(1'bx),
|
||||
.O(o),
|
||||
.S(1'bx)
|
||||
);
|
||||
arbiter arb_inst (
|
||||
.acknowledge(acknowledge),
|
||||
.clk(clk),
|
||||
.grant(grant),
|
||||
.grant_encoded(grant_encoded),
|
||||
.grant_valid(grant_valid),
|
||||
.request(request),
|
||||
.rst(rst)
|
||||
);
|
||||
endmodule
|
||||
|
||||
module arbiter (clk, rst, request, acknowledge, grant, grant_valid, grant_encoded);
|
||||
input [3:0] acknowledge;
|
||||
input clk;
|
||||
output [3:0] grant;
|
||||
output [1:0] grant_encoded;
|
||||
output grant_valid;
|
||||
input [3:0] request;
|
||||
input rst;
|
||||
endmodule
|
||||
|
||||
(* abc_box_id=1 *)
|
||||
module MUXF8(input I0, I1, S, output O);
|
||||
endmodule
|
||||
|
|
|
@ -19,4 +19,4 @@ fi
|
|||
|
||||
cp ../simple/*.v .
|
||||
DOLLAR='?'
|
||||
exec ${MAKE:-make} -f ../tools/autotest.mk $seed *.v EXTRA_FLAGS="-p 'hierarchy; synth -run coarse; techmap; opt -full; abc9 -lut 4; stat; check -assert; select -assert-none t:${DOLLAR}_NOT_ t:${DOLLAR}_AND_ %%'"
|
||||
exec ${MAKE:-make} -f ../tools/autotest.mk $seed *.v EXTRA_FLAGS="-p 'hierarchy; synth -run coarse; opt -full; techmap; abc9 -lut 4 -box ../abc.box; stat; check -assert; select -assert-none t:${DOLLAR}_NOT_ t:${DOLLAR}_AND_ %%'"
|
||||
|
|
Loading…
Reference in New Issue