build: always use platform.add_source and avoid manipulate platform.sources directly
This commit is contained in:
parent
43f5d1ef13
commit
675b455259
|
@ -147,8 +147,8 @@ class LatticeDiamondToolchain:
|
||||||
named_sc, named_pc = platform.resolve_signals(v_output.ns)
|
named_sc, named_pc = platform.resolve_signals(v_output.ns)
|
||||||
v_file = build_name + ".v"
|
v_file = build_name + ".v"
|
||||||
v_output.write(v_file)
|
v_output.write(v_file)
|
||||||
sources = platform.sources | {(v_file, "verilog", "work")}
|
platform.add_source(v_file)
|
||||||
_build_files(platform.device, sources, platform.verilog_include_paths, build_name)
|
_build_files(platform.device, platform.sources, platform.verilog_include_paths, build_name)
|
||||||
|
|
||||||
tools.write_to_file(build_name + ".lpf", _build_lpf(named_sc, named_pc))
|
tools.write_to_file(build_name + ".lpf", _build_lpf(named_sc, named_pc))
|
||||||
|
|
||||||
|
|
|
@ -137,13 +137,14 @@ class LatticeIceStormToolchain:
|
||||||
named_sc, named_pc = platform.resolve_signals(v_output.ns)
|
named_sc, named_pc = platform.resolve_signals(v_output.ns)
|
||||||
v_file = build_name + ".v"
|
v_file = build_name + ".v"
|
||||||
v_output.write(v_file)
|
v_output.write(v_file)
|
||||||
|
platform.add_source(v_file)
|
||||||
|
|
||||||
if use_nextpnr:
|
if use_nextpnr:
|
||||||
chosen_yosys_template = self.nextpnr_yosys_template
|
chosen_yosys_template = self.nextpnr_yosys_template
|
||||||
else:
|
else:
|
||||||
chosen_yosys_template = self.yosys_template
|
chosen_yosys_template = self.yosys_template
|
||||||
ys_contents = "\n".join(_.format(build_name=build_name,
|
ys_contents = "\n".join(_.format(build_name=build_name,
|
||||||
read_files=self.gen_read_files(platform, v_file),
|
read_files=self.gen_read_files(platform),
|
||||||
synth_opts=synth_opts)
|
synth_opts=synth_opts)
|
||||||
for _ in chosen_yosys_template)
|
for _ in chosen_yosys_template)
|
||||||
|
|
||||||
|
@ -218,13 +219,12 @@ class LatticeIceStormToolchain:
|
||||||
def get_size_string(self, series_size_str):
|
def get_size_string(self, series_size_str):
|
||||||
return series_size_str[2:]
|
return series_size_str[2:]
|
||||||
|
|
||||||
def gen_read_files(self, platform, main):
|
def gen_read_files(self, platform):
|
||||||
sources = platform.sources | {(main, "verilog", "work")}
|
|
||||||
incflags = ""
|
incflags = ""
|
||||||
read_files = list()
|
read_files = list()
|
||||||
for path in platform.verilog_include_paths:
|
for path in platform.verilog_include_paths:
|
||||||
incflags += " -I" + path
|
incflags += " -I" + path
|
||||||
for filename, language, library in sources:
|
for filename, language, library in platform.sources:
|
||||||
read_files.append("read_{}{} {}".format(language,
|
read_files.append("read_{}{} {}".format(language,
|
||||||
incflags,
|
incflags,
|
||||||
filename))
|
filename))
|
||||||
|
|
|
@ -202,12 +202,12 @@ class XilinxISEToolchain:
|
||||||
named_sc, named_pc = platform.resolve_signals(vns)
|
named_sc, named_pc = platform.resolve_signals(vns)
|
||||||
v_file = build_name + ".v"
|
v_file = build_name + ".v"
|
||||||
v_output.write(v_file)
|
v_output.write(v_file)
|
||||||
sources = platform.sources | {(v_file, "verilog", "work")}
|
platform.add_source(v_file)
|
||||||
if mode in ("xst", "cpld"):
|
if mode in ("xst", "cpld"):
|
||||||
_build_xst_files(platform.device, sources, platform.verilog_include_paths, build_name, self.xst_opt)
|
_build_xst_files(platform.device, platform.sources, platform.verilog_include_paths, build_name, self.xst_opt)
|
||||||
isemode = mode
|
isemode = mode
|
||||||
else:
|
else:
|
||||||
_run_yosys(platform.device, sources, platform.verilog_include_paths, build_name)
|
_run_yosys(platform.device, platform.sources, platform.verilog_include_paths, build_name)
|
||||||
isemode = "edif"
|
isemode = "edif"
|
||||||
ngdbuild_opt += "-p " + platform.device
|
ngdbuild_opt += "-p " + platform.device
|
||||||
|
|
||||||
|
|
|
@ -253,7 +253,8 @@ class XilinxVivadoToolchain:
|
||||||
named_sc, named_pc = platform.resolve_signals(v_output.ns)
|
named_sc, named_pc = platform.resolve_signals(v_output.ns)
|
||||||
v_file = build_name + ".v"
|
v_file = build_name + ".v"
|
||||||
v_output.write(v_file)
|
v_output.write(v_file)
|
||||||
sources = platform.sources | {(v_file, "verilog", "work")}
|
platform.add_source(v_file)
|
||||||
|
sources = platform.sources
|
||||||
edifs = platform.edifs
|
edifs = platform.edifs
|
||||||
ips = platform.ips
|
ips = platform.ips
|
||||||
self._build_batch(platform, sources, edifs, ips, build_name, synth_mode, enable_xpm)
|
self._build_batch(platform, sources, edifs, ips, build_name, synth_mode, enable_xpm)
|
||||||
|
|
Loading…
Reference in New Issue