build/xilinx/vivado: round period constraints to lowest picosecond
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Mon, 15 Apr 2019 08:51:17 +0000 (10:51 +0200)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Mon, 15 Apr 2019 08:51:17 +0000 (10:51 +0200)
Vivado will do the opposite if we don't do it, with this change we ensure the applied period constraints will always be >= to the requested constraint.

litex/build/xilinx/vivado.py

index 54bbfe85e9eb475723e82809572a668d83872fe2..b9750bba59c80eb204402e60b81eea7c565cf7cc 100644 (file)
@@ -4,6 +4,7 @@
 import os
 import subprocess
 import sys
+import math
 
 from migen.fhdl.structure import _Fragment
 
@@ -250,6 +251,7 @@ class XilinxVivadoToolchain:
     def add_period_constraint(self, platform, clk, period):
         if clk in self.clocks:
             raise ValueError("A period constraint already exists")
+        period = math.floor(period*1e3)/1e3 # round to lowest picosecond
         self.clocks[clk] = period
 
     def add_false_path_constraint(self, platform, from_, to):