根据你的DDR2手册配置好megacore,megacore会生成一个example top;

在quartus中运行megacore生成的xxx_pin_assignments.tcl,指定DDR2 Pin的IO Standard;

在Pin Planner中将DDR2引脚指定到side,或指定到bank,或指定好DQS Pin,还可以顺便指定好CK/CK# Pin;

DDR2的DQ必须连接到FPGA的DQ,DDR2的DQS必须连接到FPGA的DQS,DDR2的DM可以连接到FPGA的DQ或DM;

将FPGA的RUP和RDN设置为保留引脚(在Pin Planner里的芯片引脚上右键菜单中可设置)避免quartus自动分配给DDR2控制器用,PCB上接50ohm电阻pullup到1.8V和pulldown到GND;

CK/CK#不能和用到的DQ/DQS在同一Pin group,pin group信息可以在Pin Planner中的芯片图四周查看;

确认编译message中没有critical warning;

layout时不要使用quartus没有自动分配上的Pin,因为除了一般性的DQ/DQS等规则外还有其他一些我们不知道的规则;

同一DQS组内的各DQ可以任意交换;各DQS组可以整体交换;CTL Pin可以任意交换;

一般Top/Bottom side要比Left/Right side能达到更高的时钟速率;

如果你的local side用的是Avalon-MM,记得write侧要支持burst,read侧要支持burst+pipeline;

实测连续地址读或写效率能达到85%以上;

再次强调,编译message不能有critical warning。

05-11 22:21