Altera_Forum
Honored Contributor
9 years agoAchieving higher data-rates on Cyclone V pins - Balancing internal routing delays
Hello all,
I am looking for some help trying to close the timing for a new design. I need to inferface a Cyclone V with an octal 14-Bit serial LVDS ADC running at 40 MSPS. The ADC digital output is synchronous DDR at 280MHz, that is, a serial stream of 560Mbps. The problem is that some of the LVDS channels are assigned to dedicated pins for a Hard memory Controller, which introduce a greater delay, therefore reducing the maximum data-rate at which we can receive data. According to Cyclone V handbook, it is not recommended o use HMC pins for signals faster than 200MHz, but I would like to try to overcome this problem. One option I found was to tune the phase shift of the internal clock used to sample data with a PLL so that I could sample the incoming stream from all the 8 channels at the cost of not sampling it right in the middle. However, I do not have PLLs available to do this phase shift in the design and I have discarded this option. The second option I considered is to introduce a certain delay in all the lines that are not assigned to a Hard memory controller pin, so that the delay gets compensated in all the channels and I can sample it one clock cycle later. I have been trying to achieve such a delay by means of timing constraints, as the forum member Rysc explained in posts http://www.alteraforum.com/forum/showthread.php?t=3028 and http://www.alteraforum.com/forum/showthread.php?t=3068, but I have been not able to get a fine enough tuning of such delays, furthermore, the results I get are sometimes completely wrong, with delays far beyond the values I specified. For instance, for an internal path between two FF where I want to have a minimum delay of 2.5ns and a maximum delay of 3ns, the delays I get are over 4-5ns :-( Do you think it is feasible to find such a solution? And if so, do you see any drawbacks? Perhaps there is another way to tell Quartus to balance the delay of all the lines, at some point I thought it would do it itself automatically. Frankly, I have not seen such a solution before, maybe its too exotic, but I think that the additional delay of Hard memory controller pins should not be a limiting point to work at high data-rates. Thanks a lot for your help!