Line 1... |
Line 1... |
################################################################################
|
################################################################################
|
##
|
##
|
## Filename:
|
## Filename: bench/cpp/Makefile
|
##
|
##
|
## Project: WBScope, a wishbone hosted scope
|
## Project: WBScope, a wishbone hosted scope
|
##
|
##
|
## Purpose:
|
## Purpose: This file directs the build of a Verilator-based test bench to
|
|
## prove that the wbscope and wbscopc work. This build must be
|
|
## called after building in bench/rtl, since it depends upon the products
|
|
## of that build.
|
|
##
|
|
## Targets:
|
|
##
|
|
## all: Builds both wbscope_tb and wbscopc_tb
|
|
##
|
|
## clean: Cleans up all of the build products, together with the .vcd
|
|
## files, so you can start over from scratch.
|
|
##
|
|
## wbscope_tb: A test bench for the basic wishbone scope.
|
|
## Prints success or failure on the last line.
|
|
##
|
|
## wbscopc_tb: A test bench for the compressed wishbone scope.
|
|
## Prints success or failure on the last line.
|
|
##
|
|
## test: Runs both testbenches, printing success if both succeed, or
|
|
## failure if one of the two does not.
|
##
|
##
|
## Creator: Dan Gisselquist, Ph.D.
|
## Creator: Dan Gisselquist, Ph.D.
|
## Gisselquist Technology, LLC
|
## Gisselquist Technology, LLC
|
##
|
##
|
################################################################################
|
################################################################################
|
Line 29... |
Line 48... |
## for a copy.
|
## for a copy.
|
##
|
##
|
## License: GPL, v3, as defined and found on www.gnu.org,
|
## License: GPL, v3, as defined and found on www.gnu.org,
|
## http://www.gnu.org/licenses/gpl.html
|
## http://www.gnu.org/licenses/gpl.html
|
##
|
##
|
##
|
|
################################################################################
|
################################################################################
|
##
|
##
|
##
|
##
|
all: wbscope_tb
|
all: wbscope_tb wbscopc_tb
|
CXX := g++
|
CXX := g++
|
RTLD := ../rtl
|
RTLD := ../rtl
|
ROBJD:= $(RTLD)/obj_dir
|
ROBJD:= $(RTLD)/obj_dir
|
VROOT:= /usr/share/verilator
|
VERILATOR_ROOT ?= $(shell bash -c 'verilator -V|grep VERILATOR_ROOT| head -1|sed -e " s/^.*=\s*//"')
|
VINCS:= -I$(VROOT)
|
VROOT:= $(VERILATOR_ROOT)
|
INCS := -I$(VROOT)/include -I$(ROBJD)
|
INCS := -I$(VROOT)/include -I$(ROBJD)
|
VSRCS:= $(VROOT)/include/verilated.cpp $(VROOT)/include/verilated_vcd_c.cpp
|
VSRCS:= $(VROOT)/include/verilated.cpp $(VROOT)/include/verilated_vcd_c.cpp
|
TBOBJ:= $(ROBJD)/Vwbscope_tb__ALL.a
|
TBOBJ:= $(ROBJD)/Vwbscope_tb__ALL.a
|
|
TCOBJ:= $(ROBJD)/Vwbscopc_tb__ALL.a
|
|
|
wbscope_tb: wbscope_tb.cpp $(ROBJD)/Vwbscope_tb__ALL.a $(ROBJD)/Vwbscope_tb.h
|
wbscope_tb: wbscope_tb.cpp $(TBOBJ) $(ROBJD)/Vwbscope_tb.h wb_tb.h testb.h
|
$(CXX) $(INCS) wbscope_tb.cpp $(VSRCS) $(TBOBJ) -o $@
|
$(CXX) $(INCS) wbscope_tb.cpp $(VSRCS) $(TBOBJ) -o $@
|
|
|
|
wbscopc_tb: wbscopc_tb.cpp $(TCOBJ) $(ROBJD)/Vwbscopc_tb.h wb_tb.h testb.h
|
|
$(CXX) $(INCS) wbscopc_tb.cpp $(VSRCS) $(TCOBJ) -o $@
|
|
|
|
test: wbscope_tb wbscopc_tb
|
|
./wbscope_tb
|
|
./wbscopc_tb
|
|
|
|
clean:
|
|
rm -f wbscope_tb wbscopc_tb
|
|
rm -f wbscope_tb.vcd wbscopc_tb.vcd
|