根據你的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。