Project

General

Profile

[logo] 
 
Home
News
Activity
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  BugVise
  CovVise
  Force-Gate-Sim
  Gspice
  IPC::Locker
  Rsvn
  SVN::S4
  Voneline
  WFH
General Info
  Papers

Building Verilator to work with multiple C++ compilers

Added by Al Grant 6 months ago

When building Verilator, the configure script discovers options for the target C++ compiler and writes them into VERILATOR_ROOT/include/verilated.mk. 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 6 months 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.

    (1-1/1)