| #!/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 |
| |