mirror of
https://github.com/openhwgroup/cve2.git
synced 2025-04-24 22:17:39 -04:00
Also renames configs as part of this as they start to get unweildy if all features get described in the config name.
113 lines
3.1 KiB
Makefile
113 lines
3.1 KiB
Makefile
IBEX_CONFIG ?= small
|
|
|
|
FUSESOC_CONFIG_OPTS = $(shell ./util/ibex_config.py $(IBEX_CONFIG) fusesoc_opts)
|
|
|
|
all: help
|
|
|
|
.PHONY: help
|
|
help:
|
|
@echo "This is a short hand for running popular tasks."
|
|
@echo "Please check the documentation on how to get started"
|
|
@echo "or how to set-up the different environments."
|
|
|
|
# Use a parallel run (make -j N) for a faster build
|
|
build-all: build-riscv-compliance build-simple-system build-arty-100 \
|
|
build-csr-test
|
|
|
|
|
|
# RISC-V compliance
|
|
.PHONY: build-riscv-compliance
|
|
build-riscv-compliance:
|
|
fusesoc --cores-root=. run --target=sim --setup --build \
|
|
lowrisc:ibex:ibex_riscv_compliance \
|
|
$(FUSESOC_CONFIG_OPTS)
|
|
|
|
|
|
# Simple system
|
|
# Use the following targets:
|
|
# - "build-simple-system"
|
|
# - "run-simple-system"
|
|
.PHONY: build-simple-system
|
|
build-simple-system:
|
|
fusesoc --cores-root=. run --target=sim --setup --build \
|
|
lowrisc:ibex:ibex_simple_system \
|
|
$(FUSESOC_CONFIG_OPTS)
|
|
|
|
simple-system-program = examples/sw/simple_system/hello_test/hello_test.vmem
|
|
sw-simple-hello: $(simple-system-program)
|
|
|
|
.PHONY: $(simple-system-program)
|
|
$(simple-system-program):
|
|
cd examples/sw/simple_system/hello_test && $(MAKE)
|
|
|
|
Vibex_simple_system = \
|
|
build/lowrisc_ibex_ibex_simple_system_0/sim-verilator/Vibex_simple_system
|
|
$(Vibex_simple_system):
|
|
@echo "$@ not found"
|
|
@echo "Run \"make build-simple-system\" to create the dependency"
|
|
@false
|
|
|
|
run-simple-system: sw-simple-hello | $(Vibex_simple_system)
|
|
build/lowrisc_ibex_ibex_simple_system_0/sim-verilator/Vibex_simple_system \
|
|
--raminit=$(simple-system-program)
|
|
|
|
|
|
# Arty A7 FPGA example
|
|
# Use the following targets (depending on your hardware):
|
|
# - "build-arty-35"
|
|
# - "build-arty-100"
|
|
# - "program-arty"
|
|
arty-sw-program = examples/sw/led/led.vmem
|
|
sw-led: $(arty-sw-program)
|
|
|
|
.PHONY: $(arty-sw-program)
|
|
$(arty-sw-program):
|
|
cd examples/sw/led && $(MAKE)
|
|
|
|
.PHONY: build-arty-35
|
|
build-arty-35: sw-led
|
|
fusesoc --cores-root=. run --target=synth --setup --build \
|
|
lowrisc:ibex:top_artya7 --part xc7a35ticsg324-1L
|
|
|
|
.PHONY: build-arty-100
|
|
build-arty-100: sw-led
|
|
fusesoc --cores-root=. run --target=synth --setup --build \
|
|
lowrisc:ibex:top_artya7 --part xc7a100tcsg324-1
|
|
|
|
.PHONY: program-arty
|
|
program-arty:
|
|
fusesoc --cores-root=. run --target=synth --run \
|
|
lowrisc:ibex:top_artya7
|
|
|
|
|
|
# Lint check
|
|
.PHONY: lint-core-tracing
|
|
lint-core-tracing:
|
|
fusesoc --cores-root . run --target=lint lowrisc:ibex:ibex_core_tracing \
|
|
$(FUSESOC_CONFIG_OPTS)
|
|
|
|
|
|
# CS Registers testbench
|
|
# Use the following targets:
|
|
# - "build-csr-test"
|
|
# - "run-csr-test"
|
|
.PHONY: build-csr-test
|
|
build-csr-test:
|
|
fusesoc --cores-root=. run --target=sim --setup --build \
|
|
--tool=verilator lowrisc:ibex:tb_cs_registers
|
|
Vtb_cs_registers = \
|
|
build/lowrisc_ibex_tb_cs_registers_0/sim-verilator/Vtb_cs_registers
|
|
$(Vtb_cs_registers):
|
|
@echo "$@ not found"
|
|
@echo "Run \"make build-csr-test\" to create the dependency"
|
|
@false
|
|
|
|
.PHONY: run-csr-test
|
|
run-csr-test: | $(Vtb_cs_registers)
|
|
fusesoc --cores-root=. run --target=sim --run \
|
|
--tool=verilator lowrisc:ibex:tb_cs_registers
|
|
|
|
# Echo the parameters passed to fusesoc for the chosen IBEX_CONFIG
|
|
.PHONY: test-cfg
|
|
test-cfg:
|
|
@echo $(FUSESOC_CONFIG_OPTS)
|