Makefile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. GHDL = ghdl
  2. VIEWER = gtkwave
  3. WAVEFILE = simulation/waves.vcd
  4. #TOP_DESIGN = top.vhd # Not used when not synthesizing..
  5. # Add design files to this row
  6. DESIGN_FILES = generic_counter.vhd
  7. DESIGN_FILES_DIR = hdl_design
  8. DESIGN_FILES_FULL_PATH = $(addprefix $(DESIGN_FILES_DIR)/,$(DESIGN_FILES))
  9. WORK_DIR = simulation
  10. WORK_LIBRARY = work
  11. GHDL_OPTIONS = --work=$(WORK_LIBRARY) --workdir=$(WORK_DIR)
  12. # Name of the testbench entity to simulate
  13. TOP_TESTBENCH = tb
  14. # Add all testbench-related files on this row
  15. TEST_BENCHES = tb.vhd
  16. TEST_BENCHES_DIR = testbench
  17. TEST_BENCHES_FULL_PATH = $(addprefix $(TEST_BENCHES_DIR)/,$(TEST_BENCHES))
  18. .PHONY: all clean analyze elaborate run view debug
  19. all: analyze elaborate run view
  20. analyze: $(DESIGN_FILES_FULL_PATH) $(TEST_BENCHES_FULL_PATH)
  21. $(GHDL) -a $(GHDL_OPTIONS) $(DESIGN_FILES_FULL_PATH) $(TEST_BENCHES_FULL_PATH)
  22. elaborate: analyze
  23. $(GHDL) -e $(GHDL_OPTIONS) $(TOP_TESTBENCH)
  24. run: elaborate
  25. $(GHDL) -r $(GHDL_OPTIONS) $(TOP_TESTBENCH) --vcd=$(WAVEFILE)
  26. view: run
  27. $(VIEWER) $(WAVEFILE)
  28. clean:
  29. $(GHDL) --remove $(GHDL_OPTIONS)
  30. debug:
  31. echo $(DESIGN_FILES_FULL_PATH)