Closed daveshah1 closed 4 years ago
See also enjoy-digital/litex#490
Thanks! i'll review it in the next days.
In modules.py
, we should probably create specialized SDRAMModules:
class SDRAMRegisteredModule(SDRAMModule): registered = True
class SDRModule(SDRAMModule): memtype = "SDR"
class SDRRegisteredModule(SDRAMRegisteredModule): memtype = "SDR"
...
class DDR4Module(SDRAMModule): memtype = "DDR4"
class DDR4RegisteredModule(SDRAMRegisteredModule): memtype = "DDR4"
And use them as the base class for the modules. This would simplify the definition and would provide the registered
attribute that would be used by the PHY/Core.
In PhySettings
, we could rename is_rdimm
to registered
attribute. Does it make sense for you? If so, i'm happy to do the changes and do the regression testing on targets with Unbuffered memory. (unless you want to do it, but the improvements here are more related to LiteDRAM itself than your PR).
Yes, that sounds good. The RCD drive strength settings come from the SPD data and so should also be a property of DDR4RegisteredModule. Please feel free to make these changes.
Thanks, merged. I'll do the adaptations.
I would appreciate some feedback on the structure, it seems like perhaps is_rdimm and drive strengths should be a module property, but I can't find a nice way of glueing that in.
This also still needs regression testing on a non-RDIMM platform too, I can do that if you want.