summaryrefslogtreecommitdiff
path: root/tests/sva/runtest.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sva/runtest.sh')
-rw-r--r--tests/sva/runtest.sh72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/sva/runtest.sh b/tests/sva/runtest.sh
new file mode 100644
index 00000000..1b65ca9c
--- /dev/null
+++ b/tests/sva/runtest.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+set -ex
+
+prefix=${1%.ok}
+prefix=${prefix%.sv}
+prefix=${prefix%.vhd}
+test -f $prefix.sv -o -f $prefix.vhd
+
+generate_sby() {
+ cat <<- EOT
+ [options]
+ mode bmc
+ depth 10
+ expect $1
+
+ [engines]
+ smtbmc yices
+
+ [script]
+ EOT
+
+ if [ -f $prefix.sv ]; then
+ if [ "$1" = "fail" ]; then
+ echo "verific -sv ${prefix}_fail.sv"
+ else
+ echo "verific -sv $prefix.sv"
+ fi
+ fi
+
+ if [ -f $prefix.vhd ]; then
+ echo "verific -vhdl $prefix.vhd"
+ fi
+
+ cat <<- EOT
+ verific -import -extnets -all top
+ prep -top top
+ chformal -early -assume
+
+ [files]
+ EOT
+
+ if [ -f $prefix.sv ]; then
+ echo "$prefix.sv"
+ fi
+
+ if [ -f $prefix.vhd ]; then
+ echo "$prefix.vhd"
+ fi
+
+ if [ "$1" = "fail" ]; then
+ cat <<- EOT
+
+ [file ${prefix}_fail.sv]
+ \`define FAIL
+ \`include "$prefix.sv"
+ EOT
+ fi
+}
+
+if [ -f $prefix.sv ]; then
+ generate_sby pass > ${prefix}_pass.sby
+ generate_sby fail > ${prefix}_fail.sby
+ sby --yosys $PWD/../../yosys -f ${prefix}_pass.sby
+ sby --yosys $PWD/../../yosys -f ${prefix}_fail.sby
+else
+ generate_sby pass > ${prefix}.sby
+ sby --yosys $PWD/../../yosys -f ${prefix}.sby
+fi
+
+touch $prefix.ok
+