Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
17268 Discussions

Deserialization 12 bits LVDS in a Cyclone III

Altera_Forum
Honored Contributor II
1,836 Views

I am using Quartus II 8.0 for programming a Cyclone III device. I have 2 LVDS clocks (fclk and lclk) an an 8 channel (12 bit) LVDS input that I wish to deserialize. 

 

The megafunction for deserialization does not work for 12 bit data. 

 

Will I program my component in VHDL to deserialize in 12 bits, or can I use some other components to make this (DDIO, multiplex,DFF...) ? I'm using SOPC Builder. 

 

thanks
0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
809 Views

I can share a simple deserializer utilizing DDIO: 

 

chan: FOR I IN 0 TO 7 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
809 Views

i believe you can type 12 into the MegaWizard even though it doesn't have a pull down for this value.

0 Kudos
Altera_Forum
Honored Contributor II
809 Views

Yes, that's true, if I remember right. I have my own deserializer, because I don't like the restrictions in phase setup of the "soft" LVDS MegaFunction and the strange RTL it offers for 14-Bit operation.

0 Kudos
Altera_Forum
Honored Contributor II
809 Views

Thank you people. 

 

But, if I program my own deser, I will need to desenvolve a driver for Nios ( I need to run the program in Nios for interface with a memory). 

 

I need to edit a component of Mega Wizard and to try interface it, with a PIO for use it in Nios. 

 

If I use the altlvds component with 2 channels and factor 6 ( width 12), I will have physically two inputs, and I need connect both in a same entrance, how I made this with no error in quartus ?
0 Kudos
Altera_Forum
Honored Contributor II
809 Views

Factor 6 isn't correct. As thepancake suggested, you can simply type in a factor of 12 in the MegaWizard setup

0 Kudos
Reply