prjunnamed_generic/
lib.rs1use prjunnamed_netlist::Design;
2
3mod unname;
4mod decision;
5mod simplify;
6mod merge;
7mod split;
8mod lower_arith;
9mod iobuf_insert;
10
11pub use unname::unname;
12pub use decision::decision;
13pub use lower_arith::lower_arith;
14pub use iobuf_insert::iobuf_insert;
15
16pub fn canonicalize(design: &mut Design) {
17 for iter in 1.. {
18 if cfg!(feature = "trace") {
19 eprintln!(">canonicalize #{}", iter);
20 }
21 let did_simplify = simplify::simplify(design);
22 let did_merge = merge::merge(design);
23 let did_split = split::split(design);
24 if !(did_simplify || did_merge || did_split) {
25 if cfg!(feature = "trace") {
26 eprintln!(">canonicalize done");
27 }
28 break;
29 }
30 }
31}