25 lines
1.1 KiB
Makefile
25 lines
1.1 KiB
Makefile
# (c) Peter McGoron 2022
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v.2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
TESTBENCH_BASE=${PREFIX}mode${MODE}
|
|
AUXFILES=../spi_master${MASTER_TYPE}.v ../spi_slave${SLAVE_TYPE}.v
|
|
|
|
CPP_TESTBENCH=${TESTBENCH_BASE}.cpp
|
|
WAVEFILE=${TESTBENCH_BASE}.vcd
|
|
|
|
FILES=${TESTBENCH_BASE}.v ${AUXFILES} ${CPP_TESTBENCH}
|
|
|
|
${WAVEFILE}: obj_dir/V${TESTBENCH_BASE}
|
|
./obj_dir/V${TESTBENCH_BASE}
|
|
|
|
obj_dir/V${TESTBENCH_BASE}.mk: ${FILES}
|
|
verilator -I.. -Wall -Wno-unused -Wpedantic --trace --cc --exe ${FILES} --top ${TESTBENCH_BASE}
|
|
obj_dir/V${TESTBENCH_BASE}: obj_dir/V${TESTBENCH_BASE}.mk
|
|
make -C obj_dir -f V${TESTBENCH_BASE}.mk
|
|
${TESTBENCH_BASE}.v: mode_template.v
|
|
sed "s/@PHASE@/`echo ${MODE} | cut -c 2`/g; s/@POLARITY@/`echo ${MODE} | cut -c 1`/g; s/@MODE@/${MODE}/g" ${PREFIX}mode_template.v > ${TESTBENCH_BASE}.v
|
|
${TESTBENCH_BASE}.cpp: mode_template.cpp
|
|
sed "s/@PHASE@/`echo ${MODE} | cut -c 2`/g; s/@POLARITY@/`echo ${MODE} | cut -c 1`/g; s/@MODE@/${MODE}/g" ${PREFIX}mode_template.cpp > ${TESTBENCH_BASE}.cpp
|