DDR2 SDRAM(四)控制器设计初步

对于DDR系列存储器的使用,常常会直接例化成熟的IP,Quartus II中可以调用DDR2 SDRAM Controller with ALTMEMPHY,Vivado中则可以调用MIG,在数字IC领域也有相关的IP核可以直接使用,一定程度上避开了了DDR接口设计这个难题,而进一步对IP核进行封装可以使DDR的使用更加简单。但出于学习的目的,在本系列文章中选择使用代码实现DDR2 SDRAM的控制器,在后续DDR3 SDRAM的学习中再使用IP核。

一、接口

采用镁光公司提供的DDR2 SDRAM的仿真模型,其接口如下。

module ddr2 (
    ck       ,
    ck_n     ,
    cke      ,
    cs_n     ,
    ras_n    ,
    cas_n    ,
    we_n     ,
    dm_rdqs  ,
    ba       ,
    addr     ,
    dq       ,
    dqs      ,
    dqs_n    ,
    rdqs_n   ,
    odt
);

接口具体说明如下表。

接口

类型

描述

ck, ck_n

IN

差分时钟输入。所有地址和控制输入信号都在ck的正边沿和ck_n的负边沿交叉点上被采样。输出数据(dq和dqs/dqs_n)是参照ck和ck_n的交叉点。

cke

IN

时钟使能。高电平时启用DDR2 SDRAM上的时钟电路,低电平时禁用时钟电路,被启用/禁用的具体电路取决于DDR2 SDRAM的配置和操作模式。

cs_n

IN

片选信号(低电平有效),被视为命令代码的一部分。当cs_n为高电平时,所有命令都被屏蔽。

ras_n, cas_n, we_n

IN

命令。ras_n, cas_n和we_n(连同cs_n)定义了输入给DDR的命令。

dm_rdqs

I/O

数据掩码。dm_rdqs是读写数据的掩码信号,每bit掩码信号控制8bit的数据信号,当dm_rdqs与输入数据一同被采样为高电平时,输入数据将被掩码。dm_rdqs在dqs的两个边沿上都被采样。

ba

IN

存储bank地址。定义了ACTIVATE、READ、WRITE或PRECHARGE命令正在被应用到哪个存储bank;还定义了在LOAD MODE命令期间加载的模式寄存器,包括MR、EMR、EMR(2)和EMR(3)。

addr

IN

地址。为ACTIVATE命令提供行地址,为READ/WRITE命令提供列地址和自动预充电位(A10),以在相应存储bank中选择一个存储位置。
在PRECHARGE命令期间采样的A10决定了PRECHARGE是适用于一个存储bank(A10低电平,由ba选择的存储bank)还是所有存储bank(A10高电平)。
地址输入还在LOAD MODE命令期间提供操作码。

dq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值