1
0
GHDL-Project/Makefile-wip
2025-03-07 13:26:11 +01:00

54 lines
2.3 KiB
Plaintext

GHDL=ghdl
GHDL_STD=08
GHDL_FLAGS= --std=$(GHDL_STD) --workdir=ghdl
GHDL_FLAGS+=--ieee=standard
GHDL_FLAGS+=-fsynopsys
GHDL_RUN_FLAGS=
MODULES=\
carry_ripple_adder.o \
alu.o \
full_adder.o \
alu_testbench \
carry_ripple_adder_testbench \
full_adder_testbench
# Default target : elaborate
all : elab
# Elaborate target. Almost useless
elab : force
$(GHDL) -c $(GHDL_FLAGS) -e top_gc_di_tb
# Run target
run : force
$(GHDL) -c $(GHDL_FLAGS) -r top_gc_di_tb $(GHDLRUNFLAGS)
# Targets to analyze libraries
init: force
$(GHDL) -a $(GHDL_FLAGS) rtl\top_gc_di.vhd
$(GHDL) -a $(GHDL_FLAGS) testbenchs\top_gc_di_tb.vhd
test: $(MODULES)
./full_adder_testbench --vcd=full_adder_testbench.vcd
./carry_ripple_adder_testbench --vcd=carry_ripple_adder_testbench.vcd
./alu_testbench --vcd=alu_testbench.vcd
# Binary depends on the object file
%: %.o
$(GHDL) -e $(GHDL_FLAGS) $@
# Object file depends on source
%.o: %.vhd
$(GHDL) -a $(GHDL_FLAGS) $<
clean:
echo "Cleaning up..."
rm -f *.o *_testbench full_adder carry_ripple_adder work*.cf e*.lst
force: