aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/run-vericert.sh
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2022-03-19 12:05:44 +0000
committerYann Herklotz <git@yannherklotz.com>2022-03-22 16:18:06 +0000
commit27fea2fe14a81f4e73e0e3e53ec5ac5db07a5d82 (patch)
tree4c474f1426a0f84f131300eff3c70f43cf7f77bc /scripts/run-vericert.sh
parent23fe30f8c23ecb743880cb9239410eb51bf1abab (diff)
downloadvericert-27fea2fe14a81f4e73e0e3e53ec5ac5db07a5d82.tar.gz
vericert-27fea2fe14a81f4e73e0e3e53ec5ac5db07a5d82.zip
Delete extra data files and scripts
Diffstat (limited to 'scripts/run-vericert.sh')
-rwxr-xr-xscripts/run-vericert.sh46
1 files changed, 46 insertions, 0 deletions
diff --git a/scripts/run-vericert.sh b/scripts/run-vericert.sh
new file mode 100755
index 0000000..9deaa10
--- /dev/null
+++ b/scripts/run-vericert.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+rm exec.csv
+
+top=$(pwd)
+#set up
+while read benchmark ; do
+ printf "%10s\t" $(echo "$benchmark" | sed -e 's|/| |g')
+ ./$benchmark.gcc > $benchmark.clog
+ cresult=$(cat $benchmark.clog | cut -d' ' -f2)
+ #echo "C output: "$cresult
+ #./$benchmark.iver > $benchmark.tmp
+ if [[ ! -f ./$benchmark.verilator/Vmain ]]; then
+ echo -e "\e[0;91mFAIL\e[0m: Verilog failed compilation"
+ continue
+ fi
+ ./$benchmark.verilator/Vmain > $benchmark.tmp
+ veriresult=$(tail -1 $benchmark.tmp | cut -d' ' -f2)
+ cycles=$(tail -2 $benchmark.tmp | head -1 | tr -s ' ' | cut -d' ' -f2)
+ #echo "Verilog output: "$veriresult
+
+ #Undefined checks
+ if [[ -z "$veriresult" ]]
+ then
+ echo "\e[0;91mFAIL\e[0m: Verilog returned nothing"
+ #exit 0
+ fi
+
+ # Don't care checks
+ if [[ $veriresult == "x" ]]
+ then
+ echo "\e[0;91mFAIL\e[0m: Verilog returned don't cares"
+ #exit 0
+ fi
+
+ # unequal result check
+ if [[ $cresult -ne $veriresult ]]
+ then
+ echo -e "\e[0;91mFAIL\e[0m: Verilog and C output do not match!"
+ #exit 0
+ else
+ echo -e "\e[0;92mPASS\e[0m"
+ fi
+ name=$(echo $benchmark | awk -v FS="/" '{print $NF}')
+ echo $name","$cycles >> exec.csv
+done < benchmark-list-master