Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

LVDS input Clock Pin

Hi,

I'm using an ADC AFE5808 from TI with LVDS output.

I use a Cyclone IV EP4CE75F23I8L and the mega function Altlvds_rx.

I configure the rx_inclock pin ADC_CLK_D_P as LVDS pin with his differential Pair ADC_CLK_D_N on pin planner.

My problem is I got the Error :

Error (176554): Can't place PLL "altlvds_ADC:inst|altlvds_rx:ALTLVDS_RX_component|altlvds_ADC_lvds_rx:auto_generated|lvds_rx_pll" -- I/O pin ADC_CLK_D_P (port type INCLK of the PLL) is assigned to a location which is not connected to port type INCLK of any PLL on the device

Any idea to solve it?

8 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    ADC_CLK_D_PO has to be on a dedicated clock pin. Where do you have it assigned? Does it work if you let it float?

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    It's a Clock in LVDS. It's on a DIFFIO pin (P & N, so two pin). I didn't find DIFFIO clock pin!?

    Without this it said : missing source signal.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Do you have a location assignment on that input port? The altlvds instantiates a PLL, and there are dedicated clock portsthat must be used to drive the PLLs, i.e. it can't be any LVDS input location. If you do have it assigned, just disable that assignment and see if it fits, i.e. if Quartus can find a valid location. If so, then you need to find one that matches your board layout.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Ok so our board has a problem... Our LVDS clock is not routed on a DIFFCLK pin.

    With the assignment disable, the compilation run without error.

    Thanks for the help.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Or can I use the altddio_in to read the ADC? (it accept my LVDS DIFFIO clock as inclock).

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Assuming your DCLK (coming from the ADC) goes to a (C)DPCLK pin, using altddio_in is a perfect way to do this. The DCLK is 90 degrees in respect to the data and the frame signal, so you don't need a PLL. Quartus II might have a hard time fitting it in a Cyclone IV speed-grade 8L when running the ADC at the higher frequencies, esp. 65 MHz.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Is the clock rate 65MHz? That might be do-able without a PLL. The altlvds automatically adds a PLL, which requires a dedicated clock pin. If you instantiate the altddio_in megafunctions, you can drive those directly. On alterawiki.com I have a document on source-synchronous timing:

    http://www.alterawiki.com/wiki/source_synchronous_analysis_with_timequest

    There are some basic sample designs you can use, although you'll need to remove the PLL. There are even some TI examples.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    At 65 MHz input clock the ADC generates a 445 MHz output clock with only 240 ps setup and hold time on it DDR data output signals.