__ALL__ = ["gramCore"]
class gramCore(Peripheral, Elaboratable):
- def __init__(self, phy, geom_settings, timing_settings, clk_freq, **kwargs):
+ def __init__(self, phy, geom_settings, timing_settings, clk_freq,
+ features=frozenset(), **kwargs):
super().__init__("core")
bank = self.csr_bank()
self.crossbar = gramCrossbar(self.controller.interface)
- self._bridge = self.bridge(data_width=32, granularity=8, alignment=2)
+ self._bridge = self.bridge(data_width=32, granularity=8, alignment=2,
+ features=features)
self.bus = self._bridge.bus
def elaborate(self, platform):
class ECP5DDRPHY(Peripheral, Elaboratable):
- def __init__(self, pads, sys_clk_freq=100e6):
+ def __init__(self, pads, features=frozenset(), sys_clk_freq=100e6):
super().__init__(name="phy")
self.pads = pads
self.rdly += [bank.csr(3, "rw", name="rdly_p1")]
self.bitslip = bank.csr(3, "rw") # phase-delay on read
- self._bridge = self.bridge(data_width=32, granularity=8, alignment=2)
+ self._bridge = self.bridge(data_width=32, granularity=8, alignment=2,
+ features=features)
self.bus = self._bridge.bus
addressbits = len(self.pads.a.o0)
drs = ResetSignal("dramsync")
m.d.comb += rst.eq(drs)
#if hasattr(self.pads, "rst"):
-
# Addresses and Commands ---------------------------------------------------------------
m.d.comb += [