// -p validate -p compile-invoke -p static-inline -p add-guard -p simplify-static-guards -p compile-static-interface
import "primitives/core.futil";
import "primitives/memories/comb.futil";
static<2> component do_add(left: 32, right: 32) -> () {
cells {
add = std_add(32);
r = std_reg(32);
}
wires {
static<1> group a {
add.left = left;
add.right = right;
r.in = add.out;
r.write_en = 1'd1;
}
static<1> group b {
add.left = r.out;
add.right = right;
r.in = add.out;
r.write_en = 1'd1;
}
}
control {
static seq {a; b;}
}
}
component main () -> () {
cells {
a = do_add();
}
wires {}
control {
static invoke a(left=32'd5, right=32'd6)();
}
}