-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathMakefile
61 lines (40 loc) · 2.08 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
# SPDX-FileCopyrightText: 2024 IObundle
#
# SPDX-License-Identifier: MIT
CORE := iob_cache
SIMULATOR := verilator
BOARD := aes_ku040_db_g
all: sim-run
BUILD_DIR ?= $(shell nix-shell --run "py2hwsw $(CORE) print_build_dir")
BE_IF ?= AXI4
BE_DATA_W ?= 32
DOC ?= ug
setup:
nix-shell --run "py2hwsw $(CORE) setup --no_verilog_lint --py_params 'be_if=$(BE_IF):be_data_w=$(BE_DATA_W)'"
sim-build: clean setup
nix-shell --run "make -C $(BUILD_DIR) sim-build SIMULATOR=$(SIMULATOR)"
sim-run: clean setup
nix-shell --run "make -C $(BUILD_DIR) sim-run SIMULATOR=$(SIMULATOR)"
sim-waves:
nix-shell --run "make -C $(BUILD_DIR) sim-waves"
sim-test: clean
nix-shell --run "make clean setup BE_IF=IOb BE_DATA_W=$(BE_DATA_W) && make -C $(BUILD_DIR) sim-run SIMULATOR=icarus"
nix-shell --run "make clean setup BE_IF=IOb BE_DATA_W=$(BE_DATA_W) && make -C $(BUILD_DIR) sim-run SIMULATOR=verilator"
nix-shell --run "make clean setup BE_IF=AXI4 BE_DATA_W=$(BE_DATA_W) && make -C $(BUILD_DIR) sim-run SIMULATOR=icarus"
nix-shell --run "make clean setup BE_IF=AXI4 BE_DATA_W=$(BE_DATA_W) && make -C $(BUILD_DIR) sim-run SIMULATOR=verilator"
fpga-build: clean
nix-shell --run "make setup BE_IF=$(BE_IF) BE_DATA_W=$(BE_DATA_W) && make -C $(BUILD_DIR) fpga-build FPGA_TOP=iob_cache_axi BOARD=$(BOARD)"
fpga-test: clean
nix-shell --run "make clean setup BE_IF=IOb BE_DATA_W=$(BE_DATA_W) && make -C $(BUILD_DIR) fpga-build BOARD=aes_ku040_db_g FPGA_TOP=iob_cache_iob BOARD=$(BOARD)"
nix-shell --run "make clean setup BE_IF=AXI4 BE_DATA_W=$(BE_DATA_W) && make -C $(BUILD_DIR) fpga-build BOARD=aes_ku040_db_g FPGA_TOP=iob_cache_axi BOARD=$(BOARD)"
doc-build: clean setup
nix-shell --run "make -C $(BUILD_DIR) doc-build DOC=$(DOC)"
doc-view: ../$(CORE)_V*/document/$(DOC).pdf
nix-shell --run "make -C $(BUILD_DIR) doc-view DOC=$(DOC)"
../$(CORE)_V*/document/$(DOC).pdf: doc-build
.PHONY: all setup sim-build sim-run sim-waves sim-test fpga-build fpga-test doc-build doc-view
clean:
nix-shell --run "py2hwsw $(CORE) clean --build_dir '$(BUILD_DIR)'"
@rm -rf ../*.summary ../*.rpt
@find . -name \*~ -delete
.PHONY: clean