Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20714 Discussions

ALTLVDS variable behaviour after reset

Altera_Forum
Honored Contributor II
944 Views

I'm using an altlvds_rx receiver in Cyclone III with external PLL. After a reset and finished alignment, it takes a variable number of (slow) clock periodes before getting valid data. That's weird, because at the input side nothing changes. What could be the cause of this variation? 

 

See the attached jpg-file from signaltap: 

align_reset @ sample 0 

rx_in is the sync-pattern 

rx_data is altlvds output 

C0, C1, C2: fast clock, slow clock, read clock. 

 

Valid data (which is 00000000000000000000000) occurs somewhere between sample 375 and 801, depending on......... I don't know. 

 

Cheers, Ton
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
249 Views

A reply to myself (and anybody else interested). 

The variable data latency is due to the buffer implementation. 

 

I used RAM buffer, because that was default and used the least resources. 

Now I tried MUX and LE and they both give a FIXED latency of 3 slow clock periods. 

 

Seems like a bug in the RAM buffer implementation. I implemented several workarounds for this in the past weeks, but was never satisfied with it. 

 

I'm glad I solved the issue but frustrated about this bug and lack of information conserning buffer implementation. 

 

Cheers, Ton
0 Kudos
Reply