Skip to content

Commit 78f7c0d

Browse files
committed
Allow to write verbose trace to file
1 parent e75e84f commit 78f7c0d

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

riscvmodel/model.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from random import randrange
2+
import sys
23

34
from .variant import *
45
from .types import Register, RegisterFile, TracePC, TraceIntegerRegister, TraceMemory
@@ -111,16 +112,18 @@ def __init__(self, variant: Variant, *, environment: Environment = None, verbose
111112
self.state = State(variant)
112113
self.environment = environment if environment is not None else Environment()
113114
self.verbose = verbose
114-
self.asm_tpl = "{{:{}}} | [{{}}]".format(asm_width)
115+
if self.verbose is not False:
116+
self.verbose_file = sys.stdout if verbose is True else open(self.verbose, "w")
117+
self.asm_tpl = "{{:{}}} | [{{}}]\n".format(asm_width)
115118

116119
def issue(self, insn):
117120
self.state.pc += 4
118121
expected_pc = self.state.pc
119122
insn.execute(self)
120123

121124
trace = self.state.changes()
122-
if self.verbose:
123-
print(self.asm_tpl.format(str(insn), ", ".join([str(t) for t in trace])))
125+
if self.verbose is not False:
126+
self.verbose_file.write(self.asm_tpl.format(str(insn), ", ".join([str(t) for t in trace])))
124127
self.state.commit()
125128
return trace
126129

0 commit comments

Comments
 (0)