// -p well-formed -p static-inference
import "primitives/core.futil";
import "primitives/memories/comb.futil";
component main(go: 1, clk: 1) -> (done: 1) {
cells {
r0 = std_reg(1);
r1 = std_reg(1);
m0 = comb_mem_d1(32, 1, 1);
}
wires {
group one_cycle {
r0.write_en = 1'd1;
one_cycle[done] = r0.done;
}
group two_cycles {
r0.write_en = 1'd1;
r1.write_en = r0.done;
two_cycles[done] = r1.done;
}
group mem_wrt_to_done {
m0.addr0 = 1'd0;
m0.write_data = 32'd5;
m0.write_en = 1'd1;
mem_wrt_to_done[done] = m0.done;
}
group mult_wrts_to_done {
r0.write_en = 1'd1;
mult_wrts_to_done[done] = r0.done ? 1'd1;
}
}
control {
seq {
one_cycle;
two_cycles;
mem_wrt_to_done;
mult_wrts_to_done;
one_cycle;
mult_wrts_to_done;
two_cycles;
}
}
}