- sync_rtl/common/: skid_buffer, pipeline_reg, defines (valid/ready) - sync_rtl/mod_add/: modular adder example with Verilator C++ TB - test_framework/: Python-driven Verilator compile/sim/compare pipeline - test_framework/modules/mod_add/: 50-vector test plan, full鏈路 PASS - .trellis/spec/: RTL and test_framework conventions documented
70 lines
2.0 KiB
Makefile
70 lines
2.0 KiB
Makefile
# Verilated -*- Makefile -*-
|
|
# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable
|
|
#
|
|
# Execute this makefile from the object directory:
|
|
# make -f Vmod_add_sync.mk
|
|
|
|
default: Vmod_add_sync
|
|
|
|
### Constants...
|
|
# Perl executable (from $PERL, defaults to 'perl' if not set)
|
|
PERL = perl
|
|
# Python3 executable (from $PYTHON3, defaults to 'python3' if not set)
|
|
PYTHON3 = python3
|
|
# Path to Verilator kit (from $VERILATOR_ROOT)
|
|
VERILATOR_ROOT = /usr/share/verilator
|
|
# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE)
|
|
SYSTEMC_INCLUDE ?=
|
|
# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR)
|
|
SYSTEMC_LIBDIR ?=
|
|
|
|
### Switches...
|
|
# C++ code coverage 0/1 (from --prof-c)
|
|
VM_PROFC = 0
|
|
# SystemC output mode? 0/1 (from --sc)
|
|
VM_SC = 0
|
|
# Legacy or SystemC output mode? 0/1 (from --sc)
|
|
VM_SP_OR_SC = $(VM_SC)
|
|
# Deprecated
|
|
VM_PCLI = 1
|
|
# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH)
|
|
VM_SC_TARGET_ARCH = linux
|
|
|
|
### Vars...
|
|
# Design prefix (from --prefix)
|
|
VM_PREFIX = Vmod_add_sync
|
|
# Module prefix (from --prefix)
|
|
VM_MODPREFIX = Vmod_add_sync
|
|
# User CFLAGS (from -CFLAGS on Verilator command line)
|
|
VM_USER_CFLAGS = \
|
|
|
|
# User LDLIBS (from -LDFLAGS on Verilator command line)
|
|
VM_USER_LDLIBS = \
|
|
|
|
# User .cpp files (from .cpp's on Verilator command line)
|
|
VM_USER_CLASSES = \
|
|
tb_mod_add \
|
|
|
|
# User .cpp directories (from .cpp's on Verilator command line)
|
|
VM_USER_DIR = \
|
|
.. \
|
|
../sync_rtl/mod_add/TB \
|
|
|
|
### Default rules...
|
|
# Include list of all generated classes
|
|
include Vmod_add_sync_classes.mk
|
|
# Include global rules
|
|
include $(VERILATOR_ROOT)/include/verilated.mk
|
|
|
|
### Executable rules... (from --exe)
|
|
VPATH += $(VM_USER_DIR)
|
|
|
|
tb_mod_add.o: sync_rtl/mod_add/TB/tb_mod_add.cpp
|
|
$(OBJCACHE) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(OPT_FAST) -c -o $@ $<
|
|
|
|
### Link rules... (from --exe)
|
|
Vmod_add_sync: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a
|
|
$(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@
|
|
|
|
# Verilated -*- Makefile -*-
|