forked from M-Labs/artiq
gth_ultrascale: fix missing T/RXPROGDIVRESET
This commit is contained in:
parent
946254d22e
commit
9dfb0bfe1b
|
@ -77,8 +77,6 @@ class GTHSingle(Module):
|
||||||
p_ALIGN_PCOMMA_DET ="FALSE",
|
p_ALIGN_PCOMMA_DET ="FALSE",
|
||||||
p_ALIGN_PCOMMA_VALUE =0b0101111100,
|
p_ALIGN_PCOMMA_VALUE =0b0101111100,
|
||||||
p_A_RXOSCALRESET =0b0,
|
p_A_RXOSCALRESET =0b0,
|
||||||
p_A_RXPROGDIVRESET =0b0,
|
|
||||||
p_A_TXPROGDIVRESET =0b0,
|
|
||||||
p_CBCC_DATA_SOURCE_SEL ="ENCODED",
|
p_CBCC_DATA_SOURCE_SEL ="ENCODED",
|
||||||
p_CDR_SWAP_MODE_EN =0b0,
|
p_CDR_SWAP_MODE_EN =0b0,
|
||||||
p_CHAN_BOND_KEEP_ALIGN ="FALSE",
|
p_CHAN_BOND_KEEP_ALIGN ="FALSE",
|
||||||
|
@ -475,6 +473,7 @@ class GTHSingle(Module):
|
||||||
|
|
||||||
# TX Startup/Reset
|
# TX Startup/Reset
|
||||||
i_GTTXRESET=tx_init.gtXxreset,
|
i_GTTXRESET=tx_init.gtXxreset,
|
||||||
|
i_TXPROGDIVRESET=tx_init.gtXxprogdivreset,
|
||||||
o_TXRESETDONE=tx_init.Xxresetdone,
|
o_TXRESETDONE=tx_init.Xxresetdone,
|
||||||
i_TXDLYSRESET=tx_init.Xxdlysreset if mode != "slave" else self.txdlysreset,
|
i_TXDLYSRESET=tx_init.Xxdlysreset if mode != "slave" else self.txdlysreset,
|
||||||
o_TXDLYSRESETDONE=tx_init.Xxdlysresetdone,
|
o_TXDLYSRESETDONE=tx_init.Xxdlysresetdone,
|
||||||
|
@ -501,6 +500,7 @@ class GTHSingle(Module):
|
||||||
|
|
||||||
# RX Startup/Reset
|
# RX Startup/Reset
|
||||||
i_GTRXRESET=rx_init.gtXxreset,
|
i_GTRXRESET=rx_init.gtXxreset,
|
||||||
|
i_RXPROGDIVRESET=rx_init.gtXxprogdivreset,
|
||||||
o_RXRESETDONE=rx_init.Xxresetdone,
|
o_RXRESETDONE=rx_init.Xxresetdone,
|
||||||
i_RXDLYSRESET=rx_init.Xxdlysreset,
|
i_RXDLYSRESET=rx_init.Xxdlysreset,
|
||||||
o_RXPHALIGNDONE=rxphaligndone,
|
o_RXPHALIGNDONE=rxphaligndone,
|
||||||
|
|
|
@ -18,6 +18,8 @@ class GTHInit(Module):
|
||||||
self.plllock = Signal()
|
self.plllock = Signal()
|
||||||
self.pllreset = Signal()
|
self.pllreset = Signal()
|
||||||
self.gtXxreset = Signal()
|
self.gtXxreset = Signal()
|
||||||
|
# Reset signal for programmable divider: https://www.xilinx.com/support/answers/64103.html
|
||||||
|
self.gtXxprogdivreset = Signal()
|
||||||
self.Xxresetdone = Signal()
|
self.Xxresetdone = Signal()
|
||||||
self.Xxdlysreset = Signal()
|
self.Xxdlysreset = Signal()
|
||||||
self.Xxdlysresetdone = Signal()
|
self.Xxdlysresetdone = Signal()
|
||||||
|
@ -46,10 +48,12 @@ class GTHInit(Module):
|
||||||
|
|
||||||
# Deglitch FSM outputs driving transceiver asynch inputs
|
# Deglitch FSM outputs driving transceiver asynch inputs
|
||||||
gtXxreset = Signal()
|
gtXxreset = Signal()
|
||||||
|
gtXxprogdivreset = Signal()
|
||||||
Xxdlysreset = Signal()
|
Xxdlysreset = Signal()
|
||||||
Xxuserrdy = Signal()
|
Xxuserrdy = Signal()
|
||||||
self.sync += [
|
self.sync += [
|
||||||
self.gtXxreset.eq(gtXxreset),
|
self.gtXxreset.eq(gtXxreset),
|
||||||
|
self.gtXxprogdivreset.eq(gtXxprogdivreset),
|
||||||
self.Xxdlysreset.eq(Xxdlysreset),
|
self.Xxdlysreset.eq(Xxdlysreset),
|
||||||
self.Xxuserrdy.eq(Xxuserrdy)
|
self.Xxuserrdy.eq(Xxuserrdy)
|
||||||
]
|
]
|
||||||
|
@ -80,6 +84,7 @@ class GTHInit(Module):
|
||||||
|
|
||||||
startup_fsm.act("RESET_ALL",
|
startup_fsm.act("RESET_ALL",
|
||||||
gtXxreset.eq(1),
|
gtXxreset.eq(1),
|
||||||
|
gtXxprogdivreset.eq(1),
|
||||||
self.pllreset.eq(1),
|
self.pllreset.eq(1),
|
||||||
pll_reset_timer.wait.eq(1),
|
pll_reset_timer.wait.eq(1),
|
||||||
If(pll_reset_timer.done,
|
If(pll_reset_timer.done,
|
||||||
|
|
Loading…
Reference in New Issue