65 lines
1.9 KiB
Makefile
65 lines
1.9 KiB
Makefile
TOP := top
|
|
CNSTRFILE := constraints.xdc
|
|
PART := xc7z007sclg400-1
|
|
|
|
HW_SERVER := localhost:3121
|
|
HW_TARGET := $(HW_SERVER)/xilinx_tcf/Xilinx/*
|
|
HW_DEVICE := xc7z007s_1
|
|
|
|
SRCDIR := $(realpath src)
|
|
DCPDIR := dcp
|
|
BINDIR := bin
|
|
TBDIR := $(realpath tb)
|
|
DUMPDIR := dump
|
|
TBBINDIR := $(BINDIR)/tb
|
|
|
|
SCRIPT_SYNTH := $(shell realpath tcl/synth.tcl)
|
|
SCRIPT_IMPL := $(shell realpath tcl/impl.tcl)
|
|
SCRIPT_GENBIT := $(shell realpath tcl/genbit.tcl)
|
|
SCRIPT_PROGDEV := $(shell realpath tcl/prog_device.tcl)
|
|
SCRIPT_RUNTB := $(shell realpath sh/runtb.sh)
|
|
SCRIPT_TBLOGVCD := $(shell realpath tcl/tblogvcd.tcl)
|
|
|
|
VERILATORFLAGS := --cc -Wno-WIDTH -Wno-UNOPTFLAT --trace --trace-structs --binary -I$(SRCDIR) -I$(TBDIR)
|
|
|
|
default: all
|
|
all : synth impl genbit
|
|
|
|
synth : $(DCPDIR)/default.synth.dcp
|
|
impl : $(DCPDIR)/default.impl.dcp
|
|
genbit : $(BINDIR)/default.bit
|
|
prog_device : prog_device.default
|
|
|
|
clean :
|
|
@if [ -d $(DCPDIR) ]; then rm -r $(DCPDIR); fi
|
|
@if [ -d $(BINDIR) ]; then rm -r $(BINDIR); fi
|
|
|
|
### Synthesis/implementation/programming rules
|
|
|
|
$(DCPDIR)/%.synth.dcp : $(wildcard $(SRCDIR)/*.v)
|
|
mkdir -p $(DCPDIR)
|
|
vivado -nolog -nojournal -mode batch -source $(SCRIPT_SYNTH) -tclargs $@ $(PART) $(TOP) $^
|
|
|
|
$(DCPDIR)/%.impl.dcp : $(DCPDIR)/%.synth.dcp
|
|
vivado -nolog -nojournal -mode batch -source $(SCRIPT_IMPL) -tclargs $@ $< $(CNSTRFILE)
|
|
|
|
$(BINDIR)/%.bit : $(DCPDIR)/%.impl.dcp
|
|
mkdir -p $(BINDIR)
|
|
vivado -nolog -nojournal -mode batch -source $(SCRIPT_GENBIT) -tclargs $@ $<
|
|
|
|
prog_device.% : $(BINDIR)/%.bit
|
|
vivado -nolog -nojournal -mode batch -source $(SCRIPT_PROGDEV) -tclargs $< $(HW_SERVER) $(HW_TARGET) $(HW_DEVICE)
|
|
|
|
### Testbench rules
|
|
|
|
.NOTINTERMEDIATE : $(TBBINDIR)/%/dump.vcd
|
|
$(TBBINDIR)/%/dump.vcd : $(wildcard $(TBDIR)/*.v) $(wildcard $(SRCDIR)/*.v)
|
|
mkdir -p $(TBBINDIR)/$*
|
|
cd $(TBBINDIR)/$* && $(SCRIPT_RUNTB) $(SCRIPT_TBLOGVCD) $* $^
|
|
|
|
viewdump.% : $(TBBINDIR)/%/dump.vcd
|
|
nohup gtkwave $< &> /dev/null &
|
|
|
|
runtb.% : $(TBBINDIR)/%/dump.vcd
|
|
|