aboutsummaryrefslogtreecommitdiffstats
path: root/examples/ecp5_versa/Makefile
blob: 60310552fb9545296e2b2ca15a84b511d913468c (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
LIB = ../../library

GHDL ?= ghdl

GHDL_FLAGS = -Plib

CLK_FREQ = 25000000

GHDL_GENERICS=-gCLK_FREQUENCY=$(CLK_FREQ)
LPF = versa_ecp5.lpf
PACKAGE = CABGA381
NEXTPNR_FLAGS = --um5g-45k --freq 100
NEXTPNR_FLAGS += --lpf-allow-unconstrained
OPENOCD_JTAG_CONFIG = ../../openocd/ecp5-versa.cfg
OPENOCD_DEVICE_CONFIG = ../../openocd/LFE5UM5G-45F.cfg

WORKDIR = work
# Files to synthesize:
VHDL_SYN_FILES = versa_ecp5_top.vhdl pll_mac.vhd
VHDL_SYN_FILES += soc_iomap_pkg.vhdl
VHDL_SYN_FILES += uart.vhdl uart_tx.vhdl uart_rx.vhdl fifobuf.vhdl

TOPLEVEL = versa_ecp5_top
TOPLEVEL_PARAMETER = _$(CLK_FREQ)

VERILOG_FILES = $(LIB)/wrapper/primitives.v
VERILOG_FILES += $(LIB)/wrapper/wrapper.v
VERILOG_FILES += $(LIB)/wrapper/bram.v

SVFFILE = versa_ecp5_top.svf
DEPENDENCIES = lib/ecp5um-std93.cf

all: $(SVFFILE)

include ../docker.mk
include ../ghdlsynth.mk

lib:
	mkdir $@

lib/ecp5um-std93.cf: $(LIB)/ecp5u/components.vhdl | lib
	$(GHDL) -i --workdir=$(dir $@) --work=ecp5um \
		$< 

pll_mac.vhd: $(DEPENDENCIES) 

prog: $(SVFFILE)
	$(OPENOCD) -f $(OPENOCD_JTAG_CONFIG) -f $(OPENOCD_DEVICE_CONFIG) \
		-c "transport select jtag; init; svf $<; exit"

clean:
	rm -fr lib work *.json *.svf *.config *-report.txt