基于FPGA的控制接口电路设计 (fpga控制sja1000)
整理分享基于FPGA的控制接口电路设计 (fpga控制sja1000),希望有所帮助,仅作参考,欢迎阅读内容。
内容相关其他词:fpga控制系统,fpga控制sja1000,基于fpga控制的开关电感均衡器设计,fpga控制系统,fpga控制电路设计,fpga 控制,基于fpga控制的可重构阵列,基于fpga控制的可重构阵列,内容如对您有帮助,希望把内容链接给更多的朋友!
(1)时钟控制模块。对于这种读写使能都是低电平有效的芯片,采用占空比为1:1的时钟进行读写*作对提高数据的存取速度并不划算。比如,进行读取*作时,RE_L至少要保证低电平ns才能保证数据被正确读取,RE_L上升为高电平后只要保证数据再被保持ns的时间就行,这样加上5ns的余量,时钟周期至少也要为ns。为r保证数据能够被正确读取,并尽量提高读取速度,我们采用.7MHz即周期为ns,占空比为1:2的时钟。这种情况下,低电平持续时间为ns,ns数据确信被读取后,仍有5ns的余量,高电平有ns时间,也很充裕,既保证了数据的正确读取。又充分发挥了器件的性能。 (2)状态控制模块。如图2所示,主*执行可控制 NANDFlash进行重置、块擦除、页读取、查错、读ID。页编程和状态读取指令的*作,不支持对NANDFlash的随机读写*作。当*输入为0xFFA时,指令寄存器中的命令字就会被读取,确定下一步要执行的指令,然后转移到相应的状态。
4ECC模块 NANDFlash器件都受位交换现象的困扰,在某些情况下一个比特位会发生反转。本节论述了专用校验算法ECC(ErrorCorreconCode,简称ECC的设计实现过程。ECC模块被置于NANDFlash器件和主*之间,ECC模块从主*接收各种信号,不需要工作时直接将收到的信号传给NANDFlash。需要工作时截取主*的控制信号,加七自己的*作后再传给NANDFlash。ECC模块结构见图3。 (1)校验码生成模块。ECC校验码生成模块有比特(字节)的运算寄存器供运算时暂存数据,分成四组每组三字节的寄存器,这些寄存器保存着奇偶校验值(也就是各位的异或值),每当数据送人时这些寄存器的值就更新一次。这些奇偶校验标志的计算基于每字节数据的顺序位置及数据本身。 (2)纠错模块。当NANDFlash进行读*作时,读出的数据将会被ECC码生成模块重新计算ECC码。当主*读完一页的所有字节数据后,ECC模块开始读取事先写入的FffX2校验码,这些校验码按字节移人查错模块的移位寄存器中。当3字节校验码移入寄存器后,查错模块将其与新牛成的ECC码做异或运算并确定错误类型及位置,同时将错误信息存入一个位的寄存器中。 (3)状态控制模块。ECC模块的状态控制部分控制整个ECC模块的工作时序,见图4,同时根据当前的状态信息输出状态信号。对于读*作,计算一次ECC码需要字节,因此每次至少要读出字节的数据。为简单起见,我们只对N趟蛔Flash进行整页的读*作,总线上传输前字节数据时,ECC模块计算ECC码,传后字节数据时,ECC模块将其存下,待数据传输完毕后进行校验,将存下的E(℃码与计算出的ECC码进行按位异或,确定数据的正确性。对于写*作,与读*作类似,写*作也要以整页为单位进行。数据一边传入NANDFlash,ECC模块同时计算ECC码。当主控制模块传人第字节数据后,ECC模块接管数据总线,将自己计算出的ECC码传人NANDFlash。对于查错*作,当主*下0x指令时进入该状态。将每页字节数据*生的8字节错误信息,包括错误的位置及种类传送给主*,对于其它*作指令直接传给NANDFlash芯片。 5控制接口电路的验证 对块擦除指令、页读取指令、页编程指令、重置指令进行功能*。*0XFFA为指令寄存器,0x6代表块擦除,0x0代表页读取,0x8代表页编程,0xF代表重置。*结果如图5~图8所示。通过和NANDFlash器件要求的时序图对比可以看出,*输出的信号完全符合器件的要求。 6结束语 本文在分析了NANDFlash产品特性的基础上,给出了NANDFlash控制接口电路的设计方案和验证结果。本文的创新点是采用同步设计和FSM设计方法,控制接口电路能够正确地将以SRAM时序输入的块擦除、页读取、页编程、ID读取、重置、状态读取*作指令转化为NANDFlash器件要求的*作时序,大大简化了NANDFlash的读写控制时序。另外,接口控制电路还能实现ECC功能,具有个字节中发现2比特错误、纠正l比特错误的检错纠错能力。接口控制电路的各个指令*作功能在Xilinx的Spartarr3Board上得到了验证,工作最高频率达到MHz。 标签: fpga控制sja1000
本文链接地址:https://www.iopcc.com/jiadian/31159.html转载请保留说明!
