2025-01-31 23:33:43 +08:00
|
|
|
TARGET=riscv64-unknown-elf
|
|
|
|
|
RVCC=$(TARGET)-gcc
|
|
|
|
|
RVCCVERSION=$(shell $(RVCC) --version | grep ^$(RVCC) | sed 's/^.* //g')
|
2025-02-10 14:38:49 +08:00
|
|
|
ISR_MARCH=-march=rv32i -mabi=ilp32
|
|
|
|
|
APP_MARCH=-march=rv32i -mabi=ilp32
|
|
|
|
|
ISR_CFLAGS=-O2
|
|
|
|
|
APP_CFLAGS=-O2
|
2025-09-22 15:43:14 +08:00
|
|
|
|
|
|
|
|
SPI_TYPE ?= -spi 0
|
|
|
|
|
TRANS_CODE ?=
|
|
|
|
|
DEVCLK ?= --dev1 0 90 --dev2 0 -90
|
|
|
|
|
CDRCLK ?= --clk 0 40
|
|
|
|
|
|
2025-01-31 23:33:43 +08:00
|
|
|
ifeq "$(RVCCVERSION)" "12.2.0"
|
2025-02-10 14:38:49 +08:00
|
|
|
ISR_MARCH=-march=rv32izicsr -mabi=ilp32
|
|
|
|
|
APP_MARCH=-march=rv32izicsr -mabi=ilp32
|
2025-01-31 23:33:43 +08:00
|
|
|
endif
|
2023-06-20 18:26:59 +08:00
|
|
|
|
2024-09-10 18:39:35 +08:00
|
|
|
.PHONY: compile tb wave
|
2023-06-20 18:26:59 +08:00
|
|
|
|
2025-04-11 17:57:47 +08:00
|
|
|
shin:
|
|
|
|
|
rm -f ./generated/shin/*
|
2025-09-11 18:57:58 +08:00
|
|
|
rm -f ./generated/SimCDR/*
|
2025-04-11 17:57:47 +08:00
|
|
|
sbt "test:runMain test.testShinModule"
|
|
|
|
|
|
|
|
|
|
testShin:
|
2025-09-22 15:43:14 +08:00
|
|
|
python3 ./tb/shinTest/gen_pkt.py ${SPI_TYPE} ${TRANS_CODE}
|
2025-09-09 01:21:02 +08:00
|
|
|
mkdir -p generated/log
|
|
|
|
|
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
|
2025-09-02 11:10:05 +08:00
|
|
|
vvp -N ./tb/build/shinTest.iverilog -lxt2 -fst || true
|
2025-09-08 16:47:30 +08:00
|
|
|
python3 ./tb/shinTest/check_testcase.py
|
2025-07-28 22:41:02 +08:00
|
|
|
|
2025-09-06 16:10:49 +08:00
|
|
|
testShinClk:
|
2025-09-22 15:43:14 +08:00
|
|
|
python3 ./tb/shinTest/gen_pkt_clk.py ${DEVCLK} ${SPI_TYPE} ${TRANS_CODE}
|
2025-09-06 16:10:49 +08:00
|
|
|
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 \
|
2025-09-07 00:10:41 +08:00
|
|
|
-D IVERILOG_COMPILE \
|
2025-09-06 16:10:49 +08:00
|
|
|
./tb/shinTest/ShinTopSpiTb_clk.v
|
|
|
|
|
vvp -N ./tb/build/shinTest_clk.iverilog -lxt2 -fst || true
|
2025-09-08 16:47:30 +08:00
|
|
|
python3 ./tb/shinTest/check_testcase.py
|
2025-09-06 16:10:49 +08:00
|
|
|
|
2025-08-28 20:03:42 +08:00
|
|
|
testCDR:
|
2025-09-22 15:43:14 +08:00
|
|
|
python3 ./tb/shinTest/gen_sim_cdr_clk.py ${CDRCLK}
|
2025-08-28 20:03:42 +08:00
|
|
|
iverilog -Wall \
|
|
|
|
|
-o ./tb/build/simCDR.iverilog \
|
|
|
|
|
-y ./generated/SimCDR \
|
|
|
|
|
-I ./generated/SimCDR \
|
|
|
|
|
-D RANDOMIZE_REG_INIT \
|
2025-09-07 00:10:41 +08:00
|
|
|
-D IVERILOG_COMPILE \
|
2025-08-28 20:03:42 +08:00
|
|
|
./tb/shinTest/SimCDRTb.v
|
2025-09-06 17:50:17 +08:00
|
|
|
vvp -N ./tb/build/simCDR.iverilog -lxt2 -fst
|
2025-08-28 20:03:42 +08:00
|
|
|
|
|
|
|
|
|
2025-08-19 09:10:43 +08:00
|
|
|
testFilter:
|
|
|
|
|
./tb/shinTest/test_filter.py
|
|
|
|
|
|
|
|
|
|
vcdFilter:
|
|
|
|
|
gtkwave ./tb/build/test_filter.vcd 1>/dev/null 2>&1 &
|
2025-04-14 16:43:10 +08:00
|
|
|
|
2025-09-02 11:10:05 +08:00
|
|
|
fstShin:
|
2025-09-06 17:50:17 +08:00
|
|
|
gtkwave ./generated/wave.fst 1>/dev/null 2>&1 &
|
|
|
|
|
|
|
|
|
|
fstShinClk:
|
|
|
|
|
gtkwave ./generated/wave_clk.fst 1>/dev/null 2>&1 &
|
2025-09-02 11:10:05 +08:00
|
|
|
|
2023-11-14 17:03:19 +08:00
|
|
|
ef:
|
|
|
|
|
sbt "test:runMain test.testModule"
|
2023-07-17 09:26:20 +08:00
|
|
|
|
|
|
|
|
fst:
|
|
|
|
|
gtkwave ./tb/build/wave.fst &
|
|
|
|
|
|
2025-02-27 12:55:34 +08:00
|
|
|
debug_hlm:
|
|
|
|
|
gtkwave -S ./tb/sw/src/view_signal.tcl ./tb/build/wave.fst 1>/dev/null 2>&1 &
|
|
|
|
|
|
2023-07-28 15:38:46 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-04-14 16:43:10 +08:00
|
|
|
|
2023-07-28 15:38:46 +08:00
|
|
|
|