calyx
calyx copied to clipboard
Remove use of always_comb that Icarus does not support
Attempt to close #2253. Still a WiP.
@rachitnigam, I just tried this change on the unsigned-dot-product example in interp/, and It seems to have simulated fine?
Was it previously erroring out?
I just checked on my checkout of main (which is on commit f4e80ec0). It looks like Icarus executes correctly and produces a waveform. So no, it looks like Icarus was not erroring out. I'm just worried about the warning message Icarus prints.
$ ./target/debug/fud2 ./interp/tests/complex/unsigned-dot-product.futil --from calyx -o test.vcd --through icarus -s sim.data=./interp/tests/complex/unsigned-dot-product.futil.data
[WARN calyx_frontend::attribute] The attribute @static is deprecated and will be ignored by the compiler.
[WARN calyx_frontend::attribute] The attribute @static is deprecated and will be ignored by the compiler.
[WARN calyx_frontend::attribute] The attribute @static is deprecated and will be ignored by the compiler.
[WARN calyx_frontend::attribute] The attribute @static is deprecated and will be ignored by the compiler.
verilog-noverify.sv:149: sorry: constant selects in always_* processes are not currently supported (all bits will be included).
[nix-shell:~/Repos/calyx] 09:57:03 $ ll test.vcd
-rw-r--r-- 1 karljoad users 46415 Sep 30 09:57 test.vcd
Okay, then let's trigger the remaining tests and see if there are any failures. You need to mark the PR ready for review when you're ready.
@ekiwi wanted another pair of eyes on this in case you think there could be any problems changing the always_comb to always @*. I'm going to fix the failing tests and get this merge ready. If you think it's good, let's merge.
Closing in favor of https://github.com/calyxir/calyx/pull/2330.