Altera_Forum
Honored Contributor
13 years agoStruggling with LVDS.
Hi Guys,
I've had experience with FPGAs in the past, however I've never before been required to implement the LVDS standard for data communication. I thought it would be trivially easy, but it seems like I was wrong! I'm having a great bit of difficulty finding any examples of how LVDS I/O can be implemented. There are two kinds of MegaWizard Plugin instances I can choose between; ALTDDIO and ALTLVDS_TX/RX. I'm more inclined to use the basic ALTDDIO IP, purely because I don't really understand what impact serialisation has on the data (I just assume that it takes all of the parallel data bits and outputs them sequentially?). So, I have a couple of questions, just so that I can gain some knowledge about how they're used. Q: When using LVDS on the Cyclone III, is DDR I/O supported? If so, is it implicit or do I have to code in a particular way to implement DDR? Q: When generating a MegaWizard plugin for ALTDDIO_IN (I assumed this would be for receiving data), what I get is a module that looks like it's used for generating LVDS signals. The opposite happens for ALTDDIO_OUT. Am I missing something fundamental? ... Just to show you guys what I mean, the module parameters for a 6-bit wide ALDDIO_OUT looks like this: module ALTDDIO_OUT_6 ( aclr, datain_h, datain_l, outclock, dataout); input aclr; input [5:0] datain_h; input [5:0] datain_l; input outclock; output [5:0] dataout; Surely the _h and _l 's should be outputs? Q: Will the FPGA accept an aysnchronous LVDS input clock signal to drive DDR latching operations on the other LVDS input lines? using: Cyclone III FPGA. I sorry that this is a really big post. I'd really appreciate any help you guys can offer me with this one, I've been left scratching my head for days over it.