--- Quote Start ---
The frame line is just a 9th data line that sends a constant value. If you're doing x14 deserialization, then it sends "1111111_0000000." But it looks like x14 is not an option, so you're going to be doing x7. That means the frame data is going to alternate between "1111111" and "0000000".
If you're already using an 8-channel altlvds megafunction, just change it to 9 channel. You also need to select options so that you have the rx_channel_data_align port on the altlvds. This port allows you at ask the altlvds block to change where the word boundary is in the serial stream. Every pulse on this port moves the word boundary by one stream.
The final piece is to write a fairly simple state machine to pulse rx_channel_data_align until you see the frame channel coming out of the lvds block as "1111111" or "0000000." The bit-slip operation applies to all 9 data channels, so once you have the frame pattern aligned, your other 8 data lines are also word aligned.
In summary, the frame "clock" is really just another data line with a known word being transmitted. You can use that knowledge to find the correct word boundary in the serial stream on the other 8 data lines.
Also note, that the frame word also tells you whether you are getting the high 7-bits or low 7-bits. It is "1111111" for one and "0000000" for the other.
--- Quote End ---
Hello,
This post is very useful for me.
In my case, i want use a FPGA to receive several ADCs (octal channels), for example each side receive 3 ADCs by using EP4S230KF40C2. Question is that there are only 2 left-right-PLL for each side. So i need use external PLL mode for this application. It seems i should use "LVDS interface with Use External PLL Option Enabled" mode. Is there any issue by using one PLL for those 3 LVDS streaming?
PS: The attached image is found in Linear Tech's AN paper
http://www.alteraforum.com/forum/attachment.php?attachmentid=12277&stc=1 .
Thanks