feat: publish FreeRTOS C FC09 card
This commit is contained in:
+53
@@ -0,0 +1,53 @@
|
||||
include ../project_paths.mk
|
||||
|
||||
TOP := tb
|
||||
DOTF := tb.f
|
||||
CONFIG := default
|
||||
TBEXEC := $(patsubst %.f,%,$(DOTF))
|
||||
|
||||
ifneq ($(CONFIG),default)
|
||||
TBEXEC := $(TBEXEC)-$(CONFIG)
|
||||
endif
|
||||
|
||||
FILE_LIST := $(shell HDL=$(HDL) $(SCRIPTS)/listfiles ../tb_common/hdl/$(DOTF))
|
||||
VINCDIR := $(shell HDL=$(HDL) $(SCRIPTS)/listfiles -f flati ../tb_common/hdl/$(DOTF))
|
||||
BUILD_DIR := build-$(patsubst %.f,%,$(DOTF))
|
||||
VOBJ_DIR := $(BUILD_DIR)/obj_dir
|
||||
VLIB := $(VOBJ_DIR)/V$(TOP)__ALL.a
|
||||
VERILATED_OBJS := $(VOBJ_DIR)/verilated.o $(VOBJ_DIR)/verilated_threads.o
|
||||
|
||||
VERILATOR_ROOT := $(shell verilator --getenv VERILATOR_ROOT)
|
||||
CXX := g++
|
||||
VERILATOR := verilator
|
||||
|
||||
TB_CFILES := tb.cpp $(wildcard ../tb_common/*.cpp)
|
||||
CINCLUDE := $(VOBJ_DIR) $(VERILATOR_ROOT)/include ../tb_common/include
|
||||
|
||||
.PHONY: clean all lint vcc vlib
|
||||
|
||||
all: $(TBEXEC)
|
||||
vcc: $(BUILD_DIR)/vcc.touch
|
||||
vlib: $(BUILD_DIR)/vlib.touch
|
||||
|
||||
$(BUILD_DIR)/vcc.touch: $(FILE_LIST) $(wildcard *.vh)
|
||||
mkdir -p $(VOBJ_DIR)
|
||||
$(VERILATOR) --Mdir $(VOBJ_DIR) --cc --top-module $(TOP) $(addprefix -I,$(VINCDIR)) -DCONFIG_HEADER="\"config_$(CONFIG).vh\"" $(FILE_LIST)
|
||||
touch $@
|
||||
|
||||
$(BUILD_DIR)/vlib.touch: $(BUILD_DIR)/vcc.touch
|
||||
# Verilator's archive (Vtb__ALL.a) does not include the run-time objects
|
||||
# (verilated.o/verilated_threads.o). Build them explicitly so the final
|
||||
# tb link step succeeds across Verilator versions/distros.
|
||||
$(MAKE) VERILATOR_ROOT=$(VERILATOR_ROOT) -C $(VOBJ_DIR) -f V$(TOP).mk \
|
||||
V$(TOP)__ALL.a verilated.o verilated_threads.o
|
||||
touch $@
|
||||
|
||||
clean::
|
||||
rm -rf $(BUILD_DIR) $(TBEXEC)
|
||||
|
||||
$(TBEXEC): $(BUILD_DIR)/vlib.touch $(TB_CFILES)
|
||||
$(CXX) -O3 -std=c++14 $(addprefix -D,$(CDEFINES) $(CDEFINES_$(DOTF))) \
|
||||
$(addprefix -I ,$(CINCLUDE)) $(TB_CFILES) $(VLIB) $(VERILATED_OBJS) -o $(TBEXEC) -pthread -latomic
|
||||
|
||||
lint:
|
||||
$(VERILATOR) --lint-only --top-module $(TOP) $(addprefix -I,$(VINCDIR)) -DCONFIG_HEADER="\"config_$(CONFIG).vh\"" $(FILE_LIST)
|
||||
Reference in New Issue
Block a user