phy/s7ddrphy: add specific bitslip reset
This commit is contained in:
parent
8ba7fcab23
commit
d0ff536e0d
|
@ -67,6 +67,7 @@ class S7DDRPHY(Module, AutoCSR):
|
||||||
|
|
||||||
self._rdly_dq_rst = CSR()
|
self._rdly_dq_rst = CSR()
|
||||||
self._rdly_dq_inc = CSR()
|
self._rdly_dq_inc = CSR()
|
||||||
|
self._rdly_dq_bitslip_rst = CSR()
|
||||||
self._rdly_dq_bitslip = CSR()
|
self._rdly_dq_bitslip = CSR()
|
||||||
|
|
||||||
if with_odelay:
|
if with_odelay:
|
||||||
|
@ -289,11 +290,6 @@ class S7DDRPHY(Module, AutoCSR):
|
||||||
i_D7=self.dfi.phases[3].wrdata[i], i_D8=self.dfi.phases[3].wrdata[databits+i],
|
i_D7=self.dfi.phases[3].wrdata[i], i_D8=self.dfi.phases[3].wrdata[databits+i],
|
||||||
i_T1=~oe_dq
|
i_T1=~oe_dq
|
||||||
)
|
)
|
||||||
iserdese2_rst = Signal()
|
|
||||||
if with_odelay:
|
|
||||||
self.comb += iserdese2_rst.eq(self._dly_sel.storage[i//8] & self._wdly_dq_rst.re)
|
|
||||||
else:
|
|
||||||
self.comb += iserdese2_rst.eq(self._dly_sel.storage[i//8] & self._rdly_dq_rst.re)
|
|
||||||
self.specials += \
|
self.specials += \
|
||||||
Instance("ISERDESE2",
|
Instance("ISERDESE2",
|
||||||
p_DATA_WIDTH=8, p_DATA_RATE="DDR",
|
p_DATA_WIDTH=8, p_DATA_RATE="DDR",
|
||||||
|
@ -302,7 +298,7 @@ class S7DDRPHY(Module, AutoCSR):
|
||||||
|
|
||||||
i_DDLY=dq_i_delayed,
|
i_DDLY=dq_i_delayed,
|
||||||
i_CE1=1,
|
i_CE1=1,
|
||||||
i_RST=ResetSignal() | iserdese2_rst,
|
i_RST=ResetSignal() | (self._dly_sel.storage[i//8] & self._rdly_dq_bitslip_rst.re),
|
||||||
i_CLK=ClockSignal("sys4x"), i_CLKB=~ClockSignal("sys4x"), i_CLKDIV=ClockSignal(),
|
i_CLK=ClockSignal("sys4x"), i_CLKB=~ClockSignal("sys4x"), i_CLKDIV=ClockSignal(),
|
||||||
i_BITSLIP=self._dly_sel.storage[i//8] & self._rdly_dq_bitslip.re,
|
i_BITSLIP=self._dly_sel.storage[i//8] & self._rdly_dq_bitslip.re,
|
||||||
o_Q8=self.dfi.phases[0].rddata[i], o_Q7=self.dfi.phases[0].rddata[databits+i],
|
o_Q8=self.dfi.phases[0].rddata[i], o_Q7=self.dfi.phases[0].rddata[databits+i],
|
||||||
|
|
Loading…
Reference in New Issue