aboutsummaryrefslogtreecommitdiffstats
path: root/tests/mk.sh
blob: 99a2949a224e41675e8d656f5e3f989a230592fa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/sh

run_test() {
	POL=$1
	PHASE=$2
	MASTER_TYPE=$3
	SLAVE_TYPE=$4
	DIR=$5
	WID=$6
	MODS=$7
	EXTARG=$8
	WIDLEN=$(printf "import math\nprint(math.floor(math.log2($WID) + 1))" | python3 -)

	echo "running $POL$PHASE $MASTER_TYPE"

	verilator --cc --exe -I.. -Wall -Wno-unused --trace --trace-fst \
		--top-module simtop \
		-GPOLARITY=$POL -GPHASE=$PHASE -GWID=$WID -CFLAGS -DWID=$WID \
		-GWID_LEN=$WIDLEN \
		-DSPI_MASTER_TYPE=$MASTER_TYPE -DSPI_SLAVE_TYPE=$SLAVE_TYPE \
		-DVCDFILE="\"$DIR.fst\"" \
		--Mdir $DIR \
		$EXTARG \
		simtop.v write_read.cpp $MODS

	cd "$DIR"
	make -f Vsimtop.mk
	./Vsimtop
}

for POL in 0 1; do
	for PHASE in 0 1; do
		( \
			run_test $POL $PHASE \
			spi_master spi_slave \
			simtop_$POL$PHASE 24 \
			"../spi_master.v ../spi_slave.v"
		)

		( \
			run_test $POL $PHASE \
			spi_master_ss spi_slave \
			simtop_ss$POL$PHASE 24 \
			"../spi_master_ss.v ../spi_slave.v" \
			"-DSPI_MASTER_SS -CFLAGS -DSPI_MASTER_SS"
		)

		( \
			run_test $POL $PHASE \
			spi_master_no_write spi_slave_no_read \
			simtop_no_write_$POL$PHASE 24 \
			"../spi_master_no_write.v ../spi_slave_no_read.v" \
			"-DSPI_MASTER_NO_WRITE -CFLAGS -DSPI_MASTER_NO_WRITE"
		)

		( \
			run_test $POL $PHASE \
			spi_master_ss_no_write spi_slave_no_read \
			simtop_ss_no_write_$POL$PHASE 24 \
			"../spi_master_ss_no_write.v ../spi_slave_no_read.v" \
			"-DSPI_MASTER_NO_WRITE -CFLAGS -DSPI_MASTER_NO_WRITE
			 -DSPI_MASTER_SS -CFLAGS -DSPI_MASTER_SS"
		)

		( \
			run_test $POL $PHASE \
			spi_master_no_read spi_slave_no_write \
			simtop_no_read_$POL$PHASE 24 \
			"../spi_master_no_read.v ../spi_slave_no_write.v" \
			"-DSPI_MASTER_NO_READ -CFLAGS -DSPI_MASTER_NO_READ"
		)

		( \
			run_test $POL $PHASE \
			spi_master_ss_no_read spi_slave_no_write \
			simtop_ss_no_read_$POL$PHASE 24 \
			"../spi_master_ss_no_read.v ../spi_slave_no_write.v" \
			"-DSPI_MASTER_NO_READ -CFLAGS -DSPI_MASTER_NO_READ
			 -DSPI_MASTER_SS -CFLAGS -DSPI_MASTER_SS"
		)

	done
done