calyxir / calyx

Intermediate Language (IL) for Hardware Accelerator Generators
https://calyxir.org
MIT License
493 stars 50 forks source link

Add icarus-verilog to test suite. #755

Open cgyurgyik opened 3 years ago

cgyurgyik commented 3 years ago

I think it would be a good idea to add a few tests (one specifically for sqrt) for the icarus-verilog backend. Perhaps benchmarks as well? This would require some additions to the Github Actions.

cgyurgyik commented 3 years ago

The other option would be to run all the tests through both verilog and icarus-verilog.

rachitnigam commented 2 years ago

I think it'd be better to make icarus-verilog tests run in the integration test suite? In general, icarus is faster than Verilator so at some point, it'd make sense to switch the default test suite to icarus. However, let's do that once we're convinced that Calyx programs obey icarus semantics.

cgyurgyik commented 2 years ago

The parallel example I was imagining is running C++ tests with multiple compilers (Clang, MSVC, ...) since compilation on one does not guarantee compilation on the other.

rachitnigam commented 2 years ago

The parallel example I was imagining is running C++ tests with multiple compilers (Clang, MSVC, ...) since compilation on one does not guarantee compilation on the other.

Where did you talk about parallel examples?

cgyurgyik commented 2 years ago

The other option would be to run all the tests through both verilog and icarus-verilog.

I'm providing insight on why I mentioned this.

rachitnigam commented 2 years ago

Hm, I think it's better to prioritize making Calyx programs work with multiple simulators instead of multiple C++ compilers. In some sense, if the latter doesn't work, it's compilers disagreeing on the semantics of C++; if the former doesn't work, it's simulators disagreeing on the semantics of Calyx.

cgyurgyik commented 2 years ago

Yes That's what I mean. The test suite should run through both verilog and iverilog, instead of one or the other.

rachitnigam commented 2 years ago

Given that we have started recommending Icarus verilog in our getting started document, this is even more necessary now.