summaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
Diffstat (limited to 'sim')
-rwxr-xr-xsim/sim.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/sim/sim.py b/sim/sim.py
index 5f64d43..e1dbd41 100755
--- a/sim/sim.py
+++ b/sim/sim.py
@@ -1,8 +1,19 @@
#!/usr/bin/env python3
-import importlib.util, io, os, pathlib, random, selectors, signal, socket, subprocess, sys
+import argparse, importlib.util, io, os, pathlib, random, selectors, signal, socket, subprocess, sys
+
+parser = argparse.ArgumentParser()
+parser.add_argument('module_path')
+parser.add_argument('verilated')
+parser.add_argument('image')
+parser.add_argument('coverage_out', nargs='?')
+args = parser.parse_args()
+
+module_path = args.module_path
+verilated = args.verilated
+image = args.image
+coverage_out = args.coverage_out
-module_path, verilated, image = sys.argv[1:]
test_name = pathlib.Path(module_path).stem
module = None
@@ -390,6 +401,9 @@ exec_args.extend(['--control-fd', str(target_fd)])
init_regs = None
exec_args.append(image)
+if coverage_out:
+ exec_args.append(coverage_out)
+
exec_args.append(f'+verilator+seed+{seed}')
if not os.getenv('SIM_PULLX', 0):
exec_args.append('+verilator+rand+reset+2')