37 lines
725 B
Bash
37 lines
725 B
Bash
|
#!/bin/bash
|
||
|
set -e
|
||
|
|
||
|
OPTIND=1
|
||
|
count=100
|
||
|
seed="" # default to no seed specified
|
||
|
while getopts "c:S:" opt
|
||
|
do
|
||
|
case "$opt" in
|
||
|
c) count="$OPTARG" ;;
|
||
|
S) seed="-S $OPTARG" ;;
|
||
|
esac
|
||
|
done
|
||
|
shift "$((OPTIND-1))"
|
||
|
|
||
|
rm -rf temp
|
||
|
mkdir -p temp
|
||
|
echo "generating tests.."
|
||
|
python3 generate.py -c $count $seed
|
||
|
|
||
|
cd temp
|
||
|
echo "running tests.."
|
||
|
for ((i = 0; i < $count; i++)); do
|
||
|
echo -n "[$i]"
|
||
|
idx=$( printf "%05d" $i )
|
||
|
../../../yosys -qq uut_${idx}.ys
|
||
|
iverilog -o uut_${idx}_tb uut_${idx}_tb.v uut_${idx}.v uut_${idx}_syn.v
|
||
|
./uut_${idx}_tb | tee uut_${idx}.err
|
||
|
if test -s uut_${idx}.err; then
|
||
|
echo "Note: Make sure that 'iverilog' is an up-to-date git checkout of Icarus Verilog."
|
||
|
exit 1
|
||
|
fi
|
||
|
rm -f uut_${idx}.err
|
||
|
done
|
||
|
echo
|
||
|
|