Major Tools
Other Tools
General Info

Building Verilator to work with multiple C++ compilers

Added by Al Grant 10 days ago

When building Verilator, the configure script discovers options for the target C++ compiler and writes them into VERILATOR_ROOT/include/ So using an alternative compiler is not just a case of using CXX=clang on the design makefile because the wrong options will be passed in. You would have to override these options, e.g. you could override CFG_CXXFLAGS_NO_UNUSED, but making sure to keep any options that were needed, like -faligned-new.

Is there some way to make Verilator be less tightly bound to the C++ compiler, and particularly allow a single installation of Verilator to be used with either GCC and Clang?

I guess the ideal would be for the verilated C++ source to compile clean with both compilers and not need compiler-specific overrides like -Wno-bool-operation or -Wno-used-but-set-variable.

Alternatively, Verilator could do a mini 'configure' at some point when compiling the design, to find out the right command line for the target C++ compiler.

Replies (1)

RE: Building Verilator to work with multiple C++ compilers - Added by Wilson Snyder 10 days ago

In general, except for compile options Verilated code is designed to work on any target compiler (i.e. output code doesn't use config.h). So it should just be a matter of knowing what switches your compiler needs.

To support better, the best way to handle compile options otherwise would probably be to use configure's cross compilation/target compiler features. If you want to figure out how to do that and provide patches I'll take them.