-
Notifications
You must be signed in to change notification settings - Fork 67
/
Copy pathMakefile
82 lines (66 loc) · 2.24 KB
/
Makefile
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#
# This file is a part of: https://github.com/brilliantlabsAR/frame-codebase
#
# Authored by: Raj Nakarja / Brilliant Labs Ltd. ([email protected])
# Rohit Rathnam / Silicon Witchery AB ([email protected])
# Uma S. Gupta / Techno Exponent ([email protected])
#
# ISC Licence
#
# Copyright © 2023 Brilliant Labs Ltd.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
BUILD := ../../build
TOOLCHAIN ?= RADIANT
RADIANT_PATH ?= /opt/lscc/radiant/2023.2/bin/lin64
fpga_application.h: $(shell find . | egrep '.sv|.pdc')
@mkdir -p $(BUILD)
@if [ $(TOOLCHAIN) = YOSYS ]; then make yosys; else make radiant; fi
yosys:
@iverilog \
-Wall \
-g2012 \
-o /dev/null \
-i top.sv
@yosys \
-p "synth_nexus \
-json $(BUILD)/fpga_application.json" \
top.sv \
> $(BUILD)/yosys.log
@nextpnr-nexus \
--seed 12346 \
--device LIFCL-17-7UWG72 \
--pdc fpga_pinout.pdc \
--json $(BUILD)/fpga_application.json \
--fasm $(BUILD)/fpga_application.fasm
@prjoxide \
pack \
$(BUILD)/fpga_application.fasm \
$(BUILD)/fpga_application.bit
@make package
radiant:
@cd ./radiant && $(RADIANT_PATH)/radiantc run.tcl
@mv ./radiant/frame/frame_frame.bit $(BUILD)/fpga_application.bit
@make package
package:
@lz4 -9 -f -B4096 $(BUILD)/fpga_application.bit $(BUILD)/fpga_application
@cd $(BUILD) && \
xxd \
-include fpga_application \
fpga_application_temp.h
@sed '1s/^/const /' $(BUILD)/fpga_application_temp.h > fpga_application.h
clean:
@rm -rf $(BUILD) fpga_application.h
@echo Cleaned
.PHONY: yosys radiant package clean