54 lines
2.3 KiB
Plaintext
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:
|