aboutsummaryrefslogtreecommitdiffstats
path: root/spiflash/Makefile
blob: 7bb244c17a2261a23fb7f45b6097c405e26664dc (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

testbench: testbench.vvp firmware.hex
	vvp -N $<

testbench.vvp: spiflash.v spimemio.v testbench.v top.v ../picorv32.v
	iverilog -s testbench -o $@ $^

spiflash_tb: spiflash_tb.vvp firmware.hex
	vvp -N $<

spiflash_tb.vvp: spiflash.v spiflash_tb.v
	iverilog -s testbench -o $@ $^

prog: design.bin firmware.bin
	iceprog design.bin
	iceprog -o 1M firmware.bin

firmware.elf: firmware.s
	riscv32-unknown-elf-gcc -c -o firmware.elf firmware.s

firmware_vma.elf: firmware.elf
	riscv32-unknown-elf-objcopy --change-section-vma .text=0x00100000 firmware.elf firmware_vma.elf

firmware.hex: firmware_vma.elf
	riscv32-unknown-elf-objcopy -O verilog firmware_vma.elf firmware.hex

firmware.bin: firmware.elf
	riscv32-unknown-elf-objcopy -O binary firmware.elf firmware.bin

design.blif: spimemio.v top.v ../picorv32.v
	yosys -ql design.log -p 'synth_ice40 -top top -blif design.blif' $^

design.asc: pinout.pcf design.blif
	arachne-pnr -d 8k -o design.asc -p pinout.pcf design.blif

design.bin: design.asc
	icetime -d hx8k -c 12 -mtr design.rpt design.asc
	icepack design.asc design.bin

clean:
	rm -f testbench.vvp testbench.vcd spiflash_tb.vvp spiflash_tb.vcd
	rm -f firmware.elf firmware_vma.elf firmware.hex firmware.bin
	rm -f design.blif design.log design.asc design.rpt design.bin

.PHONY: testbench spiflash_tb prog clean