In-Field Testing Using MISR
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
1.5 KiB

#
# picorv32 / sbst config
#
SBST_SRCS := $(wildcard sbst_programs/*.c)
#
# jpeg_core config
#
JPEG_CORE_VVP := jpeg_core_tb.vvp
JPEG_CORE_INFILE ?= test.jpg
JPEG_CORE_OUTFILE ?= output.ppm
JPEG_CORE_VVP_FLAGS ?=
JPEG_CORE_DIR := core_jpeg/src_v
JPEG_CORE_SRCS := $(wildcard $(JPEG_CORE_DIR)/*.v)
JPEG_CORE_TB := jpeg_core_tb.v
#
# General targets
#
.PHONY: all jpeg_rtl_sim clean
all: $(JPEG_CORE_VVP)
clean:
rm -f $(JPEG_CORE_VVP) $(JPEG_CORE_OUTFILE) *.vcd $(SBST_SRCS:.c=.bin) $(SBST_SRCS:.c=.hex)
#
# jpeg_core targets
#
$(JPEG_CORE_VVP): $(JPEG_CORE_TB) $(JPEG_CORE_SRCS)
iverilog -g2005 -Wall -o $@ $^
# Run RTL simulation
jpeg_rtl_sim: $(JPEG_CORE_VVP)
vvp $< $(JPEG_CORE_VVP_FLAGS) +infile=$(JPEG_CORE_INFILE) +outfile=$(JPEG_CORE_OUTFILE)
#
# picorv32 targets
#
test_vcd:
make -C picorv32 test_vcd
test_ez_vcd:
make -C picorv32 test_ez_vcd
testbench.npy:
./picorv32_vcd_import.py picorv32/testbench.vcd testbench.npy
sbst_programs: $(SBST_SRCS:.c=.bin) $(SBST_SRCS:.c=.hex)
sbst_programs/%.elf: sbst_programs/%.c sbst_programs/start.S
riscv64-unknown-elf-gcc -march=rv32ima_zicsr -mabi=ilp32 -ffreestanding -O0 -nostdlib -o $@ $^ -T picorv32/firmware/riscv.ld
sbst_programs/%.bin: sbst_programs/%.elf
riscv64-unknown-elf-objcopy -O binary $^ $@
sbst_programs/%.hex: sbst_programs/%.bin
python3 -c "import os; d=open('$^','rb').read(); [print('{:02x}{:02x}{:02x}{:02x}'.format(d[i+3],d[i+2],d[i+1],d[i])) for i in range(0,len(d),4)]" > $@