《基于FPGA的控制接口电路设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的控制接口电路设计.docx(3页珍藏版)》请在第一文库网上搜索。
1、基于FPGA的控制接口电路设计1引言随着存储技术的不断进步,F1ashMemory的存储容量越来越大,读写数度越来越快。性能价格比越来越高。但是,NANDF1aSh本身存在缺点,归纳起来有两点:读写控制时序复杂和位交换(。、1反转)问题。NANDF1aSh器件能够复用指令、地址和数据总线,从而节省了引脚数量,但引脚不仅承担着数据总线的功能,还承担着地址及指令总线的功能,所以造成接旦控制时序复杂。位反转的问题更多见于NANDF1ash,NANDFIaSh的供应商建议使用NANDFIaSh的同时使用EDC/ECC校验算法。本文实现的NANDF1ash控制器放置在CPU和NANFF1ash器件之间,
2、实现了NANDFIaSh的无粘接接口,可以大大简化CPU对NANDFIaSh的操作时序,提高CPU的使用效率。ECC功能可以保证存储数据的准确性,ECC模块和主控模块相对独立,在不需要ECC功能的时候,只需不使能ECC模块,方便灵活。2控制接口电路的功能特性整个控制接121电路分为两大功能模块:第一个功能模块为主控制器模块,该模块简化NANDFIaSh的接口时序,可以为NANDF1aSh设计一个无粘接接口(G1UeIeSSInter-face),从而使得对NANDFIaSh操作的时序复杂程度大大降低,使得NANDFIaSh接口映射为一个类似于S幽1的无粘结接口。第二个功能模块是ECC模块,该模
3、块对512个字节能纠正单比特错误和检测双比特错误,但对单比特以上的错误无法纠正。对两比特以E的错误不保证能检测。两个功能模块相对独立,ECC功能模块位于主控制器模块与NANDF1aSh甚左之间,可以选择工作与不工作,主控制器模块的所有命令都会通过ECC模块传给NANDFIaSh芯片。当令ECC模块不工作时。ECC模块就相当于连接主控制器模块与NANDF1aSh芯片的导线;当ECC模块工作时。只会在丰控制器模块的操作中加入一些步骤,并不会打乱主控制器模块的操作时序。3主控制器3. 1寄存会和缓存配置主控制器的外部接口类似于SRAM的,然而SRAM只有读和写两种主要操作。而NANDFIaSh除r页
4、编程与读操作之外还有ID读取、重置、块擦除和状态读取等操作,在不改变接口的情况下只能采用与NANDFIaSh类似的写控制字的方式。主控制器有16字节寄存器组,可以从I/O总线上读取指令和地址。指令寄存器采用存储器映射(MemOryMappedRegiSter)的编址方式,也就是说,寄存器的地址统一编入内存空间,从OXFFO到OXFFA。4. 2主控制器的实现主控制器的结构框图见图Io下面分别讨论时钟控制模块和状态控制模块的设计实现。ADDRnIQUDATA7:0JoCEJ,WEJfOEJrC1K-RESETjfNANDKB-I.DATA7CEJfCIEfA1EfW_1-REJVPJ.fPRE-
5、RB-1NT图1主控制器的结构图寄存器组时钟控制ECC模块接口2112字节2112字W缓存缓存(1)时钟控制模块。对于这种读写使能都是低电平有效的芯片,采用占空比为1:1的时钟进行读写操作对提高数据的存取速度并不划算。比如,进行读取操作时,REJ至少要保证低电平35ns才能保证数据被正确读取,REj上升为高电平后只妻保证数据再被保持IOns的时间就行,这样加上5ns的奈量,时钟周期至少也要为80ns。为r保证数据能够被正确读取,并尽量提高读取速度,我们采用16.7MHz即周期为60ns,占空比为1:2的时钟。这种情况下,低电平持续时间为40ns,35ns数据确信被读取后,仍有5ns的余量,高电
6、平有20ns时间,也很充裕,既保证了数据的正确读取。又充分发挥了器件的性能。(2)状态控制模块。如图2所示,主控制器执行可控制NANDFIaSh进行重置、块擦除、页读取、查错、读ID。页编程和状态读取指令的操作,不支持对NANDFIaSh的随机读写操作。当地址输入为OXFFA时,指令寄存器中的命令字就会被读取,确定下一步要执行的指令,然后转移到相应的状态。5. ECC模块NANDF1aSh器件都受位交换现象的困扰,在某些情况下一个比特位会发生反转。本节论述了专用校验算法ECC(ErrorCorrectionCode,简称ECC的设计实现过程。ECC模块被置于NANDFIaSh器件和主隹制器之间
7、,ECC模块从主控制器接收各种信号,不需要工作时直接将收到的信号传给NANDF1ash0需要工作时截取主控制器的控制信号,加七自己的操作后再传给NANDF1ash0ECC模块结构见图3oCEJ,C1EfA1EfWE.一REJWPJfDATA70)CCRBjfINTNANDF4主控制器接口到借JECe码模块生成模块NANDFh接口=状态控制模块UnXEJC】E一A1E-WE_1-REJeWPJ1ODATN7刈RB_1图3ECC模块结构图(1)校验码生成模块。ECC校验码生成模块有96比特(12字节)的运算寄存器供运算时暂存数据,分成四组每组三字节的寄存器,这些寄存器保存着奇偶校验值(也就是各位的异或值),每当数据送人时这些寄存器的值就更新一次。这些奇偶校验标志的计算基于每字节数据的顺序位置及数据本身。