基于FPGA的SPI Flash控制器的设计与实现
更新时间:2024-03-09 20:41:01 阅读量: 综合文库 文档下载
- 基于FPGA的SPI推荐度:
- 相关推荐
龙源期刊网 http://www.qikan.com.cn
基于FPGA的SPI Flash控制器的设计与实现
作者:陈炳成
来源:《电子世界》2013年第12期
【摘要】传统的Flash读写是通过CPU软件编程实现,其读写速度较慢,且占用CPU资源,另外由于Flash芯片本身功能指令较多,使得对芯片进行直接操作变得非常困难。本文提出一个基于FPGA的SPI Flash读写硬件实现方案,该方案利用硬件对SPI Flash进行控制,能够非常方便地完成Flash的读写、擦除、刷新及预充电等操作,同时编写的SPI Flash控制器IP核能够进行移植和复用,作为SOC芯片的功能模块。SPI Flash控制器采用VHDL语言进行编写,在Modelsim 6.5g上通过功能仿真,并且在XUPV5-LX110T FPGA开发板上通过硬件测试,实现结果表明方案的可行性。
【关键词】FPGA;SPI Flash控制器;IP核;VHDL 1.引言
Flash是一种具有电可擦除的可编程ROM,按接口可以分为两大类:并行Flash和串行Flash。并行Flash存储量大,速度快;而串行Flash存储量相对较小,但体积小,连线简单,可减小电路面积,节约成本。SPI Flash是内嵌SPI总线接口的串行Flash,它比起传统的并行总线接口Flash,节省了很多的I/O口资源,从而为系统功能的扩展提供了更多的可能。 随着SPI Flash越来越多地应用到各种领域,其传统读写方式中读写速度不够快、占用CPU资源以及操作不够简便灵活的缺点表现得更为突出,如何解决以上问题成为大家关注的焦点。利用硬件对SPI Flash进行控制,能够非常方便地完成Flash的读写、擦除、刷新及预充电等操作,且不占用CPU资源,同时编写的SPI Flash控制器IP核能够进行移植和复用,作为SOC芯片的功能模块。因此提出了一种基于FPGA的SPI Flash控制器的设计方案,并用VHDL实现。编写的SPI Flash控制器IP核在Modelsim 6.5g上进行了功能仿真,在FPGA开发板上进行了测试验证,可作为功能模块应用于SOC芯片设计。 2.SPI Flash控制器设计 2.1 SPI Flash芯片选择
本方案SPI Flash芯片采用GigaDevice公司的GD25Q系列,GD25Q系列SPI Flash包括4M bit的GD25Q40,2M bit的GD25Q20,1M bit的GD25Q10以及521K bit的GD25Q512,这里将采用512K bit的GD25Q512。图1为GD25Q系列SPI Flash(SOP8封装)引脚排列图。其中VCC和VSS分别为电源和地,其他6个引脚均可直接与FPGA的I/O引脚相连;写保护引
龙源期刊网 http://www.qikan.com.cn
脚WP#和HOLD#挂起引脚用于数据保护和空闲模式的低功耗运行,若不使用可将其置为高电平;CS#为片选信号,低电平时表示器件被选中,反之工作在待机状态;SO为串行数据输出,数据在时钟的下降沿输出到Flash器件;SI为串行数据输入,包括传输指令、地址和输入数据,输入信号在时钟的上升沿锁存到Flash器件中。SCLK为串行时钟,由FPGA提供。 2.2 SPI Flash指令操作
GDQ25系列SPI Flash指令较多,所有指令都是8位,操作时先将片选信号CS#拉低选中器件,然后输入8位操作指令字节,串行数据在片选信号CS#拉低后的第一个时钟的上升沿被采样,SPI Flash启动内部控制逻辑,自动完成相应操作。有些操作在输入指令后需要输入地址字节和伪字节,最后操作完成后再将片选信号拉高。 2.3 SPI Flash控制器设计原理
SPI Flash控制器必须能够产生SPI Flash芯片执行各操作(如写使能、刷新、预充电、读芯片ID、读取状态寄存器、写状态寄存器、扇区擦除、块擦除、整体擦除、读取数据、快速读取数据、页面编程)时所需指令时序,用户只需要输入对应操作的8位指令值及对应的操作地址值,SPI接口与SPI Flash的数据传输将由SPI Flash控制器内部状态机控制执行。 3.SPI Flash控制器实现 3.1 SPI Flash测试系统
本文设计的SPI Flash测试系统由用户端、FPGA和SPI Flash构成,系统框图如图2所示,其中FPGA选用Xilinx公司Virtex5系列芯片(Virtex-5 XC5VLX110T),SPI Flash芯片采用GigaDevice公司的GD25Q系列512K bit容量的GD25Q512。
SPI Flash控制器由VHDL编写,主要为SPI Flash芯片提供串行时钟,将从用户端输入的数据(包括指令字节、地址字节和数据字节)寄存起来并在串行时钟的控制下通过spi_dout信号线逐位输出到SPI Flash芯片中,同样将从SPI Flash芯片中读出的串行数据转换成并行数据送给用户端。此外,SPI Flash控制器还必须在用户通过sel、addr以及wr组合发出的操作命令下产生一系列的控制信号,并在这些控制信号的作用下根据状态机的转换方向进行动作并且输出相应的结果。
3.2 SPI Flash控制器控制状态机
由于SPI Flash操作命令较多,并且很多操作命令之间存在相同的操作步骤,所以利用状态机进行控制能够准确有条理地完成对SPI Flash的操作。分析GDQ25系列SPI Flash datasheet,可将SPI Flash控制器的工作状态划分为空闲状态(IDLE)、传输指令状态(TxCMD)、传输高字节地址状态(TxADD_H)、传输中间字节地址状态(TxADD_M)、传输低字节地址状态(TxADD_L)、传输伪字节状态(TxDummy)、传输数据状态
正在阅读:
基于FPGA的SPI Flash控制器的设计与实现03-09
智能楼宇门禁系统的研究与设计应用03-09
2013甘肃二诊甘肃省2013届高三第二次高考诊断政治试题10-09
2010年九年级数学文理联赛模拟试卷2009-06
给刘翔的一封信02-18
14.综合应急预案03-02
计算机专业毕业设计论文04-19
【南方新课堂】2019高考新课标数学(理科)二轮专题复习检测 专题五第3讲圆锥曲线的综合问题 含解析09-02
射流真空泵操作规程08-13
一种基于FF总线的智能控制系统设计05-13
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 控制器
- 基于
- 实现
- 设计
- Flash
- FPGA
- SPI
- 企业管理咨询调研提纲--模板
- 2012届高考语文三轮冲刺专题13
- 红河谷教学设计
- 小学一年级数学上册位置(上下前后左右)练习题 - 图文
- 细胞生物学选择
- 高考化学复习名校名题化学重组卷05(新课标卷)(原卷版)
- 电脑主板的原理介绍1 - 图文
- 事故呈报制度
- 大学英语II 第5单元 作业题
- 最浪漫的情话大全
- 招聘渠道发展趋势及拓展策略
- 重庆大学 机械原理各章填空题
- 关于2011年度辽宁省科技奖励
- 中小学资料内蒙古鄂尔多斯市2017-2018学年高一政治上学期第一次
- 新步步高《加练半小时》2019版高三物理一轮复习(教科版)习题:
- GL027#3锅炉整体水压试验
- 四川省成都市某重点中学2017-2018学年高三高考热身试题 化学 Wor
- 人大会议主持词
- 在2012年集团公司新春茶话会上的讲话1
- 电子商务案例分析试题参考答案