Verilator中 --build参数的理解,以及如何在使用Verilator的时候向gcc传递参数
Verilator中 --build参数的理解,以及如何在使用Verilator的时候向gcc传递参数
Verilator的三种编译方法
在使用Verilator进行仿真的时候,首先会将.v文件转换成.cpp文件,然后再调用编译器将.cpp文件编译。在编译这个步骤中,有三种编译方法:
-
向Verilator传递--build参数,Verilator会自动的在调用完Verilator后进行编译
-
使用Verilator生成的.mk文件进行编译
$(MAKE) -j -C obj_dir -f Vtop.mk
-
向这个Verilator生成的.mk文件中传递我们重写的规则,使用它进行编译`
$(MAKE) -j -C sim_dir -f ../Makefile_obj
如何在使用Verilator的时候向gcc传递参数
其实第一种和第二种区别不大,只不过第一种不用你编写make命令,Verilator会自动的进行make,第二种需要你自己编写一个make命令。
其中,Makefile_obj是我们自己编写的Make规则
default: Vtop
# Include the rules made by verilator
# 包含verilator生成的mk
include Vtop.mk
# Use OBJCACHE (cccache) if using gmake and its installed
# 如果ccahce安装了,使用ccache
COMPILE.cc = $(OBJCACHE) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# Compile flags
# 编译参数
## Turn on creating .d make dependency files
CPPFLAGS += -MMD -MP
## Compile in Verilator runtime debugging, so +verilator+debug works
CPPFLAGS += -DVL_DEBUG=1
## Use the realline lib
LIBS += -lreadline
在这个文件中,我们可以向gcc传递参数,例如:CXXFLAGS
、LIBS
、CFLAGS
等gcc或g++需要的参数。