Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16648 Discussions

about LVDS word alignment

Altera_Forum
Honored Contributor II
2,376 Views

Hello, I'm now using an A/D with serial LVDS output, it's 8-bit a word, and offers a DCO and a FCO, which is bit-sync signal and frame-sync signal, respectively. The frequency of DCO is half the data rate of input data, and the frequency of FCO is the same as sample rate, with positive edge at MSB of input data.  

The quenstion is how should I do to get word alignment using rx_channel_data_align signal in ALTLVDS Receiver IP? I tested several times, and I can be sure that it's aligned when clockout of ALTLVDS Receiver is just opposite to FCO. How can I know how many pulses rx_channel_data_align signal gives when it's just aligned? Should I use extra logic cells and use a clock of double frequency of DCO? 

Thank you!
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
985 Views

try this: 

pass data as usual, also pass FCO through serdes with same serilisation factor. you will get patterns like 00100000 then pulse the alignment until you get 10000000
0 Kudos
Altera_Forum
Honored Contributor II
985 Views

Great! It seems so simple, why didn't I think it out! Thanks a lot!

0 Kudos
Altera_Forum
Honored Contributor II
985 Views

are you sure that the output, when aligned, should not be 11110000 instead of 10000000 when feeding ALTLVDS it frame sync signal?

0 Kudos
Altera_Forum
Honored Contributor II
985 Views

Yes,I am sure. 

each data byte is serial 8 bits xxxx xxxx (x = 0 or 1) 

the sync signal is treated as byte of 00001000 00001000...etc. so only one bit should be high as long it a sync for one bit e.g. MSB or LSB as per protocol
0 Kudos
Altera_Forum
Honored Contributor II
985 Views

Yeah, that's right! The patterns should be in fact "00001111" or "11110000", something like that, for DCO is of 50% duty. 

I think Kaz gave a perfect ideal, although the pattern given was incorrect.
0 Kudos
Altera_Forum
Honored Contributor II
985 Views

kaz, you call it a "sync signal". You can choose that to be anything you want? Then a series of 0's and only one 1 is good choice. 

 

If you were to use the frame sync input clock as your data stream to align your data word, you need to get output 11110000.
0 Kudos
Altera_Forum
Honored Contributor II
985 Views

Hi, 

 

I am doing similar design here i.e. using ADC with serial LVDS output and pass it to altlvds rx for deserialization. I am stuck at the data alignment part. My ADC does give an output of FRAME signal, but how can I pass this signal to altlvds rx for comparison with the parallel output data from altlvds rx to determine if word alignment is achieved? Is the any sample of user logic for doing the comparison that can be shared? Thanks.
0 Kudos
Reply