基于FPGA的K9F4G08 Flash控制器设计

2010-06-23 22:10:32来源: 唐 磊,周 旋,吴 瑶,李金城

  摘  要: 设计了一种能使FPGA的主状态机直接管理Flash的控制器,该控制器具有自己的指令集和中断管理方式。用户可以根据FPGA的系统时钟对控制器进行操作,无需关心Flash对指令和数据的时序要求。控制器建立了自己的坏块管理机制,合并了一些Flash的常用关联指令,方便了用户对FPGA主状态机的设计。

  K9F4G08是三星公司的512 MB NAND Flash,具有8 bit输入输出总线。存储空间共分成4 096个块,每个块有64个页,每个页容量为2 KB,外加64 B的备用空间,组成256 K行×(2 K+64)列的存储阵列,其地址用5个字节表示[1]。

  K9F4G08具有自己的指令集,可以完成对Flash一个页的读、写以及对一个块的擦除等操作。有严格的时序要求以保证芯片正确地执行相应的指令。Flash在出厂时会有坏块[1],坏块是无法操作的,这对于连续大批量的数据存储来说有一定的难度,需要建立一套Flash空间管理方案以保证坏块不被读写,提高数据读写的可靠性。

  用FPGA直接管理Flash不仅是一种可行的方案,而且还能精简硬件结构。但与具有专用Flash接口的MCU或ARM等高档嵌入式微处理器不同,FPGA不能通过简单的读写指令编程管理Flash,而必须按照时序要求对Flash的端口进行指令和参数的具体操作。若FPGA的主状态机直接管理Flash,将会使状态机的状态数量大量增加,代码将异常复杂,甚至无法完成设计[2][3]。

  为解决上述问题,本文设计了一个Flash控制器controller_4G08,它建立了自己的指令集,可以方便地实现FPGA对Flash的控制和读写操作。FPGA主状态机可以在系统时钟频率下对controller_4G08发送指令,然后等待controller_4G08返回的中断,中断返回即表示操作完成,无需关心Flash要求的操作时序。采用这个控制器将大大简化FPGA主状态机的状态数量,方便设计和调试,同时代码具有很强的可移植性。

  1 controller_4G08的设计方案

  理论上讲FPGA可以直接对Flash操作,但这样会使主状态机状态很多,程序繁琐,当需要大批量数据反复读写时很不方便。本文设计了一个控制器controller_4G08,用这个控制器完成数据指令读写的时序操作。

  用controller_4G08管理Flash的系统框图如图1所示。FPGA部分有2个模块:主状态机和controller_4G08,它们之间的端口连接包括4 bit指令端口cmd_code_4G08、8 bit数据输入输出端口data_in_4G08与 data_out_4G08、中断信号int_ctl_4G08;FPGA对K9F4G08芯片接口包括8 bit双向数据端口data_4G08、忙标志rb、读使能we、写使能re等端口。FPGA主状态机若想对Flash进行操作,只需要通过cmd_code_4G08向controller_4G08发指令,按照系统时钟通过data_in_4G08与 data_out_4G08收发数据,然后controller_4G08会对K9F4G08执行相应的操作,指令执行完之后会通过int_ctl_4G08给主状态机一个中断信号,告诉主状态机执行完毕。FPGA主状态机不必关注Flash指令操作的时序问题,从而使设计简化。

  2 controller_4G08的指令集

  K9F4G08具有自己的指令集,以读操作为例,其操作过程是:首先发送命令00h,再发5个周期地址,最后发送命令30h。Flash开始读相应的页,此时rb信号为低(表示Flash处于busy状态),等到rb信号为高,再按照时序改变读使能信号,便可将1个页的数据依次读出[1]。

  controller_4G08根据K9F4G08的指令集建立了自己的指令集,新增了全擦、部分擦指令,并且在读写指令前加入了坏块匹配功能,如表1所示。

[1] [2] [3] [4]

关键字:FPGA  Flash  K9F4G08

编辑:小甘 引用地址:http://www.eeworld.com.cn/FPGA/2010/0623/article_1201.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
FPGA
Flash
K9F4G08

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved