diff --git a/edalize/nextpnr.py b/edalize/nextpnr.py index dcd691aa0..143d8d2c5 100644 --- a/edalize/nextpnr.py +++ b/edalize/nextpnr.py @@ -42,6 +42,7 @@ def configure_main(self): "Nextpnr-fpga_interchange require chipdb to be specified." ) package = self.tool_options.get("package") + bin_path = self.tool_options.get("binary_path") for f in self.files: if f["file_type"] == "CST": @@ -167,13 +168,18 @@ def configure_main(self): targets = self.name + ".phys" constraints = ["--xdc", xdc_file] output = ["--phys", targets] + elif arch == "xilinx": + targets = self.name + ".fasm" + constraints = ["--xdc", xdc_file] if xdc_file else [] + output = ["--fasm", targets] else: targets = self.name + ".asc" constraints = ["--pcf", pcf_file] if pcf_file else [] output = ["--asc", targets] depends = netlist - command = ["nextpnr-" + arch, "-l", "next.log"] + command = ["nextpnr-" + arch] if bin_path is None else [bin_path] + command += ["-l", "next.log"] command += arch_options + self.tool_options.get("nextpnr_options", []) command += constraints if is_interchange: