FPGA SDRAM接口设计(二)

目录

一、SDRAM控制命令

1、Precharge Command(预充电命令)

2、Bank Activate Command(激活命令)

3、Self Refresh Command(自刷新命令)

4、Burst Read Command(冲突读命令)

5、Burst Write Command(冲突写命令)

6、No Operation Command(空操作命令)

7、Mode Register Set(模式寄存器设置)

8、其他命令

二、时序

1、命令输入时序

2、读时序

3、输入输出数据时序

4、模式寄存器设置时序

5、自动刷新周期

 6、冲突读和单写模式(burst length=4,cas latency=3)


一、SDRAM控制命令

1、Precharge Command(预充电命令)

预充电命令用于预充电或关闭已激活的bank。预充指令在{CS,RAS,CAS,WE}=4'b0010时进入。预收费命令可用于分别对各bank或同时对所有bank进行预充电。三个地址位。A10、BS0和BS1,用于定义在发出命令时要对哪个bank进行预收费。当A10为高时对所有bank预充电,当A10为低时,由BS0和BS1选择哪个bank预充电,发出预充电命令后,必须重新激活预充电bank,才能执行新的读或写访问。预充电命令和激活命令之间的延迟必须大于或等于预充电时间(trp)。

2、Bank Activate Command(激活命令)

bank激活命令必须应用在任何读或写操作之前。从bank激活命令使用用到第一次读或写操作开始的延迟不能小于RAS到CAS的延迟时间(trcd)。一旦一个bank被激活,它必须在另一个bank激活命令可以发出之前被预充电。对同一bank的连续bank激活命令之间的最小时间间隔是由设备的RAS 时间(trc)决定的。

3、Self Refresh Command(自刷新命令)

在发出Self Refresh命令之前,所有银行都必须处于空闲状态。一旦该命令被使用,CKE必须保持低位以保持设备在自刷新模式当SDRAM进入自刷新模式所有的外部控制信号,除了CKE,是禁用的。时钟内部禁用期间,自我刷新操作,以节省电力。当CKE恢复到高位时,设备将退出自刷新操作。任何后续命令都可以在txsR之后从Self Refresh命令的结束发出。f,在正常运行中,自动刷新周期是突发的(而不是均匀分布的),应在进入和退出自刷新模式后完成4.096个自动刷新周期的突发。

4、Burst Read Command(冲突读命令)

突发读取命令:地址输入确定突发的起始列地址。模式寄存器设置突发类型(顺序或交错)和突发长度,1、2、4或整页。

5、Burst Write Command(冲突写命令)

突发写命令:地址输入确定起始列地址。第一个突发写周期的数据必须应用在写命令发出的相同的时钟周期上的DQ引脚。其余的数据输入必须在随后的每个上升时钟边上提供,直到脉冲长度完成。冲突结束后提供给DQ引脚的数据将被忽略。

6、No Operation Command(空操作命令)

当SDRAM处于空闲或等待状态时,应该使用No Operation命令,以防止SDRAM在操作之间注册任何不需要的命令。No Operation命令不会终止仍在执行的前一个操作,例如突发读或写周期。

7、Mode Register Set(模式寄存器设置)

初始开机后,必须发出模式寄存器设置命令,设备才能正常运行。在发出模式寄存器设置命令之前,所有银行必须处于预充电状态,CKE必须至少高一个周期。模式寄存器设置命令被RAS的低信号激活。这个周期中的地址输入数据定义了要设置的参数,如模式寄存器操作表中所示。当等于trsc的延迟经过时,可以按照mode reqister set命令发出一个新的命令。

8、其他命令

还有其他,命令不一一列举,就将自己要用的,常用的列举了一下。详细可以看数据手册。

二、时序

时序约束:

1、命令输入时序

2、读时序

3、输入输出数据时序

4、模式寄存器设置时序

5、自动刷新周期

 6、冲突读和单写模式(burst length=4,cas latency=3)

其他时序样例可参考数据手册。

猜你喜欢

转载自blog.csdn.net/qq_33231534/article/details/108730401