找回密码
 注册
关于网站域名变更的通知
查看: 208|回复: 1
打印 上一主题 下一主题

基于FPGA的NAND FLASH控制器

[复制链接]
  • TA的每日心情
    难过
    2019-11-19 16:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-5-9 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    1 引言, ]" K8 _5 J, s* Y8 _

      U5 V' e9 a, e$ @
      在便携式电子产品如U盘、MP3播放器数码相机中,常常需要大容量、高密度的存储器,而在各种存储器中,NAND FLASH以价格低、密度高、效率高等优势成为最理想的器件。但NAND FLASH的控制逻辑比较复杂,对时序要求也十分严格,而且最重要的是NAND FLASH中允许存在一定的坏块(坏块在使用过程中还可能增加),这就给判断坏块、给坏块做标记和擦除等操作带来很大的难度,于是就要求有一个控制器,使系统用户能够方便地使用NAND FLASH,为此提出了一种基于FPGA的NAND FLASH控制器的设计方法,并用VHDL给予实现,Modelsim得出仿真结果,并在ALTERA公司的EP2C35F672器件中得到验证。FPGA与NAND FLASH接口图如图1所示。

    2 NAND FLASH操作
    8 [5 f/ j' w5 Z) j' z- h! f% x! t3 X8 j1 q7 ]9 q
      NAND FLASH器件的管脚分为控制信号、I/O二类,地址和数据是复用I/O管脚。通常NAND FLASH器件包括一定数目BLOCK,每个BLOCK包括一定数目的PAGE,每个NAND FLASH器件把BLOCK,PAGE按照行列地址进行寻址,基于这种特殊的结构。
    5 V: P( I- ^, ^  X: N- {
    # L1 Z* P) x; d5 M$ R! ?* J2.1 READ ID
    * `4 v) t5 k; G* |7 N3 r+ Y1 h7 P+ [- f3 \6 v0 k1 N  g$ y4 E
      NAND FLASH器件ID包括:Manufacture ID,device ID以及容量大小,这些重要的信息是判断NAND FLASH的重要凭证,因此将这些信息读出来加以判断就显得特别重要。在CLE为高,WE#上升沿,在I/O输入90H命令让NAND FLASH进入读ID状态,接着在ALE为高,WE#上升沿,在I/O输入00H地址,在等待tWHR将RE#置为读,在RE#连续4个上升沿将ID读出。仿真图如图2所示。

    2.2 判断坏块, j7 p2 D8 J. W9 B. Z8 l

    ; q# H: G5 U. K. Z: M3 p: `" \
      AND FLASH作为一种特殊的储存器件,内部集成电路使得BLOCK与BLOCK是相互独立的,因此一定数目坏块的存在不会影响其他BLOCK。但坏块总数是有一定的限制的,超过一定的数目后器件将认为不能再使用。在出厂前厂家会在器件的每个BLOCK的第一页和第二页的列地址为2048标注上坏的信息,FFh代表此BLOCK是好,非FFh代表此BLOCK是坏。但是这些重要信息在执行Erase和Programming命令的时候会被擦除掉,因此,我们在做这些操作之前应该将坏块识别出来如图3所示,并加以标注或者用好的块来代替,以方便以后的访问。随着使用时间的推移,坏块的数目还会增加,因此我们必须随时更新坏块链表。坏块识别时序仿真图如图4所示。

    3擦除操作# b5 ^' ~8 e4 Y- E$ F/ }8 _

    * l1 L) o/ j2 R# a6 {
      一般芯片进行PROGRAM/ERASE的次数是100 000 cycles,第一个BLOCK次数更多,一般可用于存放boot code或者重要的信息。由于擦除操作是以BLOCK为基准,也就是每执行一次擦除操作将会擦除指定的BLOCK,所以在执行擦除时必须注意共享区域里的重要信息如坏块标识、ECC校验等。以免被擦除掉,擦除掉了及时恢复,擦除操作仿真如图5所示。

    4编程操作及其他操作( n/ O: i+ }' U, [, i) T: e1 p( Y6 z

    5 z. }: Q% I. }6 N! x( }' f( ?% G
      编程操作和擦除操作相似,只不过编程操作是以页为单位,在执行编程操作时同样也要注意共享区域里的重要信息以免被覆盖掉,重要信息被覆盖后要及时恢复。其他操作如复位还有有些芯片厂家各自新的操作等,但总体来说主流芯片都支持以上几种操作。
    6 f% }0 z0 d9 r* @3 q4 M' V6 P6 Y) X/ i: `& N
    5 结 语
    " A8 ?! K* Q. h/ n: ?4 G
    7 y3 O+ l4 I* {2 Y) s/ f, ]: H+ Q
      在实际应用中,使用ALTERA公司的Cyclone2 FP-GA器件进行设计,设计输入采用VHDL来完成,实现了上述的NAND FLASH控制器接口电路。此外,由于采用了通用性设计思想,可以对不同厂家不同的芯片进行控制和操作,具有一定的通用性


    . x5 ?+ o' a) [: Z1 _, R1 T4 p
    ) h1 }: W& o! [/ k3 v

    该用户从未签到

    2#
    发表于 2020-5-9 11:12 | 只看该作者
    AND FLASH作为一种特殊的储存器件,内部集成电路使得BLOCK与BLOCK是相互独立的,因此一定数目坏块的存在不会影响其他BLOCK。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-21 07:40 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表