add option for BUFGCE to the clock generator buffer types
authorbunnie <bunnie@kosagi.com>
Fri, 24 Jan 2020 06:58:51 +0000 (14:58 +0800)
committerbunnie <bunnie@kosagi.com>
Fri, 24 Jan 2020 06:58:51 +0000 (14:58 +0800)
litex/soc/cores/clock.py

index a36f9a2f8e8d0fde998e5fa3d27a327642382574..3d427bcffd698ec6e2489c2fa020841021dbed99 100644 (file)
@@ -41,7 +41,7 @@ class XilinxClocking(Module, AutoCSR):
             raise ValueError
         self.clkin_freq = freq
 
-    def create_clkout(self, cd, freq, phase=0, buf="bufg", margin=1e-2, with_reset=True):
+    def create_clkout(self, cd, freq, phase=0, buf="bufg", margin=1e-2, with_reset=True, clk_ce=None):
         assert self.nclkouts < self.nclkouts_max
         clkout = Signal()
         self.clkouts[self.nclkouts] = (clkout, freq, phase, margin)
@@ -57,6 +57,8 @@ class XilinxClocking(Module, AutoCSR):
                 self.specials += Instance("BUFG", i_I=clkout, o_O=clkout_buf)
             elif buf == "bufr":
                 self.specials += Instance("BUFR", i_I=clkout, o_O=clkout_buf)
+            elif buf == "bufgce" and clk_ce != None:
+                self.specials += Instance("BUFGCE", i_I=clkout, o_O=clkout_buf, i_CE=clk_ce)
             else:
                 raise ValueError