基于AMBA APB总线的Nand Flash控制器的设计
- UID
- 1029342
- 性别
- 男
|
基于AMBA APB总线的Nand Flash控制器的设计
摘 要: 介绍了基于AMBA APB总线Nand Flash控制器的设计,首先简单介绍了 Nand Flash的一些特点,然后详细介绍了Nand Flash 控制器的整体框架、具体功能及其内部的数据通路。该控制器通过ModelSim进行了仿真及FPGA板级验证,结果证明能够满足Nand Flash时序要求。
关键词: Nand Flash; Flash控制器; AMBA APB总线; 仿真; 状态机
嵌入式系统的广泛应用使得数据存储和数据管理逐步成为一个重要课题。Flash存储器越来越多地应用并逐步取代其他存储器,成为嵌入式系统中重要地数据及程序载体[1]。
Flash主要分为Nor Flash、Nand Flash、And Flash三种。Nand Flash由于其优越的性能,成为主流内存。Nand Flash不仅具有存储密度高、读出数据快的优点,而且价格上也有优势,适合大数据存储[2]。但是应用Nand Flash必须提供专用的接口控制时序,因此目前设计主流的嵌入式SoC芯片如果要提供对Nand Flash的支持,就需要设计一个Nand Flash控制模块电路。
本文介绍了Nand Flash的操作方法,并基于此操作方法详细介绍了该接口电路的结构及读写数据流。同时介绍了Nand Flash的详细操作和状态机控制。最后,给出了该模块在服务器上的仿真时序图。
1 Flash简介
由Intel公司于1988年推出的Nor Flash技术具有工作电压低、随机读取快、功耗低、稳定性高等优点。东芝公司于1989年发表的Nand Flash结构则强调成本和性能,其容量较大、改写速度快,适用于大量数据的存储,在嵌入式产品中得到了广泛的应用,如数码产品、小体积U盘等[3]。
随着SoC技术的发展,集成SoC的整机系统规模越来越大,功能越来越强大。在这些整机系统中,Nand Flash得到了广泛的应用。为了支持Nand Flash通信,在SoC中必须设计Nand Flash控制器接口。本文设计的Nand Flash控制器支持AMBA APB接口。经ModelSim仿真和FPGA验证表明,本设计完全满足Nand Flash的时序和通信功能要求,并最终成功流片。
2 总体结构与子模块划分
该设计是基于AMBA APB总线的模块。AMBA2.0总线为嵌入式微控制器定义了一套片上总线标准,用户可独立设计基于该规范的外IP。
总体结构如图1所示,可分为APB总线接口模块、Flash控制模块。APB总线接口模块控制时序依据AMBA APB总线规范,主要负责与APB总线之间的通信与交互,如锁存总线来的地址、数据、片选、使能等。Flash控制模块主要负责与APB总线接口模块的交互、从Flash获取数据,并将8 bit数据整合成32 bit。
Read_Done表示读取数据结束,由Flash控制模块输出到APB接口模块,作为中断触发信号触发中断。APB接口模块中的中断(interrupt)部分处理中断信号,并输出Int_Output信号。DATA是Flash控制器由Flash中读出的数据。Flash_Addr、Read_Enable、Read_Type和Addr_Length是由APB接口模块给到Flash控制模块的信号,分别是各自对应寄存器的值。Spi_clk、CS、WP、HOLD、SI和SO是Flash控制模块与Flash对应端口的连接。
3 AMBA APB总线接口模块
该Flash控制器通过APB总线接口模块与APB总线接口通信。APB总线输入信号包括时钟信号PCLK、片选信号PSEL、复位信号PRESETn、地址信号PADDR[31:0]、写数据信号PWDATA[31:0],还包括控制信号组:PWRITE为读写控制信号、PENABLE为使能信号。APB总线接口模块返回给总线的信号有读数据信号PRDATA[31:0]。APB总线读写按照APB总线读写时序要求,如图2、图3所示。
|
|
|
|
|
|