FPGA(SDRAM_init_set)

SDRAM_init

  1. SDRAM芯片各引脚及功能
    FPGA(SDRAM_init_set)_第1张图片

  2. SDRAM常使用的命令
    FPGA(SDRAM_init_set)_第2张图片FPGA(SDRAM_init_set)_第3张图片

  3. SDRAM芯片内部状态转移图
    FPGA(SDRAM_init_set)_第4张图片
    注:1-粗线为自动跳转。2-细线为手动跳转

  4. 开始配置
    SDRAM上电后需要保持100us的延时时间,并且在这段时间内不允许做任何操作,也就是说这段期间内需要给SDRAM发送NOP( No operation )空操作命令。在100us延时过后,需要给出Percharge(预充电 )命令对所有Bank进行预充电。这样可以将芯片内部的状态机跳转到IDLE状态,在IDLE状态内需要连续给出两个AUTO refresh(自动刷新)命令,当两个命令结束后才能够设置模式寄存器(MODE register set)。
    模式寄存器需要根据需要来设定
    FPGA(SDRAM_init_set)_第5张图片
    Burst Length(突发长度):SDRAM可以进行突发“读”或突发“写"。以突发写为例子,假如当前突发写长度为4,在写入数据时只需要给出写的首地址,再连续给出需要写入的4个数据,第一个数据会写入首地址,第二个数据会自动写到下个地址以此类推。
    Burst Type(突发类型):突发类型一个有两种类型,顺序型和交错型,建议使用顺序型。
    CAS Latency(延时):为了采样得到更准确的数据建议选择延时2.
    OP Code:选择突发“读”和突发“写”模式。
    这样SDRAM模式寄存器基本设置完成。

  5. SDRAM初始化波形图
    FPGA(SDRAM_init_set)_第6张图片
    波形图是根据芯片手册得到的,波形图中的延时是厂家提供参考使用的,但在实际使用中个人建议把延时再加长一些,例如芯片上电延时100us能够改成200us或者其它时间也行,但必须大于或等于厂家提供的100us,否则芯片设置失败。

  6. SDRAM代码
    FPGA(SDRAM_init_set)_第7张图片FPGA(SDRAM_init_set)_第8张图片
    FPGA(SDRAM_init_set)_第9张图片以上是SDRAM初始化配置及代码,如有错误的地方还望大神们之处。谢谢!

你可能感兴趣的:(FPGA(SDRAM_init_set))