开始使用Spartan6 DDR3 Ctrl IP核
Spartan6 DDR3 Ctrl IP 核是基于FIFO接口进行读写,RTL库框架提供了一个标准的驱动时序,有了示例代码框架方便用户二次开发。
S6DDR3控制器模式
IP核配置
Mig Output Options = Create Design 创建IP核设计
Compent Name = mig_39_2 IP核名字
Target FPGA = xc6slx45t-fgg484目标FPGA器件
Memory selection memory type = DDR3 SDRAM; Bank = Bank3选择内存芯片类型和BANK位置
Frequency = 2500ps (400Mhz)DDR驱动时钟选择400Mhz
Memory Part = MT41J128M16XX-125内存芯片型号选择
Output Driver Impedance Control = RZQ/6输出驱动阻抗控制
RTT(nominal)-ODT = RZQ/4
Auto self refresh = Enabled开启自动刷新
Port Configuration For C3 = Port0~port6 Enabled端口设置详细请点击我
Memory Address map = ROW|BANK|COLUMN地址映射关系选择
Arbitration = Round Robin仲裁算法Round Robin
Memory Interface Pin Term = Calibrated Input Termination校准终端阻抗
Select RZQ Pin Location = R7
Select ZIO Pin Location = W4
Debug Signal for Memory Control = Disable
System clock = Single-Ended系统时钟选择单端时钟
DDR3 MIG核结构框图
CMD FIFO用于发送读写命令,此FIFO最大深度为8,也就是最多存8条指令。
DATA FIFO 根据端口是否为双向,双向端口分为读数据fifo和写数据fifo,数据fifo深度为64。
用户只需要对CMD FIFO和DATA FIFO操作即可完成对DDR3芯片的数据读写,无需关心DDR3标准的控制时序,这样使得用户很简单就可以使用。
DDR3 控制器FIFO控制接口分配方案
第一种方案:port0和port1为双向32位读写接口,port2~port5为单向32位可读可写端口,此类方案用于多个通道进行同时读写DDR3。
第二种方案:4个端口32位双向读写接口,将第一种方案的两个单向端口合并为一个双向32位接口。
第三种方案:一个64位双向接口,两个32位双向接口,将第二种方案中两个32位双向接口合并为一个64位双向接口,可以用于读写位宽为64位位宽的应用环境。
第四种方案:两个64位双向端口,