import migen in litex/gen
[litex.git] / litex / gen / migen / fhdl / conv_output.py
1 from operator import itemgetter
2
3
4 class ConvOutput:
5 def __init__(self):
6 self.main_source = ""
7 self.data_files = dict()
8
9 def set_main_source(self, src):
10 self.main_source = src
11
12 def add_data_file(self, filename_base, content):
13 filename = filename_base
14 i = 1
15 while filename in self.data_files:
16 parts = filename_base.split(".", maxsplit=1)
17 parts[0] += "_" + str(i)
18 filename = ".".join(parts)
19 i += 1
20 self.data_files[filename] = content
21 return filename
22
23 def __str__(self):
24 r = self.main_source + "\n"
25 for filename, content in sorted(self.data_files.items(),
26 key=itemgetter(0)):
27 r += filename + ":\n" + content
28 return r
29
30 def write(self, main_filename):
31 with open(main_filename, "w") as f:
32 f.write(self.main_source)
33 for filename, content in self.data_files.items():
34 with open(filename, "w") as f:
35 f.write(content)