FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6355 Discussions

altera LVDS receiver

Altera_Forum
Honored Contributor II
2,438 Views

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.

0 Kudos
10 Replies
Altera_Forum
Honored Contributor II
575 Views

 

--- 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
0 Kudos
Altera_Forum
Honored Contributor II
575 Views

 

--- 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
0 Kudos
Altera_Forum
Honored Contributor II
575 Views

By the way, the LVDS is designed for fiber link. In another words, the LVDS tx/rx connector to fiber tranceiver.

0 Kudos
Altera_Forum
Honored Contributor II
575 Views

 

--- 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
0 Kudos
Altera_Forum
Honored Contributor II
575 Views

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?
0 Kudos
Altera_Forum
Honored Contributor II
575 Views

 

--- 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
0 Kudos
Altera_Forum
Honored Contributor II
575 Views

 

--- 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
0 Kudos
Altera_Forum
Honored Contributor II
575 Views

Forget to say, the bit rate is only 80Mbps for each channel.

0 Kudos
Altera_Forum
Honored Contributor II
575 Views

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?
0 Kudos
Altera_Forum
Honored Contributor II
575 Views

 

--- 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
0 Kudos
Reply