Norflash控制器的Verilog建模之一
摘要:今天驱动一款SPANSION公司生产的norflash——S29AL032D70,没有别的参考资料,大致了解一下norflash的内部cmos电路架构以及其用途之后,直接看手册吧。
如何看手册:拿到手册后满满的英文,很多人看了就泄气,那么如何在浩如烟海的英文里找到实际需要的信息,这一点很关键。因为毕竟是用Verilog建模,不像软件描述那么灵活,很多时候受限于硬件描述的瓶颈,因此一开始先给自己起点低一点,建模完成norflash的单块读写功能,至于其他比如CFI里面的其他功能可以以后完善。类似sdram和sram,作为memory的一员,flash无非是在控制总线下数据总线和地址总线的切换。另外,每个厂家在此基础之上可能还再添加一些特色的功能加速器件的访问以及减低功耗的设计。从拿到手册开始,目标就很明确,个人习惯思路是这样:“抓住三总线——>提取关键的时序参数——>根据不同功能化简每个功能的时序图——>硬件语言描述”。
手册关键点:
(a)根据DE2的原理图,norflash的地址总线安排flash_addr[21:0],数据总线flash_data[7:0]形成4Mx8Bit存储结构。
(b)根据原理图,可操作控制总线有flash_ce_n,flash_oe_n,flash_we_n,flash_rst_n。因此可用命令read,write,standby,reset。ps图里的wp/acc引脚悬空,在此状态下逻辑电平未知,不过在note里看到,引脚的逻辑高低影响最外层的2个扇区的保护与未保护,因此在读写驱动时候需要避开这2个扇区。
(c)芯片是S29AL032D70TFI04.因此是mode04,即x8/x16,Vcc=2.7~3.6v,bottom boot sector device。底层2个扇区保护与否取决于wp/acc引脚。
(d)04模式的扇区组织。SA0~SA7:大小8Kbyte,每块扇区地址flash_addr[21:13]从0~8;SA8~SA70:大小64Kbyte。SecuredSector:256byte。
(e)04模式扇区块组织。SA0~SA8共8个扇区块,大小每个8Kbyte;SA8~SA10一个扇区块共192Kbyte;其余每4个连续扇区为一个扇区块,每个大小256Kbyte。
(f)SecuredSector里面可以获得器件ESN码。
(g)CFI命令。
(h)手册下半部分便是时序参数和读写擦的时序图。
ps:马上又要开学了,虽然会很忙,还是自己能在这里不断总结。督促自己。
Norflash控制器的Verilog建模之一的更多相关文章
- Norflash控制器的Verilog建模之二(仿真)
前言:经过几天修改,norflash控制器基本已经完成,通过仿真.完整的norflash包含2个模块:直接操作硬件的norflash_ctrl.v与控制ctrl模块的驱动norflash_driver ...
- Norflash控制器的Verilog建模之三(測試)
前言:回校了,辦好手續就著手寫測試篇.初步的norflash控制器已經完成,通過硬件測試.目前的norflash完成扇区块擦除.单字节写.单字节读3个功能.博文最后附上源码. 总结:和之前的博文一样, ...
- SDRAM控制器的Verilog建模之一
前言:作为经典存储器的三剑客中的flash和sram已经建模测试过了,虽然现在都已经ddr2,ddr3,667MHZ.1333MHZ的天下了,但是接下这周来准备写一下sdram的controller. ...
- 异步SRAM控制器的Verilog建模
前言:sram顾名思义静态随机存储器,分为asram异步型和ssram同步型.这里驱动DE2上一块ISSI公司的512KB的asram. 设计思路:因为实际应用中单字节读写效率不高,所以本设计中仿照s ...
- I2C控制器的Verilog建模之三(完结版)
前言:终于到了测试篇,不过悲剧了一下.按照之前<二>里面的思路,在顶层用一个复用器驱动读写独立模块的I2C总线确实失败.虽然综合过去了,不过警告里已经说明:底层的2个原本是inout三态口 ...
- VGA逐行扫描控制器的Verilog建模
前言:因为VGA是一种模拟图像传输数据接口,所要将数字信号用DAC转换成模拟量.本文用的一款ADI公司高精度的视频IC,实则一款高带宽的视频DAC.因为VGA时序较为简单,并且网上的VGA驱动基本大同 ...
- I2C控制器的Verilog建模之一
前言:之前申请了ADI公司的一款ADV7181CBSTZ的视频解码芯片,正好原装DE2板子安的是同系列的ADV7181BBSTZ.虽然都是ADV7181的宗出,但是寄存器配置等等还是有些诧异,引脚也不 ...
- I2C控制器的Verilog建模之二
前言:接着上一篇的I2C写操作,今天要实现一个I2C的读操作.虽然在ADV7181B配置内部寄存器时没有必要使用到读操作,但是为了进一步确认寄存器是否在I2C写模块下被正确配置,这一步是必不可少的. ...
- verilog 建模笔记--低级建模
来源 <verilog HDL那些事--建模篇> 1.并行建模的思想. 2.每个模块最好只有一个功能.(便于修改和扩展,特别在大的项目中) 典型的 HDL 教科书中,才不会要读者了解“模 ...
随机推荐
- 图片在ie8浏览器打不开,其他浏览器都可以打开的问题
问题描述: 1.图片在IE8浏览器打不开,但是IE8以上及其他浏览器均可以打开: 2.同一网站,其他图片可以在IE8浏览器打开 解决办法: 1.图片的颜色模式是CMYK模式,应改为RGB模式 2.修改 ...
- web安全之xss
xss:跨站脚本攻击,攻击者,把一段恶意代码镶嵌到web页面,,用户浏览页面时,嵌入页面的恶意代码就会执行,从而到达攻击用户的目的. 重点在于脚本,javascript和actionscript ...
- Kindle Unlimited上的技术书籍
直达链接:Kindle Unlimited 前不久,亚马逊在中国也推出了电子书包月服务.消息不灵通的我过了好久才看到这个消息,随后第一时间上官网查看具体情况. ...
- reactjs
摘自阮一峰博客:http://www.ruanyifeng.com/blog/2015/03/react.html 现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 Rea ...
- AT指令(转)
资料来自网络 附录AT指令简编一. 一般命令1.AT+CGMI 给出模块厂商的标识.2.AT+CGMM 获得模块标识.这个命令用来得到支持的频带(GSM 900,DCS 1800 或PCS 1900) ...
- hdu1024 dp
题意:求一个序列中的最大 m 段和,m 段不能交叉. dp[i][0/1][j] 表示已经取完第 i 个物品,第 i 个物品取或不取,取到第 j 个子段. 用vis[i][0/1][j] 表示该 dp ...
- error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用 Debug ...
- circular_buffer
编程有时需要使用定长的容器(fixed size container).实现旋转容器可以像下面这样: std::vector<T> vec(size); vec[i % size] = n ...
- [原创]cocos2d-x研习录-第三阶 背景音乐和音效
在游戏中,音效是一个不可或缺的部分,它可以为我们的游戏增加效果.音效在游戏中一般分为长时间的背景音乐和短促的特效音乐.Cocos2D-x支持多种常见音乐格式(mp3.wav等). Cocos2D-x提 ...
- 如何导出和导入mysql数据(数据迁移)
. 导出数据库数据 mysqldump -uroot -p dp_db > dumpout.sql 其中 root是账户名 dp_db是需要导出的数据库名称 dumpout.sql存储导出的数据 ...