phy: remove ALIGN primitives on RX path
This commit is contained in:
parent
f976b65cf1
commit
e4c0b4a11f
|
@ -137,6 +137,11 @@ class K7SATAPHYDatapath(Module):
|
||||||
)
|
)
|
||||||
send_align = (align_cnt < 2)
|
send_align = (align_cnt < 2)
|
||||||
|
|
||||||
|
receive_align = Signal()
|
||||||
|
self.comb += receive_align.eq(rx.source.stb &
|
||||||
|
(rx.source.charisk == 0b0001) &
|
||||||
|
(rx.source.data == primitives["ALIGN"])
|
||||||
|
|
||||||
# user / ctrl mux
|
# user / ctrl mux
|
||||||
self.comb += [
|
self.comb += [
|
||||||
# user
|
# user
|
||||||
|
@ -152,10 +157,14 @@ class K7SATAPHYDatapath(Module):
|
||||||
tx.sink.charisk.eq(self.sink.charisk),
|
tx.sink.charisk.eq(self.sink.charisk),
|
||||||
self.sink.ack.eq(tx.sink.ack)
|
self.sink.ack.eq(tx.sink.ack)
|
||||||
),
|
),
|
||||||
self.source.stb.eq(rx.source.stb),
|
If(receive_align,
|
||||||
self.source.data.eq(rx.source.data),
|
rx.source.ack.eq(1)
|
||||||
self.source.charisk.eq(rx.source.charisk),
|
).Else(
|
||||||
rx.source.ack.eq(1),
|
self.source.stb.eq(rx.source.stb),
|
||||||
|
self.source.data.eq(rx.source.data),
|
||||||
|
self.source.charisk.eq(rx.source.charisk),
|
||||||
|
rx.source.ack.eq(1)
|
||||||
|
)
|
||||||
# ctrl
|
# ctrl
|
||||||
).Else(
|
).Else(
|
||||||
tx.sink.stb.eq(ctrl.source.stb),
|
tx.sink.stb.eq(ctrl.source.stb),
|
||||||
|
|
Loading…
Reference in New Issue