[发明专利]基于FPGA的SPI FLASH控制器及其设计方法在审
申请号: | 201711373989.0 | 申请日: | 2017-12-19 |
公开(公告)号: | CN108052750A | 公开(公告)日: | 2018-05-18 |
发明(设计)人: | 张贞雷 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 韩月娥 |
地址: | 450000 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga spi flash 控制器 及其 设计 方法 | ||
1.基于FPGA的SPI FLASH控制器,其特征在于,其结构包括:
标志寄存器,通过软件配置标志寄存器flag,用于标志SPI FLASH的指令类型;
FPGA,接收并缓存软件通过APB接口发送的指令;包括的核心逻辑件为若干FIFO、一个状态机FSM、一个SPI时序产生模块;
FIFO,用于接收软件通过APB配置下来的寄存器的值;包括FLAG_FIFO :用于接收软件通过APB配置下来的当前标志寄存器的值;
状态机,接收FLAG_FIFO发送的标志寄存器的值,根据标志寄存器的内容,决定读取对应FIFO;同时接收SPI FLASH的读返回信息,将读返回信息缓存到FIFO,等待软件读取;
SPI时序产生模块,将FIFO读出数据依次转换为SPI时序,通过SPI接口输出给SPIFLASH。
2.根据权利要求1所述基于FPGA的SPI FLASH控制器,其特征在于,通过软件配置指令寄存器、地址寄存器、写个数寄存器、读个数寄存器和写数据寄存器。
3.根据权利要求2述基于FPGA的SPI FLASH控制器,其特征在于,所述FPGA内部设置CMD_FIFO:用于接收软件通过APB配置下来的指令寄存器的值;FPGA内部设置ADDR_FIFO :用于接收软件通过APB配置下来的地址寄存器的值;FPGA内部设置WR_CNT_FIFO:用于接收软件通过APB配置下来的写个数寄存器的值;FPGA内部设置RD_CNT_FIFO:用于接收软件通过APB配置下来的读个数寄存器的值;FPGA内部设置WR_DATA_FIFO:用于接收软件通过APB配置下来的写数据寄存器的值;
同时,所述FPGA内部设置RV_DATA_FIFO:用于接收SPI FLASH读返回的数据。
4.根据权利要求3所述基于FPGA的SPI FLASH控制器,其特征在于,初始状态,若FLAG_FIFO为非空,同时当前cmd配置完毕;则从IDLE状态到RD_FLAG状态;
读FLAG_FIFO状态,读出当前指令的类型,若CMD_FIFO为非空,则从RD_FLAG状态跳转到RD_CMD状态;
读CMD_FIFO状态,并且将cmd发送到spi总线上;若当前flag只包含cmd,则在发送完cmd到spi总线之后,将跳转到IDLE状态;若当前flag包含cmd和读返回数据,则在发送完cmd到spi总线之后,将跳转到RV_RD_DATA状态,接收flash的返回数据;若当前flag包含cmd和addr,则在发送完cmd到spi总线之后,将跳转到RD_ADDR状态;
读ADDR_FIFO状态,将addr发送到spi总线上;若当前flag只包含cmd+addr,则在发送完cmd和addr到spi总线之后,将跳转到IDLE状态;若当前flag只包含cmd+addr+wr_data,则在发送完cmd和addr到spi总线之后,将跳转到RD_WR_DATA状态;若当前flag只包含cmd+addr+rd_data,且当前cmd不包含dummy clock虚拟时钟,则在发送完cmd和addr到spi总线之后,将跳转到RV_RD_DATA状态;若当前flag只包含cmd+addr+rd_data,且当前cmd包含dummyclock,则在发送完cmd和addr到spi总线之后,将跳转到WAIT状态;若当前flag只包含cmd+addr+rd_data,且当前cmd包含dummy clock,则在发送完cmd和addr到spi总线之后,将跳转到WAIT状态。
5.根据权利要求4所述基于FPGA的SPI FLASH控制器,其特征在于,在RD_WR_DATA状态下,读WR_DATA_FIFO状态,并且按照配置的写数据的个数,依次将要写入FLASH的数据,发送到spi总线上,然后跳转到IDLE状态;
在RV_RD_DATA状态下,按照配置的读数据的个数,接收flash的读返回数据,并且将返回数据写入对应的缓存RV_DATA_FIFO,供APB总线来读取,然后跳转到IDLE状态;
在WAIT状态下,等待N个时钟周期,然后跳转到RV_RD_DATA状态,此时对应的cmd为0x0b或者是0x0c。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711373989.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种环保多种类喷漆装置
- 下一篇:一种合成高温润滑脂