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) .PHONY: python-lint python-lint: $(MAKE) -C util lint