prjunnamed_generic/
lib.rs

1use 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}