phy/ecp5ddrphy: remove rst CSR (does not seem to be necessary on ECP5).
This commit is contained in:
parent
2ea854225f
commit
a39d873946
|
@ -132,8 +132,6 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
cwl_sys_latency = get_sys_latency(nphases, cwl)
|
cwl_sys_latency = get_sys_latency(nphases, cwl)
|
||||||
|
|
||||||
# Registers --------------------------------------------------------------------------------
|
# Registers --------------------------------------------------------------------------------
|
||||||
self._rst = CSRStorage()
|
|
||||||
|
|
||||||
self._dly_sel = CSRStorage(databits//8)
|
self._dly_sel = CSRStorage(databits//8)
|
||||||
|
|
||||||
self._rdly_dq_rst = CSR()
|
self._rdly_dq_rst = CSR()
|
||||||
|
@ -180,7 +178,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
for i in range(len(pads.clk_p)):
|
for i in range(len(pads.clk_p)):
|
||||||
sd_clk_se = Signal()
|
sd_clk_se = Signal()
|
||||||
self.specials += Instance("ODDRX2F",
|
self.specials += Instance("ODDRX2F",
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
**{f"i_D{n}": (0b1010 >> n) & 0b1 for n in range(4)},
|
**{f"i_D{n}": (0b1010 >> n) & 0b1 for n in range(4)},
|
||||||
|
@ -203,7 +201,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
pad = getattr(pads, pad_name)
|
pad = getattr(pads, pad_name)
|
||||||
for i in range(len(pad)):
|
for i in range(len(pad)):
|
||||||
self.specials += Instance("ODDRX2F",
|
self.specials += Instance("ODDRX2F",
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
**{f"i_D{n}": getattr(dfi.phases[n//2], dfi_name)[i] for n in range(4)},
|
**{f"i_D{n}": getattr(dfi.phases[n//2], dfi_name)[i] for n in range(4)},
|
||||||
|
@ -236,7 +234,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
p_DQS_LO_DEL_ADJ = "MINUS",
|
p_DQS_LO_DEL_ADJ = "MINUS",
|
||||||
p_DQS_LO_DEL_VAL = 4,
|
p_DQS_LO_DEL_VAL = 4,
|
||||||
# Clocks / Reset
|
# Clocks / Reset
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
i_DDRDEL = self.init.delay,
|
i_DDRDEL = self.init.delay,
|
||||||
|
@ -278,7 +276,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
dqs_oe_n = Signal()
|
dqs_oe_n = Signal()
|
||||||
self.specials += [
|
self.specials += [
|
||||||
Instance("ODDRX2DQSB",
|
Instance("ODDRX2DQSB",
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
i_DQSW = dqsw,
|
i_DQSW = dqsw,
|
||||||
|
@ -286,7 +284,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
o_Q = dqs
|
o_Q = dqs
|
||||||
),
|
),
|
||||||
Instance("TSHX2DQSA",
|
Instance("TSHX2DQSA",
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
i_DQSW = dqsw,
|
i_DQSW = dqsw,
|
||||||
|
@ -309,7 +307,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
dm_bl8_cases[1] = dm_o_data_muxed.eq(dm_o_data_d[4:])
|
dm_bl8_cases[1] = dm_o_data_muxed.eq(dm_o_data_d[4:])
|
||||||
self.sync += Case(bl8_chunk, dm_bl8_cases)
|
self.sync += Case(bl8_chunk, dm_bl8_cases)
|
||||||
self.specials += Instance("ODDRX2DQA",
|
self.specials += Instance("ODDRX2DQA",
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
i_DQSW270 = dqsw270,
|
i_DQSW270 = dqsw270,
|
||||||
|
@ -336,7 +334,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
self.sync += Case(bl8_chunk, dq_bl8_cases)
|
self.sync += Case(bl8_chunk, dq_bl8_cases)
|
||||||
self.specials += [
|
self.specials += [
|
||||||
Instance("ODDRX2DQA",
|
Instance("ODDRX2DQA",
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
i_DQSW270 = dqsw270,
|
i_DQSW270 = dqsw270,
|
||||||
|
@ -345,7 +343,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
dq_i_bitslip = BitSlip(4,
|
dq_i_bitslip = BitSlip(4,
|
||||||
rst = (self._dly_sel.storage[i] & self._rdly_dq_bitslip_rst.re) | self._rst.storage,
|
rst = self._dly_sel.storage[i] & self._rdly_dq_bitslip_rst.re,
|
||||||
slp = self._dly_sel.storage[i] & self._rdly_dq_bitslip.re,
|
slp = self._dly_sel.storage[i] & self._rdly_dq_bitslip.re,
|
||||||
cycles = 1)
|
cycles = 1)
|
||||||
self.submodules += dq_i_bitslip
|
self.submodules += dq_i_bitslip
|
||||||
|
@ -359,7 +357,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
o_Z = dq_i_delayed
|
o_Z = dq_i_delayed
|
||||||
),
|
),
|
||||||
Instance("IDDRX2DQA",
|
Instance("IDDRX2DQA",
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
i_DQSR90 = dqsr90,
|
i_DQSR90 = dqsr90,
|
||||||
|
@ -376,7 +374,7 @@ class ECP5DDRPHY(Module, AutoCSR):
|
||||||
self.comb += dfi.phases[n//4].rddata[n%4*databits+j].eq(dq_i_data[n])
|
self.comb += dfi.phases[n//4].rddata[n%4*databits+j].eq(dq_i_data[n])
|
||||||
self.specials += [
|
self.specials += [
|
||||||
Instance("TSHX2DQA",
|
Instance("TSHX2DQA",
|
||||||
i_RST = ResetSignal("sys") | self._rst.storage,
|
i_RST = ResetSignal("sys"),
|
||||||
i_SCLK = ClockSignal("sys"),
|
i_SCLK = ClockSignal("sys"),
|
||||||
i_ECLK = ClockSignal("sys2x"),
|
i_ECLK = ClockSignal("sys2x"),
|
||||||
i_DQSW270 = dqsw270,
|
i_DQSW270 = dqsw270,
|
||||||
|
|
Loading…
Reference in New Issue