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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.61/] [tools/] [tcl/] [rw11/] [tbench.tcl] - Blame information for rev 26

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 20 wfjm
# $Id: tbench.tcl 510 2013-04-26 16:14:57Z mueller $
2
#
3
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4
#
5
# This program is free software; you may redistribute and/or modify it under
6
# the terms of the GNU General Public License as published by the Free
7
# Software Foundation, either version 2, or at your option any later version.
8
#
9
# This program is distributed in the hope that it will be useful, but
10
# WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY
11
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12
# for complete details.
13
#
14
#  Revision History:
15
# Date         Rev Version  Comment
16
# 2013-04-26   510   1.0    Initial version (extracted from util.tcl)
17
#
18
 
19
package provide rw11 1.0
20
 
21
package require rlink
22
package require rwxxtpp
23
 
24
namespace eval rw11 {
25
 
26
  #
27
  # tbench: driver for tbench scripts
28
  #
29
  proc tbench {fname} {
30
    rlc exec -init 0xff [regbld rlink::INIT anena]
31
    set errcnt [tbench_list $fname]
32
    return $errcnt
33
  }
34
 
35
  #
36
  # tbench_file: execute list of tbench steps
37
  #
38
  proc tbench_list {lname} {
39
    set errcnt 0
40
    if {[string match "@*" $lname]} {
41
      set fname [string range $lname 1 end]
42
      set fh [open "$::env(RETROBASE)/tools/tbench/$fname"]
43
      while {[gets $fh line] >= 0} {
44
        if {[string match "#*" $line]} {
45
          if {[string match "##*" $line]} { puts $line }
46
        } elseif {[string match "@*" $line]} {
47
          incr errcnt [tbench_list $line]
48
        } else {
49
          incr errcnt [tbench_step $line]
50
        }
51
      }
52
      close $fh
53
    } else {
54
      incr errcnt [tbench_step $lname]
55
    }
56
    puts [format "%s: %s" $lname [rutil::errcnt2txt $errcnt]]
57
    return $errcnt
58
  }
59
 
60
  #
61
  # tbench_step: execute single tbench step
62
  #
63
  proc tbench_step {fname} {
64
    rlc errcnt -clear
65
    set cpu cpu0
66
    source "$::env(RETROBASE)/tools/tbench/$fname"
67
    set errcnt [rlc errcnt]
68
    puts [format "%s: %s" $fname [rutil::errcnt2txt $errcnt]]
69
    return $errcnt
70
  }
71
 
72
}

powered by: WebSVN 2.1.0

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