SRCS=$(shell find src/ -type f -name "*.*v") SRCS+=$(shell find ../ip/ -type f -name "*.*v" -not \( -name "*tmpl*" \)) SRCS+=$(shell find ../src/ -type f -name "*.*v") INC=$(shell find include/ -type f) TEST_PROGRAM_NAME?=loop_test TEST_FOLDER?=$(REPO_TOP)/sw/test_code/$(TEST_PROGRAM_NAME) TEST_PROGRAM?=$(REPO_TOP)/sw/test_code/$(TEST_PROGRAM_NAME)/$(TEST_PROGRAM_NAME).hex #TODO implement something like sources.list TOP_MODULE=sim_top TARGET=sim_top INIT_MEM=init_hex.mem FLAGS=-DSIM -DRTL_SIM all: sim .PHONY: sim sim: $(TARGET) vvp $(TARGET) -fst $(TARGET): $(INIT_MEM) $(SRCS) iverilog -g2005-sv $(FLAGS) -s $(TOP_MODULE) -o $(TARGET) $(INC) $(SRCS) $(INIT_MEM): $(MAKE) -C $(TEST_FOLDER) cp $(TEST_PROGRAM) ./init_hex.mem .PHONY: clean clean: rm -rf $(TARGET) rm -rf $(INIT_MEM)