core: add LiteDRAMCore (ControllerInjector from LiteX)

This commit is contained in:
Florent Kermarrec 2019-09-29 14:42:41 +02:00
parent d647abd026
commit 5d1a9847aa
1 changed files with 28 additions and 1 deletions

View File

@ -1,2 +1,29 @@
from migen import *
from litex.soc.interconnect.csr import AutoCSR
from litedram.dfii import DFIInjector
from litedram.core.controller import ControllerSettings, LiteDRAMController
from litedram.core.crossbar import LiteDRAMCrossbar
# Core ---------------------------------------------------------------------------------------------
class LiteDRAMCore(Module, AutoCSR):
def __init__(self, phy, geom_settings, timing_settings, clk_freq, **kwargs):
self.submodules.dfii = DFIInjector(
addressbits = geom_settings.addressbits,
bankbits = geom_settings.bankbits,
nranks = phy.settings.nranks,
databits = phy.settings.dfi_databits,
nphases = phy.settings.nphases)
self.comb += self.dfii.master.connect(phy.dfi)
self.submodules.controller = controller = LiteDRAMController(
phy_settings = phy.settings,
geom_settings = geom_settings,
timing_settings = timing_settings,
clk_freq = clk_freq,
**kwargs)
self.comb += controller.dfi.connect(self.dfii.slave)
self.submodules.crossbar = LiteDRAMCrossbar(controller.interface)