2016-08-30 12:12:08 +08:00
|
|
|
|
2016-08-30 12:37:29 +08:00
|
|
|
QUARTUS_ROOTDIR = /opt/altera_lite/16.0
|
|
|
|
QUARTUS_BIN = $(QUARTUS_ROOTDIR)/quartus/bin
|
|
|
|
|
|
|
|
VLOG = iverilog
|
|
|
|
TOOLCHAIN_PREFIX = /opt/riscv32i/bin/riscv32-unknown-elf-
|
2016-08-30 12:12:08 +08:00
|
|
|
|
|
|
|
export VIVADO
|
|
|
|
|
|
|
|
help:
|
|
|
|
@echo ""
|
|
|
|
@echo "Simple synthesis tests:"
|
|
|
|
@echo " make synth_area_{small|regular|large}"
|
|
|
|
@echo " make synth_speed"
|
|
|
|
@echo ""
|
|
|
|
@echo "Example system:"
|
|
|
|
@echo " make synth_system"
|
|
|
|
@echo " make sim_system"
|
|
|
|
@echo ""
|
|
|
|
@echo "Timing and Utilization Evaluation:"
|
|
|
|
@echo " make table.txt"
|
|
|
|
@echo " make area"
|
|
|
|
@echo ""
|
|
|
|
|
|
|
|
synth_%:
|
|
|
|
rm -f $@.log
|
|
|
|
$(VIVADO) -nojournal -log $@.log -mode batch -source $@.tcl
|
|
|
|
rm -rf .Xil fsm_encoding.os synth_*.backup.log usage_statistics_webtalk.*
|
|
|
|
-grep -B4 -A10 'Slice LUTs' $@.log
|
|
|
|
-grep -B1 -A9 ^Slack $@.log && echo
|
|
|
|
|
|
|
|
synth_system: firmware.hex
|
|
|
|
|
2016-08-30 12:37:29 +08:00
|
|
|
sim_system: firmware.hex system_tb.v system.v ../../picorv32.v
|
|
|
|
$(VLOG) -o system_tb system_tb.v system.v ../../picorv32.v
|
|
|
|
./system_tb
|
2016-08-30 12:12:08 +08:00
|
|
|
|
|
|
|
firmware.hex: firmware.S firmware.c firmware.lds
|
|
|
|
$(TOOLCHAIN_PREFIX)gcc -Os -m32 -ffreestanding -nostdlib -o firmware.elf firmware.S firmware.c \
|
|
|
|
--std=gnu99 -Wl,-Bstatic,-T,firmware.lds,-Map,firmware.map,--strip-debug -lgcc
|
|
|
|
$(TOOLCHAIN_PREFIX)objcopy -O binary firmware.elf firmware.bin
|
|
|
|
python3 ../../firmware/makehex.py firmware.bin 4096 > firmware.hex
|
|
|
|
|
|
|
|
tab_%/results.txt:
|
|
|
|
bash tabtest.sh $@
|
|
|
|
|
|
|
|
area: synth_area_small synth_area_regular synth_area_large
|
|
|
|
-grep -B4 -A10 'Slice LUTs' synth_area_small.log synth_area_regular.log synth_area_large.log
|
|
|
|
|
|
|
|
table.txt: tab_small_xc7a_1/results.txt tab_small_xc7a_2/results.txt tab_small_xc7a_3/results.txt
|
|
|
|
table.txt: tab_small_xc7k_1/results.txt tab_small_xc7k_2/results.txt tab_small_xc7k_3/results.txt
|
|
|
|
table.txt: tab_small_xc7v_1/results.txt tab_small_xc7v_2/results.txt tab_small_xc7v_3/results.txt
|
|
|
|
table.txt: tab_small_xcku_1/results.txt tab_small_xcku_2/results.txt tab_small_xcku_3/results.txt
|
|
|
|
table.txt: tab_small_xcvu_1/results.txt tab_small_xcvu_2/results.txt tab_small_xcvu_3/results.txt
|
|
|
|
|
|
|
|
table.txt:
|
|
|
|
bash table.sh > table.txt
|
|
|
|
|
|
|
|
clean:
|
2016-08-30 12:37:29 +08:00
|
|
|
rm -rf firmware.bin firmware.elf firmware.hex firmware.map synth_*.log
|
2016-08-30 12:12:08 +08:00
|
|
|
rm -rf synth_*.mmi synth_*.bit synth_system.v table.txt tab_*/ webtalk.jou
|
|
|
|
|