rendered paste body
.PHONY: tags clean test
RTL_DIR := rtl/verilog
RTL_OW_DIR := rtl/verilog/1-wire
TB_DIR := bench/verilog
RTL_SOURCE := $(wildcard $(RTL_DIR)/*.v)
TB_SOURCE := $(wildcard $(TB_DIR)/*.v)
# tools used:
# iverilog - Icarus Verilog compiler
# vvp - Icarus Verilog vvp runtime engine
tags:
ctags -w `find $(RTL_DIR) $(RTL_OW_DIR) $(TB_DIR) \
\( -name .svn -prune \) -o \( -name '*.[v]' -print \)`
rtl: $(RTL_SOURCE)
iverilog -I$(RTL_DIR) -y$(RTL_DIR) \
$(RTL_DIR)/cpld_common.v \
-o cpld.vvp
touch rtl
tb: $(RTL_SOURCE) $(TB_SOURCE)
iverilog -I$(RTL_DIR) -y$(RTL_DIR) -y$(TB_DIR) \
$(TB_DIR)/tst_bench_top.v \
-o tb.vvp
touch tb
tb_sim: tb
vvp tb.vvp
touch tb_sim
wave: tb_sim
gtkwave sim.vcd traces.wav
clean:
rm sim/rtl_sim/out/*.vvp