sdram: disable by default bandwidth_measurement on lasmicon
This commit is contained in:
parent
ca42611b6b
commit
410a162841
|
@ -7,14 +7,14 @@ from misoclib.mem.sdram.core import minicon, lasmicon
|
||||||
from misoclib.mem.sdram.core.lasmicon.crossbar import Crossbar
|
from misoclib.mem.sdram.core.lasmicon.crossbar import Crossbar
|
||||||
|
|
||||||
class SDRAMCore(Module, AutoCSR):
|
class SDRAMCore(Module, AutoCSR):
|
||||||
def __init__(self, phy, ramcon_type, sdram_geom, sdram_timing):
|
def __init__(self, phy, ramcon_type, sdram_geom, sdram_timing, **kwargs):
|
||||||
# DFI
|
# DFI
|
||||||
self.submodules.dfii = dfii.DFIInjector(phy, sdram_geom.mux_a, sdram_geom.bank_a)
|
self.submodules.dfii = dfii.DFIInjector(phy, sdram_geom.mux_a, sdram_geom.bank_a)
|
||||||
self.comb += Record.connect(self.dfii.master, phy.dfi)
|
self.comb += Record.connect(self.dfii.master, phy.dfi)
|
||||||
|
|
||||||
# LASMICON
|
# LASMICON
|
||||||
if ramcon_type == "lasmicon":
|
if ramcon_type == "lasmicon":
|
||||||
self.submodules.controller = controller = lasmicon.LASMIcon(phy, sdram_geom, sdram_timing)
|
self.submodules.controller = controller = lasmicon.LASMIcon(phy, sdram_geom, sdram_timing, **kwargs)
|
||||||
self.comb += Record.connect(controller.dfi, self.dfii.slave)
|
self.comb += Record.connect(controller.dfi, self.dfii.slave)
|
||||||
|
|
||||||
self.submodules.crossbar = crossbar = Crossbar([controller.lasmic], controller.nrowbits)
|
self.submodules.crossbar = crossbar = Crossbar([controller.lasmic], controller.nrowbits)
|
||||||
|
|
|
@ -6,7 +6,7 @@ from misoclib.mem.sdram.core.lasmicon.bankmachine import *
|
||||||
from misoclib.mem.sdram.core.lasmicon.multiplexer import *
|
from misoclib.mem.sdram.core.lasmicon.multiplexer import *
|
||||||
|
|
||||||
class LASMIcon(Module):
|
class LASMIcon(Module):
|
||||||
def __init__(self, phy, geom_settings, timing_settings):
|
def __init__(self, phy, geom_settings, timing_settings, **kwargs):
|
||||||
if phy.settings.memtype in ["SDR"]:
|
if phy.settings.memtype in ["SDR"]:
|
||||||
burst_length = phy.settings.nphases*1 # command multiplication*SDR
|
burst_length = phy.settings.nphases*1 # command multiplication*SDR
|
||||||
elif phy.settings.memtype in ["DDR", "LPDDR", "DDR2", "DDR3"]:
|
elif phy.settings.memtype in ["DDR", "LPDDR", "DDR2", "DDR3"]:
|
||||||
|
@ -35,7 +35,8 @@ class LASMIcon(Module):
|
||||||
for i in range(2**geom_settings.bank_a)]
|
for i in range(2**geom_settings.bank_a)]
|
||||||
self.submodules.multiplexer = Multiplexer(phy, geom_settings, timing_settings,
|
self.submodules.multiplexer = Multiplexer(phy, geom_settings, timing_settings,
|
||||||
self.bank_machines, self.refresher,
|
self.bank_machines, self.refresher,
|
||||||
self.dfi, self.lasmic)
|
self.dfi, self.lasmic,
|
||||||
|
**kwargs)
|
||||||
|
|
||||||
def get_csrs(self):
|
def get_csrs(self):
|
||||||
return self.multiplexer.get_csrs()
|
return self.multiplexer.get_csrs()
|
||||||
|
|
|
@ -89,7 +89,8 @@ class _Steerer(Module):
|
||||||
]
|
]
|
||||||
|
|
||||||
class Multiplexer(Module, AutoCSR):
|
class Multiplexer(Module, AutoCSR):
|
||||||
def __init__(self, phy, geom_settings, timing_settings, bank_machines, refresher, dfi, lasmic):
|
def __init__(self, phy, geom_settings, timing_settings, bank_machines, refresher, dfi, lasmic,
|
||||||
|
with_bandwidth_measurement=False):
|
||||||
assert(phy.settings.nphases == len(dfi.phases))
|
assert(phy.settings.nphases == len(dfi.phases))
|
||||||
|
|
||||||
# Command choosing
|
# Command choosing
|
||||||
|
@ -211,4 +212,5 @@ class Multiplexer(Module, AutoCSR):
|
||||||
fsm.finalize()
|
fsm.finalize()
|
||||||
self.comb += refresher.ack.eq(fsm.state == fsm.encoding["REFRESH"])
|
self.comb += refresher.ack.eq(fsm.state == fsm.encoding["REFRESH"])
|
||||||
|
|
||||||
|
if with_bandwidth_measurement:
|
||||||
self.submodules.bandwidth = Bandwidth(choose_req.cmd)
|
self.submodules.bandwidth = Bandwidth(choose_req.cmd)
|
||||||
|
|
Loading…
Reference in New Issue