Fixed autotest.sh handling of `timescale

This commit is contained in:
Clifford Wolf 2016-07-02 13:32:20 +02:00
parent 080f95f933
commit e420412043
1 changed files with 10 additions and 14 deletions

View File

@ -56,10 +56,6 @@ while getopts xmGl:wkjvref:s:p:n: opt; do
esac esac
done done
create_ref() {
cp "$1" "$2.v"
}
compile_and_run() { compile_and_run() {
exe="$1"; output="$2"; shift 2 exe="$1"; output="$2"; shift 2
if $use_modelsim; then if $use_modelsim; then
@ -108,14 +104,14 @@ do
fn=$(basename $fn) fn=$(basename $fn)
bn=$(basename $bn) bn=$(basename $bn)
cp ../$fn $fn egrep -v '^\s*`timescale' ../$fn > ${bn}_ref.v
if [ ! -f ../${bn}_tb.v ]; then if [ ! -f ../${bn}_tb.v ]; then
"$toolsdir"/../../yosys -b "test_autotb $autotb_opts" -o ${bn}_tb.v $fn "$toolsdir"/../../yosys -b "test_autotb $autotb_opts" -o ${bn}_tb.v ${bn}_ref.v
else else
cp ../${bn}_tb.v ${bn}_tb.v cp ../${bn}_tb.v ${bn}_tb.v
fi fi
if $genvcd; then sed -i 's,// \$dump,$dump,g' ${bn}_tb.v; fi if $genvcd; then sed -i 's,// \$dump,$dump,g' ${bn}_tb.v; fi
create_ref $fn ${bn}_ref
compile_and_run ${bn}_tb_ref ${bn}_out_ref ${bn}_tb.v ${bn}_ref.v $libs compile_and_run ${bn}_tb_ref ${bn}_out_ref ${bn}_tb.v ${bn}_ref.v $libs
if $genvcd; then mv testbench.vcd ${bn}_ref.vcd; fi if $genvcd; then mv testbench.vcd ${bn}_ref.vcd; fi
@ -131,22 +127,22 @@ do
test_count=$(( test_count + 1 )) test_count=$(( test_count + 1 ))
} }
if [ "$frontend" = "verific" -o "$frontend" = "verific_gates" ] && grep -q VERIFIC-SKIP $fn; then if [ "$frontend" = "verific" -o "$frontend" = "verific_gates" ] && grep -q VERIFIC-SKIP ${bn}_ref.v; then
touch ../${bn}.skip touch ../${bn}.skip
return return
fi fi
if [ -n "$scriptfiles" ]; then if [ -n "$scriptfiles" ]; then
test_passes $fn $scriptfiles test_passes ${bn}_ref.v $scriptfiles
elif [ -n "$scriptopt" ]; then elif [ -n "$scriptopt" ]; then
test_passes -f "$frontend" -p "$scriptopt" $fn test_passes -f "$frontend" -p "$scriptopt" ${bn}_ref.v
elif [ "$frontend" = "verific" ]; then elif [ "$frontend" = "verific" ]; then
test_passes -p "verific -vlog2k $fn; verific -import -all; opt; memory;;" test_passes -p "verific -vlog2k ${bn}_ref.v; verific -import -all; opt; memory;;"
elif [ "$frontend" = "verific_gates" ]; then elif [ "$frontend" = "verific_gates" ]; then
test_passes -p "verific -vlog2k $fn; verific -import -gates -all; opt; memory;;" test_passes -p "verific -vlog2k ${bn}_ref.v; verific -import -gates -all; opt; memory;;"
else else
test_passes -f "$frontend" -p "hierarchy; proc; opt; memory; opt; fsm; opt -full -fine" $fn test_passes -f "$frontend" -p "hierarchy; proc; opt; memory; opt; fsm; opt -full -fine" ${bn}_ref.v
test_passes -f "$frontend" -p "hierarchy; synth -run coarse; techmap; opt; abc -dff" $fn test_passes -f "$frontend" -p "hierarchy; synth -run coarse; techmap; opt; abc -dff" ${bn}_ref.v
fi fi
touch ../${bn}.log touch ../${bn}.log
} }