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))
|