aboutsummaryrefslogtreecommitdiffstats
path: root/examples/ecp5_versa/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'examples/ecp5_versa/Makefile')
-rw-r--r--examples/ecp5_versa/Makefile52
1 files changed, 52 insertions, 0 deletions
diff --git a/examples/ecp5_versa/Makefile b/examples/ecp5_versa/Makefile
new file mode 100644
index 0000000..6031055
--- /dev/null
+++ b/examples/ecp5_versa/Makefile
@@ -0,0 +1,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