mirror of
https://github.com/enjoy-digital/usb3_pipe.git
synced 2025-01-04 10:18:41 +08:00
ltssm: implement rx_polarity detection (if ts1 received first, set rx_polarity to 0, if ts2 received first, set rx_polarity to 1)
This commit is contained in:
parent
dbb756baaa
commit
96c02aa56e
@ -241,9 +241,14 @@ class PollingFSM(Module):
|
||||
NextState("Polling.ExitToRxDetect")
|
||||
),
|
||||
# Go to Activation if at least 8 consecutive TS1 or TS2 seen (8 ensured by ts_unit)
|
||||
If(ts_unit.rx_ts1 | ts_unit.rx_ts2,
|
||||
If(ts_unit.rx_ts1,
|
||||
NextValue(serdes.rx_polarity, 0),
|
||||
NextState("Polling.Activation")
|
||||
)
|
||||
),
|
||||
If(ts_unit.rx_ts2,
|
||||
NextValue(serdes.rx_polarity, 1),
|
||||
NextState("Polling.Activation")
|
||||
),
|
||||
)
|
||||
|
||||
# Configuration State (7.5.4.6) ------------------------------------------------------------
|
||||
@ -296,11 +301,3 @@ class LTSSM(Module):
|
||||
|
||||
# LTSSM FSM --------------------------------------------------------------------------------
|
||||
self.submodules.ltssm = LTSSMFSM()
|
||||
|
||||
# FIXME; Experimental RX polarity swap
|
||||
rx_polarity_timer = WaitTimer(int(sys_clk_freq*1e-3))
|
||||
self.submodules += rx_polarity_timer
|
||||
self.comb += rx_polarity_timer.wait.eq(
|
||||
self.polling.fsm.ongoing("Polling.RxEQ") &
|
||||
~rx_polarity_timer.done)
|
||||
self.sync += If(rx_polarity_timer.done, serdes.rx_polarity.eq(~serdes.rx_polarity))
|
||||
|
Loading…
x
Reference in New Issue
Block a user