03-18-2020 06:25 AM
Hi!
I am using 7 series GTX as serial port for sata project.
In sata there is an ALIGN Primitive (comma word) for synchronization. The standard says:
The phy layer (GTX) is free to consume received ALIGN primitives. Implementations where the Phy dose not consume received ALIGN primitives shall effectively drop received ALIGN primitives ...
so I wonder if GTX consumes the ALIGN or not and how to know that. I read the documentation but could not find the answer.
Thanks in advance.
03-19-2020 03:11 AM - edited 03-19-2020 03:46 AM
Hello @ahmad.zaklouta
>so if I use RX elastic buffer and enabled clock correction, I will not see ALIGN primitive on the output of GTX and I don't need to handle it in link layer?
No, that's not correct.
If you are using elastic buffer and enabled clock correction, GTX RX may remove or duplicate ALIGNp word when needed.
So,
if TX REFCLK is faster than RX REFCLK, GTX RX will remove ALIGNp word periodically.
if TX REFCLK is slower than RX REFCLK, GTX RX will duplicate ALIGNp word periodically.
GTX will do clock correction job (so your link module does not need to perform this task), but GTX RX may output ALIGNp word sometimes.
Regards
Leo
03-18-2020 09:37 PM
Hello @ahmad.zaklouta
It depends on your GTX configuration.
SATA protocol use ALIGNp word ( which consist of 4 characters (K28.5/D10.2/D10.2/D27.3)) to perform a clock-correction.
If you are using RX elastic buffer and enabled clock correction, GTX will consume (or duplicate) ALIGNp word when necessary.
Please set parameters on "CB and CC sequence" tab to match your system/protocol implementation.
Regards
Leo
03-19-2020 02:37 AM
Hi @karnanl
thank you for your answer.
so if I use RX elastic buffer and enabled clock correction, I will not see ALIGN primitive on the output of GTX and I don't need to handle it in link layer?
03-19-2020 03:11 AM - edited 03-19-2020 03:46 AM
Hello @ahmad.zaklouta
>so if I use RX elastic buffer and enabled clock correction, I will not see ALIGN primitive on the output of GTX and I don't need to handle it in link layer?
No, that's not correct.
If you are using elastic buffer and enabled clock correction, GTX RX may remove or duplicate ALIGNp word when needed.
So,
if TX REFCLK is faster than RX REFCLK, GTX RX will remove ALIGNp word periodically.
if TX REFCLK is slower than RX REFCLK, GTX RX will duplicate ALIGNp word periodically.
GTX will do clock correction job (so your link module does not need to perform this task), but GTX RX may output ALIGNp word sometimes.
Regards
Leo