SDRAM控制器的Verilog建模之一
前言:作为经典存储器的三剑客中的flash和sram已经建模测试过了,虽然现在都已经ddr2,ddr3,667MHZ、1333MHZ的天下了,但是接下这周来准备写一下sdram的controller。虽然本科生的时候很早就接触过flash,sram也听过sdram,但是flash和sram一般是作为单片机的一部分集成在内部,因此他们的总线基本被优化成指令,再者sdram的时钟一般100MHZ,用低速的微控制器驱动着实让sdram深受委屈。
这次要驱动的sdram芯片是ISSI的IS42S16400D-7TL。刚刚接触sdram也是一头雾水,厚厚的手册,满满的英文。不过还好看了网上一片解读sdram比较透彻的文章,没有名字,最后作者打了个sdram和仓库的比喻比较生动。基本看完“《sdram和仓库》”这篇解析sdram的文章之后看手册就不会太陌生,因为毕竟对于第一接触sdram的人来说,一下子看到precharge,write_recovery,refresh等词语会比较陌生。基本的概念不做解释,所以读本文的前提是对sdram有了较深的理解。
设计思路:手册阅读的技巧已经在前一篇norflash控制器建模中有详细解释,这一次无非就是sdram状态机制会比norflash或者sram更复杂一点。复杂的技术难点主要有2处:第一sdram是高速存储读取数据的芯片,操作时序更快于sdram或者flash,因此如何安排控制手册里的时序参数(Trcd,Twr)等比较复杂;另外一点就是sdram是需要定时刷新,如何设计一个合适的刷新机制也是一个技术点。只要相信并且看懂按照手册,就可以正确操作三总线得到好的结果。
手册关键参数图表摘要:
(a)指令真值表,其中2个nop区别在于,第一个nop指令用于器件上电电压稳定之前控制总线命令,后一个nop是用于模块除了上电状态以外的空闲指令。
(b)sdram读写模式配置,由于工程需要本人配置成为顺序的页读写突发模式。其中页突发的输出有顺序和交织,可根据实际需要,比如摄像头采集的数据高位在后低位在前的或者其他big-endian和little-endian的应用,另外之前用fft的ip核求解快速傅里叶变换时也有过使用交织的输出。
(c)时序参数图略,基本化简时序图就靠它了
(d)页突发读写习惯时序图
注:测试和仿真会在后续编写。以及最重要的在过程中遇到的问题和相应解决会标注在下一篇探讨。
SDRAM控制器的Verilog建模之一的更多相关文章
- Norflash控制器的Verilog建模之一
摘要:今天驱动一款SPANSION公司生产的norflash——S29AL032D70,没有别的参考资料,大致了解一下norflash的内部cmos电路架构以及其用途之后,直接看手册吧. 如何看手册: ...
- I2C控制器的Verilog建模之一
前言:之前申请了ADI公司的一款ADV7181CBSTZ的视频解码芯片,正好原装DE2板子安的是同系列的ADV7181BBSTZ.虽然都是ADV7181的宗出,但是寄存器配置等等还是有些诧异,引脚也不 ...
- SDRAM驱动篇之简易SDRAM控制器的verilog代码实现
在Kevin写的上一篇博文<SDRAM理论篇之基础知识及操作时序>中,已经把SDRAM工作的基本原理和SDRAM初始化.读.写及自动刷新操作的时序讲清楚了,在这一片博文中,Kevin来根据 ...
- Norflash控制器的Verilog建模之二(仿真)
前言:经过几天修改,norflash控制器基本已经完成,通过仿真.完整的norflash包含2个模块:直接操作硬件的norflash_ctrl.v与控制ctrl模块的驱动norflash_driver ...
- 异步SRAM控制器的Verilog建模
前言:sram顾名思义静态随机存储器,分为asram异步型和ssram同步型.这里驱动DE2上一块ISSI公司的512KB的asram. 设计思路:因为实际应用中单字节读写效率不高,所以本设计中仿照s ...
- I2C控制器的Verilog建模之三(完结版)
前言:终于到了测试篇,不过悲剧了一下.按照之前<二>里面的思路,在顶层用一个复用器驱动读写独立模块的I2C总线确实失败.虽然综合过去了,不过警告里已经说明:底层的2个原本是inout三态口 ...
- Norflash控制器的Verilog建模之三(測試)
前言:回校了,辦好手續就著手寫測試篇.初步的norflash控制器已經完成,通過硬件測試.目前的norflash完成扇区块擦除.单字节写.单字节读3个功能.博文最后附上源码. 总结:和之前的博文一样, ...
- VGA逐行扫描控制器的Verilog建模
前言:因为VGA是一种模拟图像传输数据接口,所要将数字信号用DAC转换成模拟量.本文用的一款ADI公司高精度的视频IC,实则一款高带宽的视频DAC.因为VGA时序较为简单,并且网上的VGA驱动基本大同 ...
- I2C控制器的Verilog建模之二
前言:接着上一篇的I2C写操作,今天要实现一个I2C的读操作.虽然在ADV7181B配置内部寄存器时没有必要使用到读操作,但是为了进一步确认寄存器是否在I2C写模块下被正确配置,这一步是必不可少的. ...
随机推荐
- 第五章 搭建S3C6410开发板测试环境
开发板是开发和学习嵌入式技术的主要设备.在这章中介绍了S3C6410开发板,它是三星公司推出的一款低功耗.高性价比的RISC处理器.安装串口调试工具:minicom.它的安装步骤:第1步:检测当前系统 ...
- iOS开发之直接使用UISearchBar
iOS开发中经常需要使用SearchBar,我们可以选择使用UISearchBar+UISearchController或者UISearchBar+UISearchDisplayController( ...
- 自动换行(word-wrap:break-word;word-break:break-all)
word-wrap:break-word; 自动换行,不把单词拆开 word-break:break-all; 自动换行,拆开单词 white-space:nowrap; 文本不会换行,文本会在同一行 ...
- Python图片处理
Python图像处理库PIL基本使用 #将图片转换为灰度图像 from PIL import Image pil_im = Image.open('cat.jpg') gray_cat = pil_i ...
- 如何用Selenium 向CodeMirror 编辑器输入
用Selenium 自动填写Jenkins上面一个文本输入框,通过css定位很容易,但是输入文字的时候会报错 ElementNotVisibleException: Message: Element ...
- Oracle 11.2.0.1的一个Bug,客户端报ORA-03113: 通信通道的文件结尾
半小时前,一个项目反馈应用系统部分功能报错,ORA-03113: 通信通道的文件结尾.好像是个常见的错误. 异常信息:ORA-03113: 通信通道的文件结尾 进程 ID: 2392 会话 ID: 2 ...
- 支付宝接入文档中TRADE_SUCCESS和TRADE_FINISHED的本质区别
之前一直不知道这2种状态到底有什么不同.支付宝中担保交易和即时到账交易对其的描述为: TRADE_SUCCESS 交易成功(或支付成功) TRADE_FINISHED 交易完成 一头雾水... ...
- Stream 和 byte[] 之间的转换
Stream 和 byte[] 之间的转换 一. 二进制转换成图片 ? 1 2 3 4 5 MemoryStream ms = new MemoryStream(bytes); ms.Position ...
- [Linux] - 攻击查看与IP查封
查看80端口的连接数 netstat -nat|grep -i "|wc -l 查看Nginx的日志命令 tail -f access.log 统计IP访问数 awk '{aaa[$1]++ ...
- [PHP] - Laravel - 修改laravel_session的cookie名称
修改Cookie laravel_session的名称方法: 打开文件:config\session.php 找到值:laravel_session 修改为你所需要的cookie名称即可. 当然,还有 ...