forked from M-Labs/artiq
pipistrello: run at 83+1/3 MHz, cleanup CRG
This commit is contained in:
parent
9f3f9255a2
commit
cd249b2f66
|
@ -1,3 +1,5 @@
|
||||||
|
from fractions import Fraction
|
||||||
|
|
||||||
from migen.fhdl.std import *
|
from migen.fhdl.std import *
|
||||||
from migen.bank.description import *
|
from migen.bank.description import *
|
||||||
from migen.bank import wbgen
|
from migen.bank import wbgen
|
||||||
|
@ -13,18 +15,18 @@ from artiq.gateware.rtio.phy import ttl_simple, dds
|
||||||
|
|
||||||
|
|
||||||
class _RTIOCRG(Module, AutoCSR):
|
class _RTIOCRG(Module, AutoCSR):
|
||||||
def __init__(self, platform):
|
def __init__(self, platform, clk_freq):
|
||||||
self._clock_sel = CSRStorage()
|
self._clock_sel = CSRStorage()
|
||||||
self.clock_domains.cd_rtio = ClockDomain(reset_less=True)
|
self.clock_domains.cd_rtio = ClockDomain(reset_less=True)
|
||||||
|
|
||||||
# 75MHz -> 125MHz
|
f = Fraction(125*1000*1000, clk_freq)
|
||||||
rtio_internal_clk = Signal()
|
rtio_internal_clk = Signal()
|
||||||
self.specials += Instance("DCM_CLKGEN",
|
self.specials += Instance("DCM_CLKGEN",
|
||||||
p_CLKFXDV_DIVIDE=2,
|
p_CLKFXDV_DIVIDE=2,
|
||||||
p_CLKFX_DIVIDE=3,
|
p_CLKFX_DIVIDE=f.denominator,
|
||||||
p_CLKFX_MD_MAX=1.6,
|
p_CLKFX_MD_MAX=1.6,
|
||||||
p_CLKFX_MULTIPLY=5,
|
p_CLKFX_MULTIPLY=f.numerator,
|
||||||
p_CLKIN_PERIOD=1e3/75,
|
p_CLKIN_PERIOD=1e9/clk_freq,
|
||||||
p_SPREAD_SPECTRUM="NONE",
|
p_SPREAD_SPECTRUM="NONE",
|
||||||
p_STARTUP_WAIT="FALSE",
|
p_STARTUP_WAIT="FALSE",
|
||||||
i_CLKIN=ClockSignal(),
|
i_CLKIN=ClockSignal(),
|
||||||
|
@ -123,7 +125,7 @@ trce -v 12 -fastpaths -tsi {build_name}.tsi -o {build_name}.twr {build_name}.ncd
|
||||||
ififo_depth=4))
|
ififo_depth=4))
|
||||||
|
|
||||||
# RTIO core
|
# RTIO core
|
||||||
self.submodules.rtio_crg = _RTIOCRG(platform)
|
self.submodules.rtio_crg = _RTIOCRG(platform, self.clk_freq)
|
||||||
self.submodules.rtio = rtio.RTIO(rtio_channels,
|
self.submodules.rtio = rtio.RTIO(rtio_channels,
|
||||||
clk_freq=125000000)
|
clk_freq=125000000)
|
||||||
self.add_constant("RTIO_FINE_TS_WIDTH", self.rtio.fine_ts_width)
|
self.add_constant("RTIO_FINE_TS_WIDTH", self.rtio.fine_ts_width)
|
||||||
|
|
Loading…
Reference in New Issue