FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6359 Discussions

Problems with DDR2 high performance controller 8.1

Altera_Forum
Honored Contributor II
882 Views

I recently tried to implement the DDR2 high performance controller in a Nios System, but received some strange (Critical) Warning during compilation. 

 

Now I tried it without Nios and generated the memory controller with the MegaWizard. I used the example driver as the top level entity. 

When I build the project I get the same (Critical) Warning again. 

see old thread http://www.alteraforum.com/forum/showthread.php?t=4160 

 

I attached the archive of the project and would be very happy if somebody could take a look at it and tell me if I made a mistake or this is a problem with the IP core.
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
212 Views

This is most likely because the fitter can't place the clock source for the PLL on an IO bank next to the PLL, because the IO standard of the clock_source pin is different to the rest of the IO bank. 

 

Try changing clock_source to a 1.8v IO standard and see if that fixes things. Long term you'll want to look at the PLL clock routing and manually assign the DDR pins and the clock_source pin to different IO banks.
0 Kudos
Altera_Forum
Honored Contributor II
212 Views

thanks cajun-rat for your fast reply! 

I just checked the io standard assignment in the pin planer and it is set 1.8V. Where did you see that the io assignment isn't set to 1.8V?
0 Kudos
Altera_Forum
Honored Contributor II
212 Views

I suspect there is a reason why Quartus isn't placing clock_source near the PLL. One way to find out why is to manually place the PLL on the same side of the chip as your memory interface, then manually place the clock_source pin on one of the dedicated input pins that feed it (the Clocking and PLLs section of the Stratix III datasheet has the diagrams you need). 

 

With this in place you will force the issue, and the compile will most likely fail with a big long warning, but in the end there must be some reason why it can't place the clock input pin in a sensible place. I suspect IO bank voltages, but it might be something else. 

 

Also: are the pnf_* signals and other non-memory interface signals placed out of the way? They might be what is stopping it working.
0 Kudos
Reply