Makefile 948 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. GHDL = ghdl
  2. VIEWER = gtkwave
  3. WAVEFILE = simulation/waves.vcd
  4. TOP_DESIGN = ha
  5. DESIGN_FILES_DIR = hdl_design
  6. DESIGN_FILES = ha.vhd
  7. DESIGN_FILES_FULL_PATH = $(addprefix $(DESIGN_FILES_DIR)/,$(DESIGN_FILES))
  8. WORK_DIR = simulation
  9. WORK_LIBRARY = work
  10. GHDL_OPTIONS = --work=$(WORK_LIBRARY) --workdir=$(WORK_DIR)
  11. TOP_TESTBENCH = ha_tb
  12. TEST_BENCHES_DIR = testbench
  13. TEST_BENCHES = ha_tb.vhd
  14. TEST_BENCHES_FULL_PATH = $(addprefix $(TEST_BENCHES_DIR)/,$(TEST_BENCHES))
  15. .PHONY: all clean analyze elaborate run view debug
  16. all: analyze elaborate run view
  17. analyze: $(DESIGN_FILES_FULL_PATH) $(TEST_BENCHES_FULL_PATH)
  18. $(GHDL) -a $(GHDL_OPTIONS) $(DESIGN_FILES_FULL_PATH) $(TEST_BENCHES_FULL_PATH)
  19. elaborate: analyze
  20. $(GHDL) -e $(GHDL_OPTIONS) $(TOP_TESTBENCH)
  21. run: elaborate
  22. $(GHDL) -r $(GHDL_OPTIONS) $(TOP_TESTBENCH) --vcd=$(WAVEFILE)
  23. view: run
  24. $(VIEWER) $(WAVEFILE)
  25. clean:
  26. $(GHDL) --remove $(GHDL_OPTIONS)
  27. debug:
  28. echo $(DESIGN_FILES_FULL_PATH)