FPGA操作SDRAM时序流程

上传人:飞*** 文档编号:7204889 上传时间:2017-09-18 格式:DOC 页数:5 大小:227.50KB
返回 下载 相关 举报
FPGA操作SDRAM时序流程_第1页
第1页 / 共5页
FPGA操作SDRAM时序流程_第2页
第2页 / 共5页
FPGA操作SDRAM时序流程_第3页
第3页 / 共5页
FPGA操作SDRAM时序流程_第4页
第4页 / 共5页
FPGA操作SDRAM时序流程_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《FPGA操作SDRAM时序流程》由会员分享,可在线阅读,更多相关《FPGA操作SDRAM时序流程(5页珍藏版)》请在金锄头文库上搜索。

1、FPGA 驱动 SDRAM 时序及流程这是我之前学习摄像头驱动时关于 SDRAM 的一些总结,SDRAM 在里面主要的作用是实现每一帧图像的缓存,通过乒乓操作,实现高速数据传输。SDRAM 工作的大体流程1、 首先,我们知道内存控制器要先确定一个 P-Bank 的芯片集合,然后才对这集合中的芯片进行寻址操作。因此要有一个片选的信号,它一次选择一个 P-Bank 的芯片集(根据位宽的不同,数量也不同)。被选中的芯片将同时接收或读取数据,所以要有一个片选信号。2、 接下来是对所有被选中的芯片进行统一的 L-Bank 的寻址,目前 SDRAM 中 L-Bank 的数量最高为 4 个,所以需要两个 L

2、-Bank 地址信号(2=4)。3、 最后就是对被选中的芯片进行统一的行/列(存储单元)寻址。地址线数量要根据芯片的组织结构分别设计了。但在相同容量下,行数不变,只有列数会根据位宽的而变化,位宽越 大,列数越少,因为所需的存储单元减少了。4、 找到了存储单元后,被选中的芯片就要进行统一的数据传输,那么肯定要有与位宽相同数量的数据 I/O 通道才行,所以肯定要有相应数量的数据线引脚。SDRAM 的内部基本操作与工作时序1.芯片的初始化SDRAM 在开机时的初始化过程如下下面是对 sdram 内部寄存器配置的一些详细说明,具体大家可以参考 datasheet 获取每个寄存器的意思,例如这里的突发长

3、度的意思是每次读取“突发长度”个字节数据。2.行地址有效初始化完成后,要想对一个 L-Bank 中的阵列进行寻址,首先就要确定行(Row),使之处于活动状态(Active),然后再确定列。虽然之前要进行片选和 L-Bank 的定址,但它们与行有效可以同时进行。在 CS#、 L-Bank 定址的同时, RAS(Row Address Strobe,行地址选通脉冲)也处于有效状态。此时 An 地址线则发送具体的行地址。由于行有效的同时也是相应 L-Bank 有效,所以行有效也可称为 L-Bank 有效。3.列读写行地址确定之后,就要对列地址进行寻址了。但是,地址线仍然是行地址所用的 A0-A11(

4、本例)。没错,在 SDRAM 中,行地址与列地址线是共用的。不过,读 /写的命令是怎么发出的呢?其实没有一个信号是发送读或写的明确命令的,而是通过芯片的可写状态的控制来达到读/写的目的。显然 WE#信号就是一个关键。WE#无效时,当然就是读取命令。列寻址信号与读写命令是同时发出的。虽然地址线与行寻址共用,但 CAS(Column Address Strobe,列地址选通脉冲)信号则可以区分开行与列寻址的不同,配合 A0-A9,A11 来确定具体的列地址。然而,在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为tRCD,即 RAS to CAS Delay(RAS 至 CAS 延迟

5、),大家也可以理解为行选通周期,这应该是根据芯片存储阵列电子元件响应时间(从一种状态到另一种状态变化的过程)所制定的延迟。tRCD 是 SDRAM 的一个重要时序参数,可以通过主板 BIOS 经过北桥芯片进行调整,但不能超过厂商的预定范围。广义的 tRCD 以时钟周期( tCK,Clock Time)数为单位,比如 tRCD=2,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定。tRCD=3 的时序图如下4. 数据输出(读)在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据 I/O通道(DQ)输出到内存总线上了。但是在 CAS 发出之后,仍要经过一定的时

6、间才能有数据输出,从 CAS 与读取命令发出到第一笔数据输出的这段时间,被定义为 CL(CAS Latency,CAS 潜伏期)。由于 CL 只在读取时出现,所以 CL 又被称为读取潜伏期(RL,Read Latency)。CL 的单位与 tRCD 一样,为时钟周期数,具体耗时由时钟频率决定。不过,CAS 并不是在经过 CL 周期之后才送达存储单元。实际上 CAS 与 RAS 一样是瞬间到达的,但 CAS 的响应时间要更快一些。为什么呢?假设芯片位宽为 n 个 bit,列数为 c,那么一个行地址要选通 nc 个存储体,而一个列地址只需选通 n 个存储体。但存储体中晶体管的反应时间仍会造成数据不

7、可能与 CAS 在同一上升沿触发,肯定要延后至少一个时钟周期。由于芯片体积的原因,存储单元中的电容容量很小,所以信号要经过放大来保证其有效的识别性,这个放大/驱动工作由 S-AMP 负责,一个存储体对应一个 S-AMP 通道。但它要有一个准备时间才能保证信号的发送强度(事前还要进行电压比较以进行逻辑电平的判断),因此从数据 I/O 总线上有数据输出之前的一个时钟上升沿开始,数据即已传向 S-AMP,也就是说此时数据已经被触发,经过一定的驱动时间最终传向数据 I/O 总线进行输出,这段时间我们称之为 tAC(Access Time from CLK,时钟触发后的访问时间)。tAC 的单位是 ns

8、,对于不同的频率各有不同的明确规定,但必须要小于一个时钟周期,否则会因访问时过长而使效率降低。比如 PC133 的时钟周期为 7.5ns,tAC 则是 5.4ns。需要强调的是,每个数据在读取时都有 tAC,包括在连续读取中,只是在进行第一个数据传输的同时就开始了第二个数据的 tAC。CL=2 的 tac 示意图CL 的数值不能超出芯片的设计规范,否则会导致内存的不稳定,甚至开不了机(超频的玩家应该有体会),而且它也不能在数据读取前临时更改。CL 周期在开机初始化过程中的 MRS 阶段进行设置,在 BIOS 中一般都允许用户对其调整,然后 BIOS 控制北桥芯片在开机时通过 A4-A6 地址线

9、对 MR 中 CL 寄存器的信息进行更改。5、数据输入(写)数据写入的操作也是在 tRCD 之后进行,但此时没有了 CL(记住,CL 只出现在读取操作中),行寻址与列寻址的时序图和上文一样,只是在列寻址时,WE#为有效状态。从图中可见,由于数据信号由控制端发出,输入时芯片无需做任何调校,只需直接传到数据输入寄存器中,然后再由写入驱动器进行对存储电容的充电操作,因此数据可以与CAS 同时发送,也就是说写入延迟为 0。不过,数据并不是即时地写入存储电容,因为选通三极管(就如读取时一样)与电容的充电必须要有一段时间,所以数据的真正写入需要一定的周期。为了保证数据的可靠写入,都会留出足够的写入/校正时间(tWR,Write Recovery Time),这个操作也被称作写回(Write Back)。tWR 至少占用一个时钟周期或再多一点(时钟频率越高,tWR 占用周期越多)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号