06-09-2014 06:20 AM
Hi, I use GTX transceivers on board KC705 with optical cannel. I want to transmit data with the rate 10.3125 Gb/s continuously (method of encoding 64B/66B), i.e. data must transmit in real time without pauses. But there are pauses when a signal RXDATAVALID is low. I read UG476 and know that this signal is deasserted every N cycles for the M-byte interface. May I transmit data continuously in real time? Is it really?
Is this transmit data pause a requirement of the encoding 64B/66?
06-09-2014 09:09 AM
If you are using the 64b/66b encoding, this is expected and a requirement.
If you do not want such pause, in the data transmission then 8b/10b should be the correct encoding scheme for you. However eventhough there are regular pauses, the overhead in 64b/66b is much higher than in 8b/10b.
you can read through pg 278-279 UG476 for more informaiton and timing diagrams - http://www.xilinx.com/support/documentation/user_guides/ug476_7Series_Transceivers.pdf
06-09-2014 09:14 AM
The GTX is always transmitting and receiving the bits at the line rate (10.3125 Gbps in your case). The internal data path must pause/stall once every 32 cycles in the 64B66B mode as the clock frequency is 1/64 of the line rate (161.11328125 MHz) instead of 1/66 of the line rate (156.25 MHz) in order to be able to transmit the extra two bits.
If you put additional FIFOs on the TX/RX interfaces running at 156.25 MHz to the fabric and 161.11 MHz to the GTX then the logic side would not pause, but it would have higher latency.