Fix timing constraints
authorkessam <61152217+kessam@users.noreply.github.com>
Sun, 5 Apr 2020 15:56:29 +0000 (17:56 +0200)
committerGitHub <noreply@github.com>
Sun, 5 Apr 2020 15:56:29 +0000 (17:56 +0200)
litex/build/xilinx/vivado.py

index 014b5ca286184d20373e55e53e18c7c9f409ac00..2a8b91d29d35d604edee1271ebe3dde64a898ed5 100644 (file)
@@ -268,23 +268,24 @@ class XilinxVivadoToolchain:
         # The asynchronous input to a MultiReg is a false path
         platform.add_platform_command(
             "set_false_path -quiet "
-            "-to [get_nets -quiet -filter {{mr_ff == TRUE}}]"
+            "-through [get_nets -hierarchical -filter {{mr_ff == TRUE}}]"
         )
         # The asychronous reset input to the AsyncResetSynchronizer is a false path
         platform.add_platform_command(
             "set_false_path -quiet "
-            "-to [get_pins -quiet -filter {{REF_PIN_NAME == PRE}} "
-                "-of [get_cells -quiet -filter {{ars_ff1 == TRUE || ars_ff2 == TRUE}}]]"
+            "-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 -quiet -filter {{REF_PIN_NAME == Q}} "
-                "-of [get_cells -quiet -filter {{ars_ff1 == TRUE}}]] "
-            "-to [get_pins -quiet -filter {{REF_PIN_NAME == D}} "
-                "-of [get_cells -quiet -filter {{ars_ff2 == TRUE}}]]"
+            "-from [get_pins -filter {{REF_PIN_NAME == C}} "
+                "-of_objects [get_cells -hierarchical -filter {{ars_ff1 == TRUE}}]] "
+            "-to [get_pins -filter {{REF_PIN_NAME == D}} "
+                "-of_objects [get_cells -hierarchical -filter {{ars_ff2 == TRUE}}]]"
         )
 
+
     def build(self, platform, fragment,
         build_dir  = "build",
         build_name = "top",