core: add LiteDRAMCore (ControllerInjector from LiteX)
This commit is contained in:
parent
d647abd026
commit
5d1a9847aa
|
@ -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.controller import ControllerSettings, LiteDRAMController
|
||||||
from litedram.core.crossbar import LiteDRAMCrossbar
|
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)
|
||||||
|
|
Loading…
Reference in New Issue