113 lines
2.7 KiB
Makefile
113 lines
2.7 KiB
Makefile
TARGET=riscv64-unknown-elf
|
|
RVCC=$(TARGET)-gcc
|
|
RVCCVERSION=$(shell $(RVCC) --version | grep ^$(RVCC) | sed 's/^.* //g')
|
|
ISR_MARCH=-march=rv32i -mabi=ilp32
|
|
APP_MARCH=-march=rv32i -mabi=ilp32
|
|
ISR_CFLAGS=-O2
|
|
APP_CFLAGS=-O2
|
|
|
|
SPI_TYPE ?= -spi 0
|
|
TRANS_CODE ?=
|
|
DEVCLK ?= --dev1 0 90 --dev2 0 -90
|
|
CDRCLK ?= --clk 0 40
|
|
CDR_TYPE ?= -cdr 0
|
|
|
|
ifeq "$(RVCCVERSION)" "12.2.0"
|
|
ISR_MARCH=-march=rv32izicsr -mabi=ilp32
|
|
APP_MARCH=-march=rv32izicsr -mabi=ilp32
|
|
endif
|
|
|
|
.PHONY: compile tb wave
|
|
|
|
shin:
|
|
rm -f ./generated/shin/*
|
|
rm -f ./generated/SimCDR/*
|
|
sbt --jvm-client "Test/runMain test.testShinModule"
|
|
|
|
testShin_vl:
|
|
python3 ./tb/shinTest/gen_pkt.py ${SPI_TYPE} ${TRANS_CODE} ${CDR_TYPE}
|
|
mkdir -p generated/log
|
|
rm -rf generated/log/*
|
|
rm -rf ./tb/build/
|
|
verilator -Wno-fatal \
|
|
--timescale "1 ns / 1 ps" \
|
|
-y ./generated/shin \
|
|
--trace-fst \
|
|
--binary ./tb/shinTest/ShinTopSpiTb.v \
|
|
--top-module ShinTopSpiTb \
|
|
--Mdir ./tb/build/ \
|
|
+define+IVERILOG_COMPILE \
|
|
--threads 8 \
|
|
-j 0
|
|
./tb/build/VShinTopSpiTb
|
|
python3 ./tb/shinTest/check_testcase.py
|
|
|
|
|
|
testShin:
|
|
python3 ./tb/shinTest/gen_pkt.py ${SPI_TYPE} ${TRANS_CODE} ${CDR_TYPE}
|
|
mkdir -p generated/log
|
|
mkdir -p ./tb/build
|
|
rm -rf generated/log/*
|
|
iverilog -Wall \
|
|
-o ./tb/build/shinTest.iverilog \
|
|
-y ./generated/shin \
|
|
-I ./generated/shin \
|
|
-D RANDOMIZE_REG_INIT \
|
|
-D IVERILOG_COMPILE \
|
|
./tb/shinTest/ShinTopSpiTb.v
|
|
vvp -N ./tb/build/shinTest.iverilog -lxt2 -fst || true
|
|
python3 ./tb/shinTest/check_testcase.py
|
|
|
|
testShinClk:
|
|
python3 ./tb/shinTest/gen_pkt_clk.py ${DEVCLK} ${SPI_TYPE} ${TRANS_CODE} ${CDR_TYPE}
|
|
mkdir -p generated/log
|
|
rm -rf generated/log/*
|
|
iverilog -Wall \
|
|
-o ./tb/build/shinTest_clk.iverilog \
|
|
-y ./generated/shin \
|
|
-I ./generated/shin \
|
|
-D RANDOMIZE_REG_INIT \
|
|
-D IVERILOG_COMPILE \
|
|
./tb/shinTest/ShinTopSpiTb_clk.v
|
|
vvp -N ./tb/build/shinTest_clk.iverilog -lxt2 -fst || true
|
|
python3 ./tb/shinTest/check_testcase.py
|
|
|
|
testCDR:
|
|
python3 ./tb/shinTest/gen_sim_cdr_clk.py ${CDRCLK}
|
|
iverilog -Wall \
|
|
-o ./tb/build/simCDR.iverilog \
|
|
-y ./generated/SimCDR \
|
|
-I ./generated/SimCDR \
|
|
-D RANDOMIZE_REG_INIT \
|
|
-D IVERILOG_COMPILE \
|
|
./tb/shinTest/SimCDRTb.v
|
|
vvp -N ./tb/build/simCDR.iverilog -lxt2 -fst
|
|
|
|
|
|
testFilter:
|
|
./tb/shinTest/test_filter.py
|
|
|
|
vcdFilter:
|
|
gtkwave ./tb/build/test_filter.vcd 1>/dev/null 2>&1 &
|
|
|
|
fstShin:
|
|
gtkwave ./generated/wave.fst 1>/dev/null 2>&1 &
|
|
|
|
fstShinClk:
|
|
gtkwave ./generated/wave_clk.fst 1>/dev/null 2>&1 &
|
|
|
|
ef:
|
|
sbt "test:runMain test.testModule"
|
|
|
|
fst:
|
|
gtkwave ./tb/build/wave.fst &
|
|
|
|
debug_hlm:
|
|
gtkwave -S ./tb/sw/src/view_signal.tcl ./tb/build/wave.fst 1>/dev/null 2>&1 &
|
|
|
|
|
|
|
|
|
|
|
|
|