Verilator中 --build参数的理解,以及如何在使用Verilator的时候向gcc传递参数

Verilator中 --build参数的理解,以及如何在使用Verilator的时候向gcc传递参数

Verilator的三种编译方法

在使用Verilator进行仿真的时候,首先会将.v文件转换成.cpp文件,然后再调用编译器将.cpp文件编译。在编译这个步骤中,有三种编译方法:

  1. 向Verilator传递--build参数,Verilator会自动的在调用完Verilator后进行编译

  2. 使用Verilator生成的.mk文件进行编译

    $(MAKE) -j -C obj_dir -f Vtop.mk
    
  3. 向这个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传递参数,例如:CXXFLAGSLIBSCFLAGS等gcc或g++需要的参数。

posted @ 2022-08-09 13:40  Groot_Liu  阅读(603)  评论(0编辑  收藏  举报