- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am currently debugging LVDS receiver on my hardware implemented by altera IP: altlvds_tx/rx. I am facing a problem. When incoming data include more than 4 or 5 successive 0, the received data would be wrong. My design contains 4 channels. The channel is different from others. Some of channel even has problem when successive 0 is only 4. Some of channels have no problem when successive 0 is 5. I simulated by modelsim, the result is correct. The hardware is a released product which I am sure there is no hardware issue. Can any help me out regarding to this issue? thanks alot.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I am currently debugging LVDS receiver on my hardware implemented by altera IP: altlvds_tx/rx. I am facing a problem. When incoming data include more than 4 or 5 successive 0, the received data would be wrong. My design contains 4 channels. The channel is different from others. Some of channel even has problem when successive 0 is only 4. Some of channels have no problem when successive 0 is 5. I simulated by modelsim, the result is correct. The hardware is a released product which I am sure there is no hardware issue. Can any help me out regarding to this issue? thanks alot. --- Quote End --- Without seeing the schematic and layout, we can only guess ... so here's a few: 1. You have AC coupled your LVDS link, or 2. Your frame clock is misaligned with your LVDS, possibly due to this one channel having a longer trace than the others (though this would have to be a very bad layout to get high enough skew). 3. You are getting coupling between traces, and you just happen to notice it when the other trace has zeros on it. Try toggling one trace and see what is received on all traces. Cheers, Dave
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Without seeing the schematic and layout, we can only guess ... so here's a few: 1. You have AC coupled your LVDS link, or 2. Your frame clock is misaligned with your LVDS, possibly due to this one channel having a longer trace than the others (though this would have to be a very bad layout to get high enough skew). 3. You are getting coupling between traces, and you just happen to notice it when the other trace has zeros on it. Try toggling one trace and see what is received on all traces. Cheers, Dave --- Quote End --- Thanks Dave for your answers. The hardware platform I am using is a mature design, which have been using for 3 years in a product. So I assume maybe layout is not a issue. When I try to transmit 0x00 on all channel, all channels would receive wrong data. Do you know if altlvds_tx/rx support successive 0 transmitting? I read the mannual of the IP and searched for other documents. But there is no mentioning about this. thanks again for helping me. Regards
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
By the way, the LVDS is designed for fiber link. In another words, the LVDS tx/rx connector to fiber tranceiver.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- The hardware platform I am using is a mature design, which have been using for 3 years in a product. So I assume maybe layout is not a issue. --- Quote End --- Ok. --- Quote Start --- When I try to transmit 0x00 on all channel, all channels would receive wrong data. --- Quote End --- Have you tried this on multiple versions of the board, just to make sure you are not using a bad one? --- Quote Start --- Do you know if altlvds_tx/rx support successive 0 transmitting? I read the mannual of the IP and searched for other documents. But there is no mentioning about this. --- Quote End --- There are no restrictions like this as far as the IP is concerned. However, the transmitted/received data format does depend on your connection to the 'outside world', eg. if you do AC couple to the fiber receivers, then successive zeros would be bad. Can you confirm that your hardware connection is LVDS transmitter to LVDS receiver (no AC coupling)? Cheers, Dave
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Assuming the link is DC coupled, the receiver bit clock may have an unsuitable alignment. I usually determine the timing margins and center the bit clock to the range.
What's your bit rate and expectable sampling window?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Ok. Have you tried this on multiple versions of the board, just to make sure you are not using a bad one? There are no restrictions like this as far as the IP is concerned. However, the transmitted/received data format does depend on your connection to the 'outside world', eg. if you do AC couple to the fiber receivers, then successive zeros would be bad. Can you confirm that your hardware connection is LVDS transmitter to LVDS receiver (no AC coupling)? Cheers, Dave --- Quote End --- Thanks Dave, it is LVDS link between transmitter and receiver. If there is AC coupling, the bad data may occur for any data rather than only for succesive 0. Is this logic correct? Anyway, I will check if there is AC coupling. Regards
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Assuming the link is DC coupled, the receiver bit clock may have an unsuitable alignment. I usually determine the timing margins and center the bit clock to the range. What's your bit rate and expectable sampling window? --- Quote End --- Thanks FvM. Honestly I don't now what the samplng window is and don't know if it is really center alignment. I use Cyconle III device which have limited options to choose. I use control characters for data alignment as recommended by Altera. I write a component by VHDL dedicated for data alignment. I simualted the design by modelsim, there is no issue. Could you please tell me how to check samping window/center alignment? Thanks alot Regards
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Forget to say, the bit rate is only 80Mbps for each channel.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sampling window is a term used in the Altera device manuals. It's minimal range for the bitclock edge where the data will be sampled correctly. At 80 MSPS it will be pretty large. But it can't be excluded, that the bitclock is aligned unsuitably by design.
--- Quote Start --- I use control characters for data alignment as recommended by Altera. --- Quote End --- You didn't tell the involved FPGA family. Are you talking about word alignment or also bit phase alignment (DPA), as available with Arria and Stratix devices?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Sampling window is a term used in the Altera device manuals. It's minimal range for the bitclock edge where the data will be sampled correctly. At 80 MSPS it will be pretty large. But it can't be excluded, that the bitclock is aligned unsuitably by design. You didn't tell the involved FPGA family. Are you talking about word alignment or also bit phase alignment (DPA), as available with Arria and Stratix devices? --- Quote End --- The FPGA family is Cyclone III. Yes, I am talking about word alignment. Regarding to DPA, this is something I am not sure about. Is this included in the IP? For Cyclone III device family, the DPA settings are not available. I attached the schematic(bdf). Could you please have a look? Regards

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page