diff --git a/lib/CPUs/JCpu/ghdl/cpu_embedded.make b/lib/CPUs/JCpu/ghdl/cpu_embedded.make index 42660ca..cbb3876 100644 --- a/lib/CPUs/JCpu/ghdl/cpu_embedded.make +++ b/lib/CPUs/JCpu/ghdl/cpu_embedded.make @@ -11,7 +11,6 @@ SRCS += ../src/tb_cpu_embedded.vhd # Compile TARGET := cpu_embedded ENTITY := tb_cpu_embedded -WITH_GHW := y include $(VHDL_HOME)/make/ghdl.mk diff --git a/lib/CPUs/JCpu/ghdl/cpu_itest.make b/lib/CPUs/JCpu/ghdl/cpu_itest.make index 156aff6..e7de19c 100644 --- a/lib/CPUs/JCpu/ghdl/cpu_itest.make +++ b/lib/CPUs/JCpu/ghdl/cpu_itest.make @@ -12,7 +12,6 @@ SRCS += ../src/tb_cpu_itest.vhd # Compile TARGET := cpu_itest ENTITY := tb_cpu -WITH_GHW := y include $(VHDL_HOME)/make/ghdl.mk diff --git a/lib/CPUs/JCpu/ghdl/mul8x8.make b/lib/CPUs/JCpu/ghdl/mul8x8.make index 4c3949c..b211dd7 100644 --- a/lib/CPUs/JCpu/ghdl/mul8x8.make +++ b/lib/CPUs/JCpu/ghdl/mul8x8.make @@ -11,7 +11,6 @@ SRCS += ../src/tb_cpu_embedded.vhd # Compile TARGET := mul8x8 ENTITY := tb_cpu_embedded -WITH_GHW := y include $(VHDL_HOME)/make/ghdl.mk diff --git a/lib/CPUs/JCpu/ghdl/reti_issue.make b/lib/CPUs/JCpu/ghdl/reti_issue.make index 1625e5a..fb3d3c0 100644 --- a/lib/CPUs/JCpu/ghdl/reti_issue.make +++ b/lib/CPUs/JCpu/ghdl/reti_issue.make @@ -12,7 +12,6 @@ SRCS += ../src/tb_cpu_itest.vhd # Compile TARGET := reti_issue ENTITY := tb_cpu -WITH_GHW := y include $(VHDL_HOME)/make/ghdl.mk diff --git a/make/ghdl.mk b/make/ghdl.mk index 03ab894..caf9b4e 100644 --- a/make/ghdl.mk +++ b/make/ghdl.mk @@ -10,6 +10,7 @@ WORK_LIB ?= work LANG_STD ?= 93c IEEE_STD ?= standard RUN_TIME ?= 1000ns +WAVE_FORMAT ?= FST # Build path BUILD_DIR ?= build/$(TARGET) @@ -40,20 +41,23 @@ SRCS := $(filter-out ,$(SRCS)) GHDL := ghdl GHDL_GCC := ghdl-gcc -# Output stuff -SIM_FILE-$(WITH_VCD) := $(BUILD_DIR)/$(TARGET).vcd -SIM_FILE-$(WITH_FST) := $(BUILD_DIR)/$(TARGET).fst -SIM_FILE-$(WITH_GHW) := $(BUILD_DIR)/$(TARGET).ghw +# Wave format selection +SIM_FILE-VCD := $(BUILD_DIR)/$(TARGET).vcd +GTK_OPTS-VCD := --vcd=$(SIM_FILE-VCD) -GTK_OPTS-$(WITH_VCD) := --vcd=$(SIM_FILE-y) -GTK_OPTS-$(WITH_FST) := --fst=$(SIM_FILE-y) -GTK_OPTS-$(WITH_GHW) := --wave=$(SIM_FILE-y) +SIM_FILE-FST := $(BUILD_DIR)/$(TARGET).fst +GTK_OPTS-FST := --fst=$(SIM_FILE-FST) + +SIM_FILE-GHW := $(BUILD_DIR)/$(TARGET).ghw +GTK_OPTS-GHW := --wave=$(SIM_FILE-GHW) + +SIM_FILE := $(SIM_FILE-$(WAVE_FORMAT)) +GTK_OPTS := $(GTK_OPTS-$(WAVE_FORMAT)) # ------------------------------------------------- # Targets # ------------------------------------------------- - all: analyze $(WORK_DIR): @@ -86,16 +90,16 @@ run: analyze $(GHDL) -r $(GHDL_OPTS) $(ENTITY) $(RUN_OPTS) run_wave: analyze - $(GHDL) -r $(GHDL_OPTS) $(ENTITY) $(RUN_OPTS) $(GTK_OPTS-y) >$(BUILD_DIR)/$(TARGET).log + $(GHDL) -r $(GHDL_OPTS) $(ENTITY) $(RUN_OPTS) $(GTK_OPTS) >$(BUILD_DIR)/$(TARGET).log synth: analyze $(GHDL) --synth $(GHDL_OPTS) $(ENTITY) wave: run_wave - exec gtkwave -f $(SIM_FILE-y) -a $(BUILD_DIR)/$(TARGET).gtkw & + exec gtkwave -f $(SIM_FILE) -a $(BUILD_DIR)/$(TARGET).gtkw & result: - exec gtkwave -f $(SIM_FILE-y) -a $(BUILD_DIR)/$(TARGET).gtkw & + exec gtkwave -f $(SIM_FILE) -a $(BUILD_DIR)/$(TARGET).gtkw & tree: analyze $(GHDL) -r $(GHDL_OPTS) $(ENTITY) $(RUN_OPTS) --no-run --disp-tree=inst