calyx
calyx copied to clipboard
`comb-localize`: Inlining combinational continuous assignments into groups
In similar spirit to #869. Inline combinational continuous assignments into the groups that use them (along with the entire dataflow graph that drives them). By doing this kind of inlining, we can hopefully eliminate continuous assignments and speed up/simplify simulation because it has to consider fewer active assignments at any given time.
The following program continuously assigns to the add.left signal but only uses the value of add.out in group g:
group g {
add.right = 1'd1;
r.in = add.out;
..
}
sub.left = k.out;
sub.right = 32'd1;
add.left = sub.out;
We can localize the combinational dataflow graph for add.out to the groups that use it:
group g {
add.right = 1'd1;
r.in = add.out;
sub.left = k.out;
sub.right = 32'd1;
add.left = sub.out;
..
}