prjunnamed_generic/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use prjunnamed_netlist::Design;

mod unname;
mod decision;
mod simplify;
mod merge;
mod split;
mod lower_arith;
mod iobuf_insert;

pub use unname::unname;
pub use decision::decision;
pub use lower_arith::lower_arith;
pub use iobuf_insert::iobuf_insert;

pub fn canonicalize(design: &mut Design) {
    for iter in 1.. {
        if cfg!(feature = "trace") {
            eprintln!(">canonicalize #{}", iter);
        }
        let did_simplify = simplify::simplify(design);
        let did_merge = merge::merge(design);
        let did_split = split::split(design);
        if !(did_simplify || did_merge || did_split) {
            if cfg!(feature = "trace") {
                eprintln!(">canonicalize done");
            }
            break;
        }
    }
}