Hi Paul,
--- Quote Start ---
I am trying your BeMicro DDR3 example design but for the Bittware S5-PCIE-HQ board.
When I select the DDR3 controller in Qsys and under PHY settings, there is no option to "Enable Hard External Memory Interface" as explained and unable to set the "Rate on Avalon-MM interface" to "Full". The “maximum speed grade” that I am able select also is 4.
--- Quote End ---
Right, that is to be expected. Your particular device needs to support a Hard Memory Controller, otherwise that option will not be available. Given that its not available, your device does not have a hard memory controller, so skip that option.
--- Quote Start ---
The RAM on the Bittware board is from MICRON and I see that there are different numbers on different chips – 4DE17D9QBJ , 3ZE77D9QBJ and 30E27D9QBJ so I am not sure which DDR device to select from the list on the right. You say to select MICRON MT41J64M16LA-15E. Would that be ok in this case?
--- Quote End ---
No. You have to find the correct Micron part number.
You can use Micron's package marking mapping tool to convert part labels to part numbers.
http://www.micron.com/products/support/fbga D9QBJ = MT41K512M8RH-125:E
If Bittware have an example design that includes DDR3, open it and see what device parameters they have used, eg., to see if they have modified any of the defaultthe timing parameters.
--- Quote Start ---
When I compile the project and use your bemicro_cv.vhd as the top level Entity, I have to remove “ddr_status_local_init_done” , “ddr_status_local_cal_success” and “ddr_status_local_cal_fail” from the the Qsys component as my Qsys system did not generate these ports. Should this matter?
--- Quote End ---
You probably did not click on the exports column to export them. If you synthesize the BeMicro-CV design and then use Qsys to open the qsys_system.qsys file, you will see the exported signals column.
--- Quote Start ---
I then receive errors on compilation like the following :
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
Error (174068): Output buffer atom "qsys_system:u1|qsys_system_ddr3:ddr3|qsys_system_ddr3_p0:p0|qsys_system_ddr3_p0_memphy:umemphy|qsys_system_ddr3_p0_new_io_pads:uio_pads|qsys_system_ddr3_p0_altdqdqs:dq_ddio.ubidir_dq_dqs|altdq_dqs2_stratixv:altdq_dqs2_inst|extra_output_pad_gen.obuf_1" has port "SERIESTERMINATIONCONTROL" connected, but does not use calibrated on-chip termination
--- Quote End ---
You have to run the pin constraints file created by the DDR3 IP core. In the BeMicro-CV design, this script is automatically run by the post-flow script. Since you appear to be synthesizing the qsys_system as the top-level design, then you need to run that script manually, via the Tools->Tcl script menu option.
Now that you have a sense of what needs to be done to create a DDR3 controller, you need to read the External Memory Interface handbook.
http://www.altera.com/literature/lit-external-memory-interface.jsp Cheers,
Dave