微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于NAND FLASH Controller

关于NAND FLASH Controller

时间:10-02 整理:3721RD 点击:
NAND FLASH Controller IP Core
NAND FLASH Controller
NAND FLASH控制器
我是一位在职者(北京),专业从事FPGA接口设计,有较多的空余时间,对FPGA有比较丰富的项目经验(6年)。
熟练使用Xilinx/Altera FPGA,熟悉NAND FLASH接口时序。
自行编写NAND FLASH Controller/控制器,可以以源代码(VHDL语言)或网表形式(提供使用手册)提供,功能包括:
1. NAND Flash物理接口时序:支持PAGE READ、PROGRAM PAGE、BLOCK ERASE、RESET、READ ID、READ STATUS、Set/Get Feature等命令集和相关时序
2. Nand Flash阵列的流水线管理:流水线化PROGRAM PAGE,使Nand Flash阵列的存储速度最大化;流水线管理NAND FLASH阵列的PAGE READ、BLOCK ERASE、RESET、READ ID等操作
3. Nand Flash阵列的坏块检测:检测NAND FLASH的原始出厂坏块
4. Nand Flash阵列的坏块管理:在Nand Flash阵列的PROGRAM PAGE和PAGE READ过程中,剔除NAND FLASH的坏块,产生有效的块地址
5. Nand Flash阵列的ECC:256 byte数据生成3 byte ECC编码,使用3 byte ECC编码能够纠正256 byte数据中的1个bit错误,检测2个bit以上的错误
NAND FLASH Controller自动进行坏块管理以及ECC纠错,坏块表可存储于FPGA内部RAM块或片外SRAM。
NAND FLASH控制器的用户接口友好,基本上都是DPRAM或FIFO接口,状态信号是I/O接口,易于使用。
此NAND FLASH控制器既可以适应简单的单片NAND FLASH应用,也可以适应NAND FLASH阵列应用,并且可以适应各种各样的NAND FLASH芯片型号。
8x8(8行8列:8个片选,64位数据总线) NAND FLASH阵列的存储速度可达380MB/S。
FPGA内部可以嵌入多个NAND FLASH控制器,每个控制器的存储速度可达380MB/S。如果嵌入4个NAND FLASH控制器,那么存储速度可达1520MB/S。
此NAND FLASH控制器多次在实际项目中使用,被证明稳定可靠。
如有NAND FLASH接口开发相关方面的技术合作,可随时联系我。
联系方式:fpga_coop@163.com。

牛人,你顺便把NAND FLASH的FTL一起做了,然后做出个U盘出来卖啊

这个东西还是有技术含量的,想当年我就是为了避免处理坏块这点,选用的CMOS的SPI FLASH,就只需要管读写就可以了。

老多地方都见这个哥们的帖子,牛人啊
我想问一下,既然做了坏块检测,还做ECC干嘛

每个控制器的存储速度可达380MB/S,神速啊!

niu bi zhe me li hai....

I think your performance data is ideal number, mutli-channel NAND flash controller is also need to consider
1. The protocol handshaking with CF/USB/SATA/PCI-E ......
2. Internal buffer size
3. CPU performance
4. System bus architecture.....
But I know most boss always push engineer to achieve the ideal performance value.
(What the unfair world~)

现在做controller的 这么牛啊,小编在哪个公司?

我看小编用过美光的flash芯片,冒昧请小编帮解决一下我个人的一点小疑问:
    美光128Gb的NAND flash芯片(MT29F128G08AUCBB)文档中关于PROGRAM PAGE MULTI-PLANE一项的介绍并没有区分是同步和异步哪种工作模式,但文档最后却只给出了同步模式下的时序图。我想确认一下其异步工作模式下是否也支持PROGRAM PAGE MULTI-PLANE访问?
    非常谢谢!

现在都用BCH做校验啦

Could some body provide details on synchronization ?

都是高手啊

    镁光这个型号用的应该是onfi2或者3的接口标准把,那肯定是同步的了阿,怎么会异步呢



    坏块检测和ECC是不同的。当在编程一个块中的第N个page时,page中的某个bit或某几个bit出现program错误,就将这个块的1到N-1个page复制到冗余块的相应page,数据缓存的数据就program到新块的第N个page。坏块就被替换了,并被标记。标记位可以检测坏块。
ECC是在读操作中,对nand读出数据进行验证,检验是否在编程,坏块替换时的复制,出现过错误。一定程度上可以修改错误。
坏块的错误是某位,某些位固定为高或低,不能编程为低,擦除为高。
ECC错误,是数据的某些位与要保存的数据不同。

可以把代码贴出来大家学习下啊

如果可以分享下代码那就好了,最近正在研究这个

我来打击一下小编,1:现在的NAND flash以TLC居多,扇区大小普遍1K byte,次之也是512Byte,以256byte为单位做纠错码浪费传输效率和纠错效率。2、MLC/TLC存储出错概率很大,你的纠错能力实在太弱没有可应用性,纠错能力涵盖8bit/1Kbyte, 24bit/1Kbyte,60bit/1Kbyte是基本要求。3、你的380Mbyte/s是指单片nand接口上的速度吗?数据可不能乱说,ONFI的toggle接口200M频率才能达到400MB/s的纯数据传输速率,即使你控制器能到这么快,PAD速度做不到200MHz也是白搭。



    挺一下!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top