22RISCV_GNU_TOOLCHAIN_GIT_REVISION  = 411d134
33RISCV_GNU_TOOLCHAIN_INSTALL_PREFIX  = /opt/riscv32
44
5+ #  Give the user some easy overrides for local configuration quirks.
6+ #  If you change one of these and it breaks, then you get to keep both pieces.
57SHELL  = bash
8+ PYTHON  = python3
9+ VERILATOR  = verilator
10+ ICARUS_SUFFIX  =
11+ IVERILOG  = iverilog$(ICARUS_SUFFIX ) 
12+ VVP  = vvp$(ICARUS_SUFFIX ) 
13+ 
614TEST_OBJS  = $(addsuffix  .o,$(basename  $(wildcard  tests/* .S) ) ) 
715FIRMWARE_OBJS  = firmware/start.o firmware/irq.o firmware/print.o firmware/hello.o firmware/sieve.o firmware/multest.o firmware/stats.o
816GCC_WARNS   = -Werror -Wall -Wextra -Wshadow -Wundef -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings
@@ -14,64 +22,64 @@ COMPRESSED_ISA = C
1422GIT_ENV  = true
1523
1624test : testbench.vvp firmware/firmware.hex
17- 	vvp  -N $< 
25+ 	$( VVP ) $< 
1826
1927test_vcd : testbench.vvp firmware/firmware.hex
20- 	vvp  -N $<  +vcd +trace +noerror
28+ 	$( VVP ) $<  +vcd +trace +noerror
2129
2230test_rvf : testbench_rvf.vvp firmware/firmware.hex
23- 	vvp  -N $<  +vcd +trace +noerror
31+ 	$( VVP ) $<  +vcd +trace +noerror
2432
2533test_wb : testbench_wb.vvp firmware/firmware.hex
26- 	vvp  -N $< 
34+ 	$( VVP ) $< 
2735
2836test_wb_vcd : testbench_wb.vvp firmware/firmware.hex
29- 	vvp  -N $<  +vcd +trace +noerror
37+ 	$( VVP ) $<  +vcd +trace +noerror
3038
3139test_ez : testbench_ez.vvp
32- 	vvp  -N $< 
40+ 	$( VVP ) $< 
3341
3442test_ez_vcd : testbench_ez.vvp
35- 	vvp  -N $<  +vcd
43+ 	$( VVP ) $<  +vcd
3644
3745test_sp : testbench_sp.vvp firmware/firmware.hex
38- 	vvp  -N $< 
46+ 	$( VVP ) $< 
3947
4048test_axi : testbench.vvp firmware/firmware.hex
41- 	vvp  -N $<  +axi_test
49+ 	$( VVP ) $<  +axi_test
4250
4351test_synth : testbench_synth.vvp firmware/firmware.hex
44- 	vvp  -N $< 
52+ 	$( VVP ) $< 
4553
4654test_verilator : testbench_verilator firmware/firmware.hex
4755	./testbench_verilator
4856
4957testbench.vvp : testbench.v picorv32.v
50- 	iverilog  -o $@  $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  $^ 
58+ 	$( IVERILOG ) $@  $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  $^ 
5159	chmod -x $@ 
5260
5361testbench_rvf.vvp : testbench.v picorv32.v rvfimon.v
54- 	iverilog  -o $@  -D RISCV_FORMAL $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  $^ 
62+ 	$( IVERILOG ) $@  -D RISCV_FORMAL $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  $^ 
5563	chmod -x $@ 
5664
5765testbench_wb.vvp : testbench_wb.v picorv32.v
58- 	iverilog  -o $@  $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  $^ 
66+ 	$( IVERILOG ) $@  $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  $^ 
5967	chmod -x $@ 
6068
6169testbench_ez.vvp : testbench_ez.v picorv32.v
62- 	iverilog  -o $@  $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  $^ 
70+ 	$( IVERILOG ) $@  $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  $^ 
6371	chmod -x $@ 
6472
6573testbench_sp.vvp : testbench.v picorv32.v
66- 	iverilog  -o $@  $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  -DSP_TEST $^ 
74+ 	$( IVERILOG ) $@  $(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  -DSP_TEST $^ 
6775	chmod -x $@ 
6876
6977testbench_synth.vvp : testbench.v synth.v
70- 	iverilog  -o $@  -DSYNTH_TEST $^ 
78+ 	$( IVERILOG ) $@  -DSYNTH_TEST $^ 
7179	chmod -x $@ 
7280
7381testbench_verilator : testbench.v picorv32.v testbench.cc
74- 	verilator  --cc --exe -Wno-lint -trace --top-module picorv32_wrapper testbench.v picorv32.v testbench.cc \ 
82+ 	$( VERILATOR ) \ 
7583			$(subst  C,-DCOMPRESSED_ISA,$(COMPRESSED_ISA ) )  --Mdir testbench_verilator_dir
7684	$(MAKE )  -C testbench_verilator_dir -f Vpicorv32_wrapper.mk
7785	cp testbench_verilator_dir/Vpicorv32_wrapper testbench_verilator
@@ -92,7 +100,7 @@ synth.v: picorv32.v scripts/yosys/synth_sim.ys
92100	yosys -qv3 -l synth.log scripts/yosys/synth_sim.ys
93101
94102firmware/firmware.hex : firmware/firmware.bin firmware/makehex.py
95- 	python3  firmware/makehex.py $<  32768 >  $@ 
103+ 	$( PYTHON ) $<  32768 >  $@ 
96104
97105firmware/firmware.bin : firmware/firmware.elf
98106	$(TOOLCHAIN_PREFIX ) objcopy -O binary $<  $@ 
0 commit comments