FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits

LVDS and DE0-Nano

Altera_Forum
Honored Contributor II
3,664 Views

Hi, 

 

I need to use LVDS on the NE0-Nano development kit, and I have a questions with respect to how to go about it. 

From what I understand, I have two options: 

 

  1. LVDS megafunction 

  2. Parallel out into a LVDS transmitter chip 

 

 

The problem I am having, is that I would like to use the megafunction but without any input. I would like to configure it so it generates dummy data. This way I can perform some simulations and measurements at the early stage of my project. Once that is working I can add the input and play with some real data. Also, is there another way of using LVDS but not the megafunction? 

 

Any suggestions?
0 Kudos
11 Replies
Altera_Forum
Honored Contributor II
1,922 Views

Just a short update. 

 

I have managed to get it to work by using differential output buffers. It works fine, but it can only go as fast as the PLL, which for Cyclone IV E speed grade 6 is 472.5MHz. 

 

Next step is to get this going with the ALTLVDS megafunction.
0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

Cyclone LVDS Megafunctions is just a software SERDES, using DDR registers. You can write equivalent code in your design. 

 

You don't tell the objectives of your project, by the way.
0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

I ma trying to sue FPGA to drive a TFT screen with an FPGA, which results in 7:1 serialisation ratio. My LVDS bit clock is as high as the PLL 472.5MHz, which is not enough for the 60Hz refresh rate. 

I was hoping megafunction would allow me to get over that obstacle, but I cannot sense the internal clock that achieves the desired data rate of 583Mbps.
0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

I have managed to write my own SER VHDL code. However, the limiting factor is the PLL frequency. FvM, how can I use the DDR register to doouble the frequency? I tried triggering on either clock edge but Quartus kept complaining and I couldn't compile my design. I would be very grateful if you could point me in the right direction.

0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

Here's a LVDS receiver example using altddio_in to implement DDR input registers: 

 

chan: FOR I IN 0 TO N_AD_CHAN - 1 GENERATE lvds_rcv : altddio_in GENERIC MAP ( intended_device_family => "Cyclone III", invert_input_clocks => "ON", lpm_type => "altddio_in", power_up_high => "OFF", width => 1 ) PORT MAP ( datain => AD9222_D(I TO I), inclock => fastclock, dataout_h => dataout_h(I DOWNTO I), dataout_l => dataout_l(I DOWNTO I) ); PROCESS (fastclock) BEGIN IF rising_edge(fastclock) THEN lvds_sr(I) <= lvds_sr(I)(9 downto 0) & dataout_l(I) & dataout_h(I); END IF; END PROCESS; PROCESS (slowclock) BEGIN IF reset = '1' THEN lvds_rx(I) <= (others => '0'); ELSIF rising_edge(slowclock) THEN lvds_rx(I) <= lvds_sr(I); END IF; END PROCESS; END GENERATE;
0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

many thanks for the example, FvM. 

 

I got it working, however the development kit cannot handle the speed and I get a fair amount of interference, which was expected. Anyway, thanks again.
0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

LVDS is 2.5v but DE0-Nano VCCIO is 3.3v, is fine?

0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

In theory it shouldn't work but it worked fine with the TFT panel I was using. I think those input stages on some TFT panels are quite forgiving.

0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

I think problem is not receiver but output buffer of fpga that can not work safely with 3.3v when configured for 2.5v

0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

There are in fact no differential I/O standard supported for 3.3V VCCIO. "can not work safely" is a different thing.

0 Kudos
Altera_Forum
Honored Contributor II
1,922 Views

I agree, this was more of a hack to be fair. I'm in the process of developing an expansion board for the Nano which will feature hardware LVDS serialisers and sensible connector for the output so I don't have to hack the original panel cable to pieces. 

I also have another dev kit (SoCKit) which features one of those HSMC connectors, I will take a look and check whether any of those differential output pairs are on 2.5V supply.
0 Kudos
Reply