52 lines
1.1 KiB
Makefile
52 lines
1.1 KiB
Makefile
VERILATOR = verilator
|
|
VERILATOR_CFLAGS += -MMD -Wall --build -cc -Wno-lint \
|
|
-O3 --x-assign fast --x-initial fast --noassert
|
|
|
|
# include path
|
|
INC_PATH ?=
|
|
|
|
# files of the RTL project
|
|
TOPNAME ?= top
|
|
DIR ?= $(NVBOARD_HOME)/example
|
|
OBJ_DIR = $(DIR)/obj_dir
|
|
|
|
# generated executable file
|
|
DST_EXE = NVBOARD_$(TOPNAME)
|
|
DST_BIN = $(OBJ_DIR)/$(DST_EXE)
|
|
|
|
# SRC of the project
|
|
|
|
SRC_DIR ?= $(DIR)/src
|
|
SRCS ?= $(shell find $(SRC_DIR) -name "*.v" -or -name "*.c" -or -name "*.cc" -or -name "*.cpp")
|
|
|
|
### Default rules...
|
|
|
|
# Build rules of nvboard
|
|
include $(NVBOARD_HOME)/scripts/nvboard.mk
|
|
|
|
INCFLAGS = $(addprefix -I, $(INC_PATH))
|
|
CFLAGS += $(INCFLAGS) -DTOP_NAME="\"V$(TOPNAME)\""
|
|
|
|
LDFLAGS += -lSDL2 -lSDL2_image
|
|
|
|
$(DST_BIN): $(SRCS) $(NBD_ARCHIVE)
|
|
@rm -rf $(OBJ_DIR)
|
|
@echo $(INC_PATH)
|
|
@$(VERILATOR) $(VERILATOR_CFLAGS) \
|
|
-top $(TOPNAME) $^ \
|
|
$(addprefix -CFLAGS , $(CFLAGS)) $(addprefix -LDFLAGS , $(LDFLAGS)) \
|
|
--Mdir $(OBJ_DIR) --exe -o $(DST_EXE)
|
|
|
|
NXDC_FILES ?= $(shell find $(SRC_DIR) -name "*.nxdc")
|
|
|
|
nxdc: $(NXDC_FILES)
|
|
python $(NVBOARD_HOME)/scripts/auto_pin_bind.py $(NXDC_FILES)
|
|
|
|
run: $(DST_BIN) nxdc
|
|
@$(DST_BIN)
|
|
|
|
clean:
|
|
rm -rf $(OBJ_DIR)
|
|
|
|
.PHONY: clean run nxdc
|