Beispiel #1
0
    def do_finalize(self, fragment):
        # Add the CRG
        crg = CRG(self.request("clk50"))
        fragment += crg.get_fragment()

        clocks = {
            "clk50": 50.0,
            "clk12": 12.0,
            ("ulpi", "clk"): 60.0,
            ("ftdi", "clk"): 60.0
        }

        # Make sure init_b is used / added to the UCF
        self.request("init_b")

        for name, mhz in clocks.items():
            period = 1000.0 / mhz
            try:
                if isinstance(name, tuple):
                    clk = getattr(self.lookup_request(name[0]), name[1])
                else:
                    clk = self.lookup_request(name)
                self.add_platform_command("""
NET "{clk}" TNM_NET = "GRP{clk}";
TIMESPEC "TS{clk}" = PERIOD "GRP{clk}" %f ns HIGH 50%%;
""" % period, clk=clk)
            except ConstraintError:
                pass
Beispiel #2
0
    def do_finalize(self, fragment):
        # Add the CRG
        crg = CRG(self.request("clk50"))
        fragment += crg.get_fragment()

        clocks = {
            "clk50": 50.0,
            "clk12": 12.0,
            ("ulpi", "clk"): 60.0,
            ("ftdi", "clk"): 60.0
        }

        # Make sure init_b is used / added to the UCF
        self.request("init_b")

        for name, mhz in clocks.items():
            period = 1000.0 / mhz
            try:
                if isinstance(name, tuple):
                    clk = getattr(self.lookup_request(name[0]), name[1])
                else:
                    clk = self.lookup_request(name)
                self.add_platform_command("""
NET "{clk}" TNM_NET = "GRP{clk}";
TIMESPEC "TS{clk}" = PERIOD "GRP{clk}" %f ns HIGH 50%%;
""" % period,
                                          clk=clk)
            except ConstraintError:
                pass
Beispiel #3
0
    def finalize(self, fragment, *args, **kwargs):
        if self.finalized:
            raise ConstraintError("Already finalized")
        # if none exists, create a default clock domain and drive it
        if not fragment.clock_domains:
            if not hasattr(self, "default_clk_name"):
                raise NotImplementedError(
                    "No default clock and no clock domain defined")
            crg = CRG(self.request(self.default_clk_name))
            fragment += crg.get_fragment()

        self.do_finalize(fragment, *args, **kwargs)
        self.finalized = True
Beispiel #4
0
    def finalize(self, fragment, *args, **kwargs):
        if self.finalized:
            raise ConstraintError("Already finalized")
        # if none exists, create a default clock domain and drive it
        if not fragment.clock_domains:
            if not hasattr(self, "default_clk_name"):
                raise NotImplementedError(
                    "No default clock and no clock domain defined")
            crg = CRG(self.request(self.default_clk_name))
            fragment += crg.get_fragment()

        self.do_finalize(fragment, *args, **kwargs)
        self.finalized = True