Sdram控制器的Verilog的实现

Sdram控制器的Verilog的实现

ID:37895652

大小:204.00 KB

页数:4页

时间:2019-06-02

Sdram控制器的Verilog的实现_第1页
Sdram控制器的Verilog的实现_第2页
Sdram控制器的Verilog的实现_第3页
Sdram控制器的Verilog的实现_第4页
资源描述:

《Sdram控制器的Verilog的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目前,在很多通信芯片及系统的开发中,常常需要用到存储容量大、读写速度高的存储器。在各种随机存储器件中,SDRAM的价格低、体积小、速度快、容量大,是比较理想的器件。但是,与SRAM相比较,SDRAM的控制逻辑复杂,使用很不方便。为了解决这个矛盾,需要设计专用的SDRAM控制器,使系统用户象使用SRAM一样方便的使用SDRAM是十分必要的。本文介绍了SDRAM控制器的Verilog设计,并给出了实现结果。一、 Sdram简介1、 Sdram的接口信号2、 Sdram启动和初始化系统商上电后,Sdram必须经过初始化才能使用,初始化过程必须经过以下几个步骤:(1)

2、 发出NOP指令,等待1ms(2) 执行PreChargeAll命令(3) 执行8次AutoRefresh命令(4) 设置模式寄存器(ModeRegister)(5) 等待Tmrd时钟,Sdram就可以正常读写了。3、 Sdram的模式寄存器   ModeRegister用于定义Sdram的运行模式。在PC133规范中,ModeRegister中包括了突发长度(BurstLength)、突发类型(BurstType)和CASs延迟(CASLatency)。用过ModeRegisterSet命令进行编程,这组信息将会保存知道Sdram掉电为止(具体的ModeRe

3、gister定义和SDRAM的命令看对应Sdram的数据手册)。二、 Sdram的命令解析1、 BankActive命令   在进行任何的Read和Write命令之前,Sdram首先要选择进行操作的Bank,并且还要打开这个Bank中相应的行,这个通过BankActive命令来实现,BankActive打开BA指定的Bank,同时锁存行地址信号。每个Bank最长激活时间位Tras,当BankActive命令执行完毕以后,需要进行操作的的Bank中的行就会被打开,经过Trcd的延时之后,才可以进行Read或Write命令。2、 PreCharge命令   Pre

4、Charge命令用于预充电BA和AP指定的Bank,当AP为高时,所有的Bank同时被充电,当AP为低时,由BA指定的Bank被充电,当此命令结束后,指定的Bank由激活状态转变为空闲状态,PreCharge命令相当于关闭对应的Bank,当Sdram需要在同一个Bank中打开另外一行时,需要先用PreCharge命令关闭已经打开的行,然后用BankActive命令来打开新的行。同一个Bank中,在两个相邻的BankActive命令之间的时间间隔为Trc,在不同的Bank之间,执行两个BankActive命令之间的时间间隔为Trrd。3、 Read命令   Re

5、a的命令用于执行由BA指定的Bank的读操作,同时锁存列地址以及由AP指定的预充电模式。此命令结束后,数据经过CASs等待时间从Sdram内部输出到外部引脚上。当AP为高是,此命令结束前自动执行一个PreCharge命令,当AP为低时,此命令结束后Bank依然处于激活状态(在执行Read命令前,相应的Bank必须处于激活状态)。4、 Write命令   Write命令用于执行由Ba指定的Bank的写操作,同事锁存列地址信号以及有AP指定的预充电模式。需要写入的数据从此命令开始时提供给Sdram,当AP为高时,此命令结束前自动执行一个PreCharge命令,当A

6、P为低时,此命令结束后Bank依然处于激活状态(执行Write命令前,相应的Bank必须处于激活状态)。5、 AutoRefresh命令   AutoRefresh命令用于Sdram芯片在正常工作状态时使用的自动刷新操作。刷新所需要的行地址由Sdram内部的刷新计数器提供。刷新操作必须在64ms内别执行4096次(行地址的数目)。刷新操作可以周期性的执行,也可以突发性的执行。其他的命令可以在AutoRefresh命令结束Trrc时间后被执行。当执行此命令是,所有的Bank必须位空闲的。三、 Sdram控制器的Verilog实现1、 Sdram的状态图   如图

7、,Sdram控制器一共分为21个状态,根据不同的信号,Sdram在各个状态之间切换实现对Sdram的控制。1.SDRAM的burstmode:SDRAM是一种命令型动作的设备,就算读写资料只有一个也要先下命令才可以用,为了增加工作效率,就产生了一种传送一个命令,写多个数据的模式,这就是burstmode。burstmode是一种利用内部列地址发生器来工作的高速读写模式,只要设置最开始的列地址,后面的地址就可以通过内部的列地址发生器来自动生成。2.为什么要做precharge动作?关闭正在作用的SDRAMbank,算是一种结束命令,后面可以下新的命令。我想这是和

8、SDRAM内部管理有关。(这是从网上查

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。