Files
vhdl/Common/make/ghdl.mk
T
jens 808f924277 - added FST
git-svn-id: http://moon:8086/svn/vhdl/trunk@1409 cc03376c-175c-47c8-b038-4cd826a8556b
2021-03-20 09:18:11 +00:00

57 lines
1.3 KiB
Makefile

# NAME
# BUILD_DIR
# SRCS
# ENTITY_RUN
# WITH_VCD
# WITH_VCD ?= y
GHDL := ghdl
GHDL_GCC := ghdl-gcc
SIM_FILE-$(WITH_VCD) := $(BUILD_DIR)/$(NAME).vcd
SIM_FILE-$(WITH_FST) := $(BUILD_DIR)/$(NAME).fst
SIM_FILE-$(WITH_GHW) := $(BUILD_DIR)/$(NAME).ghw
GTK_OPTS-$(WITH_VCD) := --vcd=$(SIM_FILE-y)
GTK_OPTS-$(WITH_FST) := --fst=$(SIM_FILE-y)
GTK_OPTS-$(WITH_GHW) := --wave=$(SIM_FILE-y)
RUN_OPTS := --assert-level=error
TS := ps
all: analyze
$(BUILD_DIR):
mkdir -p $@
analyze: $(BUILD_DIR) $(SRCS)
$(GHDL) -a --work=$(NAME) --workdir=$(BUILD_DIR) --time-resolution=$(TS) $(SRCS)
anaborate: $(BUILD_DIR) $(SRCS)
$(GHDL_GCC) -c -o $(BUILD_DIR)/$(NAME) -Wc,O2 --work=$(NAME) --workdir=$(BUILD_DIR) $(SRCS) -e $(ENTITY_RUN)
-$(BUILD_DIR)/$(NAME) $(GTK_OPTS-y) $(RUN_OPTS) >$(BUILD_DIR)/$(NAME).log
run: analyze
-$(GHDL) -r --work=$(NAME) --workdir=$(BUILD_DIR) --time-resolution=$(TS) $(ENTITY_RUN) $(GTK_OPTS-y) $(RUN_OPTS) >$(BUILD_DIR)/$(NAME).log
sim: run
exec gtkwave -f $(SIM_FILE-y) -a $(BUILD_DIR)/$(NAME).gtkw &
synth: analyze
$(GHDL) --synth --work=$(NAME) --workdir=$(BUILD_DIR) $(ENTITY_SYN)
clean:
rm -f $(BUILD_DIR)/$(NAME)*.cf
rm -f $(BUILD_DIR)/$(NAME)*.vcd
rm -f $(BUILD_DIR)/$(NAME)*.fst
rm -f $(BUILD_DIR)/$(NAME)*.ghw
rm -f $(BUILD_DIR)/$(NAME)*.log
rm -f $(BUILD_DIR)/$(NAME)*.o
mrproper:
rm -rf $(BUILD_DIR)