DDR3基本概念7 - 写操作,以及Lattice DDR3 SDRAM controller实战

2019-07-14 11:35发布

    DDR3 memory支持六种写命令:
     WR       : BL8或BC4固定burst长度写;
                Mode register0 的A1,A0: 00, fixed BL8;10, fixed BC4
     WRS4/WRS8: BC4 or BL8 on the fly, 通过A12来区分:0, BC4; 1, BL8
                Mode register0 的A1,A0: 01
     WRA      : BL8或BC4固定burst长度写, 支持auto precharge
     WRAS4/WRAS8: BC4 or BL8 on the fly, 通过A12来区分:0, BC4; 1, BL8。支持auto precharge
                Mode register0 的A1,A0: 01      Lattice DDR SDRAM controller写操作相关的两组信号:
    1)写命令信号,包括:
    cmd[3:0] 写命令,支持WRITE,WRITEA,LOAD_MR等命令,详细参见Lattice DDR SDRAM controller手册。参见:https://download.csdn.net/download/tbzj_2000/11007077
    cmd_valid: 该信号有效时,表示cmd,addr都有效。逻辑设计上可以用cmd_rdy=1来拉低cmd_valid, 表示DDR controller已
接收到命令,用户可以开始产生另一条命令。
    addr: 写地址或读地址。
    cmd_rdy: 该信号为单周期长度的脉冲信号。当DDR controller正在执行一个需要较长周期的命令或命令组合时(如周期性
的刷新命令组合:1个precharge all banks(PREA)+ 8个refresh命令),或两条或多条命令间隔太短时,cmd_rdy信号都会被拉
低一段时间。其他情况下cmd_rdy几乎是一个连续的周期性脉冲。
    2)写数据信号,包括:
    write_data:写数据
    datain_rdy: ddr controller准备好接收数据。比如采用了x16 DDR3 1Gb memory, data bus为32 bits,即需要两片
memory,则:
    DDR controller的写数据输入通道为128 bits,一次BL8 burst写为例,数据总量是256bits,则datain_rdy信号将维持两个
周期,完成128 * 2=256 bits数据的接收。     总结:一般一旦判断到如AXIbus发起一个burst写,就可通过DDR controller的写命令信号发起一次写;然后等待,写数据
信号的datain_rdy一旦有效,则开始向DDR controller写入写数据。