UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor dermydermy
Visitor
242 Views
Registered: ‎10-20-2018

Inconsistent rx data when using transceiver example design

 

I am using Vivado 2015.3.  I am a student trying to send 4b5b encoded data at 10Gbs.  I am using a custom flag in the data to find alignment.  The problem i am having is that the received data is most of the time being corrupted.  Below is what i expect the output to look like, which i seldom get.  correct.JPG

 What i am seeing most often is a consistent but incorrect data like below.incorrect.JPG

 Other times i get a kind of rolling corruption where the data is correct for a while then becomes corrupt and repeats like below.

 rolling.JPG

 

I am not sure what i am doing wrong or if i missed a setting or variable somewhere.  I attached a few of the files from the design.  Any help would be greatly appreciated.

 

0 Kudos
3 Replies
Moderator
Moderator
173 Views
Registered: ‎07-30-2007

Re: Inconsistent rx data when using transceiver example design

4B5B is the same as 8B10B. If your comma alignment character is wide enough (2characters) you can use the built in comma alignment. You can use the built in 8B10B encoder for that matter and the GT wizard will build a working design for you. "Rolling corruption" often means that the RX clocks are not synchronized to the data. This can happen if you start the RX reset before there is RX input data or doing a "reset all" in a loopback set up. How are you doing alignment? Are you doing rxslide pulses? What transceiver is this.
Roy


----------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution
----------------------------------------------------------------------------


Visitor dermydermy
Visitor
160 Views
Registered: ‎10-20-2018

Re: Inconsistent rx data when using transceiver example design

This is on a Kintex 7 board.  I am using the example design for the transceiver, but with the data to transmit changed to 4b5b data.  When I used the default data for the example design the transmitted and received data matched but not when i switched to 4b5b data.  When i do rxslide pulses the data that is received is after each pulse is still incorrect like in the second image but different.  So is there a reason that the transceiver should work for simple data but fail for encoded data? 

0 Kudos
Xilinx Employee
Xilinx Employee
122 Views
Registered: ‎06-01-2017

Re: Inconsistent rx data when using transceiver example design

Looking at the second picture, the rx_data is repeating the same pattern, your bits_shifted is fixed at 11 (so it was able to find a matching flag at position 11), but the aligned rx_data is still not matching the tx_data pattern after the 11 bit shift. Can you check the raw bits in the alignment module and see why the shifted data did not match as expected? Check if you have inverted polarity somewhere.
I tried to look at the raw bits for your txdata and comparing with the received pattern (a4f08439ce...), I didn't see any bit segment matching the "flag".

In addition, try adding these additional status ports to your ILA:

RXBYTEISALIGNED, RXBYTEREALIGN, RXCHARISCOMMA, RXCHARISK, RXDISPERR, RXNOTINTABLE

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------