OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.74/] [tools/] [bin/] [tbrun_tbw] - Blame information for rev 38

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 28 wfjm
#!/bin/bash
2 37 wfjm
# $Id: tbrun_tbw 807 2016-09-17 07:49:26Z mueller $
3 28 wfjm
#
4 35 wfjm
# Copyright 2014-2016 by Walter F.J. Mueller 
5 29 wfjm
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
6
#
7 28 wfjm
#  Revision History:
8
# Date         Rev Version  Comment
9 37 wfjm
# 2016-09-03   805   1.2.2  add TIMEFORMAT and time for make commands
10
# 2016-08-21   800   1.2.1  add -norun, -nomake
11
# 2016-08-06   795   1.2    use tbfilt; fixup -lsuf logic
12
# 2016-07-03   782   1.1.4  drop ghdl_assert_filter (use --ieee=... at ghdl lvl)
13 36 wfjm
# 2016-06-25   778   1.1.3  drop make ghdl_tmp_clean logic
14
# 2016-06-05   773   1.1.2  use _bsim.log for behavioral sim log
15
# 2016-04-17   762   1.1.1  don't create '-run' for [IX]Sim anymore (now default)
16 35 wfjm
# 2016-02-06   727   1.1    add vivado xsim support; Makefile.ise support
17 28 wfjm
# 2014-12-27   622   1.0.1  add --stack, --ghw, --tbw, --pcom
18
# 2014-12-26   621   1.0    Initial version
19
#
20
 
21
docmd ()
22
{
23
  if [[ -z "$optdry" ]] ; then
24 37 wfjm
    echo "$2"
25 28 wfjm
    eval "$1"
26 37 wfjm
  else
27
    echo "$1"
28 28 wfjm
  fi
29
}
30
 
31
optdry=""
32 37 wfjm
optnomake=""
33
optnorun=""
34 28 wfjm
optlsuf=""
35
optstack=""
36
optghw=""
37
opttbw=""
38
optpcom=""
39
 
40
# handle options
41
while (( $# > 0 )) ; do
42
  case $1 in
43 37 wfjm
    -dry|--dry)       optdry=$1    ; shift 1 ;;
44
    -nomake|--nomake) optnomake=$1 ; shift 1 ;;
45
    -norun|--norun)   optnorun=$1  ; shift 1 ;;
46
    -lsuf|--lsuf)     optlsuf=$2   ; shift 2 ;;
47
    -stack|--stack)   optstack=$2  ; shift 2 ;;
48
    -ghw|--ghw)       optghw=$2    ; shift 2 ;;
49
    -tbw|--tbw)       opttbw=$2    ; shift 2 ;;
50
    -pcom|--pcom)     optpcom=$1   ; shift 1 ;;
51 28 wfjm
    -*)             echo "tbrun_tbw-E: invalid option '$1'"; exit 1 ;;
52
    *)     break;;
53
  esac
54
done
55
 
56
tbench=$1
57
stimfile=$2
58
 
59
# complain if no tbench defined
60
if (( $# == 0 )) ; then
61
  echo "Usage: tbrun_tbw [opts] testbench [stimfile]"
62
  echo "  Options:"
63
  echo "  --dry             dry run, print commands, don't execute"
64 37 wfjm
  echo "  --nomake          don't execute make step"
65
  echo "  --norun           don't execute run  step"
66 28 wfjm
  echo "  --lsuf  suff      use '_.log' as suffix for log file"
67
  echo "  --stack nnn       use  as ghdl stack size"
68
  echo "  --ghw   fname     write ghw file with name '.ghw"
69
  echo "  --tbw   opts      append  to tbw command"
70 37 wfjm
  echo "  --pcom            print test comments"
71 28 wfjm
  exit 1
72
fi
73
 
74 35 wfjm
# defaults
75
isghdl=true
76
makeopts=""
77
 
78 28 wfjm
# check for ISim
79
isisim=""
80
if [[ $tbench =~ _ISim ]] ; then
81
  isisim=true
82 35 wfjm
  isghdl=""
83
  if [[ -f "Makefile.ise" ]] ; then
84
    makeopts="-f Makefile.ise"
85
  fi
86 28 wfjm
fi
87
 
88 35 wfjm
# check for XSim
89
isxsim=""
90
if [[ $tbench =~ _XSim ]] ; then
91
  isxsim=true
92
  isghdl=""
93
fi
94
 
95 28 wfjm
# issue makes
96 37 wfjm
if [[ -z "$optnomake" ]] ; then
97
  cmd="TIMEFORMAT=$'real %3lR   user %3lU   sys %3lS'"
98
  cmd+=$'\n'
99
  cmd+="time make $makeopts $tbench"
100
  docmd "$cmd"
101
  exitstat=$?
102
  if (( $exitstat > 0 )) ; then exit $exitstat; fi
103
  echo ""
104
fi
105 28 wfjm
 
106 37 wfjm
# check for test bench
107
if [[ ! -x $tbench ]] ; then
108
  echo "tbrun_tbw-E: $tbench not existing or not executable"
109
  exit 1
110
fi
111 28 wfjm
 
112
# determine logfile name
113 36 wfjm
logsuff="_bsim"
114
if [[ $tbench =~ _[fsorept]sim$ ]] ; then logsuff=""; fi
115 37 wfjm
if [[ -n "$optlsuf" ]] ;             then logsuff+="_$optlsuf"; fi
116 28 wfjm
 
117
logfile="${tbench}${logsuff}.log"
118
 
119 37 wfjm
# now build actual test command (a tbw | tbfilt pipe)
120
cmdtb="tbw $tbench"
121
if [[ -n "$stimfile" ]] ; then  cmdtb+=" $stimfile"; fi
122
if [[ -n "$opttbw" ]] ; then    cmdtb+=" $opttbw"; fi
123
if [[ -n "$optstack" ]] ; then  cmdtb+=" --stack-max-size=$optstack"; fi
124
if [[ -n "$optghw" ]] ; then    cmdtb+=" --wave=$optghw.ghw"; fi
125
cmdtb+=" 2>&1"
126 28 wfjm
 
127 37 wfjm
cmdtf="tbfilt -tee $logfile"
128
if [[ -n "$optpcom" ]] ; then cmdtf+=" -pcom"; fi
129
 
130
cmd="(export TIMEFORMAT=$'real %3lR   user %3lU   sys %3lS'; time $cmdtb) 2>&1"
131
cmd+=" | $cmdtf"
132
txt="$cmdtb | $cmdtf"
133
 
134
if [[ -z "$optnorun" ]] ; then
135
  docmd "$cmd" "$txt"
136
fi

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.