build/xilinx/vivado.py: Allow a tcl script to be added as ip. These tcl scripts tend to generate .xci's on the fly. The tcl script can be looked up in the vivado console as the ip is generated

This commit is contained in:
Vamsi Vytla 2021-02-15 09:29:00 -08:00
parent 460fada3ac
commit 1fde282291
1 changed files with 12 additions and 9 deletions

View File

@ -171,15 +171,18 @@ class XilinxVivadoToolchain:
# Add IPs # Add IPs
tcl.append("\n# Add IPs\n") tcl.append("\n# Add IPs\n")
for filename, disable_constraints in platform.ips.items(): for filename, disable_constraints in platform.ips.items():
filename_tcl = "{" + filename + "}" if filename.endswith("tcl"):
ip = os.path.splitext(os.path.basename(filename))[0] tcl += open(filename, "r").read().splitlines()
tcl.append("read_ip " + filename_tcl) else:
tcl.append("upgrade_ip [get_ips {}]".format(ip)) filename_tcl = "{" + filename + "}"
tcl.append("generate_target all [get_ips {}]".format(ip)) ip = os.path.splitext(os.path.basename(filename))[0]
tcl.append("synth_ip [get_ips {}] -force".format(ip)) tcl.append("read_ip " + filename_tcl)
tcl.append("get_files -all -of_objects [get_files {}]".format(filename_tcl)) tcl.append("upgrade_ip [get_ips {}]".format(ip))
if disable_constraints: tcl.append("generate_target all [get_ips {}]".format(ip))
tcl.append("set_property is_enabled false [get_files -of_objects [get_files {}] -filter {{FILE_TYPE == XDC}}]".format(filename_tcl)) tcl.append("synth_ip [get_ips {}] -force".format(ip))
tcl.append("get_files -all -of_objects [get_files {}]".format(filename_tcl))
if disable_constraints:
tcl.append("set_property is_enabled false [get_files -of_objects [get_files {}] -filter {{FILE_TYPE== XDC}}]".format(filename_tcl))
# Add constraints # Add constraints
tcl.append("\n# Add constraints\n") tcl.append("\n# Add constraints\n")