sdram: disable by default bandwidth_measurement on lasmicon

This commit is contained in:
Florent Kermarrec 2015-03-02 19:53:16 +01:00
parent ca42611b6b
commit 410a162841
3 changed files with 9 additions and 6 deletions

View File

@ -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)

View File

@ -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()

View File

@ -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)