1 # Copyright (C) 2012 Vermeer Manufacturing Co.
2 # License: GPLv3 with additional permissions (see README).
7 def _str2file(filename
, contents
):
8 f
= open(filename
, "w")
13 def __init__(self
, extra_files
=None, top_file
="migensim_top.v", dut_file
="migensim_dut.v", vvp_file
=None, keep_files
=False):
14 if extra_files
is None: extra_files
= []
15 if vvp_file
is None: vvp_file
= dut_file
+ "vp"
16 self
.extra_files
= extra_files
17 self
.top_file
= top_file
18 self
.dut_file
= dut_file
19 self
.vvp_file
= vvp_file
20 self
.keep_files
= keep_files
22 def start(self
, c_top
, c_dut
):
23 _str2file(self
.top_file
, c_top
)
24 _str2file(self
.dut_file
, c_dut
)
25 subprocess
.check_call(["iverilog", "-o", self
.vvp_file
, self
.top_file
, self
.dut_file
] + self
.extra_files
)
26 self
.process
= subprocess
.Popen(["vvp", "-mmigensim", self
.vvp_file
])
29 if hasattr(self
, "process"):
31 if not self
.keep_files
:
32 for f
in [self
.top_file
, self
.dut_file
, self
.vvp_file
]: