phy/gensdrphy: make CAS latency configurable
This commit is contained in:
parent
b4ee95c3e3
commit
fc3a192a87
|
@ -10,8 +10,6 @@
|
||||||
# Assert dfi_rddata_en in the same cycle as the read command. The data will come
|
# Assert dfi_rddata_en in the same cycle as the read command. The data will come
|
||||||
# back on dfi_rddata 4 cycles later, along with the assertion of dfi_rddata_valid.
|
# back on dfi_rddata 4 cycles later, along with the assertion of dfi_rddata_valid.
|
||||||
#
|
#
|
||||||
# This SDR PHY only supports CAS Latency 2.
|
|
||||||
#
|
|
||||||
|
|
||||||
from migen import *
|
from migen import *
|
||||||
from migen.genlib.record import *
|
from migen.genlib.record import *
|
||||||
|
@ -22,7 +20,7 @@ from litedram.phy.dfi import *
|
||||||
|
|
||||||
|
|
||||||
class GENSDRPHY(Module):
|
class GENSDRPHY(Module):
|
||||||
def __init__(self, pads):
|
def __init__(self, pads, cl=2):
|
||||||
addressbits = len(pads.a)
|
addressbits = len(pads.a)
|
||||||
bankbits = len(pads.ba)
|
bankbits = len(pads.ba)
|
||||||
nranks = 1 if not hasattr(pads, "cs_n") else len(pads.cs_n)
|
nranks = 1 if not hasattr(pads, "cs_n") else len(pads.cs_n)
|
||||||
|
@ -37,8 +35,8 @@ class GENSDRPHY(Module):
|
||||||
wrphase=0,
|
wrphase=0,
|
||||||
rdcmdphase=0,
|
rdcmdphase=0,
|
||||||
wrcmdphase=0,
|
wrcmdphase=0,
|
||||||
cl=2,
|
cl=cl,
|
||||||
read_latency=4,
|
read_latency=cl + 2,
|
||||||
write_latency=0
|
write_latency=0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -81,6 +79,6 @@ class GENSDRPHY(Module):
|
||||||
self.sync += wrdata_en.eq(dfi.p0.wrdata_en)
|
self.sync += wrdata_en.eq(dfi.p0.wrdata_en)
|
||||||
self.comb += dq_oe.eq(wrdata_en)
|
self.comb += dq_oe.eq(wrdata_en)
|
||||||
|
|
||||||
rddata_en = Signal(4)
|
rddata_en = Signal(cl + 2)
|
||||||
self.sync += rddata_en.eq(Cat(dfi.p0.rddata_en, rddata_en[:3]))
|
self.sync += rddata_en.eq(Cat(dfi.p0.rddata_en, rddata_en[:cl + 1]))
|
||||||
self.comb += dfi.p0.rddata_valid.eq(rddata_en[3])
|
self.comb += dfi.p0.rddata_valid.eq(rddata_en[cl + 1])
|
||||||
|
|
Loading…
Reference in New Issue