summaryrefslogtreecommitdiff
path: root/Makefile
blob: 915d9107774b3f442a6ad6815cc48dd979cb25b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
SOURCES := $(shell find hdl sim -name \*.sv -o -name \*.cpp)
HEADERS := $(shell find hdl -name \*.svh)
MEMORIES := $(shell find mem -name \*.hex) $(addprefix build/, $(addsuffix .hex, $(basename $(shell find mem -name \*.bin -o -name \*.pal))))
QUARTUS := $(shell find altera tcl -name \*.cdf -o -name \*.sdc -o -name \*.tcl)

OPTS ?=

sim: build/Vtop $(MEMORIES)
	$<
.PHONY: sim

build/p8bin2hex: tool/p8bin2hex.c
	@mkdir -p build
	gcc -Wall -Werror -o $@ $<

build/%.hex: build/%.bin build/p8bin2hex
	build/p8bin2hex $< > $@

build/%.hex: %.bin build/p8bin2hex
	build/p8bin2hex $< > $@

build/%.bin: %.pal
	@mkdir -p $(dir $@)
	palbart $<
	mv -f $*.bin $*.lst $(dir $@)

build/Vtop: $(SOURCES) $(HEADERS)
	@rm -rf verilator
	@mkdir -p build verilator
	verilator +1800-2017ext+sv -Wall -Wno-BLKSEQ -Wno-UNUSED -O3 -Ihdl $(OPTS) --Mdir verilator --autoflush --trace --cc --build -j --exe --top-module top $(SOURCES)
	@ln -t build -f verilator/Vtop
	@rm -rf verilator

noncpu.sof: $(SOURCES) $(HEADERS) $(MEMORIES) $(QUARTUS)
	[ ! -e noncpu.qpf ] || quartus_sh -t tcl/clean.tcl
	quartus_sh -t tcl/init.tcl
	quartus_sh --flow compile noncpu.qpf

fpga: noncpu.sof
	quartus_pgm -c 1 -m JTAG -o "P;$<@1"
	nios2-terminal
.PHONY: fpga

clean:
	git clean -dfX
.PHONY: clean

.SECONDARY: