summaryrefslogtreecommitdiff
path: root/support/regression/get_ticks.py
blob: 4063606328459752e1dd7f2ea3c78bf63d3afb59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import sys, re, io
import string

"""Simple script that scans all of the simulator output text fed in
through stdin and summarises the total number of system clock ticks."""

# Read in everything
if sys.version_info[0]<3:
    safe_stdin = sys.stdin
else:
    safe_stdin = io.TextIOWrapper(sys.stdin.buffer, encoding="latin-1")
lines = safe_stdin.readlines()

# Declare globals
bytes = 0
ticks = 0

for line in lines:
    # 'n words read from ...', where = # bytes in hex file
    if (re.search(r'words read from', line)):
        (data, post) = re.split(r'words', line, maxsplit=1)
        data = re.sub(r'[^0-9]',' ',data).strip().split();
        if len(data)>0:
          bytes = int(data[-1])
        else:
          bytes = 0 # wrong size, but better than blowing up

    # 'Total time since last reset= 0.102021 sec (i clks)',
    # where i = # system clock ticks.
    if (re.search(r'^Total time', line)):
        (pre, data) = re.split(r'\(', line)
        (nticks, post) = re.split(r' ', data)
        ticks = int(nticks)

print("\n--- Simulator: %d/%d: %d bytes, %d ticks" % (bytes, ticks, bytes, ticks))