Skip to content

Commit c6904f9

Browse files
committedApr 12, 2015
sim: fix to support ConvOutput
1 parent 181aeb4 commit c6904f9

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed
 

Diff for: ‎migen/sim/generic.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,11 @@ def __init__(self, fragment, top_level=None, sim_runner=None, sockaddr="simsocke
8787
c_top = self.top_level.get(sockaddr)
8888

8989
fragment = fragment + _Fragment(clock_domains=top_level.clock_domains)
90-
c_fragment, self.namespace = verilog.convert(fragment,
90+
c_fragment = verilog.convert(fragment,
9191
ios=self.top_level.ios,
9292
name=self.top_level.dut_type,
93-
return_ns=True,
9493
**vopts)
94+
self.namespace = c_fragment.ns
9595

9696
self.cycle_counter = -1
9797

Diff for: ‎migen/sim/icarus.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@
55
import os
66
import time
77

8-
def _str2file(filename, contents):
9-
f = open(filename, "w")
10-
f.write(contents)
11-
f.close()
128

139
class Runner:
1410
def __init__(self, options=None, extra_files=None, top_file="migensim_top.v", dut_file="migensim_dut.v", vvp_file=None, keep_files=False):
@@ -20,11 +16,14 @@ def __init__(self, options=None, extra_files=None, top_file="migensim_top.v", du
2016
self.top_file = top_file
2117
self.dut_file = dut_file
2218
self.vvp_file = vvp_file
19+
self.data_files = []
2320
self.keep_files = keep_files
2421

2522
def start(self, c_top, c_dut):
26-
_str2file(self.top_file, c_top)
27-
_str2file(self.dut_file, c_dut)
23+
with open(self.top_file, "w") as f:
24+
f.write(c_top)
25+
c_dut.write(self.dut_file)
26+
self.data_files += c_dut.data_files.keys()
2827
subprocess.check_call(["iverilog", "-o", self.vvp_file] + self.options + [self.top_file, self.dut_file] + self.extra_files)
2928
self.process = subprocess.Popen(["vvp", "-mmigensim", "-Mvpi", self.vvp_file])
3029

@@ -36,8 +35,9 @@ def close(self):
3635
self.process.kill()
3736
self.process.wait()
3837
if not self.keep_files:
39-
for f in [self.top_file, self.dut_file, self.vvp_file]:
38+
for f in [self.top_file, self.dut_file, self.vvp_file] + self.data_files:
4039
try:
4140
os.remove(f)
4241
except OSError:
4342
pass
43+
self.data_files.clear()

0 commit comments

Comments
 (0)
Please sign in to comment.