SDRAM 控制器的解析】的更多相关文章

本篇博文非原创,是整理了网上的各家之言与一体,为自己以后方便查询所用.如有冒犯请告之. 1.Precharge与Refresh的区别? plj:两者都是对存储单元的电容进行充电.回写.但差异在于: Precharge是对(一个或所有Bank)的所有工作行(active row)操作,并且是随机的,被操作工作行的地址在各Bank中不一相同.   Refresh是对所有行依次操作,且是有固定周期的,被操作行在各Bank中均相同. 2.AutoRefresh与SelfRefresh的区别? plj:A…
在做这个SDRAM控制器之前,博主有一个疑问,对于学生来说,是否有必要学习用纯Verilog写一个SDRAM控制器?因为目前X家和A家都有了DDR IP Core,对于要实现一个应用可以直接调用IP Core,只需要对其接口操作即可.对于开发者来说,与其费时费力用Verilog去写一个性能差而且老的SDRAM控制器,还不如直接调用官方经过打磨的更为先进IP Core.所以博主特地去号称平均学历211,平均月薪7.8万的知(bi)乎提出了这个问题,得到的解答博主总结大致如下. 对于学生这个身份来说…
SDRAM控制器 博主上一篇介绍了一些SDRAM的基本原理是否有必要学习使用纯Verilog写一个SDRAM控制器,接下来记录SDRAM控制器的工作原理.首先是上电初始化. 上电初始化 时序图中,tRP.tRC.这些时间参数可以从手册中找到,这里的系统时钟采用50Mhz. 从初始化的时序图可以看出,首先在进行预充电(Precharge)命令之前要等待100us(手册要求是至少100us,我们设定延时200us),等待系统上电稳定和时钟稳定,然后对所有bank进行预充电(Precharge),经历…
SDRAM的写状态流程 IDLE状态到WRITE状态 (1)在IDLE状态需要先给ACT命令激活某一行,此时处于Row Active状态. (2)在Row Active状态之后,给Write命令则会进入WRITE状态. (3)在WRITE状态后,再给一次Write命令,就可以继续写入数据 WRITE状态到IDlE状态 (1)在WRITE状态给PRE命令,则SDRAM将跳出WRITE状态进入Precharge状态. (2)在Precharge状态后,就会自动进入IDLE状态了. WRITE状态下面…
在学习FPGA的过程中,注意是在学习过程中,联系FPGA的使用技巧,强烈建议尝试设计一个SDRAM控制器,不要使用IP核. 学习SDRAM控制器设计,能让你掌握很多知识. 更好的使用状态机去精准控制时序. 学会高速设计中必要的技能,也就是时序约束方法,timing report的阅读方法,查找时序问题的基本技巧,复位方案和时钟方案的合理设计,如何优化代码提升系统最高工作时钟,以及testbench的写法. 写sdram控制器还是能锻炼不少典型技能的,值得去花时间思考尝试,性价比是可取的. 设计流…
在Kevin写的上一篇博文<SDRAM理论篇之基础知识及操作时序>中,已经把SDRAM工作的基本原理和SDRAM初始化.读.写及自动刷新操作的时序讲清楚了,在这一片博文中,Kevin来根据在上一篇博文中分析的思路来把写一个简单的SDRAM控制器. 我们在上一篇博文中提到了这样一个问题,SDRAM是每隔15us进行刷新一次,但是如果当SDRAM需要进行刷新时,而SDRAM正在写数据,这两个操作之间怎么进行协调呢?因为我们是肯定需要保证写的数据不能丢失,所以,我们可以考虑这样来做:如果刷新的时间到…
前言:作为经典存储器的三剑客中的flash和sram已经建模测试过了,虽然现在都已经ddr2,ddr3,667MHZ.1333MHZ的天下了,但是接下这周来准备写一下sdram的controller.虽然本科生的时候很早就接触过flash,sram也听过sdram,但是flash和sram一般是作为单片机的一部分集成在内部,因此他们的总线基本被优化成指令,再者sdram的时钟一般100MHZ,用低速的微控制器驱动着实让sdram深受委屈. 这次要驱动的sdram芯片是ISSI的IS42S1640…
2018/7/26 受教于邓堪文老师,开始真真学习控制sdram 由于自己买的sdram模块是256的,原来老师的是128,所以边学边改,不知道最后好不好使,但是我有信心 一.sdram的初始化 sdram介绍啥的就不用了,上来就是干,简单粗暴. 1.下面是引脚说明,看不懂自己可以用百度翻译,需要注意的是红框内的地址引脚和行列地址是复用的,A0~A12是行地址,A0~8是列地址 简单说一下SDRAM的容量计算:数据位宽 *行地址*列地址*bank数,我们用的256有4个bank,就是:16*81…
1 初始化以及load mode 寄存器1 初始化以及load mode 寄存器 2  时间表 这里会有几个重要的时间周期: 3 AUTO REFRESH (自动刷新) 4 CAS(CL delay) 5 WRITE BURST Terminating a WRITE Burst 6 read with burst …
网上有很多的SDR SDRAM控制器的代码,但都是基于burst1/2/4/8模式下的,这种模式下传输高速的相机数据还是有点拮据的,所以花了几天把这些模式改造成了页突发模式.我的这个控制器模型是这样的: 图一 这里的有两个缓冲Wrfifo和Rdfifo,它们都是dcfifo(混合宽度异步时钟FIFO).上面的图我画的很丑,但是有些细节要注意,Wrfifo进来是8bit出去是16bit.不管是手机那种摄像头还是工业相机camera_clk都不会很高,在30hz的640x480输出情况下,8进16出…