from litex.build.xilinx.vivado import vivado_build_args, vivado_build_argdict
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(100e6), **kwargs):
platform = arty.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
sys_clk_freq = sys_clk_freq,
interface_type = "MEMORY")
self.add_csr("ddrphy")
- sdram_module = MT41K128M16(sys_clk_freq, "1:4")
- self.register_sdram(self.ddrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.ddrphy,
+ module = MT41K128M16(sys_clk_freq, "1:4"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# EthernetSoC --------------------------------------------------------------------------------------
from litex_boards.platforms import de0nano
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(50e6), **kwargs):
assert sys_clk_freq == int(50e6)
platform = de0nano.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform)
# SDR SDRAM --------------------------------------------------------------------------------
if not self.integrated_main_ram_size:
self.submodules.sdrphy = GENSDRPHY(platform.request("sdram"))
- sdram_module = IS42S16160(self.clk_freq, "1:1")
- self.register_sdram(self.sdrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.sdrphy,
+ module = IS42S16160(self.clk_freq, "1:1"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# Build --------------------------------------------------------------------------------------------
from litex.boards.platforms import genesys2
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(125e6), **kwargs):
platform = genesys2.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
nphases = 4,
sys_clk_freq = sys_clk_freq)
self.add_csr("ddrphy")
- sdram_module = MT41J256M16(self.clk_freq, "1:4")
- self.register_sdram(self.ddrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.ddrphy,
+ module = MT41J256M16(self.clk_freq, "1:4"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# EthernetSoC --------------------------------------------------------------------------------------
from litex.boards.platforms import kc705
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(125e6), **kwargs):
platform = kc705.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
cmd_latency = 1)
self.add_csr("ddrphy")
self.add_constant("DDRPHY_CMD_DELAY", 13)
- sdram_module = MT8JTF12864(sys_clk_freq, "1:4")
- self.register_sdram(self.ddrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.ddrphy,
+ module = MT8JTF12864(sys_clk_freq, "1:4"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# EthernetSoC --------------------------------------------------------------------------------------
from litex.boards.platforms import kcu105
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(125e6), **kwargs):
platform = kcu105.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
cmd_latency = 0)
self.add_csr("ddrphy")
self.add_constant("USDDRPHY", None)
- sdram_module = EDY4016A(sys_clk_freq, "1:4")
- self.register_sdram(self.ddrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.ddrphy,
+ module = EDY4016A(sys_clk_freq, "1:4"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# EthernetSoC --------------------------------------------------------------------------------------
from litex.boards.platforms import minispartan6
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(80e6), **kwargs):
assert sys_clk_freq == int(80e6)
platform = minispartan6.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
# SDR SDRAM --------------------------------------------------------------------------------
if not self.integrated_main_ram_size:
self.submodules.sdrphy = GENSDRPHY(platform.request("sdram"))
- sdram_module = AS4C16M16(sys_clk_freq, "1:1")
- self.register_sdram(self.sdrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.sdrphy,
+ module = AS4C16M16(sys_clk_freq, "1:1"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# Build --------------------------------------------------------------------------------------------
from litex.boards.platforms import netv2
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(100e6), **kwargs):
platform = netv2.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ---------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
nphases = 4,
sys_clk_freq = sys_clk_freq)
self.add_csr("ddrphy")
- sdram_module = K4B2G1646F(sys_clk_freq, "1:4")
- self.register_sdram(self.ddrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.ddrphy,
+ module = K4B2G1646F(sys_clk_freq, "1:4"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# EthernetSoC --------------------------------------------------------------------------------------
from litex.boards.platforms import nexys_video
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(100e6), **kwargs):
platform = nexys_video.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
nphases = 4,
sys_clk_freq = sys_clk_freq)
self.add_csr("ddrphy")
- sdram_module = MT41K256M16(sys_clk_freq, "1:4")
- self.register_sdram(self.ddrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.ddrphy,
+ module = MT41K256M16(sys_clk_freq, "1:4"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# EthernetSoC --------------------------------------------------------------------------------------
from litex.build.xilinx.vivado import vivado_build_args, vivado_build_argdict
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, sys_clk_freq=int(100e6), **kwargs):
platform = pcie_screamer.Platform()
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
nphases = 4,
sys_clk_freq = sys_clk_freq)
self.add_csr("ddrphy")
- sdram_module = MT41K128M16(sys_clk_freq, "1:4")
- self.register_sdram(self.ddrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.ddrphy,
+ module = MT41K128M16(sys_clk_freq, "1:4"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# Build --------------------------------------------------------------------------------------------
from litex.build.lattice.trellis import trellis_args, trellis_argdict
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
# BaseSoC ------------------------------------------------------------------------------------------
-class BaseSoC(SoCSDRAM):
+class BaseSoC(SoCCore):
def __init__(self, device="LFE5U-45F", toolchain="trellis",
sys_clk_freq=int(50e6), sdram_module_cls="MT48LC16M16", **kwargs):
platform = ulx3s.Platform(device=device, toolchain=toolchain)
- # SoCSDRAM ---------------------------------------------------------------------------------
- SoCSDRAM.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
+
+ # SoCCore ----------------------------------------------------------------------------------
+ SoCCore.__init__(self, platform, clk_freq=sys_clk_freq, **kwargs)
# CRG --------------------------------------------------------------------------------------
self.submodules.crg = _CRG(platform, sys_clk_freq)
# SDR SDRAM --------------------------------------------------------------------------------
if not self.integrated_main_ram_size:
self.submodules.sdrphy = GENSDRPHY(platform.request("sdram"), cl=2)
- sdram_module = getattr(litedram_modules, sdram_module_cls)(sys_clk_freq, "1:1")
- self.register_sdram(self.sdrphy,
- sdram_module.geom_settings,
- sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.sdrphy,
+ module = getattr(litedram_modules, sdram_module_cls)(sys_clk_freq, "1:1"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# Build --------------------------------------------------------------------------------------------
from litex.build.lattice.trellis import trellis_args, trellis_argdict
from litex.soc.cores.clock import *
+from litex.soc.integration.soc_core import *
from litex.soc.integration.soc_sdram import *
from litex.soc.integration.builder import *
self.add_csr("ddrphy")
self.add_constant("ECP5DDRPHY", None)
self.comb += self.crg.stop.eq(self.ddrphy.init.stop)
- sdram_module = MT41K64M16(sys_clk_freq, "1:2")
- self.register_sdram(self.ddrphy,
- geom_settings = sdram_module.geom_settings,
- timing_settings = sdram_module.timing_settings)
+ self.add_sdram("sdram",
+ phy = self.ddrphy,
+ module = MT41K64M16(sys_clk_freq, "1:2"),
+ origin = self.mem_map["main_ram"],
+ size = kwargs.get("max_sdram_size", 0x40000000),
+ l2_cache_size = kwargs.get("l2_size", 8192),
+ l2_cache_min_data_width = kwargs.get("min_l2_data_width", 128),
+ l2_cache_reverse = True
+ )
# EthernetSoC --------------------------------------------------------------------------------------