Friday, 30 September 2011

Misleading Quartus Messages

For the last few weeks I've been struggling to get a closed source IP block from Altera to work. The block is a DDR2 controller for the Cyclone IV range. As part of my debugging I scrutinised all of the Quartus Analysis & Synthesis info and warning messages to try to get to the bottom of the problem (which is still unresolved). One message which stood out was the following:

Info: Instantiated megafunction "Ddr2RamController... with the following parameter:

      Info: Parameter "intended_device_family" = "Cyclone III"

...

Info: Instantiated megafunction "Ddr2RamController... with the following parameter:

      Info: Parameter "intended_device_family" = "Cyclone IV E" 
 
The compiler appears to instantiate some of the Megafunctions for the Cylcone III (which is different from the target device) and some for the Cyclone IV.

I subsequently highlighted this in a service request to Altera.

The official response from Altera is that this is the correct behaviour - despite being incredibly misleading. It turns out that the intended_device_family parameter is only used for simulation purposes, so the fact that it doesn't match the target device is irrelevant. Furthermore the altera docs (PDF page 55) does not allow for this parameter to be set to "Cylcone IV" - presumably, the IP block should behave identically in the Cyclone IV as it does in the earlier Cyclone III.

The result for me is that I'm still no closer to solving my DDRAM issues.

Hopefully this information will prove helpful to others struggling with misleading Quartus info/warning messages.

I originally posted a query about this in the Altera Forums to no avail:

http://www.alteraforum.com/forum/showthread.php?p=129172#post129172

No comments: