1 GHDL = ghdl 2 3 GHDL_AFLAGS = --std=93 4 GHDL_EFLAGS = --std=93 5 GHDL_RFLAGS = --std=93 6 7 DEV_NAME = intersection_ctrl 8 TOP = $(DEV_NAME)_tb 9 RTL_DIR = rtl 10 TB_DIR = tb 11 12 PKG_SRCS = $(wildcard $(RTL_DIR)/*_pkg.vhd) 13 RTL_SRCS = \ 14 $(RTL_DIR)/rtc.vhd \ 15 $(RTL_DIR)/cnt.vhd \ 16 $(RTL_DIR)/semaphore.vhd \ 17 $(RTL_DIR)/intersection_ctrl.vhd 18 TB_SRCS = $(wildcard $(TB_DIR)/*.vhd) 19 20 SRCS = $(PKG_SRCS) $(RTL_SRCS) $(TB_SRCS) 21 WAVEFORM_FILE = $(TOP).vcd 22 RUNOPTS = --vcd=$(WAVEFORM_FILE) --stop-time=1ms 23 24 25 all: run 26 27 analyze: 28 $(GHDL) -a $(GHDL_AFLAGS) $(PKG_SRCS) 29 $(GHDL) -a $(GHDL_AFLAGS) $(RTL_SRCS) 30 $(GHDL) -a $(GHDL_AFLAGS) $(TB_SRCS) 31 32 elaborate: analyze 33 $(GHDL) -e $(GHDL_EFLAGS) $(TOP) 34 35 run: elaborate 36 $(GHDL) -r $(GHDL_RFLAGS) $(TOP) $(RUNOPTS) 37 38 clean: 39 rm -f *.o *.cf $(TOP) $(WAVEFORM_FILE) 40 41 view: all 42 nohup surfer $(WAVEFORM_FILE) >/dev/null 2>&1 &
