Allow specifying the same clock constraint multiple times.
authorTim 'mithro' Ansell <me@mith.ro>
Mon, 30 Dec 2019 18:25:14 +0000 (19:25 +0100)
committerTim 'mithro' Ansell <me@mith.ro>
Mon, 30 Dec 2019 18:25:14 +0000 (19:25 +0100)
(As long as the clock values actually match.)

litex/build/lattice/icestorm.py

index b999e483bfa8402a165249db35783200010c977d..c78574086343785eca5351a38ed4ea897f82cb53 100644 (file)
@@ -193,7 +193,12 @@ class LatticeIceStormToolchain:
         return v_output.ns
 
     def add_period_constraint(self, platform, clk, period):
+        clk_ns = 1e3/period
         clk.attr.add("keep")
         if clk in self.clocks:
-            raise ValueError("A period constraint already exists")
-        self.clocks[clk] = 1e3/period
+            if clk_ns != self.clocks[clk]:
+                raise ValueError(
+                    "A period constraint already exists"
+                    "(wanted: {:.2f}ns, got {:.2f}ns)".format(
+                        clk_ns, self.clocks[clk]))
+        self.clocks[clk] = clk_ns