基于FPGA的SPI Flash控制器的设计方案

基于FPGA的SPI Flash控制器的设计方案

ID:39474232

大小:159.50 KB

页数:6页

时间:2019-07-04

基于FPGA的SPI Flash控制器的设计方案_第1页
基于FPGA的SPI Flash控制器的设计方案_第2页
基于FPGA的SPI Flash控制器的设计方案_第3页
基于FPGA的SPI Flash控制器的设计方案_第4页
基于FPGA的SPI Flash控制器的设计方案_第5页
资源描述:

《基于FPGA的SPI Flash控制器的设计方案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于FPGA的SPIFlash控制器的设计方案[导读]传统的Flash读写是通过CPU软件编程实现,其读写速度较慢,且占用CPU资源,另外由于Flash芯片本身功能指令较多,使得对芯片进行直接操作变得非常困难。本文提出一个基于FPGA的SPIFlash读写硬件实现方案,该方案利用硬件对SPIFlash进行控制,能够非常方便地完成Flash的读写、擦除、刷新及预充电等操作,同时编写的SPIFlash控制器IP核能够进行移植和复用,作为SOC芯片的功能模块。关键词:SPIFlash控制器FPGA  本文提出一个基于FPGA的SPIF

2、lash读写硬件实现方案,该方案利用硬件对SPIFlash进行控制,能够非常方便地完成Flash的读写、擦除、刷新及预充电等操作,同时编写的SPIFlash控制器IP核能够进行移植和复用,作为SOC芯片的功能模块。SPIFlash控制器采用VHDL语言进行编写,在Modelsim6.5g上通过功能仿真,并且在XUPV5-LX110TFPGA开发板上通过硬件测试,实现结果表明方案的可行性。  1.引言  Flash是一种具有电可擦除的可编程ROM,按接口可以分为两大类:并行Flash和串行Flash.并行Flash存储量大,速度快

3、;而串行Flash存储量相对较小,但体积小,连线简单,可减小电路面积,节约成本。SPIFlash是内嵌SPI总线接口的串行Flash,它比起传统的并行总线接口Flash,节省了很多的I/O口资源,从而为系统功能的扩展提供了更多的可能。  随着SPIFlash越来越多地应用到各种领域,其传统读写方式中读写速度不够快、占用CPU资源以及操作不够简便灵活的缺点表现得更为突出,如何解决以上问题成为大家关注的焦点。利用硬件对SPIFlash进行控制,能够非常方便地完成Flash的读写、擦除、刷新及预充电等操作,且不占用CPU资源,同时编写

4、的SPIFlash控制器IP核能够进行移植和复用,作为SOC芯片的功能模块。因此提出了一种基于FPGA的SPIFlash控制器的设计方案,并用VHDL实现。编写的SPIFlash控制器IP核在Modelsim6.5g上进行了功能仿真,在FPGA开发板上进行了测试验证,可作为功能模块应用于SOC芯片设计。  2.SPIFlash控制器设计  2.1SPIFlash芯片选择  本方案SPIFlash芯片采用GigaDevice公司的GD25Q系列,GD25Q系列SPIFlash包括4Mbit的GD25Q40,2Mbit的GD25Q2

5、0,1Mbit的GD25Q10以及521Kbit的GD25Q512,这里将采用512Kbit的GD25Q512.图1为GD25Q系列SPIFlash(SOP8封装)引脚排列图。其中VCC和VSS分别为电源和地,其他6个引脚均可直接与FPGA的I/O引脚相连;写保护引脚WP#和HOLD#挂起引脚用于数据保护和空闲模式的低功耗运行,若不使用可将其置为高电平;CS#为片选信号,低电平时表示器件被选中,反之工作在待机状态;SO为串行数据输出,数据在时钟的下降沿输出到Flash器件;SI为串行数据输入,包括传输指令、地址和输入数据,输入信

6、号在时钟的上升沿锁存到Flash器件中。SCLK为串行时钟,由FPGA提供。  2.2SPIFlash指令操作  GDQ25系列SPIFlash指令较多,所有指令都是8位,操作时先将片选信号CS#拉低选中器件,然后输入8位操作指令字节,串行数据在片选信号CS#拉低后的第一个时钟的上升沿被采样,SPIFlash启动内部控制逻辑,自动完成相应操作。有些操作在输入指令后需要输入地址字节和伪字节,最后操作完成后再将片选信号拉高。  2.3SPIFlash控制器设计原理  SPIFlash控制器必须能够产生SPIFlash芯片执行各操作(

7、如写使能、刷新、预充电、读芯片ID、读取状态寄存器、写状态寄存器、扇区擦除、块擦除、整体擦除、读取数据、快速读取数据、页面编程)时所需指令时序,用户只需要输入对应操作的8位指令值及对应的操作地址值,SPI接口与SPIFlash的数据传输将由SPIFlash控制器内部状态机控制执行。  3.SPIFlash控制器实现  3.1SPIFlash测试系统  本文设计的SPIFlash测试系统由用户端、FPGA和SPIFlash构成,系统框图如图2所示,其中FPGA选用Xilinx公司Virtex5系列芯片(Virtex-5XC5VLX

8、110T),SPIFlash芯片采用GigaDevice公司的GD25Q系列512Kbit容量的GD25Q512.  SPIFlash控制器由VHDL编写,主要为SPIFlash芯片提供串行时钟,将从用户端输入的数据(包括指令字节、地址字节和数据字节)寄存起来并

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。