blob: 004055011201fc861e9b0d51c873c47d37576c55 [file] [log] [blame]
VCS = vcs -full64
FIRMWARE_PATH = ../..
RTL_PATH = ../../../../rtl
IP_PATH = ../../../../ip
BEHAVIOURAL_MODELS = ../..
PDK_PATH = $(PDK_ROOT)/sky130A
SIM_PATH = ..
SCRIPTS = ../../../../../scripts
GCC_PATH = /home/aa/users/tan.nqd/riscv64-unknown-elf-gcc/bin
GCC_PREFIX?=riscv64-unknown-elf
INCS = $(RTL_PATH)+$(IP_PATH)+$(BEHAVIOURAL_MODELS)+$(SIM_PATH)+$(PDK_PATH)
SRCS = integration_tb.v
# Bare minimum required VCS flag
OPTS = -sverilog
SIMV = ./integration.simv
HEX = software.hex
software.elf: software.c bitstream.h $(FIRMWARE_PATH)/sections.lds $(FIRMWARE_PATH)/start.s
${GCC_PATH}/${GCC_PREFIX}-gcc -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -o $@ $(FIRMWARE_PATH)/start.s $<
$(HEX): software.elf
${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@
# to fix flash base address
sed -i 's/@10000000/@00000000/g' $@
bitstream.h: bitstream.txt
python3 ${SCRIPTS}/bitstream2header.py $< $@
$(SIMV): $(SRCS) $(HEX)
$(VCS) $(OPTS) +incdir+$(INCS) +define+FUNCTIONAL+SIM+USE_POWER_PINS $(SRCS) -o $@
sim-rtl: $(SIMV)
$(SIMV) -q +ntb_random_seed_automatic +load_gpio_output=gpio_output.txt
clean:
rm -rf *simv* csrc ucli.key *.elf *.bits.h *.hex *.bin *.vcd *.log