diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/simple/hierarchy.v | 21 | ||||
-rwxr-xr-x | tests/tools/autotest.sh | 12 |
2 files changed, 31 insertions, 2 deletions
diff --git a/tests/simple/hierarchy.v b/tests/simple/hierarchy.v new file mode 100644 index 000000000..97612c74a --- /dev/null +++ b/tests/simple/hierarchy.v @@ -0,0 +1,21 @@ + +(* top *) +module top(a, b, y1, y2, y3, y4); +input [3:0] a; +input signed [3:0] b; +output [7:0] y1, y2, y3, y4; +submod #(-3'sd1, -3'sd1) foo (a, b, y1, y2, y3, y4); +endmodule + +(* gentb_skip *) +module submod(a, b, y1, y2, y3, y4); +parameter c = 0; +parameter [7:0] d = 0; +input [7:0] a, b; +output [7:0] y1, y2, y3, y4; +assign y1 = a; +assign y2 = b; +assign y3 = c; +assign y4 = d; +endmodule + diff --git a/tests/tools/autotest.sh b/tests/tools/autotest.sh index 992c8563e..3d7601ebe 100755 --- a/tests/tools/autotest.sh +++ b/tests/tools/autotest.sh @@ -3,6 +3,7 @@ libs="" genvcd=false use_isim=false +use_modelsim=false verbose=false keeprunning=false backend_opts="-noattr -noexpr" @@ -14,10 +15,12 @@ if [ ! -f $toolsdir/cmp_tbdata -o $toolsdir/cmp_tbdata.c -nt $toolsdir/cmp_tbdat ( set -ex; gcc -Wall -o $toolsdir/cmp_tbdata $toolsdir/cmp_tbdata.c; ) || exit 1 fi -while getopts il:wkvrxs: opt; do +while getopts iml:wkvrxs: opt; do case "$opt" in i) use_isim=true ;; + m) + use_modelsim=true ;; l) libs="$libs $(cd $(dirname $OPTARG); pwd)/$(basename $OPTARG)";; w) @@ -69,7 +72,12 @@ create_ref() { compile_and_run() { exe="$1"; output="$2"; shift 2 - if $use_isim; then + if $use_modelsim; then + altver=$( ls -v /opt/altera/ | grep '^[0-9]' | tail -n1; ) + /opt/altera/$altver/modelsim_ase/bin/vlib work + /opt/altera/$altver/modelsim_ase/bin/vlog "$@" + /opt/altera/$altver/modelsim_ase/bin/vsim -c -do 'run -all; exit;' testbench | grep '#OUT#' > "$output" + elif $use_isim; then ( set +x files=( "$@" ) |