From: Florent Kermarrec Date: Wed, 6 May 2020 11:13:01 +0000 (+0200) Subject: build/xilinx/vivado: ensure Vivado process our .xdc early. X-Git-Tag: 24jan2021_ls180~380 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3c34039b731b42e27e2ee6c8e399e5eb8f3a058f;p=litex.git build/xilinx/vivado: ensure Vivado process our .xdc early. When generating the LitePCIe PHY wrappers from the .xci, Vivado is locking the PCIe lanes to default locations that do not necessarily match the ones used in the design. Processing our constraints earlier makes Vivado use our constraints and not the ones from the generated wrapper. --- diff --git a/litex/build/xilinx/vivado.py b/litex/build/xilinx/vivado.py index 2a8b91d2..70cf5c80 100644 --- a/litex/build/xilinx/vivado.py +++ b/litex/build/xilinx/vivado.py @@ -167,6 +167,7 @@ class XilinxVivadoToolchain: # Add constraints tcl.append("\n# Add constraints\n") tcl.append("read_xdc {}.xdc".format(build_name)) + tcl.append("set_property PROCESSING_ORDER EARLY [get_files {}.xdc]".format(build_name)) # Add pre-synthesis commands tcl.append("\n# Add pre-synthesis commands\n") @@ -276,7 +277,7 @@ class XilinxVivadoToolchain: "-to [get_pins -filter {{REF_PIN_NAME == PRE}} " "-of_objects [get_cells -hierarchical -filter {{ars_ff1 == TRUE || ars_ff2 == TRUE}}]]" ) - # clock_period-2ns to resolve metastability on the wire between the AsyncResetSynchronizer FFs + # clock_period-2ns to resolve metastability on the wire between the AsyncResetSynchronizer FFs platform.add_platform_command( "set_max_delay 2 -quiet " "-from [get_pins -filter {{REF_PIN_NAME == C}} "