Forum Discussion

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

DDR controller pin placement

Hi All,

I have two problems with the 16 bit DDR controller generated by Megawizard in my design with EP3C16E144I7.

(1) I assign CK to pin 71 and CK# to pin 72. After compilation, I get the following warning:

Warning: CK/CKn pin DDR_CK_P has been placed on a PLL CLKOUT pin. They should be placed on Differential IO (DIFFIO) pins only.

Warning: CK/CKn pin DDR_CK_N has been placed on a PLL CLKOUT pin. They should be placed on Differential IO (DIFFIO) pins only.

I check the pinout table of my Cyclone III device, and find pin 86,87 are DIFFIO pins as suggested by the warning message.

But after I assign CK and CK# to these two new pin locations, the fitter fails. Now I get errors:

Error: Cannot place I/O pin mem_clk[0] in pin location 87 -- I/O standard assigned to pin requires VREF value and VREF pin corresponding to pin location not available

Error: Cannot place I/O pin mem_clk_n[0] in pin location 86 -- I/O standard assigned to pin requires VREF value and VREF pin corresponding to pin location not available

It seems the hint given by the warning message is not on the right road. Shall I just ignore these two warnings and stick to the original pin assignment?

By the way, I am using Quartus 9.1sp1, could it be a bug in this old version?

(2) in the generated XXX_example_top.vhd, CKE, CK/CK# and nCS are all declared as std_logic_vector(0 downto 0), while in my top-level design, they are declared as std_logic. So when I instantiate XXX_example_top in the top-level, I can't connect these pins directly to the top-level ports, otherwise I get VHDL syntax error. I have to manually change these pins to std_logic in XXX_example_top.

Is there a workaround to this?

Thank you in advance for any advice!

2 Replies

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

    hi,

    I found in some boards,

    the CK and CK# is from pll_out, and the board worked well.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yeah, I think that is something I can expect, because this is just a warning.

    What I don't understand is : if I really change CK/CK# to DIFFIO pins, why do I get an error, which is even worse? Does this mean the warning message is quite misleading?

    BTW, zju2010, do you also have the VHDL data type std_logic_vector(0 downto 0) in your generated DDR controller? Can you make it generate std_logic, instead of std_logic_vector(0 downto 0)?