aboutsummaryrefslogtreecommitdiff
path: root/VexRiscv/scripts/Murax/arty_a7/makefile
blob: b6726523006dd345b26e57bc162590ffeed17ee4 (plain)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
ROOT=../../..
SWBASE=$(ROOT)/src/main/c/murax
SOCSW=hello_world
SOCMEMSRC=$(SWBASE)/$(SOCSW)/build/$(SOCSW).v
SOCMEM=build/soc.mem

TOP=Murax

all : build/latest.bit

../../../$(TOP).v : toplevel.v
	(cd ../../..; sbt "runMain vexriscv.demo.Murax_arty")

.PHONY: $(SOCMEMSRC)
$(SOCMEMSRC):
	mkdir -p build
	make -C $(SWBASE)/$(SOCSW)

$(SOCMEM) : $(SOCMEMSRC)
	cp -u $(SOCMEMSRC) $(SOCMEM)

build/vivado_project/fpga.runs/impl_1/toplevel.bit : toplevel.v arty_a7.xdc ../../../$(TOP).v
	mkdir -p build
	./make_vivado_project
	cp build/vivado_project/fpga.runs/impl_1/toplevel.bit build/latest.bit

build/soc.mmi: build/vivado_project/fpga.runs/impl_1/toplevel.bit
	./make_mmi_files

build/latest_soc_sw.bit : $(SOCMEM) build/soc.mmi
	rm -f updatemem.jou updatemem.log
	updatemem -force --meminfo build/soc.mmi --data $(SOCMEM) --bit build/latest.bit --proc dummy --out build/latest_soc_sw.bit
	cp build/latest_soc_sw.bit build/latest.bit

build/latest.bit : build/latest_soc_sw.bit

build/latest.mcs : build/latest.bit
	./make_mcs_file

prog : build/latest.bit
	./write_fpga

flash : build/latest.mcs
	./write_flash

clean-soc-sw:
	make -C $(SWBASE)/$(SOCSW) clean-all

soc-sw: clean-soc-sw $(SOCMEM)

.PHONY: clean
clean :
	rm -rf build
	mkdir build
	rm -f updatemem.jou
	rm -f updatemem.log

clean-sw: clean-soc-sw

clean-all : clean clean-sw
	rm -f ../../../$(TOP).v
	rm -f ../../../$(TOP).v_*