首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的NAND Flash控制接口电路设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的NAND Flash控制接口电路设计
发短消息
加为好友
苹果也疯狂
当前离线
UID
852722
帖子
10369
精华
0
积分
5185
阅读权限
90
在线时间
277 小时
注册时间
2011-8-30
最后登录
2016-7-18
论坛元老
UID
852722
1
#
打印
字体大小:
t
T
苹果也疯狂
发表于 2014-2-21 19:22
|
只看该作者
基于FPGA的NAND Flash控制接口电路设计
Memory
,
控制器
,
供应商
,
Flash
,
接口
1 引言
随着存储技术的不断进步,Flash Memory的存储容量越来越大,读写数度越来越快。性能价格比越来越高。但是,NAND Flash本身存在缺点,归纳起来有两点:读写控制时序复杂和位交换(o、1反转)问题。NAND Flash器件能够复用指令、地址和数据总线,从而节省了引脚数量,但引脚不仅承担着数据总线的功能,还承担着地址及指令总线的功能,所以造成接口控制时序复杂。位反转的问题更多见于NAND Flash,NAND Flash的供应商建议使用NAND Flash的同时使用EDC/ECC校验算法。
本文实现的NAND Flash控制器放置在CPU和NANF Flash器件之间,实现了NAND Flash的无粘接接口,可以大大简化CPU对NAND Flash的操作时序,提高CPU的使用效率。ECC功能可以保证存储数据的准确性,ECC模块和主控模块相对独立,在不需要ECC功能的时候,只需不使能ECC模块,方便灵活。
2 控制接口电路的功能特性
整个控制接121电路分为两大功能模块:第一个功能模块为主控制器模块,该模块简化NAND Flash的接口时序,可以为NAND Flash设计一个无粘接接口(Glueless Inter一face),从而使得对NAND Flash操作的时序复杂程度大大降低,使得NAND Flash接口映射为一个类似于SRAM的无粘结接口。第二个功能模块是ECC模块,该模块对512个字节能纠正单比特错误和检测双比特错误,但对单比特以上的错误无法纠正。对两比特以E的错误不保证能检测。
两个功能模块相对独立,ECC功能模块位于主控制器模块与NAND Flash芯片之间,可以选择工作与不工作,主控制器模块的所有命令都会通过ECC模块传给NANDFlash芯片。当令ECC模块不工作时。ECC模块就相当于连接主控制器模块与NAND Flash芯片的导线;当ECC模块工作时。只会在丰控制器模块的操作中加入一些步骤,并不会打乱主控制器模块的操作时序。
3 主控制器
3.1寄存器和缓存配置
主控制器的外部接口类似于SRAM的,然而SRAM只有读和写两种主要操作。而NAND Flash除r页编程与读操作之外还有ID读取、重置、块擦除和状态读取等操作,在不改变接口的情况下只能采用与NAND Flash类似的写控制字的方式。主控制器有16字节寄存器组,可以从I/O总线上读取指令和地址。指令寄存器采用存储器映射(Memory Mapped Register)的编址方式,也就是说,寄存器的地址统一编入内存空间,从0xFF0到OxFFA。
3.2主控制器的实现
主控制器的结构框图见图1。下面分别讨论时钟控制模块和状态控制模块的设计实现。
(1)时钟控制模块。对于这种读写使能都是低电平有效的芯片,采用占空比为1:1的时钟进行读写操作对提高数据的存取速度并不划算。比如,进行读取操作时,RE_L至少要保证低电平35ns才能保证数据被正确读取,RE_L上升为高电平后只要保证数据再被保持10ns的时间就行,这样加上5ns的余量,时钟周期至少也要为80ns。为r保证数据能够被正确读取,并尽量提高读取速度,我们采用16.7MHz即周期为60ns,占空比为1:2的时钟。这种情况下,低电平持续时间为40ns,35ns数据确信被读取后,仍有5ns的余量,高电平有20ns时间,也很充裕,既保证了数据的正确读取。又充分发挥了器件的性能。
(2)状态控制模块。如图2所示,主控制器执行可控制
NAND Flash进行重置、块擦除、页读取、查错、读ID。页编程和状态读取指令的操作,不支持对NAND Flash的随机读写操作。当地址输入为0xFFA时,指令寄存器中的命令字就会被读取,确定下一步要执行的指令,然后转移到相应的状态。
4 ECC模块
NAND Flash器件都受位交换现象的困扰,在某些情况下一个比特位会发生反转。本节论述了专用校验算法ECC(Error Correction Code,简称ECC的设计实现过程。ECC模块被置于NAND Flash器件和主控制器之间,ECC模块从主控制器接收各种信号,不需要工作时直接将收到的信号传给NAND Flash。需要工作时截取主控制器的控制信号,加七自己的操作后再传给NAND Flash。ECC模块结构见图3。
(1)校验码生成模块。ECC校验码生成模块有96比特(12字节)的运算寄存器供运算时暂存数据,分成四组每组三字节的寄存器,这些寄存器保存着奇偶校验值(也就是各位的异或值),每当数据送人时这些寄存器的值就更新一次。这些奇偶校验标志的计算基于每字节数据的顺序位置及数据本身。
(2)纠错模块。当NAND Flash进行读操作时,读出的数据将会被ECC码生成模块重新计算ECC码。当主控制器读完一页的所有2 010字节数据后,ECC模块开始读取事先写入的FffX2校验码,这些校验码按字节移人查错模块的移位寄存器中。当3字节校验码移入寄存器后,查错模块将其与新牛成的ECC码做异或运算并确定错误类型及位置,同时将错误信息存入一个14位的寄存器中。
(3)状态控制模块。ECC模块的状态控制部分控制整个ECC模块的工作时序,见图4,同时根据当前的状态信息输出状态信号。对于读操作,计算一次ECC码需要512字节,因此每次至少要读出512字节的数据。为简单起见,我们只对N趟蛔Flash进行整页的读操作,总线上传输前2 048字节数据时,ECC模块计算ECC码,传后12字节数据时,ECC模块将其存下,待数据传输完毕后进行校验,将存下的E(℃码与计算出的ECC码进行按位异或,确定数据的正确性。对于写操作,与读操作类似,写操作也要以整页为单位进行。数据一边传入NAND Flash,ECC模块同时计算ECC码。当主控制模块传人第2 010字节数据后,ECC模块接管数据总线,将自己计算出的ECC码传人NAND Flash。对于查错操作,当主控制器下0x23指令时进入该状态。将每页2 048字节数据共产生的8字节错误信息,包括错误的位置及种类传送给主控制器,对于其它操作指令直接传给NAND Flash芯片。
5 控制接口电路的验证
对块擦除指令、页读取指令、页编程指令、重置指令进行功能仿真。地址0XFFA为指令寄存器,0x6代表块擦除,0x0代表页读取,0x8代表页编程,0xF代表重置。仿真结果如图5~图8所示。通过和NAND Flash器件要求的时序图对比可以看出,控制器输出的信号完全符合器件的要求。
6 结束语
本文在分析了NAND Flash产品特性的基础上,给出了NAND Flash控制接口电路的设计方案和验证结果。本文的创新点是采用同步设计和FSM设计方法,控制接口电路能够正确地将以SRAM时序输入的块擦除、页读取、页编程、ID读取、重置、状态读取操作指令转化为NANDFlash器件要求的操作时序,大大简化了NAND Flash的读写控制时序。另外,接口控制电路还能实现ECC功能,具有512个字节中发现2比特错误、纠正l比特错误的检错纠错能力。接口控制电路的各个指令操作功能在Xilinx的Spartarr3 Board上得到了验证,工作最高频率达到100MHz。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议