litex/mibuild/crg.py

21 lines
564 B
Python

from migen.fhdl.structure import *
from migen.fhdl.module import Module
class CRG(Module):
def get_clock_domains(self):
r = dict()
for k, v in self.__dict__.items():
if isinstance(v, ClockDomain):
r[v.name] = v
return r
class SimpleCRG(CRG):
def __init__(self, platform, clk_name, rst_name, rst_invert=False):
self.cd = ClockDomain("sys")
platform.request(clk_name, None, self.cd.clk)
if rst_invert:
rst_n = platform.request(rst_name)
self.comb += self.cd.rst.eq(~rst_n)
else:
platform.request(rst_name, None, self.cd.rst)